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 257; // "smulu64"
45 case 9: // 6 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'a': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
50 break;
51 return 243; // "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 214; // "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 160; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 159; // "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 219; // "nneg_zext"
80 }
81 break;
82 case 10: // 7 strings to match.
83 switch (RuleIdentifier[0]) {
84 default: break;
85 case 'i': // 1 string to match.
86 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
87 break;
88 return 96; // "i2p_to_p2i"
89 case 'm': // 2 strings to match.
90 switch (RuleIdentifier[1]) {
91 default: break;
92 case 'a': // 1 string to match.
93 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
94 break;
95 return 213; // "match_ands"
96 case 'u': // 1 string to match.
97 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
98 break;
99 return 20; // "mul_to_shl"
100 }
101 break;
102 case 'p': // 1 string to match.
103 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
104 break;
105 return 95; // "p2i_to_i2p"
106 case 's': // 2 strings to match.
107 switch (RuleIdentifier[1]) {
108 default: break;
109 case 'e': // 1 string to match.
110 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
111 break;
112 return 217; // "sext_trunc"
113 case 'u': // 1 string to match.
114 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
115 break;
116 return 21; // "sub_to_add"
117 }
118 break;
119 case 'z': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
121 break;
122 return 218; // "zext_trunc"
123 }
124 break;
125 case 11: // 8 strings to match.
126 switch (RuleIdentifier[0]) {
127 default: break;
128 case 'a': // 1 string to match.
129 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
130 break;
131 return 101; // "add_sub_reg"
132 case 'm': // 1 string to match.
133 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
134 break;
135 return 234; // "match_addos"
136 case 's': // 1 string to match.
137 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
138 break;
139 return 208; // "sub_add_reg"
140 case 't': // 4 strings to match.
141 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
142 break;
143 switch (RuleIdentifier[6]) {
144 default: break;
145 case 's': // 3 strings to match.
146 switch (RuleIdentifier[7]) {
147 default: break;
148 case 'h': // 1 string to match.
149 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
150 break;
151 return 139; // "trunc_shift"
152 case 's': // 2 strings to match.
153 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
154 break;
155 switch (RuleIdentifier[10]) {
156 default: break;
157 case 's': // 1 string to match.
158 return 236; // "trunc_ssats"
159 case 'u': // 1 string to match.
160 return 237; // "trunc_ssatu"
161 }
162 break;
163 }
164 break;
165 case 'u': // 1 string to match.
166 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
167 break;
168 return 238; // "trunc_usatu"
169 }
170 break;
171 case 'u': // 1 string to match.
172 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
173 break;
174 return 227; // "unmerge_cst"
175 }
176 break;
177 case 12: // 12 strings to match.
178 switch (RuleIdentifier[0]) {
179 default: break;
180 case 'A': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
182 break;
183 return 4; // "APlusBMinusB"
184 case 'B': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
186 break;
187 return 5; // "BMinusAPlusA"
188 case 'a': // 1 string to match.
189 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
190 break;
191 return 161; // "adde_to_addo"
192 case 'c': // 1 string to match.
193 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
194 break;
195 return 241; // "ctlz_to_ctls"
196 case 'f': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
198 break;
199 return 210; // "fsub_to_fneg"
200 case 'm': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
202 break;
203 return 189; // "mulh_to_lshr"
204 case 'n': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
206 break;
207 return 140; // "not_cmp_fold"
208 case 'r': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
210 break;
211 return 135; // "redundant_or"
212 case 's': // 2 strings to match.
213 switch (RuleIdentifier[1]) {
214 default: break;
215 case 'd': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
217 break;
218 return 204; // "sdiv_by_pow2"
219 case 'e': // 1 string to match.
220 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
221 break;
222 return 54; // "sext_of_sext"
223 }
224 break;
225 case 'u': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
227 break;
228 return 203; // "udiv_by_pow2"
229 case 'z': // 1 string to match.
230 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
231 break;
232 return 52; // "zext_of_zext"
233 }
234 break;
235 case 13: // 20 strings to match.
236 switch (RuleIdentifier[0]) {
237 default: break;
238 case 'A': // 2 strings to match.
239 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
240 break;
241 switch (RuleIdentifier[12]) {
242 default: break;
243 case 'A': // 1 string to match.
244 return 12; // "AMinusBMinusA"
245 case 'C': // 1 string to match.
246 return 9; // "AMinusBMinusC"
247 }
248 break;
249 case 'a': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
251 break;
252 return 43; // "add_of_vscale"
253 case 'c': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
255 break;
256 return 179; // "commute_shift"
257 case 'f': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
259 break;
260 return 253; // "foldable_fneg"
261 case 'l': // 1 string to match.
262 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
263 break;
264 return 75; // "load_and_mask"
265 case 'm': // 3 strings to match.
266 switch (RuleIdentifier[1]) {
267 default: break;
268 case 'a': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
270 break;
271 return 132; // "match_selects"
272 case 'e': // 1 string to match.
273 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
274 break;
275 return 226; // "merge_unmerge"
276 case 'u': // 1 string to match.
277 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
278 break;
279 return 44; // "mul_of_vscale"
280 }
281 break;
282 case 'r': // 1 string to match.
283 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
284 break;
285 return 133; // "redundant_and"
286 case 's': // 6 strings to match.
287 switch (RuleIdentifier[1]) {
288 default: break;
289 case 'a': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
291 break;
292 return 92; // "same_val_zero"
293 case 'd': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
295 break;
296 return 206; // "sdiv_by_const"
297 case 'h': // 1 string to match.
298 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
299 break;
300 return 45; // "shl_of_vscale"
301 case 'r': // 1 string to match.
302 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
303 break;
304 return 202; // "srem_by_const"
305 case 'u': // 2 strings to match.
306 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
307 break;
308 switch (RuleIdentifier[4]) {
309 default: break;
310 case 'm': // 1 string to match.
311 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
312 break;
313 return 246; // "sub_minus_one"
314 case 'o': // 1 string to match.
315 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
316 break;
317 return 46; // "sub_of_vscale"
318 }
319 break;
320 }
321 break;
322 case 'u': // 4 strings to match.
323 switch (RuleIdentifier[1]) {
324 default: break;
325 case 'd': // 1 string to match.
326 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
327 break;
328 return 205; // "udiv_by_const"
329 case 'n': // 2 strings to match.
330 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
331 break;
332 switch (RuleIdentifier[8]) {
333 default: break;
334 case 'm': // 1 string to match.
335 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
336 break;
337 return 225; // "unmerge_merge"
338 case 'u': // 1 string to match.
339 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
340 break;
341 return 228; // "unmerge_undef"
342 }
343 break;
344 case 'r': // 1 string to match.
345 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
346 break;
347 return 201; // "urem_by_const"
348 }
349 break;
350 }
351 break;
352 case 14: // 19 strings to match.
353 switch (RuleIdentifier[0]) {
354 default: break;
355 case 'A': // 2 strings to match.
356 switch (RuleIdentifier[1]) {
357 default: break;
358 case 'M': // 1 string to match.
359 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
360 break;
361 return 18; // "AMinusC1PlusC2"
362 case 'P': // 1 string to match.
363 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
364 break;
365 return 14; // "APlusC1MinusC2"
366 }
367 break;
368 case 'C': // 1 string to match.
369 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
370 break;
371 return 15; // "C2MinusAPlusC1"
372 case 'N': // 1 string to match.
373 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
374 break;
375 return 13; // "NotAPlusNegOne"
376 case 'a': // 2 strings to match.
377 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
378 break;
379 switch (RuleIdentifier[10]) {
380 default: break;
381 case 's': // 1 string to match.
382 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
383 break;
384 return 58; // "anyext_of_sext"
385 case 'z': // 1 string to match.
386 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
387 break;
388 return 57; // "anyext_of_zext"
389 }
390 break;
391 case 'b': // 3 strings to match.
392 if (RuleIdentifier[1] != 'i')
393 break;
394 switch (RuleIdentifier[2]) {
395 default: break;
396 case 'n': // 2 strings to match.
397 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
398 break;
399 switch (RuleIdentifier[6]) {
400 default: break;
401 case 's': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
403 break;
404 return 91; // "binop_same_val"
405 case 'w': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
407 break;
408 return 245; // "binop_with_neg"
409 }
410 break;
411 case 't': // 1 string to match.
412 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
413 break;
414 return 177; // "bitreverse_shl"
415 }
416 break;
417 case 'c': // 1 string to match.
418 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
419 break;
420 return 251; // "cvt_f32_ubyteN"
421 case 'f': // 2 strings to match.
422 switch (RuleIdentifier[1]) {
423 default: break;
424 case 'a': // 1 string to match.
425 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
426 break;
427 return 188; // "fabs_fneg_fold"
428 case 'n': // 1 string to match.
429 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
430 break;
431 return 98; // "fneg_fneg_fold"
432 }
433 break;
434 case 'm': // 1 string to match.
435 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
436 break;
437 return 23; // "mul_by_neg_one"
438 case 'r': // 1 string to match.
439 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
440 break;
441 return 114; // "reassoc_ptradd"
442 case 's': // 3 strings to match.
443 switch (RuleIdentifier[1]) {
444 default: break;
445 case 'e': // 2 strings to match.
446 switch (RuleIdentifier[2]) {
447 default: break;
448 case 'l': // 1 string to match.
449 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
450 break;
451 return 60; // "select_of_zext"
452 case 'x': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
454 break;
455 return 55; // "sext_of_anyext"
456 }
457 break;
458 case 'h': // 1 string to match.
459 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
460 break;
461 return 113; // "shifts_too_big"
462 }
463 break;
464 case 'u': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
466 break;
467 return 250; // "uchar_to_float"
468 case 'z': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
470 break;
471 return 53; // "zext_of_anyext"
472 }
473 break;
474 case 15: // 13 strings to match.
475 switch (RuleIdentifier[0]) {
476 default: break;
477 case 'A': // 2 strings to match.
478 switch (RuleIdentifier[1]) {
479 default: break;
480 case 'M': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
482 break;
483 return 16; // "AMinusC1MinusC2"
484 case 'P': // 1 string to match.
485 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
486 break;
487 return 3; // "APlusZeroMinusB"
488 }
489 break;
490 case 'C': // 1 string to match.
491 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
492 break;
493 return 17; // "C1Minus2MinusC2"
494 case 'Z': // 1 string to match.
495 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
496 break;
497 return 2; // "ZeroMinusAPlusB"
498 case 'b': // 1 string to match.
499 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
500 break;
501 return 178; // "bitreverse_lshr"
502 case 'e': // 1 string to match.
503 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
504 break;
505 return 74; // "extending_loads"
506 case 'i': // 1 string to match.
507 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
508 break;
509 return 24; // "idempotent_prop"
510 case 'l': // 1 string to match.
511 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
512 break;
513 return 168; // "load_or_combine"
514 case 'n': // 1 string to match.
515 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
516 break;
517 return 68; // "narrow_binop_or"
518 case 'o': // 1 string to match.
519 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
520 break;
521 return 158; // "overlapping_and"
522 case 'r': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
524 break;
525 return 254; // "rcp_sqrt_to_rsq"
526 case 's': // 1 string to match.
527 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
528 break;
529 return 89; // "select_same_val"
530 case 'z': // 1 string to match.
531 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
532 break;
533 return 137; // "zext_trunc_fold"
534 }
535 break;
536 case 16: // 14 strings to match.
537 switch (RuleIdentifier[0]) {
538 default: break;
539 case 'A': // 1 string to match.
540 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
541 break;
542 return 11; // "AMinusZeroMinusB"
543 case 'a': // 1 string to match.
544 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
545 break;
546 return 56; // "anyext_of_anyext"
547 case 'n': // 5 strings to match.
548 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
549 break;
550 switch (RuleIdentifier[13]) {
551 default: break;
552 case 'a': // 2 strings to match.
553 switch (RuleIdentifier[14]) {
554 default: break;
555 case 'd': // 1 string to match.
556 if (RuleIdentifier[15] != 'd')
557 break;
558 return 64; // "narrow_binop_add"
559 case 'n': // 1 string to match.
560 if (RuleIdentifier[15] != 'd')
561 break;
562 return 67; // "narrow_binop_and"
563 }
564 break;
565 case 'm': // 1 string to match.
566 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
567 break;
568 return 66; // "narrow_binop_mul"
569 case 's': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
571 break;
572 return 65; // "narrow_binop_sub"
573 case 'x': // 1 string to match.
574 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
575 break;
576 return 69; // "narrow_binop_xor"
577 }
578 break;
579 case 's': // 4 strings to match.
580 switch (RuleIdentifier[1]) {
581 default: break;
582 case 'e': // 3 strings to match.
583 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
584 break;
585 switch (RuleIdentifier[7]) {
586 default: break;
587 case 'o': // 1 string to match.
588 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
589 break;
590 return 61; // "select_of_anyext"
591 case 't': // 1 string to match.
592 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
593 break;
594 return 209; // "select_to_minmax"
595 case 'u': // 1 string to match.
596 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
597 break;
598 return 129; // "select_undef_cmp"
599 }
600 break;
601 case 'u': // 1 string to match.
602 if (memcmp(RuleIdentifier.data()+2, "b_one_from_sub", 14) != 0)
603 break;
604 return 244; // "sub_one_from_sub"
605 }
606 break;
607 case 't': // 2 strings to match.
608 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
609 break;
610 switch (RuleIdentifier[12]) {
611 default: break;
612 case 's': // 1 string to match.
613 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
614 break;
615 return 50; // "truncate_of_sext"
616 case 'z': // 1 string to match.
617 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
618 break;
619 return 49; // "truncate_of_zext"
620 }
621 break;
622 case 'u': // 1 string to match.
623 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
624 break;
625 return 77; // "undef_to_fp_zero"
626 }
627 break;
628 case 17: // 14 strings to match.
629 switch (RuleIdentifier[0]) {
630 default: break;
631 case 'A': // 2 strings to match.
632 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
633 break;
634 switch (RuleIdentifier[11]) {
635 default: break;
636 case 'A': // 1 string to match.
637 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
638 break;
639 return 8; // "APlusBMinusAplusC"
640 case 'C': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
642 break;
643 return 10; // "APlusBMinusCPlusA"
644 }
645 break;
646 case 'a': // 2 strings to match.
647 switch (RuleIdentifier[1]) {
648 default: break;
649 case 'd': // 1 string to match.
650 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
651 break;
652 return 22; // "add_p2i_to_ptradd"
653 case 'n': // 1 string to match.
654 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
655 break;
656 return 97; // "anyext_trunc_fold"
657 }
658 break;
659 case 'c': // 3 strings to match.
660 switch (RuleIdentifier[1]) {
661 default: break;
662 case 'a': // 2 strings to match.
663 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
664 break;
665 switch (RuleIdentifier[13]) {
666 default: break;
667 case 'f': // 1 string to match.
668 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
669 break;
670 return 118; // "canonicalize_fcmp"
671 case 'i': // 1 string to match.
672 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
673 break;
674 return 117; // "canonicalize_icmp"
675 }
676 break;
677 case 'o': // 1 string to match.
678 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
679 break;
680 return 186; // "constant_fold_fma"
681 }
682 break;
683 case 'd': // 1 string to match.
684 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
685 break;
686 return 169; // "div_rem_to_divrem"
687 case 'e': // 1 string to match.
688 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
689 break;
690 return 87; // "erase_undef_store"
691 case 'p': // 1 string to match.
692 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
693 break;
694 return 165; // "ptr_add_with_zero"
695 case 's': // 2 strings to match.
696 switch (RuleIdentifier[1]) {
697 default: break;
698 case 'e': // 1 string to match.
699 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
700 break;
701 return 131; // "select_to_iminmax"
702 case 'h': // 1 string to match.
703 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
704 break;
705 return 166; // "shift_immed_chain"
706 }
707 break;
708 case 'u': // 2 strings to match.
709 switch (RuleIdentifier[1]) {
710 default: break;
711 case 'n': // 1 string to match.
712 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
713 break;
714 return 78; // "undef_to_int_zero"
715 case 'r': // 1 string to match.
716 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
717 break;
718 return 136; // "urem_pow2_to_mask"
719 }
720 break;
721 }
722 break;
723 case 18: // 13 strings to match.
724 switch (RuleIdentifier[0]) {
725 default: break;
726 case 'A': // 3 strings to match.
727 switch (RuleIdentifier[1]) {
728 default: break;
729 case 'M': // 2 strings to match.
730 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
731 break;
732 switch (RuleIdentifier[11]) {
733 default: break;
734 case 'B': // 1 string to match.
735 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
736 break;
737 return 7; // "AMinusBPlusBMinusC"
738 case 'C': // 1 string to match.
739 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
740 break;
741 return 6; // "AMinusBPlusCMinusA"
742 }
743 break;
744 case 'P': // 1 string to match.
745 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
746 break;
747 return 0; // "APlusBMinusCMinusB"
748 }
749 break;
750 case 'b': // 1 string to match.
751 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
752 break;
753 return 93; // "binop_left_to_zero"
754 case 'c': // 4 strings to match.
755 if (RuleIdentifier[1] != 'o')
756 break;
757 switch (RuleIdentifier[2]) {
758 default: break;
759 case 'm': // 2 strings to match.
760 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
761 break;
762 switch (RuleIdentifier[8]) {
763 default: break;
764 case 'm': // 1 string to match.
765 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
766 break;
767 return 162; // "combine_minmax_nan"
768 case 'o': // 1 string to match.
769 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
770 break;
771 return 260; // "combine_or_s64_s32"
772 }
773 break;
774 case 'n': // 2 strings to match.
775 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
776 break;
777 switch (RuleIdentifier[15]) {
778 default: break;
779 case 'a': // 1 string to match.
780 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
781 break;
782 return 143; // "constant_fold_fabs"
783 case 'n': // 1 string to match.
784 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
785 break;
786 return 142; // "constant_fold_fneg"
787 }
788 break;
789 }
790 break;
791 case 'e': // 1 string to match.
792 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
793 break;
794 return 163; // "expand_const_fpowi"
795 case 'f': // 1 string to match.
796 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
797 break;
798 return 106; // "fptrunc_fpext_fold"
799 case 's': // 2 strings to match.
800 if (RuleIdentifier[1] != 'e')
801 break;
802 switch (RuleIdentifier[2]) {
803 default: break;
804 case 'l': // 1 string to match.
805 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
806 break;
807 return 62; // "select_of_truncate"
808 case 'x': // 1 string to match.
809 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
810 break;
811 return 126; // "sext_inreg_of_load"
812 }
813 break;
814 case 't': // 1 string to match.
815 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
816 break;
817 return 51; // "truncate_of_anyext"
818 }
819 break;
820 case 19: // 19 strings to match.
821 switch (RuleIdentifier[0]) {
822 default: break;
823 case 'A': // 1 string to match.
824 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
825 break;
826 return 1; // "AMinusBMinusCMinusC"
827 case 'b': // 1 string to match.
828 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
829 break;
830 return 94; // "binop_right_to_zero"
831 case 'c': // 7 strings to match.
832 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
833 break;
834 switch (RuleIdentifier[5]) {
835 default: break;
836 case '_': // 1 string to match.
837 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
838 break;
839 return 157; // "const_ptradd_to_i2p"
840 case 'a': // 6 strings to match.
841 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
842 break;
843 switch (RuleIdentifier[14]) {
844 default: break;
845 case 'b': // 1 string to match.
846 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
847 break;
848 return 184; // "constant_fold_binop"
849 case 'f': // 5 strings to match.
850 switch (RuleIdentifier[15]) {
851 default: break;
852 case 'c': // 1 string to match.
853 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
854 break;
855 return 148; // "constant_fold_fceil"
856 case 'l': // 1 string to match.
857 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
858 break;
859 return 145; // "constant_fold_flog2"
860 case 'p': // 1 string to match.
861 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
862 break;
863 return 147; // "constant_fold_fpext"
864 case 'r': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
866 break;
867 return 153; // "constant_fold_frint"
868 case 's': // 1 string to match.
869 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
870 break;
871 return 144; // "constant_fold_fsqrt"
872 }
873 break;
874 }
875 break;
876 }
877 break;
878 case 'e': // 1 string to match.
879 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
880 break;
881 return 110; // "extend_through_phis"
882 case 'i': // 1 string to match.
883 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
884 break;
885 return 70; // "integer_of_truncate"
886 case 'm': // 1 string to match.
887 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
888 break;
889 return 232; // "merge_of_x_and_zero"
890 case 'p': // 1 string to match.
891 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
892 break;
893 return 116; // "ptr_add_immed_chain"
894 case 'r': // 2 strings to match.
895 switch (RuleIdentifier[1]) {
896 default: break;
897 case 'e': // 1 string to match.
898 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
899 break;
900 return 115; // "reassoc_comm_binops"
901 case 'i': // 1 string to match.
902 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
903 break;
904 return 90; // "right_identity_zero"
905 }
906 break;
907 case 's': // 3 strings to match.
908 switch (RuleIdentifier[1]) {
909 default: break;
910 case 'e': // 1 string to match.
911 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
912 break;
913 return 130; // "select_constant_cmp"
914 case 'i': // 2 strings to match.
915 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
916 break;
917 switch (RuleIdentifier[9]) {
918 default: break;
919 case 'a': // 1 string to match.
920 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
921 break;
922 return 111; // "simplify_add_to_sub"
923 case 'n': // 1 string to match.
924 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
925 break;
926 return 215; // "simplify_neg_minmax"
927 }
928 break;
929 }
930 break;
931 case 'u': // 1 string to match.
932 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
933 break;
934 return 82; // "unary_undef_to_zero"
935 }
936 break;
937 case 20: // 9 strings to match.
938 switch (RuleIdentifier[0]) {
939 default: break;
940 case 'a': // 1 string to match.
941 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
942 break;
943 return 191; // "and_or_disjoint_mask"
944 case 'b': // 1 string to match.
945 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
946 break;
947 return 105; // "bitcast_bitcast_fold"
948 case 'c': // 1 string to match.
949 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
950 break;
951 return 149; // "constant_fold_ffloor"
952 case 'm': // 1 string to match.
953 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
954 break;
955 return 231; // "merge_of_x_and_undef"
956 case 'r': // 3 strings to match.
957 if (RuleIdentifier[1] != 'e')
958 break;
959 switch (RuleIdentifier[2]) {
960 default: break;
961 case 'd': // 2 strings to match.
962 if (RuleIdentifier[3] != 'u')
963 break;
964 switch (RuleIdentifier[4]) {
965 default: break;
966 case 'c': // 1 string to match.
967 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
968 break;
969 return 127; // "reduce_shl_of_extend"
970 case 'n': // 1 string to match.
971 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
972 break;
973 return 134; // "redundant_sext_inreg"
974 }
975 break;
976 case 'm': // 1 string to match.
977 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
978 break;
979 return 252; // "remove_fcanonicalize"
980 }
981 break;
982 case 'u': // 2 strings to match.
983 if (RuleIdentifier[1] != 'n')
984 break;
985 switch (RuleIdentifier[2]) {
986 default: break;
987 case 'a': // 1 string to match.
988 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
989 break;
990 return 83; // "unary_undef_to_undef"
991 case 'm': // 1 string to match.
992 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
993 break;
994 return 230; // "unmerge_zext_to_zext"
995 }
996 break;
997 }
998 break;
999 case 21: // 12 strings to match.
1000 switch (RuleIdentifier[0]) {
1001 default: break;
1002 case 'c': // 4 strings to match.
1003 if (RuleIdentifier[1] != 'o')
1004 break;
1005 switch (RuleIdentifier[2]) {
1006 default: break;
1007 case 'm': // 2 strings to match.
1008 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1009 break;
1010 switch (RuleIdentifier[8]) {
1011 default: break;
1012 case 'b': // 1 string to match.
1013 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1014 break;
1015 return 233; // "combine_build_unmerge"
1016 case 'c': // 1 string to match.
1017 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1018 break;
1019 return 216; // "combine_concat_vector"
1020 }
1021 break;
1022 case 'n': // 2 strings to match.
1023 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1024 break;
1025 switch (RuleIdentifier[14]) {
1026 default: break;
1027 case 'c': // 1 string to match.
1028 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1029 break;
1030 return 187; // "constant_fold_cast_op"
1031 case 'f': // 1 string to match.
1032 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1033 break;
1034 return 146; // "constant_fold_fptrunc"
1035 }
1036 break;
1037 }
1038 break;
1039 case 'e': // 1 string to match.
1040 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1041 break;
1042 return 248; // "expand_promoted_fmed3"
1043 case 'f': // 1 string to match.
1044 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1045 break;
1046 return 207; // "fdiv_repeated_divison"
1047 case 'i': // 1 string to match.
1048 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1049 break;
1050 return 30; // "insert_vector_elt_oob"
1051 case 'l': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1053 break;
1054 return 240; // "lshr_of_trunc_of_lshr"
1055 case 'r': // 1 string to match.
1056 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1057 break;
1058 return 100; // "right_identity_one_fp"
1059 case 's': // 1 string to match.
1060 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
1061 break;
1062 return 256; // "sign_extension_in_reg"
1063 case 'u': // 2 strings to match.
1064 if (RuleIdentifier[1] != 'n')
1065 break;
1066 switch (RuleIdentifier[2]) {
1067 default: break;
1068 case 'd': // 1 string to match.
1069 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1070 break;
1071 return 79; // "undef_to_negative_one"
1072 case 'm': // 1 string to match.
1073 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1074 break;
1075 return 229; // "unmerge_dead_to_trunc"
1076 }
1077 break;
1078 }
1079 break;
1080 case 22: // 13 strings to match.
1081 switch (RuleIdentifier[0]) {
1082 default: break;
1083 case 'c': // 2 strings to match.
1084 if (RuleIdentifier[1] != 'o')
1085 break;
1086 switch (RuleIdentifier[2]) {
1087 default: break;
1088 case 'm': // 1 string to match.
1089 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1090 break;
1091 return 220; // "combine_shuffle_concat"
1092 case 'n': // 1 string to match.
1093 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1094 break;
1095 return 185; // "constant_fold_fp_binop"
1096 }
1097 break;
1098 case 'f': // 4 strings to match.
1099 switch (RuleIdentifier[1]) {
1100 default: break;
1101 case 'o': // 1 string to match.
1102 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1103 break;
1104 return 200; // "fold_binop_into_select"
1105 case 'u': // 3 strings to match.
1106 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1107 break;
1108 switch (RuleIdentifier[13]) {
1109 default: break;
1110 case 'l': // 1 string to match.
1111 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1112 break;
1113 return 173; // "funnel_shift_left_zero"
1114 case 'o': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1116 break;
1117 return 174; // "funnel_shift_overshift"
1118 case 't': // 1 string to match.
1119 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1120 break;
1121 return 171; // "funnel_shift_to_rotate"
1122 }
1123 break;
1124 }
1125 break;
1126 case 'i': // 1 string to match.
1127 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1128 break;
1129 return 120; // "icmp_to_lhs_known_bits"
1130 case 'm': // 1 string to match.
1131 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1132 break;
1133 return 235; // "match_subo_no_overflow"
1134 case 'p': // 1 string to match.
1135 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1136 break;
1137 return 84; // "propagate_undef_any_op"
1138 case 'r': // 2 strings to match.
1139 switch (RuleIdentifier[1]) {
1140 default: break;
1141 case 'e': // 1 string to match.
1142 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1143 break;
1144 return 190; // "redundant_neg_operands"
1145 case 'i': // 1 string to match.
1146 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1147 break;
1148 return 99; // "right_identity_one_int"
1149 }
1150 break;
1151 case 's': // 1 string to match.
1152 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1153 break;
1154 return 124; // "shl_ashr_to_sext_inreg"
1155 case 't': // 1 string to match.
1156 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1157 break;
1158 return 103; // "trunc_buildvector_fold"
1159 }
1160 break;
1161 case 23: // 8 strings to match.
1162 switch (RuleIdentifier[0]) {
1163 default: break;
1164 case 'b': // 1 string to match.
1165 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1166 break;
1167 return 63; // "buildvector_of_truncate"
1168 case 'c': // 1 string to match.
1169 if (memcmp(RuleIdentifier.data()+1, "tlz_zero_undef_to_ctls", 22) != 0)
1170 break;
1171 return 242; // "ctlz_zero_undef_to_ctls"
1172 case 'f': // 2 strings to match.
1173 switch (RuleIdentifier[1]) {
1174 default: break;
1175 case 'd': // 1 string to match.
1176 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1177 break;
1178 return 255; // "fdiv_by_sqrt_to_rsq_f16"
1179 case 'u': // 1 string to match.
1180 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1181 break;
1182 return 172; // "funnel_shift_right_zero"
1183 }
1184 break;
1185 case 'i': // 2 strings to match.
1186 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1187 break;
1188 switch (RuleIdentifier[21]) {
1189 default: break;
1190 case 's': // 1 string to match.
1191 if (RuleIdentifier[22] != 'i')
1192 break;
1193 return 155; // "itof_const_zero_fold_si"
1194 case 'u': // 1 string to match.
1195 if (RuleIdentifier[22] != 'i')
1196 break;
1197 return 156; // "itof_const_zero_fold_ui"
1198 }
1199 break;
1200 case 'p': // 1 string to match.
1201 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1202 break;
1203 return 85; // "propagate_undef_all_ops"
1204 case 't': // 1 string to match.
1205 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1206 break;
1207 return 239; // "truncusatu_to_fptouisat"
1208 }
1209 break;
1210 case 24: // 7 strings to match.
1211 switch (RuleIdentifier[0]) {
1212 default: break;
1213 case 'b': // 1 string to match.
1214 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1215 break;
1216 return 80; // "binop_left_undef_to_zero"
1217 case 'c': // 1 string to match.
1218 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fnearbyint", 23) != 0)
1219 break;
1220 return 154; // "constant_fold_fnearbyint"
1221 case 'm': // 1 string to match.
1222 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1223 break;
1224 return 29; // "match_extract_of_element"
1225 case 'n': // 1 string to match.
1226 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1227 break;
1228 return 128; // "narrow_binop_feeding_and"
1229 case 's': // 2 strings to match.
1230 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1231 break;
1232 switch (RuleIdentifier[11]) {
1233 default: break;
1234 case 'o': // 1 string to match.
1235 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1236 break;
1237 return 59; // "sext_inreg_of_sext_inreg"
1238 case 't': // 1 string to match.
1239 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1240 break;
1241 return 138; // "sext_inreg_to_zext_inreg"
1242 }
1243 break;
1244 case 'x': // 1 string to match.
1245 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1246 break;
1247 return 164; // "xor_of_and_with_same_reg"
1248 }
1249 break;
1250 case 25: // 7 strings to match.
1251 switch (RuleIdentifier[0]) {
1252 default: break;
1253 case 'b': // 3 strings to match.
1254 switch (RuleIdentifier[1]) {
1255 default: break;
1256 case 'i': // 2 strings to match.
1257 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1258 break;
1259 switch (RuleIdentifier[22]) {
1260 default: break;
1261 case 'a': // 1 string to match.
1262 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1263 break;
1264 return 181; // "bitfield_extract_from_and"
1265 case 's': // 1 string to match.
1266 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1267 break;
1268 return 182; // "bitfield_extract_from_shr"
1269 }
1270 break;
1271 case 'u': // 1 string to match.
1272 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1273 break;
1274 return 102; // "buildvector_identity_fold"
1275 }
1276 break;
1277 case 'c': // 1 string to match.
1278 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1279 break;
1280 return 221; // "combine_shuffle_undef_rhs"
1281 case 'e': // 1 string to match.
1282 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1283 break;
1284 return 72; // "extract_vec_elt_build_vec"
1285 case 'n': // 1 string to match.
1286 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1287 break;
1288 return 125; // "neg_and_one_to_sext_inreg"
1289 case 'r': // 1 string to match.
1290 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1291 break;
1292 return 109; // "right_identity_neg_one_fp"
1293 }
1294 break;
1295 case 26: // 4 strings to match.
1296 switch (RuleIdentifier[0]) {
1297 default: break;
1298 case 'b': // 1 string to match.
1299 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1300 break;
1301 return 81; // "binop_right_undef_to_undef"
1302 case 'c': // 1 string to match.
1303 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1304 break;
1305 return 212; // "commute_fp_constant_to_rhs"
1306 case 'f': // 1 string to match.
1307 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1308 break;
1309 return 170; // "funnel_shift_from_or_shift"
1310 case 'r': // 1 string to match.
1311 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1312 break;
1313 return 107; // "right_identity_neg_zero_fp"
1314 }
1315 break;
1316 case 27: // 6 strings to match.
1317 switch (RuleIdentifier[0]) {
1318 default: break;
1319 case 'c': // 2 strings to match.
1320 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1321 break;
1322 switch (RuleIdentifier[3]) {
1323 default: break;
1324 case 'b': // 1 string to match.
1325 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1326 break;
1327 return 223; // "combine_use_vector_truncate"
1328 case 'm': // 1 string to match.
1329 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1330 break;
1331 return 211; // "commute_int_constant_to_rhs"
1332 }
1333 break;
1334 case 'd': // 1 string to match.
1335 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1336 break;
1337 return 122; // "double_icmp_zero_or_combine"
1338 case 'r': // 1 string to match.
1339 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1340 break;
1341 return 123; // "redundant_binop_in_equality"
1342 case 't': // 1 string to match.
1343 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1344 break;
1345 return 104; // "trunc_lshr_buildvector_fold"
1346 case 'u': // 1 string to match.
1347 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1348 break;
1349 return 224; // "unmerge_anyext_build_vector"
1350 }
1351 break;
1352 case 28: // 5 strings to match.
1353 switch (RuleIdentifier[0]) {
1354 default: break;
1355 case 'c': // 1 string to match.
1356 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1357 break;
1358 return 258; // "combine_or_s64_with_s32_mask"
1359 case 'd': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1361 break;
1362 return 121; // "double_icmp_zero_and_combine"
1363 case 'o': // 1 string to match.
1364 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1365 break;
1366 return 141; // "opt_brcond_by_inverting_cond"
1367 case 'p': // 1 string to match.
1368 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1369 break;
1370 return 86; // "propagate_undef_shuffle_mask"
1371 case 's': // 1 string to match.
1372 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1373 break;
1374 return 167; // "shift_of_shifted_logic_chain"
1375 }
1376 break;
1377 case 29: // 7 strings to match.
1378 switch (RuleIdentifier[0]) {
1379 default: break;
1380 case 'b': // 1 string to match.
1381 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1382 break;
1383 return 183; // "bitfield_extract_from_shr_and"
1384 case 'c': // 5 strings to match.
1385 if (RuleIdentifier[1] != 'o')
1386 break;
1387 switch (RuleIdentifier[2]) {
1388 default: break;
1389 case 'm': // 3 strings to match.
1390 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1391 break;
1392 switch (RuleIdentifier[8]) {
1393 default: break;
1394 case 'a': // 1 string to match.
1395 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1396 break;
1397 return 259; // "combine_and_s64_with_s32_mask"
1398 case 'e': // 1 string to match.
1399 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1400 break;
1401 return 76; // "combine_extracted_vector_load"
1402 case 's': // 1 string to match.
1403 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1404 break;
1405 return 222; // "combine_shuffle_disjoint_mask"
1406 }
1407 break;
1408 case 'n': // 2 strings to match.
1409 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1410 break;
1411 switch (RuleIdentifier[24]) {
1412 default: break;
1413 case 'r': // 1 string to match.
1414 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1415 break;
1416 return 151; // "constant_fold_intrinsic_round"
1417 case 't': // 1 string to match.
1418 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1419 break;
1420 return 150; // "constant_fold_intrinsic_trunc"
1421 }
1422 break;
1423 }
1424 break;
1425 case 'i': // 1 string to match.
1426 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1427 break;
1428 return 119; // "icmp_to_true_false_known_bits"
1429 }
1430 break;
1431 case 30: // 2 strings to match.
1432 switch (RuleIdentifier[0]) {
1433 default: break;
1434 case 'f': // 1 string to match.
1435 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1436 break;
1437 return 47; // "freeze_of_non_undef_non_poison"
1438 case 'r': // 1 string to match.
1439 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1440 break;
1441 return 108; // "right_identity_neg_zero_fp_nsz"
1442 }
1443 break;
1444 case 31: // 3 strings to match.
1445 switch (RuleIdentifier[0]) {
1446 default: break;
1447 case 'f': // 1 string to match.
1448 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1449 break;
1450 return 247; // "fcmp_select_to_fmin_fmax_legacy"
1451 case 'i': // 2 strings to match.
1452 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1453 break;
1454 switch (RuleIdentifier[22]) {
1455 default: break;
1456 case 'e': // 1 string to match.
1457 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1458 break;
1459 return 28; // "insert_vector_element_elt_undef"
1460 case 'i': // 1 string to match.
1461 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1462 break;
1463 return 27; // "insert_vector_element_idx_undef"
1464 }
1465 break;
1466 }
1467 break;
1468 case 32: // 4 strings to match.
1469 switch (RuleIdentifier[0]) {
1470 default: break;
1471 case 'b': // 1 string to match.
1472 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1473 break;
1474 return 180; // "bitfield_extract_from_sext_inreg"
1475 case 'c': // 2 strings to match.
1476 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1477 break;
1478 switch (RuleIdentifier[9]) {
1479 default: break;
1480 case 'a': // 1 string to match.
1481 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1482 break;
1483 return 192; // "combine_fadd_fmul_to_fmad_or_fma"
1484 case 's': // 1 string to match.
1485 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1486 break;
1487 return 196; // "combine_fsub_fmul_to_fmad_or_fma"
1488 }
1489 break;
1490 case 'e': // 1 string to match.
1491 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1492 break;
1493 return 31; // "extract_vector_element_not_const"
1494 }
1495 break;
1496 case 33: // 1 string to match.
1497 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1498 break;
1499 return 152; // "constant_fold_intrinsic_roundeven"
1500 case 34: // 2 strings to match.
1501 switch (RuleIdentifier[0]) {
1502 default: break;
1503 case 'c': // 1 string to match.
1504 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1505 break;
1506 return 249; // "combine_fmul_with_select_to_fldexp"
1507 case 'e': // 1 string to match.
1508 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1509 break;
1510 return 73; // "extract_all_elts_from_build_vector"
1511 }
1512 break;
1513 case 35: // 1 string to match.
1514 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1515 break;
1516 return 33; // "extract_vector_element_build_vector"
1517 case 36: // 4 strings to match.
1518 switch (RuleIdentifier[0]) {
1519 default: break;
1520 case 'c': // 2 strings to match.
1521 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1522 break;
1523 switch (RuleIdentifier[8]) {
1524 default: break;
1525 case 'f': // 1 string to match.
1526 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1527 break;
1528 return 194; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1529 case 'i': // 1 string to match.
1530 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1531 break;
1532 return 71; // "combine_insert_vec_elts_build_vector"
1533 }
1534 break;
1535 case 'i': // 1 string to match.
1536 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1537 break;
1538 return 88; // "insert_extract_vec_elt_out_of_bounds"
1539 case 'm': // 1 string to match.
1540 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1541 break;
1542 return 26; // "match_extract_of_element_undef_index"
1543 }
1544 break;
1545 case 37: // 4 strings to match.
1546 switch (RuleIdentifier[0]) {
1547 default: break;
1548 case 'c': // 1 string to match.
1549 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1550 break;
1551 return 197; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1552 case 'e': // 1 string to match.
1553 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1554 break;
1555 return 41; // "extract_vector_element_shuffle_vector"
1556 case 'h': // 1 string to match.
1557 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1558 break;
1559 return 112; // "hoist_logic_op_with_same_opcode_hands"
1560 case 'm': // 1 string to match.
1561 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1562 break;
1563 return 25; // "match_extract_of_element_undef_vector"
1564 }
1565 break;
1566 case 38: // 2 strings to match.
1567 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1568 break;
1569 switch (RuleIdentifier[9]) {
1570 default: break;
1571 case 'a': // 1 string to match.
1572 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1573 break;
1574 return 193; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1575 case 's': // 1 string to match.
1576 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1577 break;
1578 return 198; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1579 }
1580 break;
1581 case 40: // 1 string to match.
1582 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1583 break;
1584 return 32; // "extract_vector_element_different_indices"
1585 case 42: // 9 strings to match.
1586 switch (RuleIdentifier[0]) {
1587 default: break;
1588 case 'c': // 1 string to match.
1589 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1590 break;
1591 return 195; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1592 case 'e': // 7 strings to match.
1593 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1594 break;
1595 switch (RuleIdentifier[41]) {
1596 default: break;
1597 case '2': // 1 string to match.
1598 return 34; // "extract_vector_element_build_vector_trunc2"
1599 case '3': // 1 string to match.
1600 return 35; // "extract_vector_element_build_vector_trunc3"
1601 case '4': // 1 string to match.
1602 return 36; // "extract_vector_element_build_vector_trunc4"
1603 case '5': // 1 string to match.
1604 return 37; // "extract_vector_element_build_vector_trunc5"
1605 case '6': // 1 string to match.
1606 return 38; // "extract_vector_element_build_vector_trunc6"
1607 case '7': // 1 string to match.
1608 return 39; // "extract_vector_element_build_vector_trunc7"
1609 case '8': // 1 string to match.
1610 return 40; // "extract_vector_element_build_vector_trunc8"
1611 }
1612 break;
1613 case 'f': // 1 string to match.
1614 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1615 break;
1616 return 175; // "funnel_shift_or_shift_to_funnel_shift_left"
1617 }
1618 break;
1619 case 43: // 2 strings to match.
1620 switch (RuleIdentifier[0]) {
1621 default: break;
1622 case 'c': // 1 string to match.
1623 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1624 break;
1625 return 199; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1626 case 'f': // 1 string to match.
1627 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1628 break;
1629 return 176; // "funnel_shift_or_shift_to_funnel_shift_right"
1630 }
1631 break;
1632 case 44: // 1 string to match.
1633 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1634 break;
1635 return 42; // "insert_vector_element_extract_vector_element"
1636 case 46: // 1 string to match.
1637 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1638 break;
1639 return 48; // "push_freeze_to_prevent_poison_from_propagating"
1640 }
1641#endif // ifndef NDEBUG
1642
1643 return std::nullopt;
1644}
1645static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1646 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1647 if (!RangePair.second.empty()) {
1648 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1649 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1650 if (!First || !Last)
1651 return std::nullopt;
1652 if (First >= Last)
1653 report_fatal_error(reason: "Beginning of range should be before end of range");
1654 return {{*First, *Last + 1}};
1655 }
1656 if (RangePair.first == "*") {
1657 return {{0, 261}};
1658 }
1659 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1660 if (!I)
1661 return std::nullopt;
1662 return {{*I, *I + 1}};
1663}
1664
1665bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1666 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1667 if (!MaybeRange)
1668 return false;
1669 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1670 DisabledRules.reset(Idx: I);
1671 return true;
1672}
1673
1674bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1675 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1676 if (!MaybeRange)
1677 return false;
1678 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1679 DisabledRules.set(I);
1680 return true;
1681}
1682
1683static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1684static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1685 "amdgpupostlegalizercombiner-disable-rule",
1686 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1687 cl::CommaSeparated,
1688 cl::Hidden,
1689 cl::cat(GICombinerOptionCategory),
1690 cl::callback(CB: [](const std::string &Str) {
1691 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1692 }));
1693static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1694 "amdgpupostlegalizercombiner-only-enable-rule",
1695 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1696 cl::Hidden,
1697 cl::cat(GICombinerOptionCategory),
1698 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1699 StringRef Str = CommaSeparatedArg;
1700 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1701 do {
1702 auto X = Str.split(Separator: ",");
1703 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1704 Str = X.second;
1705 } while (!Str.empty());
1706 }));
1707
1708
1709bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1710 return !DisabledRules.test(Idx: RuleID);
1711}
1712bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1713 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1714 bool Enabled = Identifier.consume_front(Prefix: "!");
1715 if (Enabled && !setRuleEnabled(Identifier))
1716 return false;
1717 if (!Enabled && !setRuleDisabled(Identifier))
1718 return false;
1719 }
1720 return true;
1721}
1722
1723
1724#endif // GET_GICOMBINER_TYPES
1725
1726#ifdef GET_GICOMBINER_TYPES
1727
1728const unsigned MAX_SUBTARGET_PREDICATES = 3;
1729using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1730
1731#endif // GET_GICOMBINER_TYPES
1732
1733#ifdef GET_GICOMBINER_CLASS_MEMBERS
1734
1735PredicateBitset AvailableModuleFeatures;
1736mutable PredicateBitset AvailableFunctionFeatures;
1737PredicateBitset getAvailableFeatures() const {
1738 return AvailableModuleFeatures | AvailableFunctionFeatures;
1739}
1740PredicateBitset
1741computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1742PredicateBitset
1743computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1744 const MachineFunction *MF) const;
1745void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1746
1747#endif // GET_GICOMBINER_CLASS_MEMBERS
1748
1749#ifdef GET_GICOMBINER_CLASS_MEMBERS
1750
1751 mutable MatcherState State;
1752 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1753 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1754 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1755 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1756 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1757 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1758 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1759 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1760 const uint8_t *getMatchTable() const override;
1761 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1762 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1763 bool testSimplePredicate(unsigned PredicateID) const override;
1764 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1765
1766#endif // GET_GICOMBINER_CLASS_MEMBERS
1767
1768#ifdef GET_GICOMBINER_IMPL
1769
1770// LLT Objects.
1771enum {
1772 GILLT_s16,
1773 GILLT_s32,
1774 GILLT_s64,
1775};
1776const static size_t NumTypeObjects = 3;
1777const static LLT TypeObjects[] = {
1778 LLT::scalar(16),
1779 LLT::scalar(32),
1780 LLT::scalar(64),
1781};
1782
1783// Bits for subtarget features that participate in instruction matching.
1784enum SubtargetFeatureBits : uint8_t {
1785 Feature_Has16BitInstsBit = 1,
1786 Feature_NotHasMed3_16Bit = 2,
1787 Feature_HasFminFmaxLegacyBit = 0,
1788};
1789
1790PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1791computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1792 PredicateBitset Features{};
1793 if (Subtarget->has16BitInsts())
1794 Features.set(Feature_Has16BitInstsBit);
1795 if (!Subtarget->hasMed3_16())
1796 Features.set(Feature_NotHasMed3_16Bit);
1797 if (Subtarget->hasFminFmaxLegacy())
1798 Features.set(Feature_HasFminFmaxLegacyBit);
1799 return Features;
1800}
1801
1802void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1803 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1804}
1805PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1806computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1807 PredicateBitset Features{};
1808 return Features;
1809}
1810
1811// Feature bitsets.
1812enum {
1813 GIFBS_Invalid,
1814 GIFBS_HasFminFmaxLegacy,
1815 GIFBS_Has16BitInsts_NotHasMed3_16,
1816};
1817constexpr static PredicateBitset FeatureBitsets[] {
1818 {}, // GIFBS_Invalid
1819 {Feature_HasFminFmaxLegacyBit, },
1820 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1821};
1822
1823// ComplexPattern predicates.
1824enum {
1825 GICP_Invalid,
1826};
1827// See constructor for table contents
1828
1829AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1830AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1831 nullptr, // GICP_Invalid
1832};
1833
1834enum {
1835 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1836 GICXXPred_MI_Predicate_GICombiner1,
1837 GICXXPred_MI_Predicate_GICombiner2,
1838 GICXXPred_MI_Predicate_GICombiner3,
1839 GICXXPred_MI_Predicate_GICombiner4,
1840 GICXXPred_MI_Predicate_GICombiner5,
1841 GICXXPred_MI_Predicate_GICombiner6,
1842 GICXXPred_MI_Predicate_GICombiner7,
1843 GICXXPred_MI_Predicate_GICombiner8,
1844 GICXXPred_MI_Predicate_GICombiner9,
1845 GICXXPred_MI_Predicate_GICombiner10,
1846 GICXXPred_MI_Predicate_GICombiner11,
1847 GICXXPred_MI_Predicate_GICombiner12,
1848 GICXXPred_MI_Predicate_GICombiner13,
1849 GICXXPred_MI_Predicate_GICombiner14,
1850 GICXXPred_MI_Predicate_GICombiner15,
1851 GICXXPred_MI_Predicate_GICombiner16,
1852 GICXXPred_MI_Predicate_GICombiner17,
1853};
1854bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1855 switch (PredicateID) {
1856 case GICXXPred_MI_Predicate_GICombiner0: {
1857 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
1858 }
1859 case GICXXPred_MI_Predicate_GICombiner1: {
1860 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
1861 }
1862 case GICXXPred_MI_Predicate_GICombiner2: {
1863 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1864 }
1865 case GICXXPred_MI_Predicate_GICombiner3: {
1866 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1867 }
1868 case GICXXPred_MI_Predicate_GICombiner4: {
1869 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1870 }
1871 case GICXXPred_MI_Predicate_GICombiner5: {
1872 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1873 }
1874 case GICXXPred_MI_Predicate_GICombiner6: {
1875 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
1876 }
1877 case GICXXPred_MI_Predicate_GICombiner7: {
1878 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1879 }
1880 case GICXXPred_MI_Predicate_GICombiner8: {
1881 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1882 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1883 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1884 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1885 }
1886 case GICXXPred_MI_Predicate_GICombiner9: {
1887 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1888 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1889 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1890 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1891 }
1892 case GICXXPred_MI_Predicate_GICombiner10: {
1893 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1894 Helper.isLegalOrBeforeLegalizer(
1895 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1896 }
1897 case GICXXPred_MI_Predicate_GICombiner11: {
1898 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1899 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1900 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1901 }
1902 case GICXXPred_MI_Predicate_GICombiner12: {
1903 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1904 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1905 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1906 }
1907 case GICXXPred_MI_Predicate_GICombiner13: {
1908 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
1909 }
1910 case GICXXPred_MI_Predicate_GICombiner14: {
1911 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
1912 }
1913 case GICXXPred_MI_Predicate_GICombiner15: {
1914 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1915 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1916 }
1917 case GICXXPred_MI_Predicate_GICombiner16: {
1918 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
1919 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1920 }
1921 case GICXXPred_MI_Predicate_GICombiner17: {
1922 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
1923 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
1924 }
1925 }
1926 llvm_unreachable("Unknown predicate");
1927 return false;
1928}
1929bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1930 llvm_unreachable("Unknown predicate");
1931 return false;
1932}
1933bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1934 llvm_unreachable("Unknown predicate");
1935 return false;
1936}
1937bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1938 llvm_unreachable("Unknown predicate");
1939 return false;
1940}
1941bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1942 llvm_unreachable("Unknown predicate");
1943 return false;
1944}
1945enum {
1946 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1947 GICXXPred_Simple_IsRule1Enabled,
1948 GICXXPred_Simple_IsRule2Enabled,
1949 GICXXPred_Simple_IsRule3Enabled,
1950 GICXXPred_Simple_IsRule4Enabled,
1951 GICXXPred_Simple_IsRule5Enabled,
1952 GICXXPred_Simple_IsRule6Enabled,
1953 GICXXPred_Simple_IsRule7Enabled,
1954 GICXXPred_Simple_IsRule8Enabled,
1955 GICXXPred_Simple_IsRule9Enabled,
1956 GICXXPred_Simple_IsRule10Enabled,
1957 GICXXPred_Simple_IsRule11Enabled,
1958 GICXXPred_Simple_IsRule12Enabled,
1959 GICXXPred_Simple_IsRule13Enabled,
1960 GICXXPred_Simple_IsRule14Enabled,
1961 GICXXPred_Simple_IsRule15Enabled,
1962 GICXXPred_Simple_IsRule16Enabled,
1963 GICXXPred_Simple_IsRule17Enabled,
1964 GICXXPred_Simple_IsRule18Enabled,
1965 GICXXPred_Simple_IsRule19Enabled,
1966 GICXXPred_Simple_IsRule20Enabled,
1967 GICXXPred_Simple_IsRule21Enabled,
1968 GICXXPred_Simple_IsRule22Enabled,
1969 GICXXPred_Simple_IsRule23Enabled,
1970 GICXXPred_Simple_IsRule24Enabled,
1971 GICXXPred_Simple_IsRule25Enabled,
1972 GICXXPred_Simple_IsRule26Enabled,
1973 GICXXPred_Simple_IsRule27Enabled,
1974 GICXXPred_Simple_IsRule28Enabled,
1975 GICXXPred_Simple_IsRule29Enabled,
1976 GICXXPred_Simple_IsRule30Enabled,
1977 GICXXPred_Simple_IsRule31Enabled,
1978 GICXXPred_Simple_IsRule32Enabled,
1979 GICXXPred_Simple_IsRule33Enabled,
1980 GICXXPred_Simple_IsRule34Enabled,
1981 GICXXPred_Simple_IsRule35Enabled,
1982 GICXXPred_Simple_IsRule36Enabled,
1983 GICXXPred_Simple_IsRule37Enabled,
1984 GICXXPred_Simple_IsRule38Enabled,
1985 GICXXPred_Simple_IsRule39Enabled,
1986 GICXXPred_Simple_IsRule40Enabled,
1987 GICXXPred_Simple_IsRule41Enabled,
1988 GICXXPred_Simple_IsRule42Enabled,
1989 GICXXPred_Simple_IsRule43Enabled,
1990 GICXXPred_Simple_IsRule44Enabled,
1991 GICXXPred_Simple_IsRule45Enabled,
1992 GICXXPred_Simple_IsRule46Enabled,
1993 GICXXPred_Simple_IsRule47Enabled,
1994 GICXXPred_Simple_IsRule48Enabled,
1995 GICXXPred_Simple_IsRule49Enabled,
1996 GICXXPred_Simple_IsRule50Enabled,
1997 GICXXPred_Simple_IsRule51Enabled,
1998 GICXXPred_Simple_IsRule52Enabled,
1999 GICXXPred_Simple_IsRule53Enabled,
2000 GICXXPred_Simple_IsRule54Enabled,
2001 GICXXPred_Simple_IsRule55Enabled,
2002 GICXXPred_Simple_IsRule56Enabled,
2003 GICXXPred_Simple_IsRule57Enabled,
2004 GICXXPred_Simple_IsRule58Enabled,
2005 GICXXPred_Simple_IsRule59Enabled,
2006 GICXXPred_Simple_IsRule60Enabled,
2007 GICXXPred_Simple_IsRule61Enabled,
2008 GICXXPred_Simple_IsRule62Enabled,
2009 GICXXPred_Simple_IsRule63Enabled,
2010 GICXXPred_Simple_IsRule64Enabled,
2011 GICXXPred_Simple_IsRule65Enabled,
2012 GICXXPred_Simple_IsRule66Enabled,
2013 GICXXPred_Simple_IsRule67Enabled,
2014 GICXXPred_Simple_IsRule68Enabled,
2015 GICXXPred_Simple_IsRule69Enabled,
2016 GICXXPred_Simple_IsRule70Enabled,
2017 GICXXPred_Simple_IsRule71Enabled,
2018 GICXXPred_Simple_IsRule72Enabled,
2019 GICXXPred_Simple_IsRule73Enabled,
2020 GICXXPred_Simple_IsRule74Enabled,
2021 GICXXPred_Simple_IsRule75Enabled,
2022 GICXXPred_Simple_IsRule76Enabled,
2023 GICXXPred_Simple_IsRule77Enabled,
2024 GICXXPred_Simple_IsRule78Enabled,
2025 GICXXPred_Simple_IsRule79Enabled,
2026 GICXXPred_Simple_IsRule80Enabled,
2027 GICXXPred_Simple_IsRule81Enabled,
2028 GICXXPred_Simple_IsRule82Enabled,
2029 GICXXPred_Simple_IsRule83Enabled,
2030 GICXXPred_Simple_IsRule84Enabled,
2031 GICXXPred_Simple_IsRule85Enabled,
2032 GICXXPred_Simple_IsRule86Enabled,
2033 GICXXPred_Simple_IsRule87Enabled,
2034 GICXXPred_Simple_IsRule88Enabled,
2035 GICXXPred_Simple_IsRule89Enabled,
2036 GICXXPred_Simple_IsRule90Enabled,
2037 GICXXPred_Simple_IsRule91Enabled,
2038 GICXXPred_Simple_IsRule92Enabled,
2039 GICXXPred_Simple_IsRule93Enabled,
2040 GICXXPred_Simple_IsRule94Enabled,
2041 GICXXPred_Simple_IsRule95Enabled,
2042 GICXXPred_Simple_IsRule96Enabled,
2043 GICXXPred_Simple_IsRule97Enabled,
2044 GICXXPred_Simple_IsRule98Enabled,
2045 GICXXPred_Simple_IsRule99Enabled,
2046 GICXXPred_Simple_IsRule100Enabled,
2047 GICXXPred_Simple_IsRule101Enabled,
2048 GICXXPred_Simple_IsRule102Enabled,
2049 GICXXPred_Simple_IsRule103Enabled,
2050 GICXXPred_Simple_IsRule104Enabled,
2051 GICXXPred_Simple_IsRule105Enabled,
2052 GICXXPred_Simple_IsRule106Enabled,
2053 GICXXPred_Simple_IsRule107Enabled,
2054 GICXXPred_Simple_IsRule108Enabled,
2055 GICXXPred_Simple_IsRule109Enabled,
2056 GICXXPred_Simple_IsRule110Enabled,
2057 GICXXPred_Simple_IsRule111Enabled,
2058 GICXXPred_Simple_IsRule112Enabled,
2059 GICXXPred_Simple_IsRule113Enabled,
2060 GICXXPred_Simple_IsRule114Enabled,
2061 GICXXPred_Simple_IsRule115Enabled,
2062 GICXXPred_Simple_IsRule116Enabled,
2063 GICXXPred_Simple_IsRule117Enabled,
2064 GICXXPred_Simple_IsRule118Enabled,
2065 GICXXPred_Simple_IsRule119Enabled,
2066 GICXXPred_Simple_IsRule120Enabled,
2067 GICXXPred_Simple_IsRule121Enabled,
2068 GICXXPred_Simple_IsRule122Enabled,
2069 GICXXPred_Simple_IsRule123Enabled,
2070 GICXXPred_Simple_IsRule124Enabled,
2071 GICXXPred_Simple_IsRule125Enabled,
2072 GICXXPred_Simple_IsRule126Enabled,
2073 GICXXPred_Simple_IsRule127Enabled,
2074 GICXXPred_Simple_IsRule128Enabled,
2075 GICXXPred_Simple_IsRule129Enabled,
2076 GICXXPred_Simple_IsRule130Enabled,
2077 GICXXPred_Simple_IsRule131Enabled,
2078 GICXXPred_Simple_IsRule132Enabled,
2079 GICXXPred_Simple_IsRule133Enabled,
2080 GICXXPred_Simple_IsRule134Enabled,
2081 GICXXPred_Simple_IsRule135Enabled,
2082 GICXXPred_Simple_IsRule136Enabled,
2083 GICXXPred_Simple_IsRule137Enabled,
2084 GICXXPred_Simple_IsRule138Enabled,
2085 GICXXPred_Simple_IsRule139Enabled,
2086 GICXXPred_Simple_IsRule140Enabled,
2087 GICXXPred_Simple_IsRule141Enabled,
2088 GICXXPred_Simple_IsRule142Enabled,
2089 GICXXPred_Simple_IsRule143Enabled,
2090 GICXXPred_Simple_IsRule144Enabled,
2091 GICXXPred_Simple_IsRule145Enabled,
2092 GICXXPred_Simple_IsRule146Enabled,
2093 GICXXPred_Simple_IsRule147Enabled,
2094 GICXXPred_Simple_IsRule148Enabled,
2095 GICXXPred_Simple_IsRule149Enabled,
2096 GICXXPred_Simple_IsRule150Enabled,
2097 GICXXPred_Simple_IsRule151Enabled,
2098 GICXXPred_Simple_IsRule152Enabled,
2099 GICXXPred_Simple_IsRule153Enabled,
2100 GICXXPred_Simple_IsRule154Enabled,
2101 GICXXPred_Simple_IsRule155Enabled,
2102 GICXXPred_Simple_IsRule156Enabled,
2103 GICXXPred_Simple_IsRule157Enabled,
2104 GICXXPred_Simple_IsRule158Enabled,
2105 GICXXPred_Simple_IsRule159Enabled,
2106 GICXXPred_Simple_IsRule160Enabled,
2107 GICXXPred_Simple_IsRule161Enabled,
2108 GICXXPred_Simple_IsRule162Enabled,
2109 GICXXPred_Simple_IsRule163Enabled,
2110 GICXXPred_Simple_IsRule164Enabled,
2111 GICXXPred_Simple_IsRule165Enabled,
2112 GICXXPred_Simple_IsRule166Enabled,
2113 GICXXPred_Simple_IsRule167Enabled,
2114 GICXXPred_Simple_IsRule168Enabled,
2115 GICXXPred_Simple_IsRule169Enabled,
2116 GICXXPred_Simple_IsRule170Enabled,
2117 GICXXPred_Simple_IsRule171Enabled,
2118 GICXXPred_Simple_IsRule172Enabled,
2119 GICXXPred_Simple_IsRule173Enabled,
2120 GICXXPred_Simple_IsRule174Enabled,
2121 GICXXPred_Simple_IsRule175Enabled,
2122 GICXXPred_Simple_IsRule176Enabled,
2123 GICXXPred_Simple_IsRule177Enabled,
2124 GICXXPred_Simple_IsRule178Enabled,
2125 GICXXPred_Simple_IsRule179Enabled,
2126 GICXXPred_Simple_IsRule180Enabled,
2127 GICXXPred_Simple_IsRule181Enabled,
2128 GICXXPred_Simple_IsRule182Enabled,
2129 GICXXPred_Simple_IsRule183Enabled,
2130 GICXXPred_Simple_IsRule184Enabled,
2131 GICXXPred_Simple_IsRule185Enabled,
2132 GICXXPred_Simple_IsRule186Enabled,
2133 GICXXPred_Simple_IsRule187Enabled,
2134 GICXXPred_Simple_IsRule188Enabled,
2135 GICXXPred_Simple_IsRule189Enabled,
2136 GICXXPred_Simple_IsRule190Enabled,
2137 GICXXPred_Simple_IsRule191Enabled,
2138 GICXXPred_Simple_IsRule192Enabled,
2139 GICXXPred_Simple_IsRule193Enabled,
2140 GICXXPred_Simple_IsRule194Enabled,
2141 GICXXPred_Simple_IsRule195Enabled,
2142 GICXXPred_Simple_IsRule196Enabled,
2143 GICXXPred_Simple_IsRule197Enabled,
2144 GICXXPred_Simple_IsRule198Enabled,
2145 GICXXPred_Simple_IsRule199Enabled,
2146 GICXXPred_Simple_IsRule200Enabled,
2147 GICXXPred_Simple_IsRule201Enabled,
2148 GICXXPred_Simple_IsRule202Enabled,
2149 GICXXPred_Simple_IsRule203Enabled,
2150 GICXXPred_Simple_IsRule204Enabled,
2151 GICXXPred_Simple_IsRule205Enabled,
2152 GICXXPred_Simple_IsRule206Enabled,
2153 GICXXPred_Simple_IsRule207Enabled,
2154 GICXXPred_Simple_IsRule208Enabled,
2155 GICXXPred_Simple_IsRule209Enabled,
2156 GICXXPred_Simple_IsRule210Enabled,
2157 GICXXPred_Simple_IsRule211Enabled,
2158 GICXXPred_Simple_IsRule212Enabled,
2159 GICXXPred_Simple_IsRule213Enabled,
2160 GICXXPred_Simple_IsRule214Enabled,
2161 GICXXPred_Simple_IsRule215Enabled,
2162 GICXXPred_Simple_IsRule216Enabled,
2163 GICXXPred_Simple_IsRule217Enabled,
2164 GICXXPred_Simple_IsRule218Enabled,
2165 GICXXPred_Simple_IsRule219Enabled,
2166 GICXXPred_Simple_IsRule220Enabled,
2167 GICXXPred_Simple_IsRule221Enabled,
2168 GICXXPred_Simple_IsRule222Enabled,
2169 GICXXPred_Simple_IsRule223Enabled,
2170 GICXXPred_Simple_IsRule224Enabled,
2171 GICXXPred_Simple_IsRule225Enabled,
2172 GICXXPred_Simple_IsRule226Enabled,
2173 GICXXPred_Simple_IsRule227Enabled,
2174 GICXXPred_Simple_IsRule228Enabled,
2175 GICXXPred_Simple_IsRule229Enabled,
2176 GICXXPred_Simple_IsRule230Enabled,
2177 GICXXPred_Simple_IsRule231Enabled,
2178 GICXXPred_Simple_IsRule232Enabled,
2179 GICXXPred_Simple_IsRule233Enabled,
2180 GICXXPred_Simple_IsRule234Enabled,
2181 GICXXPred_Simple_IsRule235Enabled,
2182 GICXXPred_Simple_IsRule236Enabled,
2183 GICXXPred_Simple_IsRule237Enabled,
2184 GICXXPred_Simple_IsRule238Enabled,
2185 GICXXPred_Simple_IsRule239Enabled,
2186 GICXXPred_Simple_IsRule240Enabled,
2187 GICXXPred_Simple_IsRule241Enabled,
2188 GICXXPred_Simple_IsRule242Enabled,
2189 GICXXPred_Simple_IsRule243Enabled,
2190 GICXXPred_Simple_IsRule244Enabled,
2191 GICXXPred_Simple_IsRule245Enabled,
2192 GICXXPred_Simple_IsRule246Enabled,
2193 GICXXPred_Simple_IsRule247Enabled,
2194 GICXXPred_Simple_IsRule248Enabled,
2195 GICXXPred_Simple_IsRule249Enabled,
2196 GICXXPred_Simple_IsRule250Enabled,
2197 GICXXPred_Simple_IsRule251Enabled,
2198 GICXXPred_Simple_IsRule252Enabled,
2199 GICXXPred_Simple_IsRule253Enabled,
2200 GICXXPred_Simple_IsRule254Enabled,
2201 GICXXPred_Simple_IsRule255Enabled,
2202 GICXXPred_Simple_IsRule256Enabled,
2203 GICXXPred_Simple_IsRule257Enabled,
2204 GICXXPred_Simple_IsRule258Enabled,
2205 GICXXPred_Simple_IsRule259Enabled,
2206 GICXXPred_Simple_IsRule260Enabled,
2207};
2208
2209bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2210 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2211}
2212// Custom renderers.
2213enum {
2214 GICR_Invalid,
2215};
2216AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2217AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2218 nullptr, // GICR_Invalid
2219};
2220
2221bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2222 const TargetSubtargetInfo &ST = MF.getSubtarget();
2223 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2224 B.setInstrAndDebugLoc(I);
2225 State.MIs.clear();
2226 State.MIs.push_back(&I);
2227 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2228 return true;
2229 }
2230
2231 return false;
2232}
2233
2234enum {
2235 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2236 GICXXCustomAction_GICombiner1,
2237 GICXXCustomAction_GICombiner2,
2238 GICXXCustomAction_GICombiner3,
2239 GICXXCustomAction_GICombiner4,
2240 GICXXCustomAction_GICombiner5,
2241 GICXXCustomAction_GICombiner6,
2242 GICXXCustomAction_GICombiner7,
2243 GICXXCustomAction_GICombiner8,
2244 GICXXCustomAction_GICombiner9,
2245 GICXXCustomAction_GICombiner10,
2246 GICXXCustomAction_GICombiner11,
2247 GICXXCustomAction_GICombiner12,
2248 GICXXCustomAction_GICombiner13,
2249 GICXXCustomAction_GICombiner14,
2250 GICXXCustomAction_GICombiner15,
2251 GICXXCustomAction_GICombiner16,
2252 GICXXCustomAction_GICombiner17,
2253 GICXXCustomAction_GICombiner18,
2254 GICXXCustomAction_GICombiner19,
2255 GICXXCustomAction_GICombiner20,
2256 GICXXCustomAction_GICombiner21,
2257 GICXXCustomAction_GICombiner22,
2258 GICXXCustomAction_GICombiner23,
2259 GICXXCustomAction_GICombiner24,
2260 GICXXCustomAction_GICombiner25,
2261 GICXXCustomAction_GICombiner26,
2262 GICXXCustomAction_GICombiner27,
2263 GICXXCustomAction_GICombiner28,
2264 GICXXCustomAction_GICombiner29,
2265 GICXXCustomAction_GICombiner30,
2266 GICXXCustomAction_GICombiner31,
2267 GICXXCustomAction_GICombiner32,
2268 GICXXCustomAction_GICombiner33,
2269 GICXXCustomAction_GICombiner34,
2270 GICXXCustomAction_GICombiner35,
2271 GICXXCustomAction_GICombiner36,
2272 GICXXCustomAction_GICombiner37,
2273 GICXXCustomAction_GICombiner38,
2274 GICXXCustomAction_GICombiner39,
2275 GICXXCustomAction_GICombiner40,
2276 GICXXCustomAction_GICombiner41,
2277 GICXXCustomAction_GICombiner42,
2278 GICXXCustomAction_GICombiner43,
2279 GICXXCustomAction_GICombiner44,
2280 GICXXCustomAction_GICombiner45,
2281 GICXXCustomAction_GICombiner46,
2282 GICXXCustomAction_GICombiner47,
2283 GICXXCustomAction_GICombiner48,
2284 GICXXCustomAction_GICombiner49,
2285 GICXXCustomAction_GICombiner50,
2286 GICXXCustomAction_GICombiner51,
2287 GICXXCustomAction_GICombiner52,
2288 GICXXCustomAction_GICombiner53,
2289 GICXXCustomAction_GICombiner54,
2290 GICXXCustomAction_GICombiner55,
2291 GICXXCustomAction_GICombiner56,
2292 GICXXCustomAction_GICombiner57,
2293 GICXXCustomAction_GICombiner58,
2294 GICXXCustomAction_GICombiner59,
2295 GICXXCustomAction_GICombiner60,
2296 GICXXCustomAction_GICombiner61,
2297 GICXXCustomAction_GICombiner62,
2298 GICXXCustomAction_GICombiner63,
2299 GICXXCustomAction_GICombiner64,
2300 GICXXCustomAction_GICombiner65,
2301 GICXXCustomAction_GICombiner66,
2302 GICXXCustomAction_GICombiner67,
2303 GICXXCustomAction_GICombiner68,
2304 GICXXCustomAction_GICombiner69,
2305 GICXXCustomAction_GICombiner70,
2306 GICXXCustomAction_GICombiner71,
2307 GICXXCustomAction_GICombiner72,
2308 GICXXCustomAction_GICombiner73,
2309 GICXXCustomAction_GICombiner74,
2310 GICXXCustomAction_GICombiner75,
2311 GICXXCustomAction_GICombiner76,
2312 GICXXCustomAction_GICombiner77,
2313 GICXXCustomAction_GICombiner78,
2314 GICXXCustomAction_GICombiner79,
2315 GICXXCustomAction_GICombiner80,
2316 GICXXCustomAction_GICombiner81,
2317 GICXXCustomAction_GICombiner82,
2318 GICXXCustomAction_GICombiner83,
2319 GICXXCustomAction_GICombiner84,
2320 GICXXCustomAction_GICombiner85,
2321 GICXXCustomAction_GICombiner86,
2322 GICXXCustomAction_GICombiner87,
2323 GICXXCustomAction_GICombiner88,
2324 GICXXCustomAction_GICombiner89,
2325 GICXXCustomAction_GICombiner90,
2326 GICXXCustomAction_GICombiner91,
2327 GICXXCustomAction_GICombiner92,
2328 GICXXCustomAction_GICombiner93,
2329 GICXXCustomAction_GICombiner94,
2330 GICXXCustomAction_GICombiner95,
2331 GICXXCustomAction_GICombiner96,
2332 GICXXCustomAction_GICombiner97,
2333 GICXXCustomAction_GICombiner98,
2334 GICXXCustomAction_GICombiner99,
2335 GICXXCustomAction_GICombiner100,
2336 GICXXCustomAction_GICombiner101,
2337 GICXXCustomAction_GICombiner102,
2338 GICXXCustomAction_GICombiner103,
2339 GICXXCustomAction_GICombiner104,
2340 GICXXCustomAction_GICombiner105,
2341 GICXXCustomAction_GICombiner106,
2342 GICXXCustomAction_GICombiner107,
2343 GICXXCustomAction_GICombiner108,
2344 GICXXCustomAction_GICombiner109,
2345 GICXXCustomAction_GICombiner110,
2346 GICXXCustomAction_GICombiner111,
2347 GICXXCustomAction_GICombiner112,
2348 GICXXCustomAction_GICombiner113,
2349 GICXXCustomAction_GICombiner114,
2350 GICXXCustomAction_GICombiner115,
2351 GICXXCustomAction_GICombiner116,
2352 GICXXCustomAction_GICombiner117,
2353 GICXXCustomAction_GICombiner118,
2354 GICXXCustomAction_GICombiner119,
2355 GICXXCustomAction_GICombiner120,
2356 GICXXCustomAction_GICombiner121,
2357 GICXXCustomAction_GICombiner122,
2358 GICXXCustomAction_GICombiner123,
2359 GICXXCustomAction_GICombiner124,
2360 GICXXCustomAction_GICombiner125,
2361 GICXXCustomAction_GICombiner126,
2362 GICXXCustomAction_GICombiner127,
2363 GICXXCustomAction_GICombiner128,
2364 GICXXCustomAction_GICombiner129,
2365 GICXXCustomAction_GICombiner130,
2366 GICXXCustomAction_GICombiner131,
2367 GICXXCustomAction_GICombiner132,
2368 GICXXCustomAction_GICombiner133,
2369 GICXXCustomAction_GICombiner134,
2370 GICXXCustomAction_GICombiner135,
2371 GICXXCustomAction_GICombiner136,
2372 GICXXCustomAction_GICombiner137,
2373 GICXXCustomAction_GICombiner138,
2374 GICXXCustomAction_GICombiner139,
2375 GICXXCustomAction_GICombiner140,
2376 GICXXCustomAction_GICombiner141,
2377 GICXXCustomAction_GICombiner142,
2378 GICXXCustomAction_GICombiner143,
2379 GICXXCustomAction_GICombiner144,
2380 GICXXCustomAction_GICombiner145,
2381 GICXXCustomAction_GICombiner146,
2382 GICXXCustomAction_GICombiner147,
2383 GICXXCustomAction_GICombiner148,
2384 GICXXCustomAction_GICombiner149,
2385 GICXXCustomAction_GICombiner150,
2386 GICXXCustomAction_GICombiner151,
2387 GICXXCustomAction_GICombiner152,
2388 GICXXCustomAction_GICombiner153,
2389 GICXXCustomAction_GICombiner154,
2390 GICXXCustomAction_GICombiner155,
2391 GICXXCustomAction_GICombiner156,
2392 GICXXCustomAction_GICombiner157,
2393 GICXXCustomAction_GICombiner158,
2394 GICXXCustomAction_GICombiner159,
2395 GICXXCustomAction_GICombiner160,
2396 GICXXCustomAction_GICombiner161,
2397 GICXXCustomAction_GICombiner162,
2398 GICXXCustomAction_GICombiner163,
2399 GICXXCustomAction_GICombiner164,
2400 GICXXCustomAction_GICombiner165,
2401 GICXXCustomAction_GICombiner166,
2402 GICXXCustomAction_GICombiner167,
2403};
2404bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2405 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2406 switch(ApplyID) {
2407 case GICXXCustomAction_GICombiner0:{
2408 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2409 // Match Patterns
2410 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2411 return false;
2412 }
2413 // Apply Patterns
2414 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2415 return true;
2416 }
2417 case GICXXCustomAction_GICombiner1:{
2418 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2419 // Match Patterns
2420 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2421 return false;
2422 }
2423 // Apply Patterns
2424 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2425 return true;
2426 }
2427 case GICXXCustomAction_GICombiner2:{
2428 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2429 // Match Patterns
2430 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2431 return false;
2432 }
2433 // Apply Patterns
2434 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2435 return true;
2436 }
2437 case GICXXCustomAction_GICombiner3:{
2438 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2439 // Match Patterns
2440 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2441 return false;
2442 }
2443 // Apply Patterns
2444 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2445 return true;
2446 }
2447 case GICXXCustomAction_GICombiner4:{
2448 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2449 // Match Patterns
2450 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2451 return false;
2452 }
2453 // Apply Patterns
2454 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2455 return true;
2456 }
2457 case GICXXCustomAction_GICombiner5:{
2458 // Match Patterns
2459 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2460 return false;
2461 }
2462 // Apply Patterns
2463 Helper.applyCombineCopy(*State.MIs[0]);
2464 return true;
2465 }
2466 case GICXXCustomAction_GICombiner6:{
2467 unsigned GIMatchData_matchinfo;
2468 // Match Patterns
2469 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2470 return false;
2471 }
2472 // Apply Patterns
2473 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2474 return true;
2475 }
2476 case GICXXCustomAction_GICombiner7:{
2477 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2478 // Match Patterns
2479 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2480 return false;
2481 }
2482 // Apply Patterns
2483 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2484 return true;
2485 }
2486 case GICXXCustomAction_GICombiner8:{
2487 std::pair<Register, bool> GIMatchData_info;
2488 // Match Patterns
2489 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2490 return false;
2491 }
2492 // Apply Patterns
2493 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2494 return true;
2495 }
2496 case GICXXCustomAction_GICombiner9:{
2497 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2498 // Match Patterns
2499 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2500 return false;
2501 }
2502 // Apply Patterns
2503 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2504 return true;
2505 }
2506 case GICXXCustomAction_GICombiner10:{
2507 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2508 // Match Patterns
2509 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2510 return false;
2511 }
2512 // Apply Patterns
2513 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2514 return true;
2515 }
2516 case GICXXCustomAction_GICombiner11:{
2517 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2518 // Match Patterns
2519 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2520 return false;
2521 }
2522 // Apply Patterns
2523 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2524 return true;
2525 }
2526 case GICXXCustomAction_GICombiner12:{
2527 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2528 // Match Patterns
2529 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2530 GIMatchData_matchinfo);}()) {
2531 return false;
2532 }
2533 // Apply Patterns
2534 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2535 return true;
2536 }
2537 case GICXXCustomAction_GICombiner13:{
2538 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2539 // Match Patterns
2540 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2541 return false;
2542 }
2543 // Apply Patterns
2544 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2545 return true;
2546 }
2547 case GICXXCustomAction_GICombiner14:{
2548 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2549 // Match Patterns
2550 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2551 GIMatchData_matchinfo);}()) {
2552 return false;
2553 }
2554 // Apply Patterns
2555 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2556 return true;
2557 }
2558 case GICXXCustomAction_GICombiner15:{
2559 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2560 // Match Patterns
2561 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2562 return false;
2563 }
2564 // Apply Patterns
2565 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2566 return true;
2567 }
2568 case GICXXCustomAction_GICombiner16:{
2569 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2570 // Match Patterns
2571 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2572 return false;
2573 }
2574 // Apply Patterns
2575 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2576 return true;
2577 }
2578 case GICXXCustomAction_GICombiner17:{
2579 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2580 // Match Patterns
2581 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2582 return false;
2583 }
2584 // Apply Patterns
2585 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2586 return true;
2587 }
2588 case GICXXCustomAction_GICombiner18:{
2589 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2590 // Match Patterns
2591 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2592 return false;
2593 }
2594 // Apply Patterns
2595 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2596 return true;
2597 }
2598 case GICXXCustomAction_GICombiner19:{
2599 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2600 // Match Patterns
2601 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2602 return false;
2603 }
2604 // Apply Patterns
2605 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2606 return true;
2607 }
2608 case GICXXCustomAction_GICombiner20:{
2609 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2610 // Match Patterns
2611 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2612 return false;
2613 }
2614 // Apply Patterns
2615 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2616 return true;
2617 }
2618 case GICXXCustomAction_GICombiner21:{
2619 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2620 // Match Patterns
2621 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2622 return false;
2623 }
2624 // Apply Patterns
2625 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2626 return true;
2627 }
2628 case GICXXCustomAction_GICombiner22:{
2629 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2630 // Match Patterns
2631 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2632 return false;
2633 }
2634 // Apply Patterns
2635 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2636 return true;
2637 }
2638 case GICXXCustomAction_GICombiner23:{
2639 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2640 // Match Patterns
2641 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2642 return false;
2643 }
2644 // Apply Patterns
2645 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2646 return true;
2647 }
2648 case GICXXCustomAction_GICombiner24:{
2649 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2650 // Match Patterns
2651 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2652 return false;
2653 }
2654 // Apply Patterns
2655 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2656 return true;
2657 }
2658 case GICXXCustomAction_GICombiner25:{
2659 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2660 // Match Patterns
2661 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2662 return false;
2663 }
2664 // Apply Patterns
2665 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2666 return true;
2667 }
2668 case GICXXCustomAction_GICombiner26:{
2669 APInt GIMatchData_matchinfo;
2670 // Match Patterns
2671 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2672 return false;
2673 }
2674 // Apply Patterns
2675 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2676 return true;
2677 }
2678 case GICXXCustomAction_GICombiner27:{
2679 SmallVector<Register> GIMatchData_info;
2680 // Match Patterns
2681 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2682 return false;
2683 }
2684 // Apply Patterns
2685 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2686 return true;
2687 }
2688 case GICXXCustomAction_GICombiner28:{
2689 Register GIMatchData_matchinfo;
2690 // Match Patterns
2691 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2692 return false;
2693 }
2694 // Apply Patterns
2695 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2696 return true;
2697 }
2698 case GICXXCustomAction_GICombiner29:{
2699 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2700 // Match Patterns
2701 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2702 return false;
2703 }
2704 // Apply Patterns
2705 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2706 return true;
2707 }
2708 case GICXXCustomAction_GICombiner30:{
2709 PreferredTuple GIMatchData_matchinfo;
2710 // Match Patterns
2711 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2712 return false;
2713 }
2714 // Apply Patterns
2715 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2716 return true;
2717 }
2718 case GICXXCustomAction_GICombiner31:{
2719 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2720 // Match Patterns
2721 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2722 return false;
2723 }
2724 // Apply Patterns
2725 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2726 return true;
2727 }
2728 case GICXXCustomAction_GICombiner32:{
2729 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2730 // Match Patterns
2731 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2732 return false;
2733 }
2734 // Apply Patterns
2735 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2736 return true;
2737 }
2738 case GICXXCustomAction_GICombiner33:{
2739 // Match Patterns
2740 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2741 return false;
2742 }
2743 // Apply Patterns
2744 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2745 return true;
2746 }
2747 case GICXXCustomAction_GICombiner34:{
2748 // Match Patterns
2749 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2750 return false;
2751 }
2752 // Apply Patterns
2753 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2754 return true;
2755 }
2756 case GICXXCustomAction_GICombiner35:{
2757 // Match Patterns
2758 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2759 return false;
2760 }
2761 // Apply Patterns
2762 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2763 return true;
2764 }
2765 case GICXXCustomAction_GICombiner36:{
2766 // Match Patterns
2767 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2768 return false;
2769 }
2770 // Apply Patterns
2771 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2772 return true;
2773 }
2774 case GICXXCustomAction_GICombiner37:{
2775 // Match Patterns
2776 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2777 return false;
2778 }
2779 // Apply Patterns
2780 Helper.replaceInstWithUndef(*State.MIs[0]);
2781 return true;
2782 }
2783 case GICXXCustomAction_GICombiner38:{
2784 // Apply Patterns
2785 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2786 return true;
2787 }
2788 case GICXXCustomAction_GICombiner39:{
2789 // Match Patterns
2790 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2791 return false;
2792 }
2793 // Apply Patterns
2794 Helper.replaceInstWithUndef(*State.MIs[0]);
2795 return true;
2796 }
2797 case GICXXCustomAction_GICombiner40:{
2798 // Match Patterns
2799 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2800 return false;
2801 }
2802 // Apply Patterns
2803 Helper.replaceInstWithUndef(*State.MIs[0]);
2804 return true;
2805 }
2806 case GICXXCustomAction_GICombiner41:{
2807 // Match Patterns
2808 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2809 return false;
2810 }
2811 // Apply Patterns
2812 Helper.replaceInstWithUndef(*State.MIs[0]);
2813 return true;
2814 }
2815 case GICXXCustomAction_GICombiner42:{
2816 // Match Patterns
2817 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2818 return false;
2819 }
2820 // Apply Patterns
2821 Helper.eraseInst(*State.MIs[0]);
2822 return true;
2823 }
2824 case GICXXCustomAction_GICombiner43:{
2825 // Match Patterns
2826 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2827 return false;
2828 }
2829 // Apply Patterns
2830 Helper.replaceInstWithUndef(*State.MIs[0]);
2831 return true;
2832 }
2833 case GICXXCustomAction_GICombiner44:{
2834 // Match Patterns
2835 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2836 return false;
2837 }
2838 // Apply Patterns
2839 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2840 return true;
2841 }
2842 case GICXXCustomAction_GICombiner45:{
2843 Register GIMatchData_info;
2844 // Match Patterns
2845 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2846 return false;
2847 }
2848 // Apply Patterns
2849 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2850 return true;
2851 }
2852 case GICXXCustomAction_GICombiner46:{
2853 Register GIMatchData_info;
2854 // Match Patterns
2855 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2856 return false;
2857 }
2858 // Apply Patterns
2859 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2860 return true;
2861 }
2862 case GICXXCustomAction_GICombiner47:{
2863 Register GIMatchData_matchinfo;
2864 // Match Patterns
2865 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2866 return false;
2867 }
2868 // Apply Patterns
2869 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2870 return true;
2871 }
2872 case GICXXCustomAction_GICombiner48:{
2873 Register GIMatchData_matchinfo;
2874 // Match Patterns
2875 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2876 return false;
2877 }
2878 // Apply Patterns
2879 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2880 return true;
2881 }
2882 case GICXXCustomAction_GICombiner49:{
2883 Register GIMatchData_matchinfo;
2884 // Match Patterns
2885 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2886 return false;
2887 }
2888 // Apply Patterns
2889 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2890 return true;
2891 }
2892 case GICXXCustomAction_GICombiner50:{
2893 Register GIMatchData_matchinfo;
2894 // Match Patterns
2895 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2896 return false;
2897 }
2898 // Apply Patterns
2899 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2900 return true;
2901 }
2902 case GICXXCustomAction_GICombiner51:{
2903 // Match Patterns
2904 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2905 return false;
2906 }
2907 // Apply Patterns
2908 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2909 return true;
2910 }
2911 case GICXXCustomAction_GICombiner52:{
2912 MachineInstr* GIMatchData_matchinfo;
2913 // Match Patterns
2914 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2915 return false;
2916 }
2917 // Apply Patterns
2918 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2919 return true;
2920 }
2921 case GICXXCustomAction_GICombiner53:{
2922 std::tuple<Register, Register> GIMatchData_info;
2923 // Match Patterns
2924 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2925 return false;
2926 }
2927 // Apply Patterns
2928 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2929 return true;
2930 }
2931 case GICXXCustomAction_GICombiner54:{
2932 InstructionStepsMatchInfo GIMatchData_info;
2933 // Match Patterns
2934 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2935 return false;
2936 }
2937 // Apply Patterns
2938 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2939 return true;
2940 }
2941 case GICXXCustomAction_GICombiner55:{
2942 std::optional<int64_t> GIMatchData_matchinfo;
2943 // Match Patterns
2944 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2945 return false;
2946 }
2947 // Apply Patterns
2948 if (GIMatchData_matchinfo) {
2949 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2950 } else {
2951 Helper.replaceInstWithUndef(*State.MIs[0]);
2952 }
2953 return true;
2954 }
2955 case GICXXCustomAction_GICombiner56:{
2956 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2957 // Match Patterns
2958 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2959 return false;
2960 }
2961 // Apply Patterns
2962 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2963 return true;
2964 }
2965 case GICXXCustomAction_GICombiner57:{
2966 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2967 // Match Patterns
2968 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2969 return false;
2970 }
2971 // Apply Patterns
2972 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2973 return true;
2974 }
2975 case GICXXCustomAction_GICombiner58:{
2976 PtrAddChain GIMatchData_matchinfo;
2977 // Match Patterns
2978 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2979 return false;
2980 }
2981 // Apply Patterns
2982 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2983 return true;
2984 }
2985 case GICXXCustomAction_GICombiner59:{
2986 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2987 // Match Patterns
2988 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2989 return false;
2990 }
2991 // Apply Patterns
2992 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2993 return true;
2994 }
2995 case GICXXCustomAction_GICombiner60:{
2996 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2997 // Match Patterns
2998 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2999 return false;
3000 }
3001 // Apply Patterns
3002 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3003 return true;
3004 }
3005 case GICXXCustomAction_GICombiner61:{
3006 int64_t GIMatchData_matchinfo;
3007 // Match Patterns
3008 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3009 return false;
3010 }
3011 // Apply Patterns
3012 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3013 return true;
3014 }
3015 case GICXXCustomAction_GICombiner62:{
3016 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3017 // Match Patterns
3018 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3019 return false;
3020 }
3021 // Apply Patterns
3022 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3023 return true;
3024 }
3025 case GICXXCustomAction_GICombiner63:{
3026 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3027 // Match Patterns
3028 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3029 return false;
3030 }
3031 // Apply Patterns
3032 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3033 return true;
3034 }
3035 case GICXXCustomAction_GICombiner64:{
3036 std::tuple<Register, int64_t> GIMatchData_info;
3037 // Match Patterns
3038 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3039 return false;
3040 }
3041 // Apply Patterns
3042 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3043 return true;
3044 }
3045 case GICXXCustomAction_GICombiner65:{
3046 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3047 // Match Patterns
3048 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3049 return false;
3050 }
3051 // Apply Patterns
3052 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3053 return true;
3054 }
3055 case GICXXCustomAction_GICombiner66:{
3056 RegisterImmPair GIMatchData_matchinfo;
3057 // Match Patterns
3058 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3059 return false;
3060 }
3061 // Apply Patterns
3062 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3063 return true;
3064 }
3065 case GICXXCustomAction_GICombiner67:{
3066 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3067 // Match Patterns
3068 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3069 return false;
3070 }
3071 // Apply Patterns
3072 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3073 return true;
3074 }
3075 case GICXXCustomAction_GICombiner68:{
3076 unsigned GIMatchData_matchinfo;
3077 // Match Patterns
3078 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3079 return false;
3080 }
3081 // Apply Patterns
3082 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3083 return true;
3084 }
3085 case GICXXCustomAction_GICombiner69:{
3086 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3087 // Match Patterns
3088 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3089 return false;
3090 }
3091 // Apply Patterns
3092 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3093 return true;
3094 }
3095 case GICXXCustomAction_GICombiner70:{
3096 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3097 // Match Patterns
3098 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3099 return false;
3100 }
3101 // Apply Patterns
3102 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3103 return true;
3104 }
3105 case GICXXCustomAction_GICombiner71:{
3106 Register GIMatchData_matchinfo;
3107 // Match Patterns
3108 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3109 return false;
3110 }
3111 // Apply Patterns
3112 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3113 return true;
3114 }
3115 case GICXXCustomAction_GICombiner72:{
3116 // Match Patterns
3117 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3118 return false;
3119 }
3120 // Apply Patterns
3121 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3122 return true;
3123 }
3124 case GICXXCustomAction_GICombiner73:{
3125 Register GIMatchData_matchinfo;
3126 // Match Patterns
3127 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3128 return false;
3129 }
3130 // Apply Patterns
3131 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3132 return true;
3133 }
3134 case GICXXCustomAction_GICombiner74:{
3135 // Match Patterns
3136 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
3137 return false;
3138 }
3139 // Apply Patterns
3140 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3141 return true;
3142 }
3143 case GICXXCustomAction_GICombiner75:{
3144 Register GIMatchData_matchinfo;
3145 // Match Patterns
3146 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3147 return false;
3148 }
3149 // Apply Patterns
3150 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3151 return true;
3152 }
3153 case GICXXCustomAction_GICombiner76:{
3154 // Match Patterns
3155 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3156 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3157 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3158 return false;
3159 }
3160 // Apply Patterns
3161 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3162 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3163 State.MIs[0]->eraseFromParent();
3164 return true;
3165 }
3166 case GICXXCustomAction_GICombiner77:{
3167 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3168 // Match Patterns
3169 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3170 return false;
3171 }
3172 // Apply Patterns
3173 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3174 return true;
3175 }
3176 case GICXXCustomAction_GICombiner78:{
3177 SmallVector<Register> GIMatchData_info;
3178 // Match Patterns
3179 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3180 return false;
3181 }
3182 // Apply Patterns
3183 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3184 return true;
3185 }
3186 case GICXXCustomAction_GICombiner79:{
3187 MachineInstr * GIMatchData_matchinfo;
3188 // Match Patterns
3189 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3190 return false;
3191 }
3192 // Apply Patterns
3193 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3194 return true;
3195 }
3196 case GICXXCustomAction_GICombiner80:{
3197 // Apply Patterns
3198 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3199 return true;
3200 }
3201 case GICXXCustomAction_GICombiner81:{
3202 // Apply Patterns
3203 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3204 return true;
3205 }
3206 case GICXXCustomAction_GICombiner82:{
3207 APInt GIMatchData_info;
3208 // Match Patterns
3209 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3210 return false;
3211 }
3212 // Apply Patterns
3213 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3214 return true;
3215 }
3216 case GICXXCustomAction_GICombiner83:{
3217 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3218 // Match Patterns
3219 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3220 return false;
3221 }
3222 // Apply Patterns
3223 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3224 return true;
3225 }
3226 case GICXXCustomAction_GICombiner84:{
3227 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3228 // Match Patterns
3229 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3230 return false;
3231 }
3232 // Apply Patterns
3233 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3234 return true;
3235 }
3236 case GICXXCustomAction_GICombiner85:{
3237 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3238 // Match Patterns
3239 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3240 return false;
3241 }
3242 // Apply Patterns
3243 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3244 return true;
3245 }
3246 case GICXXCustomAction_GICombiner86:{
3247 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3248 // Match Patterns
3249 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3250 return false;
3251 }
3252 // Apply Patterns
3253 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3254 return true;
3255 }
3256 case GICXXCustomAction_GICombiner87:{
3257 unsigned GIMatchData_info;
3258 // Match Patterns
3259 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3260 return false;
3261 }
3262 // Apply Patterns
3263 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3264 return true;
3265 }
3266 case GICXXCustomAction_GICombiner88:{
3267 // Match Patterns
3268 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3269 return false;
3270 }
3271 // Apply Patterns
3272 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3273 return true;
3274 }
3275 case GICXXCustomAction_GICombiner89:{
3276 std::pair<Register, Register> GIMatchData_matchinfo;
3277 // Match Patterns
3278 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3279 return false;
3280 }
3281 // Apply Patterns
3282 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3283 return true;
3284 }
3285 case GICXXCustomAction_GICombiner90:{
3286 // Match Patterns
3287 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3288 return false;
3289 }
3290 // Apply Patterns
3291 Helper.applyPtrAddZero(*State.MIs[0]);
3292 return true;
3293 }
3294 case GICXXCustomAction_GICombiner91:{
3295 RegisterImmPair GIMatchData_matchinfo;
3296 // Match Patterns
3297 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3298 return false;
3299 }
3300 // Apply Patterns
3301 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3302 return true;
3303 }
3304 case GICXXCustomAction_GICombiner92:{
3305 ShiftOfShiftedLogic GIMatchData_matchinfo;
3306 // Match Patterns
3307 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3308 return false;
3309 }
3310 // Apply Patterns
3311 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3312 return true;
3313 }
3314 case GICXXCustomAction_GICombiner93:{
3315 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3316 // Match Patterns
3317 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3318 return false;
3319 }
3320 // Apply Patterns
3321 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3322 return true;
3323 }
3324 case GICXXCustomAction_GICombiner94:{
3325 MachineInstr * GIMatchData_matchinfo;
3326 // Match Patterns
3327 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3328 return false;
3329 }
3330 // Apply Patterns
3331 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3332 return true;
3333 }
3334 case GICXXCustomAction_GICombiner95:{
3335 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3336 // Match Patterns
3337 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3338 return false;
3339 }
3340 // Apply Patterns
3341 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3342 return true;
3343 }
3344 case GICXXCustomAction_GICombiner96:{
3345 // Match Patterns
3346 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3347 return false;
3348 }
3349 // Apply Patterns
3350 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3351 return true;
3352 }
3353 case GICXXCustomAction_GICombiner97:{
3354 // Match Patterns
3355 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3356 return false;
3357 }
3358 // Apply Patterns
3359 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3360 return true;
3361 }
3362 case GICXXCustomAction_GICombiner98:{
3363 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3364 // Match Patterns
3365 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3366 return false;
3367 }
3368 // Apply Patterns
3369 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3370 return true;
3371 }
3372 case GICXXCustomAction_GICombiner99:{
3373 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3374 // Match Patterns
3375 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3376 return false;
3377 }
3378 // Apply Patterns
3379 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3380 return true;
3381 }
3382 case GICXXCustomAction_GICombiner100:{
3383 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3384 // Match Patterns
3385 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3386 return false;
3387 }
3388 // Apply Patterns
3389 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3390 return true;
3391 }
3392 case GICXXCustomAction_GICombiner101:{
3393 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3394 // Match Patterns
3395 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3396 return false;
3397 }
3398 // Apply Patterns
3399 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3400 return true;
3401 }
3402 case GICXXCustomAction_GICombiner102:{
3403 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3404 // Match Patterns
3405 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3406 return false;
3407 }
3408 // Apply Patterns
3409 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3410 return true;
3411 }
3412 case GICXXCustomAction_GICombiner103:{
3413 APInt GIMatchData_matchinfo;
3414 // Match Patterns
3415 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3416 return false;
3417 }
3418 // Apply Patterns
3419 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3420 return true;
3421 }
3422 case GICXXCustomAction_GICombiner104:{
3423 ConstantFP* GIMatchData_matchinfo;
3424 // Match Patterns
3425 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3426 return false;
3427 }
3428 // Apply Patterns
3429 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3430 return true;
3431 }
3432 case GICXXCustomAction_GICombiner105:{
3433 ConstantFP* GIMatchData_matchinfo;
3434 // Match Patterns
3435 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3436 return false;
3437 }
3438 // Apply Patterns
3439 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3440 return true;
3441 }
3442 case GICXXCustomAction_GICombiner106:{
3443 APInt GIMatchData_matchinfo;
3444 // Match Patterns
3445 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3446 return false;
3447 }
3448 // Apply Patterns
3449 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3450 return true;
3451 }
3452 case GICXXCustomAction_GICombiner107:{
3453 // Match Patterns
3454 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3455 return false;
3456 }
3457 // Apply Patterns
3458 Helper.applyUMulHToLShr(*State.MIs[0]);
3459 return true;
3460 }
3461 case GICXXCustomAction_GICombiner108:{
3462 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3463 // Match Patterns
3464 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3465 return false;
3466 }
3467 // Apply Patterns
3468 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3469 return true;
3470 }
3471 case GICXXCustomAction_GICombiner109:{
3472 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3473 // Match Patterns
3474 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3475 return false;
3476 }
3477 // Apply Patterns
3478 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3479 return true;
3480 }
3481 case GICXXCustomAction_GICombiner110:{
3482 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3483 // Match Patterns
3484 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3485 GIMatchData_info);}()) {
3486 return false;
3487 }
3488 // Apply Patterns
3489 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3490 return true;
3491 }
3492 case GICXXCustomAction_GICombiner111:{
3493 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3494 // Match Patterns
3495 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3496 GIMatchData_info);}()) {
3497 return false;
3498 }
3499 // Apply Patterns
3500 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3501 return true;
3502 }
3503 case GICXXCustomAction_GICombiner112:{
3504 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3505 // Match Patterns
3506 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3507 GIMatchData_info);}()) {
3508 return false;
3509 }
3510 // Apply Patterns
3511 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3512 return true;
3513 }
3514 case GICXXCustomAction_GICombiner113:{
3515 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3516 // Match Patterns
3517 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3518 *State.MIs[0], GIMatchData_info);}()) {
3519 return false;
3520 }
3521 // Apply Patterns
3522 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3523 return true;
3524 }
3525 case GICXXCustomAction_GICombiner114:{
3526 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3527 // Match Patterns
3528 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3529 GIMatchData_info);}()) {
3530 return false;
3531 }
3532 // Apply Patterns
3533 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3534 return true;
3535 }
3536 case GICXXCustomAction_GICombiner115:{
3537 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3538 // Match Patterns
3539 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3540 GIMatchData_info);}()) {
3541 return false;
3542 }
3543 // Apply Patterns
3544 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3545 return true;
3546 }
3547 case GICXXCustomAction_GICombiner116:{
3548 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3549 // Match Patterns
3550 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3551 GIMatchData_info);}()) {
3552 return false;
3553 }
3554 // Apply Patterns
3555 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3556 return true;
3557 }
3558 case GICXXCustomAction_GICombiner117:{
3559 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3560 // Match Patterns
3561 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3562 *State.MIs[0], GIMatchData_info);}()) {
3563 return false;
3564 }
3565 // Apply Patterns
3566 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3567 return true;
3568 }
3569 case GICXXCustomAction_GICombiner118:{
3570 unsigned GIMatchData_select_op_no;
3571 // Match Patterns
3572 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3573 return false;
3574 }
3575 // Apply Patterns
3576 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3577 return true;
3578 }
3579 case GICXXCustomAction_GICombiner119:{
3580 // Match Patterns
3581 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3582 return false;
3583 }
3584 // Apply Patterns
3585 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3586 return true;
3587 }
3588 case GICXXCustomAction_GICombiner120:{
3589 // Match Patterns
3590 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3591 return false;
3592 }
3593 // Apply Patterns
3594 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3595 return true;
3596 }
3597 case GICXXCustomAction_GICombiner121:{
3598 // Match Patterns
3599 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3600 return false;
3601 }
3602 // Apply Patterns
3603 Helper.applyUDivByPow2(*State.MIs[0]);
3604 return true;
3605 }
3606 case GICXXCustomAction_GICombiner122:{
3607 // Match Patterns
3608 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3609 return false;
3610 }
3611 // Apply Patterns
3612 Helper.applySDivByPow2(*State.MIs[0]);
3613 return true;
3614 }
3615 case GICXXCustomAction_GICombiner123:{
3616 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3617 // Match Patterns
3618 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3619 return false;
3620 }
3621 // Apply Patterns
3622 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3623 return true;
3624 }
3625 case GICXXCustomAction_GICombiner124:{
3626 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3627 // Match Patterns
3628 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3629 return false;
3630 }
3631 // Apply Patterns
3632 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3633 return true;
3634 }
3635 case GICXXCustomAction_GICombiner125:{
3636 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3637 // Match Patterns
3638 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3639 return false;
3640 }
3641 // Apply Patterns
3642 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3643 return true;
3644 }
3645 case GICXXCustomAction_GICombiner126:{
3646 Register GIMatchData_matchinfo;
3647 // Match Patterns
3648 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3649 return false;
3650 }
3651 // Apply Patterns
3652 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3653 return true;
3654 }
3655 case GICXXCustomAction_GICombiner127:{
3656 // Match Patterns
3657 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3658 return false;
3659 }
3660 // Apply Patterns
3661 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3662 return true;
3663 }
3664 case GICXXCustomAction_GICombiner128:{
3665 // Match Patterns
3666 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3667 return false;
3668 }
3669 // Apply Patterns
3670 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3671 return true;
3672 }
3673 case GICXXCustomAction_GICombiner129:{
3674 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3675 // Match Patterns
3676 if(![&](){return Helper.matchAnd(*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_GICombiner130:{
3684 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3685 // Match Patterns
3686 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3687 return false;
3688 }
3689 // Apply Patterns
3690 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3691 return true;
3692 }
3693 case GICXXCustomAction_GICombiner131:{
3694 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3695 // Match Patterns
3696 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3697 return false;
3698 }
3699 // Apply Patterns
3700 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3701 return true;
3702 }
3703 case GICXXCustomAction_GICombiner132:{
3704 SmallVector<Register> GIMatchData_matchinfo;
3705 // Match Patterns
3706 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3707 return false;
3708 }
3709 // Apply Patterns
3710 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3711 return true;
3712 }
3713 case GICXXCustomAction_GICombiner133:{
3714 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3715 // Match Patterns
3716 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3717 return false;
3718 }
3719 // Apply Patterns
3720 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3721 return true;
3722 }
3723 case GICXXCustomAction_GICombiner134:{
3724 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3725 // Match Patterns
3726 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3727 return false;
3728 }
3729 // Apply Patterns
3730 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3731 return true;
3732 }
3733 case GICXXCustomAction_GICombiner135:{
3734 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3735 // Match Patterns
3736 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3737 return false;
3738 }
3739 // Apply Patterns
3740 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3741 return true;
3742 }
3743 case GICXXCustomAction_GICombiner136:{
3744 SmallVector<Register> GIMatchData_matchinfo;
3745 // Match Patterns
3746 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3747 return false;
3748 }
3749 // Apply Patterns
3750 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3751 return true;
3752 }
3753 case GICXXCustomAction_GICombiner137:{
3754 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3755 // Match Patterns
3756 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3757 return false;
3758 }
3759 // Apply Patterns
3760 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3761 return true;
3762 }
3763 case GICXXCustomAction_GICombiner138:{
3764 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3765 // Match Patterns
3766 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3767 return false;
3768 }
3769 // Apply Patterns
3770 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3771 return true;
3772 }
3773 case GICXXCustomAction_GICombiner139:{
3774 Register GIMatchData_matchinfo;
3775 // Match Patterns
3776 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3777 return false;
3778 }
3779 // Apply Patterns
3780 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3781 return true;
3782 }
3783 case GICXXCustomAction_GICombiner140:{
3784 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3785 // Match Patterns
3786 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3787 return false;
3788 }
3789 // Apply Patterns
3790 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3791 return true;
3792 }
3793 case GICXXCustomAction_GICombiner141:{
3794 SmallVector<Register> GIMatchData_info;
3795 // Match Patterns
3796 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3797 return false;
3798 }
3799 // Apply Patterns
3800 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3801 return true;
3802 }
3803 case GICXXCustomAction_GICombiner142:{
3804 Register GIMatchData_src;
3805 // Match Patterns
3806 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
3807 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
3808 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
3809 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
3810 return false;
3811
3812 // Check counts match.
3813 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
3814 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
3815 if (NumMergeSrcs != NumUnmergeDefs)
3816 return false;
3817
3818 // Verify all merge sources match unmerge defs in order.
3819 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
3820 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
3821 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
3822
3823 if (MergeSrc != UnmergeDef)
3824 return false;
3825
3826 if (!MRI.hasOneNonDBGUse(MergeSrc))
3827 return false;
3828 }
3829
3830 // Check size compatibility.
3831 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
3832 LLT SrcTy = MRI.getType(GIMatchData_src);
3833 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3834 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
3835 return false;
3836
3837 // Check bitcast legality.
3838 if (SrcTy != DstTy) {
3839 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
3840 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
3841 if (!Helper.isLegalOrBeforeLegalizer(Query))
3842 return false;
3843 }
3844
3845 return true;}()) {
3846 return false;
3847 }
3848 // Apply Patterns
3849 LLT SrcTy = MRI.getType(GIMatchData_src);
3850 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3851
3852 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3853
3854 if (SrcTy == DstTy) {
3855 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3856 } else {
3857 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3858 }
3859
3860 State.MIs[0]->eraseFromParent();
3861 return true;
3862 }
3863 case GICXXCustomAction_GICombiner143:{
3864 SmallVector<APInt, 8> GIMatchData_info;
3865 // Match Patterns
3866 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3867 return false;
3868 }
3869 // Apply Patterns
3870 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3871 return true;
3872 }
3873 case GICXXCustomAction_GICombiner144:{
3874 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3875 // Match Patterns
3876 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3877 return false;
3878 }
3879 // Apply Patterns
3880 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3881 return true;
3882 }
3883 case GICXXCustomAction_GICombiner145:{
3884 // Match Patterns
3885 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3886 return false;
3887 }
3888 // Apply Patterns
3889 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3890 return true;
3891 }
3892 case GICXXCustomAction_GICombiner146:{
3893 // Match Patterns
3894 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3895 return false;
3896 }
3897 // Apply Patterns
3898 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3899 return true;
3900 }
3901 case GICXXCustomAction_GICombiner147:{
3902 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3903 // Match Patterns
3904 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3905 return false;
3906 }
3907 // Apply Patterns
3908 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3909 return true;
3910 }
3911 case GICXXCustomAction_GICombiner148:{
3912 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3913 // Match Patterns
3914 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3915 return false;
3916 }
3917 // Apply Patterns
3918 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3919 return true;
3920 }
3921 case GICXXCustomAction_GICombiner149:{
3922 Register GIMatchData_unmergeSrc;
3923 // Match Patterns
3924 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
3925 return false;
3926 }
3927 // Apply Patterns
3928 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
3929 return true;
3930 }
3931 case GICXXCustomAction_GICombiner150:{
3932 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3933 // Match Patterns
3934 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3935 return false;
3936 }
3937 // Apply Patterns
3938 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3939 return true;
3940 }
3941 case GICXXCustomAction_GICombiner151:{
3942 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3943 // Match Patterns
3944 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3945 return false;
3946 }
3947 // Apply Patterns
3948 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3949 return true;
3950 }
3951 case GICXXCustomAction_GICombiner152:{
3952 Register GIMatchData_matchinfo;
3953 // Match Patterns
3954 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3955 return false;
3956 }
3957 // Apply Patterns
3958 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
3959 return true;
3960 }
3961 case GICXXCustomAction_GICombiner153:{
3962 Register GIMatchData_matchinfo;
3963 // Match Patterns
3964 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
3965 return false;
3966 }
3967 // Apply Patterns
3968 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
3969 return true;
3970 }
3971 case GICXXCustomAction_GICombiner154:{
3972 LshrOfTruncOfLshr GIMatchData_matchinfo;
3973 // Match Patterns
3974 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
3975 return false;
3976 }
3977 // Apply Patterns
3978 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
3979 return true;
3980 }
3981 case GICXXCustomAction_GICombiner155:{
3982 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3983 // Match Patterns
3984 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
3985 return false;
3986 }
3987 // Apply Patterns
3988 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3989 return true;
3990 }
3991 case GICXXCustomAction_GICombiner156:{
3992 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3993 // Match Patterns
3994 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3995 return false;
3996 }
3997 // Apply Patterns
3998 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3999 return true;
4000 }
4001 case GICXXCustomAction_GICombiner157:{
4002 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4003 // Match Patterns
4004 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4005 return false;
4006 }
4007 // Apply Patterns
4008 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4009 return true;
4010 }
4011 case GICXXCustomAction_GICombiner158:{
4012 // Match Patterns
4013 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());}()) {
4014 return false;
4015 }
4016 // Apply Patterns
4017 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4018 return true;
4019 }
4020 case GICXXCustomAction_GICombiner159:{
4021 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4022 // Match Patterns
4023 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4024 return false;
4025 }
4026 // Apply Patterns
4027 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4028 return true;
4029 }
4030 case GICXXCustomAction_GICombiner160:{
4031 // Match Patterns
4032 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4033 return false;
4034 }
4035 // Apply Patterns
4036 applyUCharToFloat(*State.MIs[0]);
4037 return true;
4038 }
4039 case GICXXCustomAction_GICombiner161:{
4040 CvtF32UByteMatchInfo GIMatchData_matchinfo;
4041 // Match Patterns
4042 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
4043 return false;
4044 }
4045 // Apply Patterns
4046 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
4047 return true;
4048 }
4049 case GICXXCustomAction_GICombiner162:{
4050 Register GIMatchData_matchinfo;
4051 // Match Patterns
4052 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
4053 return false;
4054 }
4055 // Apply Patterns
4056 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4057 return true;
4058 }
4059 case GICXXCustomAction_GICombiner163:{
4060 MachineInstr * GIMatchData_matchinfo;
4061 // Match Patterns
4062 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4063 return false;
4064 }
4065 // Apply Patterns
4066 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4067 return true;
4068 }
4069 case GICXXCustomAction_GICombiner164:{
4070 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4071 // Match Patterns
4072 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
4073 return false;
4074 }
4075 // Apply Patterns
4076 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4077 return true;
4078 }
4079 case GICXXCustomAction_GICombiner165:{
4080 // Match Patterns
4081 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4082 return false;
4083 }
4084 // Apply Patterns
4085 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4086 return true;
4087 }
4088 case GICXXCustomAction_GICombiner166:{
4089 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4090 // Match Patterns
4091 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4092 return false;
4093 }
4094 // Apply Patterns
4095 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4096 return true;
4097 }
4098 case GICXXCustomAction_GICombiner167:{
4099 unsigned GIMatchData_matchinfo;
4100 // Match Patterns
4101 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4102 return false;
4103 }
4104 // Apply Patterns
4105 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4106 return true;
4107 }
4108 }
4109 llvm_unreachable("Unknown Apply Action");
4110}
4111#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4112#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4113#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4114#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)
4115#else
4116#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4117#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4118#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)
4119#endif
4120const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4121 constexpr static uint8_t MatchTable0[] = {
4122 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4130), /*)*//*default:*//*Label 111*/ GIMT_Encode4(24645),
4123 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(16450), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4124 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16462),
4125 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(17195),
4126 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(17888),
4127 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(18105),
4128 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(18207),
4129 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(18320),
4130 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(18405), GIMT_Encode4(0), GIMT_Encode4(0),
4131 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(18512),
4132 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(18918),
4133 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(19650), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4134 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(19861), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4135 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(19873), GIMT_Encode4(0),
4136 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(19940),
4137 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(20017),
4138 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(20082),
4139 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(20094),
4140 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(20106),
4141 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(20149),
4142 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(20182),
4143 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(20225), GIMT_Encode4(0), GIMT_Encode4(0),
4144 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(20289),
4145 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(20311), GIMT_Encode4(0), GIMT_Encode4(0),
4146 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(20333), GIMT_Encode4(0), GIMT_Encode4(0),
4147 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(20355),
4148 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(20367),
4149 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(20379), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4150 /* 350 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(20391), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4151 /* 478 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(20403), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4152 /* 494 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(20415),
4153 /* 498 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(20543), GIMT_Encode4(0), GIMT_Encode4(0),
4154 /* 510 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(20955), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4155 /* 530 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(20988),
4156 /* 534 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(21063),
4157 /* 538 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(21140),
4158 /* 542 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(21270),
4159 /* 546 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(21468),
4160 /* 550 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(21649),
4161 /* 554 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(21812),
4162 /* 558 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(21855),
4163 /* 562 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(21898),
4164 /* 566 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(21922),
4165 /* 570 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(21946),
4166 /* 574 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(21991), GIMT_Encode4(0), GIMT_Encode4(0),
4167 /* 586 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(22003),
4168 /* 590 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(22125),
4169 /* 594 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(22148),
4170 /* 598 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(22160),
4171 /* 602 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(22172),
4172 /* 606 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(22184),
4173 /* 610 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(22207),
4174 /* 614 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(22219),
4175 /* 618 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(22231),
4176 /* 622 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(22243),
4177 /* 626 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(22277),
4178 /* 630 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(22311),
4179 /* 634 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(22334),
4180 /* 638 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(22346),
4181 /* 642 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(22358), GIMT_Encode4(0), GIMT_Encode4(0),
4182 /* 654 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(22370),
4183 /* 658 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(22393),
4184 /* 662 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(22416),
4185 /* 666 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(22428),
4186 /* 670 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(22440),
4187 /* 674 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(22452), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4188 /* 694 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(22464),
4189 /* 698 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(22605),
4190 /* 702 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(22694),
4191 /* 706 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(22803),
4192 /* 710 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(22826),
4193 /* 714 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(22849),
4194 /* 718 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(22933), GIMT_Encode4(0), GIMT_Encode4(0),
4195 /* 730 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(22945), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4196 /* 750 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(22967), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4197 /* 766 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(22989),
4198 /* 770 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(23051),
4199 /* 774 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(23073),
4200 /* 778 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(23140),
4201 /* 782 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(23162),
4202 /* 786 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(23184),
4203 /* 790 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(23222), GIMT_Encode4(0), GIMT_Encode4(0),
4204 /* 802 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(23260), GIMT_Encode4(0), GIMT_Encode4(0),
4205 /* 814 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 82*/ GIMT_Encode4(23339),
4206 /* 818 */ /*TargetOpcode::G_FMINNUM*//*Label 83*/ GIMT_Encode4(23380),
4207 /* 822 */ /*TargetOpcode::G_FMAXNUM*//*Label 84*/ GIMT_Encode4(23414),
4208 /* 826 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 85*/ GIMT_Encode4(23448),
4209 /* 830 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 86*/ GIMT_Encode4(23460),
4210 /* 834 */ /*TargetOpcode::G_FMINIMUM*//*Label 87*/ GIMT_Encode4(23472),
4211 /* 838 */ /*TargetOpcode::G_FMAXIMUM*//*Label 88*/ GIMT_Encode4(23506), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4212 /* 882 */ /*TargetOpcode::G_PTR_ADD*//*Label 89*/ GIMT_Encode4(23540), GIMT_Encode4(0),
4213 /* 890 */ /*TargetOpcode::G_SMIN*//*Label 90*/ GIMT_Encode4(23630),
4214 /* 894 */ /*TargetOpcode::G_SMAX*//*Label 91*/ GIMT_Encode4(23664),
4215 /* 898 */ /*TargetOpcode::G_UMIN*//*Label 92*/ GIMT_Encode4(23698),
4216 /* 902 */ /*TargetOpcode::G_UMAX*//*Label 93*/ GIMT_Encode4(23732),
4217 /* 906 */ /*TargetOpcode::G_ABS*//*Label 94*/ GIMT_Encode4(23766), GIMT_Encode4(0), GIMT_Encode4(0),
4218 /* 918 */ /*TargetOpcode::G_BR*//*Label 95*/ GIMT_Encode4(23778), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4219 /* 938 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 96*/ GIMT_Encode4(23790),
4220 /* 942 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 97*/ GIMT_Encode4(23920),
4221 /* 946 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 98*/ GIMT_Encode4(24297), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4222 /* 970 */ /*TargetOpcode::G_CTLZ*//*Label 99*/ GIMT_Encode4(24363),
4223 /* 974 */ /*TargetOpcode::G_CTLZ_ZERO_UNDEF*//*Label 100*/ GIMT_Encode4(24375), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4224 /* 990 */ /*TargetOpcode::G_BITREVERSE*//*Label 101*/ GIMT_Encode4(24387),
4225 /* 994 */ /*TargetOpcode::G_FCEIL*//*Label 102*/ GIMT_Encode4(24476), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4226 /* 1042 */ /*TargetOpcode::G_FSQRT*//*Label 103*/ GIMT_Encode4(24498),
4227 /* 1046 */ /*TargetOpcode::G_FFLOOR*//*Label 104*/ GIMT_Encode4(24531),
4228 /* 1050 */ /*TargetOpcode::G_FRINT*//*Label 105*/ GIMT_Encode4(24553),
4229 /* 1054 */ /*TargetOpcode::G_FNEARBYINT*//*Label 106*/ GIMT_Encode4(24575), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4230 /* 16434 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 107*/ GIMT_Encode4(24597),
4231 /* 16438 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 108*/ GIMT_Encode4(24609),
4232 /* 16442 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 109*/ GIMT_Encode4(24621),
4233 /* 16446 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 110*/ GIMT_Encode4(24633),
4234 /* 16450 */ // Label 0: @16450
4235 /* 16450 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(16461), // Rule ID 19 //
4236 /* 16455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4237 /* 16458 */ // MIs[0] d
4238 /* 16458 */ // No operand predicates
4239 /* 16458 */ // MIs[0] s
4240 /* 16458 */ // No operand predicates
4241 /* 16458 */ // Combiner Rule #19: copy_prop
4242 /* 16458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4243 /* 16461 */ // Label 112: @16461
4244 /* 16461 */ GIM_Reject,
4245 /* 16462 */ // Label 1: @16462
4246 /* 16462 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(16473), // Rule ID 22 //
4247 /* 16467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4248 /* 16470 */ // Combiner Rule #22: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4249 /* 16470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4250 /* 16473 */ // Label 113: @16473
4251 /* 16473 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(16484), // Rule ID 100 //
4252 /* 16478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4253 /* 16481 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4254 /* 16481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4255 /* 16484 */ // Label 114: @16484
4256 /* 16484 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(16495), // Rule ID 151 //
4257 /* 16489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
4258 /* 16492 */ // Combiner Rule #111: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4259 /* 16492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4260 /* 16495 */ // Label 115: @16495
4261 /* 16495 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(16506), // Rule ID 253 //
4262 /* 16500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4263 /* 16503 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_ADD'
4264 /* 16503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4265 /* 16506 */ // Label 116: @16506
4266 /* 16506 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(16517), // Rule ID 297 //
4267 /* 16511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4268 /* 16514 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_ADD'
4269 /* 16514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4270 /* 16517 */ // Label 117: @16517
4271 /* 16517 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(16528), // Rule ID 333 //
4272 /* 16522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
4273 /* 16525 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4274 /* 16525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4275 /* 16528 */ // Label 118: @16528
4276 /* 16528 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16616), // Rule ID 395 //
4277 /* 16533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
4278 /* 16536 */ // MIs[0] dst
4279 /* 16536 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4280 /* 16540 */ // MIs[0] __add_shift_match_0.shl_neg
4281 /* 16540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4282 /* 16544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4283 /* 16548 */ // MIs[1] __add_shift_match_0.neg_y
4284 /* 16548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4285 /* 16552 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4286 /* 16556 */ // MIs[2] __add_shift_match_0.zero
4287 /* 16556 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4288 /* 16560 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4289 /* 16564 */ // MIs[3] Operand 1
4290 /* 16564 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4291 /* 16575 */ // MIs[2] y
4292 /* 16575 */ // No operand predicates
4293 /* 16575 */ // MIs[1] n
4294 /* 16575 */ // No operand predicates
4295 /* 16575 */ // MIs[0] x
4296 /* 16575 */ // No operand predicates
4297 /* 16575 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
4298 /* 16579 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4299 /* 16581 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4300 /* 16584 */ // Combiner Rule #243: add_shift @ [__add_shift_match_0[1]]
4301 /* 16584 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4302 /* 16587 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4303 /* 16592 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4304 /* 16596 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4305 /* 16600 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4306 /* 16604 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4307 /* 16608 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4308 /* 16612 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4309 /* 16615 */ GIR_EraseRootFromParent_Done,
4310 /* 16616 */ // Label 119: @16616
4311 /* 16616 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16704), // Rule ID 394 //
4312 /* 16621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
4313 /* 16624 */ // MIs[0] dst
4314 /* 16624 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4315 /* 16628 */ // MIs[0] x
4316 /* 16628 */ // No operand predicates
4317 /* 16628 */ // MIs[0] __add_shift_match_0.shl_neg
4318 /* 16628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4319 /* 16632 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4320 /* 16636 */ // MIs[1] __add_shift_match_0.neg_y
4321 /* 16636 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4322 /* 16640 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4323 /* 16644 */ // MIs[2] __add_shift_match_0.zero
4324 /* 16644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4325 /* 16648 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4326 /* 16652 */ // MIs[3] Operand 1
4327 /* 16652 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4328 /* 16663 */ // MIs[2] y
4329 /* 16663 */ // No operand predicates
4330 /* 16663 */ // MIs[1] n
4331 /* 16663 */ // No operand predicates
4332 /* 16663 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
4333 /* 16667 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4334 /* 16669 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4335 /* 16672 */ // Combiner Rule #243: add_shift @ [__add_shift_match_0[0]]
4336 /* 16672 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4337 /* 16675 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4338 /* 16680 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4339 /* 16684 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4340 /* 16688 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4341 /* 16692 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4342 /* 16696 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4343 /* 16700 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4344 /* 16703 */ GIR_EraseRootFromParent_Done,
4345 /* 16704 */ // Label 120: @16704
4346 /* 16704 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16738), // Rule ID 2 //
4347 /* 16709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4348 /* 16712 */ // MIs[0] root
4349 /* 16712 */ // No operand predicates
4350 /* 16712 */ // MIs[0] sub
4351 /* 16712 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4352 /* 16716 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4353 /* 16720 */ // MIs[1] Operand 1
4354 /* 16720 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4355 /* 16724 */ // MIs[1] A
4356 /* 16724 */ // No operand predicates
4357 /* 16724 */ // MIs[0] B
4358 /* 16724 */ // No operand predicates
4359 /* 16724 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4360 /* 16726 */ // Combiner Rule #2: ZeroMinusAPlusB
4361 /* 16726 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4362 /* 16729 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4363 /* 16731 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4364 /* 16733 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4365 /* 16737 */ GIR_EraseRootFromParent_Done,
4366 /* 16738 */ // Label 121: @16738
4367 /* 16738 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16775), // Rule ID 18 //
4368 /* 16743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4369 /* 16746 */ // MIs[0] root
4370 /* 16746 */ // No operand predicates
4371 /* 16746 */ // MIs[0] sub
4372 /* 16746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4373 /* 16750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4374 /* 16754 */ // MIs[1] A
4375 /* 16754 */ // No operand predicates
4376 /* 16754 */ // MIs[1] c1
4377 /* 16754 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4378 /* 16758 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4379 /* 16762 */ // MIs[2] imm1
4380 /* 16762 */ // No operand predicates
4381 /* 16762 */ // MIs[0] c2
4382 /* 16762 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4383 /* 16766 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4384 /* 16770 */ // MIs[3] imm2
4385 /* 16770 */ // No operand predicates
4386 /* 16770 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4387 /* 16772 */ // Combiner Rule #18: AMinusC1PlusC2
4388 /* 16772 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4389 /* 16775 */ // Label 122: @16775
4390 /* 16775 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16809), // Rule ID 5 //
4391 /* 16780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4392 /* 16783 */ // MIs[0] root
4393 /* 16783 */ // No operand predicates
4394 /* 16783 */ // MIs[0] sub
4395 /* 16783 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4396 /* 16787 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4397 /* 16791 */ // MIs[1] B
4398 /* 16791 */ // No operand predicates
4399 /* 16791 */ // MIs[1] A
4400 /* 16791 */ // No operand predicates
4401 /* 16791 */ // MIs[0] A
4402 /* 16791 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4403 /* 16796 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4404 /* 16801 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4405 /* 16803 */ // Combiner Rule #5: BMinusAPlusA
4406 /* 16803 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4407 /* 16808 */ GIR_EraseRootFromParent_Done,
4408 /* 16809 */ // Label 123: @16809
4409 /* 16809 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16843), // Rule ID 140 //
4410 /* 16814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4411 /* 16817 */ // MIs[0] dst
4412 /* 16817 */ // No operand predicates
4413 /* 16817 */ // MIs[0] __add_sub_reg_match_0.tmp
4414 /* 16817 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4415 /* 16821 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4416 /* 16825 */ // MIs[1] src
4417 /* 16825 */ // No operand predicates
4418 /* 16825 */ // MIs[1] __add_sub_reg_match_0.x
4419 /* 16825 */ // No operand predicates
4420 /* 16825 */ // MIs[0] __add_sub_reg_match_0.x
4421 /* 16825 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4422 /* 16830 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4423 /* 16835 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4424 /* 16837 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4425 /* 16837 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4426 /* 16842 */ GIR_EraseRootFromParent_Done,
4427 /* 16843 */ // Label 124: @16843
4428 /* 16843 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16888), // Rule ID 7 //
4429 /* 16848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4430 /* 16851 */ // MIs[0] root
4431 /* 16851 */ // No operand predicates
4432 /* 16851 */ // MIs[0] sub1
4433 /* 16851 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4434 /* 16855 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4435 /* 16859 */ // MIs[1] A
4436 /* 16859 */ // No operand predicates
4437 /* 16859 */ // MIs[1] B
4438 /* 16859 */ // No operand predicates
4439 /* 16859 */ // MIs[0] sub2
4440 /* 16859 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4441 /* 16863 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4442 /* 16867 */ // MIs[2] B
4443 /* 16867 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4444 /* 16872 */ // MIs[2] C
4445 /* 16872 */ // No operand predicates
4446 /* 16872 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4447 /* 16874 */ // Combiner Rule #7: AMinusBPlusBMinusC
4448 /* 16874 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4449 /* 16877 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4450 /* 16879 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4451 /* 16883 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4452 /* 16887 */ GIR_EraseRootFromParent_Done,
4453 /* 16888 */ // Label 125: @16888
4454 /* 16888 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16933), // Rule ID 6 //
4455 /* 16893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4456 /* 16896 */ // MIs[0] root
4457 /* 16896 */ // No operand predicates
4458 /* 16896 */ // MIs[0] sub1
4459 /* 16896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4460 /* 16900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4461 /* 16904 */ // MIs[1] A
4462 /* 16904 */ // No operand predicates
4463 /* 16904 */ // MIs[1] B
4464 /* 16904 */ // No operand predicates
4465 /* 16904 */ // MIs[0] sub2
4466 /* 16904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4467 /* 16908 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4468 /* 16912 */ // MIs[2] C
4469 /* 16912 */ // No operand predicates
4470 /* 16912 */ // MIs[2] A
4471 /* 16912 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4472 /* 16917 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4473 /* 16919 */ // Combiner Rule #6: AMinusBPlusCMinusA
4474 /* 16919 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4475 /* 16922 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4476 /* 16924 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4477 /* 16928 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4478 /* 16932 */ GIR_EraseRootFromParent_Done,
4479 /* 16933 */ // Label 126: @16933
4480 /* 16933 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16968), // Rule ID 45 //
4481 /* 16938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4482 /* 16941 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4483 /* 16947 */ // MIs[0] root
4484 /* 16947 */ // No operand predicates
4485 /* 16947 */ // MIs[0] left
4486 /* 16947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4487 /* 16951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4488 /* 16955 */ // MIs[1] imm1
4489 /* 16955 */ // No operand predicates
4490 /* 16955 */ // MIs[0] right
4491 /* 16955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4492 /* 16959 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4493 /* 16963 */ // MIs[2] imm2
4494 /* 16963 */ // No operand predicates
4495 /* 16963 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4496 /* 16965 */ // Combiner Rule #43: add_of_vscale
4497 /* 16965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4498 /* 16968 */ // Label 127: @16968
4499 /* 16968 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(17002), // Rule ID 3 //
4500 /* 16973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4501 /* 16976 */ // MIs[0] root
4502 /* 16976 */ // No operand predicates
4503 /* 16976 */ // MIs[0] A
4504 /* 16976 */ // No operand predicates
4505 /* 16976 */ // MIs[0] sub
4506 /* 16976 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4507 /* 16980 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4508 /* 16984 */ // MIs[1] Operand 1
4509 /* 16984 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4510 /* 16988 */ // MIs[1] B
4511 /* 16988 */ // No operand predicates
4512 /* 16988 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4513 /* 16990 */ // Combiner Rule #3: APlusZeroMinusB
4514 /* 16990 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4515 /* 16993 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4516 /* 16995 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4517 /* 16997 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4518 /* 17001 */ GIR_EraseRootFromParent_Done,
4519 /* 17002 */ // Label 128: @17002
4520 /* 17002 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(17036), // Rule ID 4 //
4521 /* 17007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4522 /* 17010 */ // MIs[0] root
4523 /* 17010 */ // No operand predicates
4524 /* 17010 */ // MIs[0] A
4525 /* 17010 */ // No operand predicates
4526 /* 17010 */ // MIs[0] sub
4527 /* 17010 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4528 /* 17014 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4529 /* 17018 */ // MIs[1] B
4530 /* 17018 */ // No operand predicates
4531 /* 17018 */ // MIs[1] A
4532 /* 17018 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4533 /* 17023 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4534 /* 17028 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4535 /* 17030 */ // Combiner Rule #4: APlusBMinusB
4536 /* 17030 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4537 /* 17035 */ GIR_EraseRootFromParent_Done,
4538 /* 17036 */ // Label 129: @17036
4539 /* 17036 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(17070), // Rule ID 139 //
4540 /* 17041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4541 /* 17044 */ // MIs[0] dst
4542 /* 17044 */ // No operand predicates
4543 /* 17044 */ // MIs[0] __add_sub_reg_match_0.x
4544 /* 17044 */ // No operand predicates
4545 /* 17044 */ // MIs[0] __add_sub_reg_match_0.tmp
4546 /* 17044 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4547 /* 17048 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4548 /* 17052 */ // MIs[1] src
4549 /* 17052 */ // No operand predicates
4550 /* 17052 */ // MIs[1] __add_sub_reg_match_0.x
4551 /* 17052 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4552 /* 17057 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4553 /* 17062 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4554 /* 17064 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
4555 /* 17064 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4556 /* 17069 */ GIR_EraseRootFromParent_Done,
4557 /* 17070 */ // Label 130: @17070
4558 /* 17070 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(17115), // Rule ID 8 //
4559 /* 17075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4560 /* 17078 */ // MIs[0] root
4561 /* 17078 */ // No operand predicates
4562 /* 17078 */ // MIs[0] A
4563 /* 17078 */ // No operand predicates
4564 /* 17078 */ // MIs[0] sub1
4565 /* 17078 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4566 /* 17082 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4567 /* 17086 */ // MIs[1] B
4568 /* 17086 */ // No operand predicates
4569 /* 17086 */ // MIs[1] add1
4570 /* 17086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4571 /* 17090 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4572 /* 17094 */ // MIs[2] A
4573 /* 17094 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4574 /* 17099 */ // MIs[2] C
4575 /* 17099 */ // No operand predicates
4576 /* 17099 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4577 /* 17101 */ // Combiner Rule #8: APlusBMinusAplusC
4578 /* 17101 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4579 /* 17104 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4580 /* 17106 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4581 /* 17110 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4582 /* 17114 */ GIR_EraseRootFromParent_Done,
4583 /* 17115 */ // Label 131: @17115
4584 /* 17115 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(17160), // Rule ID 10 //
4585 /* 17120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4586 /* 17123 */ // MIs[0] root
4587 /* 17123 */ // No operand predicates
4588 /* 17123 */ // MIs[0] A
4589 /* 17123 */ // No operand predicates
4590 /* 17123 */ // MIs[0] sub1
4591 /* 17123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4592 /* 17127 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4593 /* 17131 */ // MIs[1] B
4594 /* 17131 */ // No operand predicates
4595 /* 17131 */ // MIs[1] add1
4596 /* 17131 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4597 /* 17135 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4598 /* 17139 */ // MIs[2] C
4599 /* 17139 */ // No operand predicates
4600 /* 17139 */ // MIs[2] A
4601 /* 17139 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4602 /* 17144 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4603 /* 17146 */ // Combiner Rule #10: APlusBMinusCPlusA
4604 /* 17146 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4605 /* 17149 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4606 /* 17151 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4607 /* 17155 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4608 /* 17159 */ GIR_EraseRootFromParent_Done,
4609 /* 17160 */ // Label 132: @17160
4610 /* 17160 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(17183), // Rule ID 111 //
4611 /* 17165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4612 /* 17168 */ // MIs[0] dst
4613 /* 17168 */ // No operand predicates
4614 /* 17168 */ // MIs[0] lhs
4615 /* 17168 */ // No operand predicates
4616 /* 17168 */ // MIs[0] Operand 2
4617 /* 17168 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4618 /* 17172 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4619 /* 17177 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
4620 /* 17177 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4621 /* 17182 */ GIR_EraseRootFromParent_Done,
4622 /* 17183 */ // Label 133: @17183
4623 /* 17183 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(17194), // Rule ID 159 //
4624 /* 17188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
4625 /* 17191 */ // MIs[0] root
4626 /* 17191 */ // No operand predicates
4627 /* 17191 */ // MIs[0] src1
4628 /* 17191 */ // No operand predicates
4629 /* 17191 */ // MIs[0] src2
4630 /* 17191 */ // No operand predicates
4631 /* 17191 */ // Combiner Rule #115: reassoc_comm_binops
4632 /* 17191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4633 /* 17194 */ // Label 134: @17194
4634 /* 17194 */ GIM_Reject,
4635 /* 17195 */ // Label 2: @17195
4636 /* 17195 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(17206), // Rule ID 101 //
4637 /* 17200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4638 /* 17203 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4639 /* 17203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4640 /* 17206 */ // Label 135: @17206
4641 /* 17206 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(17217), // Rule ID 261 //
4642 /* 17211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4643 /* 17214 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SUB'
4644 /* 17214 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4645 /* 17217 */ // Label 136: @17217
4646 /* 17217 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(17228), // Rule ID 298 //
4647 /* 17222 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4648 /* 17225 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SUB'
4649 /* 17225 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4650 /* 17228 */ // Label 137: @17228
4651 /* 17228 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(17239), // Rule ID 330 //
4652 /* 17233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4653 /* 17236 */ // Combiner Rule #208: sub_add_reg; wip_match_opcode 'G_SUB'
4654 /* 17236 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4655 /* 17239 */ // Label 138: @17239
4656 /* 17239 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(17250), // Rule ID 364 //
4657 /* 17244 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4658 /* 17247 */ // Combiner Rule #215: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4659 /* 17247 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4660 /* 17250 */ // Label 139: @17250
4661 /* 17250 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(17327), // Rule ID 396 //
4662 /* 17255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
4663 /* 17258 */ // MIs[0] dst
4664 /* 17258 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4665 /* 17262 */ // MIs[0] sub1
4666 /* 17262 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4667 /* 17266 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4668 /* 17270 */ // MIs[1] a
4669 /* 17270 */ // No operand predicates
4670 /* 17270 */ // MIs[1] b
4671 /* 17270 */ // No operand predicates
4672 /* 17270 */ // MIs[0] Operand 2
4673 /* 17270 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4674 /* 17274 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
4675 /* 17278 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4676 /* 17280 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
4677 /* 17283 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
4678 /* 17293 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4679 /* 17296 */ // Combiner Rule #244: sub_one_from_sub
4680 /* 17296 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4681 /* 17299 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4682 /* 17304 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
4683 /* 17308 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4684 /* 17311 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4685 /* 17315 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4686 /* 17319 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4687 /* 17322 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
4688 /* 17326 */ GIR_EraseRootFromParent_Done,
4689 /* 17327 */ // Label 140: @17327
4690 /* 17327 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(17367), // Rule ID 400 //
4691 /* 17332 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
4692 /* 17335 */ // MIs[0] root
4693 /* 17335 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4694 /* 17339 */ // MIs[0] Operand 1
4695 /* 17339 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
4696 /* 17343 */ // MIs[0] op1
4697 /* 17343 */ // No operand predicates
4698 /* 17343 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4699 /* 17346 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
4700 /* 17356 */ // Combiner Rule #246: sub_minus_one
4701 /* 17356 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4702 /* 17359 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4703 /* 17361 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
4704 /* 17363 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4705 /* 17366 */ GIR_EraseRootFromParent_Done,
4706 /* 17367 */ // Label 141: @17367
4707 /* 17367 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(17428), // Rule ID 9 //
4708 /* 17372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4709 /* 17375 */ // MIs[0] root
4710 /* 17375 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4711 /* 17379 */ // MIs[0] A
4712 /* 17379 */ // No operand predicates
4713 /* 17379 */ // MIs[0] sub1
4714 /* 17379 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4715 /* 17383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4716 /* 17387 */ // MIs[1] B
4717 /* 17387 */ // No operand predicates
4718 /* 17387 */ // MIs[1] C
4719 /* 17387 */ // No operand predicates
4720 /* 17387 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
4721 /* 17391 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4722 /* 17393 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4723 /* 17396 */ // Combiner Rule #9: AMinusBMinusC
4724 /* 17396 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4725 /* 17399 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4726 /* 17404 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
4727 /* 17408 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4728 /* 17412 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4729 /* 17416 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4730 /* 17420 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
4731 /* 17424 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4732 /* 17427 */ GIR_EraseRootFromParent_Done,
4733 /* 17428 */ // Label 142: @17428
4734 /* 17428 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(17473), // Rule ID 0 //
4735 /* 17433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
4736 /* 17436 */ // MIs[0] root
4737 /* 17436 */ // No operand predicates
4738 /* 17436 */ // MIs[0] add1
4739 /* 17436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4740 /* 17440 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4741 /* 17444 */ // MIs[1] A
4742 /* 17444 */ // No operand predicates
4743 /* 17444 */ // MIs[1] sub1
4744 /* 17444 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4745 /* 17448 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4746 /* 17452 */ // MIs[2] B
4747 /* 17452 */ // No operand predicates
4748 /* 17452 */ // MIs[2] C
4749 /* 17452 */ // No operand predicates
4750 /* 17452 */ // MIs[0] B
4751 /* 17452 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
4752 /* 17457 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4753 /* 17459 */ // Combiner Rule #0: APlusBMinusCMinusB
4754 /* 17459 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4755 /* 17462 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4756 /* 17464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4757 /* 17468 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4758 /* 17472 */ GIR_EraseRootFromParent_Done,
4759 /* 17473 */ // Label 143: @17473
4760 /* 17473 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17510), // Rule ID 14 //
4761 /* 17478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4762 /* 17481 */ // MIs[0] root
4763 /* 17481 */ // No operand predicates
4764 /* 17481 */ // MIs[0] add
4765 /* 17481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4766 /* 17485 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4767 /* 17489 */ // MIs[1] A
4768 /* 17489 */ // No operand predicates
4769 /* 17489 */ // MIs[1] c1
4770 /* 17489 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4771 /* 17493 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4772 /* 17497 */ // MIs[2] imm1
4773 /* 17497 */ // No operand predicates
4774 /* 17497 */ // MIs[0] c2
4775 /* 17497 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4776 /* 17501 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4777 /* 17505 */ // MIs[3] imm2
4778 /* 17505 */ // No operand predicates
4779 /* 17505 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4780 /* 17507 */ // Combiner Rule #14: APlusC1MinusC2
4781 /* 17507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4782 /* 17510 */ // Label 144: @17510
4783 /* 17510 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17547), // Rule ID 17 //
4784 /* 17515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4785 /* 17518 */ // MIs[0] root
4786 /* 17518 */ // No operand predicates
4787 /* 17518 */ // MIs[0] sub1
4788 /* 17518 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4789 /* 17522 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4790 /* 17526 */ // MIs[1] c1
4791 /* 17526 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4792 /* 17530 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4793 /* 17534 */ // MIs[2] imm1
4794 /* 17534 */ // No operand predicates
4795 /* 17534 */ // MIs[1] A
4796 /* 17534 */ // No operand predicates
4797 /* 17534 */ // MIs[0] c2
4798 /* 17534 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4799 /* 17538 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4800 /* 17542 */ // MIs[3] imm2
4801 /* 17542 */ // No operand predicates
4802 /* 17542 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4803 /* 17544 */ // Combiner Rule #17: C1Minus2MinusC2
4804 /* 17544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4805 /* 17547 */ // Label 145: @17547
4806 /* 17547 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17592), // Rule ID 1 //
4807 /* 17552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
4808 /* 17555 */ // MIs[0] root
4809 /* 17555 */ // No operand predicates
4810 /* 17555 */ // MIs[0] sub2
4811 /* 17555 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4812 /* 17559 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4813 /* 17563 */ // MIs[1] A
4814 /* 17563 */ // No operand predicates
4815 /* 17563 */ // MIs[1] sub1
4816 /* 17563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4817 /* 17567 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4818 /* 17571 */ // MIs[2] B
4819 /* 17571 */ // No operand predicates
4820 /* 17571 */ // MIs[2] C
4821 /* 17571 */ // No operand predicates
4822 /* 17571 */ // MIs[0] C
4823 /* 17571 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
4824 /* 17576 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4825 /* 17578 */ // Combiner Rule #1: AMinusBMinusCMinusC
4826 /* 17578 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4827 /* 17581 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4828 /* 17583 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4829 /* 17587 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
4830 /* 17591 */ GIR_EraseRootFromParent_Done,
4831 /* 17592 */ // Label 146: @17592
4832 /* 17592 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17629), // Rule ID 16 //
4833 /* 17597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4834 /* 17600 */ // MIs[0] root
4835 /* 17600 */ // No operand predicates
4836 /* 17600 */ // MIs[0] sub1
4837 /* 17600 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4838 /* 17604 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4839 /* 17608 */ // MIs[1] A
4840 /* 17608 */ // No operand predicates
4841 /* 17608 */ // MIs[1] c1
4842 /* 17608 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4843 /* 17612 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4844 /* 17616 */ // MIs[2] imm1
4845 /* 17616 */ // No operand predicates
4846 /* 17616 */ // MIs[0] c2
4847 /* 17616 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4848 /* 17620 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4849 /* 17624 */ // MIs[3] imm2
4850 /* 17624 */ // No operand predicates
4851 /* 17624 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4852 /* 17626 */ // Combiner Rule #16: AMinusC1MinusC2
4853 /* 17626 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4854 /* 17629 */ // Label 147: @17629
4855 /* 17629 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17672), // Rule ID 169 //
4856 /* 17634 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
4857 /* 17637 */ // MIs[0] dst
4858 /* 17637 */ // No operand predicates
4859 /* 17637 */ // MIs[0] Operand 1
4860 /* 17637 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4861 /* 17641 */ // MIs[0] and
4862 /* 17641 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4863 /* 17645 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4864 /* 17649 */ // MIs[1] x
4865 /* 17649 */ // No operand predicates
4866 /* 17649 */ // MIs[1] Operand 2
4867 /* 17649 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4868 /* 17653 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
4869 /* 17657 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4870 /* 17659 */ // Combiner Rule #125: neg_and_one_to_sext_inreg
4871 /* 17659 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4872 /* 17662 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4873 /* 17664 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4874 /* 17668 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4875 /* 17671 */ GIR_EraseRootFromParent_Done,
4876 /* 17672 */ // Label 148: @17672
4877 /* 17672 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17709), // Rule ID 15 //
4878 /* 17677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4879 /* 17680 */ // MIs[0] root
4880 /* 17680 */ // No operand predicates
4881 /* 17680 */ // MIs[0] c2
4882 /* 17680 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4883 /* 17684 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4884 /* 17688 */ // MIs[1] imm2
4885 /* 17688 */ // No operand predicates
4886 /* 17688 */ // MIs[0] add
4887 /* 17688 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4888 /* 17692 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4889 /* 17696 */ // MIs[2] A
4890 /* 17696 */ // No operand predicates
4891 /* 17696 */ // MIs[2] c1
4892 /* 17696 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4893 /* 17700 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4894 /* 17704 */ // MIs[3] imm1
4895 /* 17704 */ // No operand predicates
4896 /* 17704 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4897 /* 17706 */ // Combiner Rule #15: C2MinusAPlusC1
4898 /* 17706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4899 /* 17709 */ // Label 149: @17709
4900 /* 17709 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17748), // Rule ID 122 //
4901 /* 17714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
4902 /* 17717 */ // MIs[0] dst
4903 /* 17717 */ // No operand predicates
4904 /* 17717 */ // MIs[0] x
4905 /* 17717 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
4906 /* 17721 */ // MIs[0] x
4907 /* 17721 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4908 /* 17726 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4909 /* 17729 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4910 /* 17739 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
4911 /* 17739 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
4912 /* 17742 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4913 /* 17744 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4914 /* 17747 */ GIR_EraseRootFromParent_Done,
4915 /* 17748 */ // Label 150: @17748
4916 /* 17748 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17782), // Rule ID 12 //
4917 /* 17753 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
4918 /* 17756 */ // MIs[0] root
4919 /* 17756 */ // No operand predicates
4920 /* 17756 */ // MIs[0] A
4921 /* 17756 */ // No operand predicates
4922 /* 17756 */ // MIs[0] add
4923 /* 17756 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4924 /* 17760 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4925 /* 17764 */ // MIs[1] A
4926 /* 17764 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4927 /* 17769 */ // MIs[1] B
4928 /* 17769 */ // No operand predicates
4929 /* 17769 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
4930 /* 17774 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4931 /* 17776 */ // Combiner Rule #12: AMinusBMinusA
4932 /* 17776 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
4933 /* 17781 */ GIR_EraseRootFromParent_Done,
4934 /* 17782 */ // Label 151: @17782
4935 /* 17782 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17816), // Rule ID 11 //
4936 /* 17787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4937 /* 17790 */ // MIs[0] root
4938 /* 17790 */ // No operand predicates
4939 /* 17790 */ // MIs[0] A
4940 /* 17790 */ // No operand predicates
4941 /* 17790 */ // MIs[0] sub1
4942 /* 17790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4943 /* 17794 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4944 /* 17798 */ // MIs[1] Operand 1
4945 /* 17798 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4946 /* 17802 */ // MIs[1] B
4947 /* 17802 */ // No operand predicates
4948 /* 17802 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4949 /* 17804 */ // Combiner Rule #11: AMinusZeroMinusB
4950 /* 17804 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4951 /* 17807 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4952 /* 17809 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4953 /* 17811 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4954 /* 17815 */ GIR_EraseRootFromParent_Done,
4955 /* 17816 */ // Label 152: @17816
4956 /* 17816 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17843), // Rule ID 48 //
4957 /* 17821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
4958 /* 17824 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4959 /* 17830 */ // MIs[0] root
4960 /* 17830 */ // No operand predicates
4961 /* 17830 */ // MIs[0] x
4962 /* 17830 */ // No operand predicates
4963 /* 17830 */ // MIs[0] right
4964 /* 17830 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4965 /* 17834 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4966 /* 17838 */ // MIs[1] imm
4967 /* 17838 */ // No operand predicates
4968 /* 17838 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4969 /* 17840 */ // Combiner Rule #46: sub_of_vscale
4970 /* 17840 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4971 /* 17843 */ // Label 153: @17843
4972 /* 17843 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17866), // Rule ID 110 //
4973 /* 17848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4974 /* 17851 */ // MIs[0] dst
4975 /* 17851 */ // No operand predicates
4976 /* 17851 */ // MIs[0] lhs
4977 /* 17851 */ // No operand predicates
4978 /* 17851 */ // MIs[0] Operand 2
4979 /* 17851 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4980 /* 17855 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4981 /* 17860 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
4982 /* 17860 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4983 /* 17865 */ GIR_EraseRootFromParent_Done,
4984 /* 17866 */ // Label 154: @17866
4985 /* 17866 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17887), // Rule ID 21 //
4986 /* 17871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
4987 /* 17874 */ // MIs[0] d
4988 /* 17874 */ // No operand predicates
4989 /* 17874 */ // MIs[0] op1
4990 /* 17874 */ // No operand predicates
4991 /* 17874 */ // MIs[0] c
4992 /* 17874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4993 /* 17878 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4994 /* 17882 */ // MIs[1] imm
4995 /* 17882 */ // No operand predicates
4996 /* 17882 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4997 /* 17884 */ // Combiner Rule #21: sub_to_add
4998 /* 17884 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4999 /* 17887 */ // Label 155: @17887
5000 /* 17887 */ GIM_Reject,
5001 /* 17888 */ // Label 3: @17888
5002 /* 17888 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17899), // Rule ID 84 //
5003 /* 17893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5004 /* 17896 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_MUL'
5005 /* 17896 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5006 /* 17899 */ // Label 156: @17899
5007 /* 17899 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17910), // Rule ID 258 //
5008 /* 17904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5009 /* 17907 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_MUL'
5010 /* 17907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5011 /* 17910 */ // Label 157: @17910
5012 /* 17910 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17921), // Rule ID 334 //
5013 /* 17915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5014 /* 17918 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5015 /* 17918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5016 /* 17921 */ // Label 158: @17921
5017 /* 17921 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(17932), // Rule ID 416 //
5018 /* 17926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
5019 /* 17929 */ // Combiner Rule #257: smulu64; wip_match_opcode 'G_MUL'
5020 /* 17929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
5021 /* 17932 */ // Label 159: @17932
5022 /* 17932 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(17972), // Rule ID 23 //
5023 /* 17937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5024 /* 17940 */ // MIs[0] dst
5025 /* 17940 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5026 /* 17944 */ // MIs[0] x
5027 /* 17944 */ // No operand predicates
5028 /* 17944 */ // MIs[0] Operand 2
5029 /* 17944 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5030 /* 17948 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5031 /* 17951 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5032 /* 17961 */ // Combiner Rule #23: mul_by_neg_one
5033 /* 17961 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5034 /* 17964 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5035 /* 17966 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5036 /* 17969 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5037 /* 17971 */ GIR_EraseRootFromParent_Done,
5038 /* 17972 */ // Label 160: @17972
5039 /* 17972 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(18007), // Rule ID 46 //
5040 /* 17977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5041 /* 17980 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5042 /* 17986 */ // MIs[0] root
5043 /* 17986 */ // No operand predicates
5044 /* 17986 */ // MIs[0] left
5045 /* 17986 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5046 /* 17990 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5047 /* 17994 */ // MIs[1] scale
5048 /* 17994 */ // No operand predicates
5049 /* 17994 */ // MIs[0] x
5050 /* 17994 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5051 /* 17998 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5052 /* 18002 */ // MIs[2] imm1
5053 /* 18002 */ // No operand predicates
5054 /* 18002 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5055 /* 18004 */ // Combiner Rule #44: mul_of_vscale
5056 /* 18004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
5057 /* 18007 */ // Label 161: @18007
5058 /* 18007 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(18047), // Rule ID 131 //
5059 /* 18012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5060 /* 18015 */ // MIs[0] dst
5061 /* 18015 */ // No operand predicates
5062 /* 18015 */ // MIs[0] zero
5063 /* 18015 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5064 /* 18019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5065 /* 18023 */ // MIs[1] Operand 1
5066 /* 18023 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5067 /* 18034 */ // MIs[0] rhs
5068 /* 18034 */ // No operand predicates
5069 /* 18034 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5070 /* 18039 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5071 /* 18041 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5072 /* 18041 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5073 /* 18046 */ GIR_EraseRootFromParent_Done,
5074 /* 18047 */ // Label 162: @18047
5075 /* 18047 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(18070), // Rule ID 132 //
5076 /* 18052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5077 /* 18055 */ // MIs[0] dst
5078 /* 18055 */ // No operand predicates
5079 /* 18055 */ // MIs[0] lhs
5080 /* 18055 */ // No operand predicates
5081 /* 18055 */ // MIs[0] zero
5082 /* 18055 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5083 /* 18059 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5084 /* 18064 */ // Combiner Rule #94: binop_right_to_zero
5085 /* 18064 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5086 /* 18069 */ GIR_EraseRootFromParent_Done,
5087 /* 18070 */ // Label 163: @18070
5088 /* 18070 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(18093), // Rule ID 137 //
5089 /* 18075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5090 /* 18078 */ // MIs[0] dst
5091 /* 18078 */ // No operand predicates
5092 /* 18078 */ // MIs[0] x
5093 /* 18078 */ // No operand predicates
5094 /* 18078 */ // MIs[0] Operand 2
5095 /* 18078 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5096 /* 18082 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5097 /* 18087 */ // Combiner Rule #99: right_identity_one_int
5098 /* 18087 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5099 /* 18092 */ GIR_EraseRootFromParent_Done,
5100 /* 18093 */ // Label 164: @18093
5101 /* 18093 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(18104), // Rule ID 20 //
5102 /* 18098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5103 /* 18101 */ // MIs[0] d
5104 /* 18101 */ // No operand predicates
5105 /* 18101 */ // MIs[0] op1
5106 /* 18101 */ // No operand predicates
5107 /* 18101 */ // MIs[0] op2
5108 /* 18101 */ // No operand predicates
5109 /* 18101 */ // Combiner Rule #20: mul_to_shl
5110 /* 18101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5111 /* 18104 */ // Label 165: @18104
5112 /* 18104 */ GIM_Reject,
5113 /* 18105 */ // Label 4: @18105
5114 /* 18105 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(18116), // Rule ID 229 //
5115 /* 18110 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5116 /* 18113 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5117 /* 18113 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5118 /* 18116 */ // Label 166: @18116
5119 /* 18116 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(18127), // Rule ID 264 //
5120 /* 18121 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5121 /* 18124 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SDIV'
5122 /* 18124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5123 /* 18127 */ // Label 167: @18127
5124 /* 18127 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(18138), // Rule ID 303 //
5125 /* 18132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5126 /* 18135 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5127 /* 18135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5128 /* 18138 */ // Label 168: @18138
5129 /* 18138 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(18178), // Rule ID 127 //
5130 /* 18143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5131 /* 18146 */ // MIs[0] dst
5132 /* 18146 */ // No operand predicates
5133 /* 18146 */ // MIs[0] zero
5134 /* 18146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5135 /* 18150 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5136 /* 18154 */ // MIs[1] Operand 1
5137 /* 18154 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5138 /* 18165 */ // MIs[0] rhs
5139 /* 18165 */ // No operand predicates
5140 /* 18165 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5141 /* 18170 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5142 /* 18172 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5143 /* 18172 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5144 /* 18177 */ GIR_EraseRootFromParent_Done,
5145 /* 18178 */ // Label 169: @18178
5146 /* 18178 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(18195), // Rule ID 326 //
5147 /* 18183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5148 /* 18186 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5149 /* 18192 */ // MIs[0] dst
5150 /* 18192 */ // No operand predicates
5151 /* 18192 */ // MIs[0] x
5152 /* 18192 */ // No operand predicates
5153 /* 18192 */ // MIs[0] y
5154 /* 18192 */ // No operand predicates
5155 /* 18192 */ // Combiner Rule #204: sdiv_by_pow2
5156 /* 18192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5157 /* 18195 */ // Label 170: @18195
5158 /* 18195 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(18206), // Rule ID 328 //
5159 /* 18200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5160 /* 18203 */ // MIs[0] dst
5161 /* 18203 */ // No operand predicates
5162 /* 18203 */ // MIs[0] x
5163 /* 18203 */ // No operand predicates
5164 /* 18203 */ // MIs[0] y
5165 /* 18203 */ // No operand predicates
5166 /* 18203 */ // Combiner Rule #206: sdiv_by_const
5167 /* 18203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5168 /* 18206 */ // Label 171: @18206
5169 /* 18206 */ GIM_Reject,
5170 /* 18207 */ // Label 5: @18207
5171 /* 18207 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(18218), // Rule ID 87 //
5172 /* 18212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5173 /* 18215 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
5174 /* 18215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5175 /* 18218 */ // Label 172: @18218
5176 /* 18218 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(18229), // Rule ID 230 //
5177 /* 18223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5178 /* 18226 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5179 /* 18226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5180 /* 18229 */ // Label 173: @18229
5181 /* 18229 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(18240), // Rule ID 263 //
5182 /* 18234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5183 /* 18237 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UDIV'
5184 /* 18237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5185 /* 18240 */ // Label 174: @18240
5186 /* 18240 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(18251), // Rule ID 305 //
5187 /* 18245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5188 /* 18248 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5189 /* 18248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5190 /* 18251 */ // Label 175: @18251
5191 /* 18251 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(18291), // Rule ID 128 //
5192 /* 18256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5193 /* 18259 */ // MIs[0] dst
5194 /* 18259 */ // No operand predicates
5195 /* 18259 */ // MIs[0] zero
5196 /* 18259 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5197 /* 18263 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5198 /* 18267 */ // MIs[1] Operand 1
5199 /* 18267 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5200 /* 18278 */ // MIs[0] rhs
5201 /* 18278 */ // No operand predicates
5202 /* 18278 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5203 /* 18283 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5204 /* 18285 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5205 /* 18285 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5206 /* 18290 */ GIR_EraseRootFromParent_Done,
5207 /* 18291 */ // Label 176: @18291
5208 /* 18291 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(18308), // Rule ID 325 //
5209 /* 18296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
5210 /* 18299 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5211 /* 18305 */ // MIs[0] dst
5212 /* 18305 */ // No operand predicates
5213 /* 18305 */ // MIs[0] x
5214 /* 18305 */ // No operand predicates
5215 /* 18305 */ // MIs[0] y
5216 /* 18305 */ // No operand predicates
5217 /* 18305 */ // Combiner Rule #203: udiv_by_pow2
5218 /* 18305 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5219 /* 18308 */ // Label 177: @18308
5220 /* 18308 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(18319), // Rule ID 327 //
5221 /* 18313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
5222 /* 18316 */ // MIs[0] dst
5223 /* 18316 */ // No operand predicates
5224 /* 18316 */ // MIs[0] x
5225 /* 18316 */ // No operand predicates
5226 /* 18316 */ // MIs[0] y
5227 /* 18316 */ // No operand predicates
5228 /* 18316 */ // Combiner Rule #205: udiv_by_const
5229 /* 18316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5230 /* 18319 */ // Label 178: @18319
5231 /* 18319 */ GIM_Reject,
5232 /* 18320 */ // Label 6: @18320
5233 /* 18320 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(18331), // Rule ID 231 //
5234 /* 18325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5235 /* 18328 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5236 /* 18328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5237 /* 18331 */ // Label 179: @18331
5238 /* 18331 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(18342), // Rule ID 266 //
5239 /* 18336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5240 /* 18339 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SREM'
5241 /* 18339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5242 /* 18342 */ // Label 180: @18342
5243 /* 18342 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(18353), // Rule ID 304 //
5244 /* 18347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5245 /* 18350 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SREM'
5246 /* 18350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5247 /* 18353 */ // Label 181: @18353
5248 /* 18353 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(18393), // Rule ID 129 //
5249 /* 18358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5250 /* 18361 */ // MIs[0] dst
5251 /* 18361 */ // No operand predicates
5252 /* 18361 */ // MIs[0] zero
5253 /* 18361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5254 /* 18365 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5255 /* 18369 */ // MIs[1] Operand 1
5256 /* 18369 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5257 /* 18380 */ // MIs[0] rhs
5258 /* 18380 */ // No operand predicates
5259 /* 18380 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5260 /* 18385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5261 /* 18387 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5262 /* 18387 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5263 /* 18392 */ GIR_EraseRootFromParent_Done,
5264 /* 18393 */ // Label 182: @18393
5265 /* 18393 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(18404), // Rule ID 324 //
5266 /* 18398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
5267 /* 18401 */ // MIs[0] dst
5268 /* 18401 */ // No operand predicates
5269 /* 18401 */ // MIs[0] x
5270 /* 18401 */ // No operand predicates
5271 /* 18401 */ // MIs[0] y
5272 /* 18401 */ // No operand predicates
5273 /* 18401 */ // Combiner Rule #202: srem_by_const
5274 /* 18401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5275 /* 18404 */ // Label 183: @18404
5276 /* 18404 */ GIM_Reject,
5277 /* 18405 */ // Label 7: @18405
5278 /* 18405 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(18416), // Rule ID 88 //
5279 /* 18410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5280 /* 18413 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5281 /* 18413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5282 /* 18416 */ // Label 184: @18416
5283 /* 18416 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(18427), // Rule ID 180 //
5284 /* 18421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
5285 /* 18424 */ // Combiner Rule #136: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
5286 /* 18424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5287 /* 18427 */ // Label 185: @18427
5288 /* 18427 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(18438), // Rule ID 232 //
5289 /* 18432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5290 /* 18435 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5291 /* 18435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5292 /* 18438 */ // Label 186: @18438
5293 /* 18438 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(18449), // Rule ID 265 //
5294 /* 18443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5295 /* 18446 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UREM'
5296 /* 18446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5297 /* 18449 */ // Label 187: @18449
5298 /* 18449 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(18460), // Rule ID 306 //
5299 /* 18454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5300 /* 18457 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UREM'
5301 /* 18457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5302 /* 18460 */ // Label 188: @18460
5303 /* 18460 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(18500), // Rule ID 130 //
5304 /* 18465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5305 /* 18468 */ // MIs[0] dst
5306 /* 18468 */ // No operand predicates
5307 /* 18468 */ // MIs[0] zero
5308 /* 18468 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5309 /* 18472 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5310 /* 18476 */ // MIs[1] Operand 1
5311 /* 18476 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5312 /* 18487 */ // MIs[0] rhs
5313 /* 18487 */ // No operand predicates
5314 /* 18487 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5315 /* 18492 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5316 /* 18494 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5317 /* 18494 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5318 /* 18499 */ GIR_EraseRootFromParent_Done,
5319 /* 18500 */ // Label 189: @18500
5320 /* 18500 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(18511), // Rule ID 323 //
5321 /* 18505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
5322 /* 18508 */ // MIs[0] dst
5323 /* 18508 */ // No operand predicates
5324 /* 18508 */ // MIs[0] x
5325 /* 18508 */ // No operand predicates
5326 /* 18508 */ // MIs[0] y
5327 /* 18508 */ // No operand predicates
5328 /* 18508 */ // Combiner Rule #201: urem_by_const
5329 /* 18508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5330 /* 18511 */ // Label 190: @18511
5331 /* 18511 */ GIM_Reject,
5332 /* 18512 */ // Label 8: @18512
5333 /* 18512 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(18523), // Rule ID 79 //
5334 /* 18517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5335 /* 18520 */ // Combiner Rule #75: load_and_mask; wip_match_opcode 'G_AND'
5336 /* 18520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5337 /* 18523 */ // Label 191: @18523
5338 /* 18523 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(18534), // Rule ID 83 //
5339 /* 18528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5340 /* 18531 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_AND'
5341 /* 18531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5342 /* 18534 */ // Label 192: @18534
5343 /* 18534 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(18545), // Rule ID 152 //
5344 /* 18539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5345 /* 18542 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5346 /* 18542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5347 /* 18545 */ // Label 193: @18545
5348 /* 18545 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(18556), // Rule ID 172 //
5349 /* 18550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
5350 /* 18553 */ // Combiner Rule #128: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5351 /* 18553 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5352 /* 18556 */ // Label 194: @18556
5353 /* 18556 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(18567), // Rule ID 177 //
5354 /* 18561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
5355 /* 18564 */ // Combiner Rule #133: redundant_and; wip_match_opcode 'G_AND'
5356 /* 18564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5357 /* 18567 */ // Label 195: @18567
5358 /* 18567 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(18578), // Rule ID 202 //
5359 /* 18572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5360 /* 18575 */ // Combiner Rule #158: overlapping_and; wip_match_opcode 'G_AND'
5361 /* 18575 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5362 /* 18578 */ // Label 196: @18578
5363 /* 18578 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18589), // Rule ID 255 //
5364 /* 18583 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5365 /* 18586 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_AND'
5366 /* 18586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5367 /* 18589 */ // Label 197: @18589
5368 /* 18589 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18600), // Rule ID 288 //
5369 /* 18594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5370 /* 18597 */ // Combiner Rule #191: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5371 /* 18597 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
5372 /* 18600 */ // Label 198: @18600
5373 /* 18600 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18611), // Rule ID 300 //
5374 /* 18605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5375 /* 18608 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_AND'
5376 /* 18608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5377 /* 18611 */ // Label 199: @18611
5378 /* 18611 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18622), // Rule ID 335 //
5379 /* 18616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5380 /* 18619 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5381 /* 18619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5382 /* 18622 */ // Label 200: @18622
5383 /* 18622 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18633), // Rule ID 362 //
5384 /* 18627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5385 /* 18630 */ // Combiner Rule #213: match_ands; wip_match_opcode 'G_AND'
5386 /* 18630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5387 /* 18633 */ // Label 201: @18633
5388 /* 18633 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18644), // Rule ID 397 //
5389 /* 18638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5390 /* 18641 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_AND'
5391 /* 18641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5392 /* 18644 */ // Label 202: @18644
5393 /* 18644 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18742), // Rule ID 165 //
5394 /* 18649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5395 /* 18652 */ // MIs[0] root
5396 /* 18652 */ // No operand predicates
5397 /* 18652 */ // MIs[0] d1
5398 /* 18652 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5399 /* 18656 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5400 /* 18660 */ // MIs[1] p
5401 /* 18660 */ // No operand predicates
5402 /* 18660 */ // MIs[1] s1
5403 /* 18660 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5404 /* 18664 */ // MIs[1] Operand 3
5405 /* 18664 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5406 /* 18668 */ // MIs[0] d2
5407 /* 18668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5408 /* 18672 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5409 /* 18676 */ // MIs[2] p
5410 /* 18676 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5411 /* 18681 */ // MIs[2] s2
5412 /* 18681 */ // No operand predicates
5413 /* 18681 */ // MIs[2] Operand 3
5414 /* 18681 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5415 /* 18685 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
5416 /* 18689 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5417 /* 18691 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5418 /* 18694 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5419 /* 18704 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5420 /* 18707 */ // Combiner Rule #121: double_icmp_zero_and_combine
5421 /* 18707 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5422 /* 18710 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5423 /* 18715 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5424 /* 18719 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5425 /* 18723 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5426 /* 18727 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5427 /* 18731 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5428 /* 18735 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5429 /* 18738 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5430 /* 18741 */ GIR_EraseRootFromParent_Done,
5431 /* 18742 */ // Label 203: @18742
5432 /* 18742 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18779), // Rule ID 248 //
5433 /* 18747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5434 /* 18750 */ // MIs[0] root
5435 /* 18750 */ // No operand predicates
5436 /* 18750 */ // MIs[0] shift
5437 /* 18750 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5438 /* 18754 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5439 /* 18758 */ // MIs[1] x
5440 /* 18758 */ // No operand predicates
5441 /* 18758 */ // MIs[1] lsb
5442 /* 18758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5443 /* 18762 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5444 /* 18766 */ // MIs[2] imm1
5445 /* 18766 */ // No operand predicates
5446 /* 18766 */ // MIs[0] mask
5447 /* 18766 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5448 /* 18770 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5449 /* 18774 */ // MIs[3] imm2
5450 /* 18774 */ // No operand predicates
5451 /* 18774 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5452 /* 18776 */ // Combiner Rule #181: bitfield_extract_from_and
5453 /* 18776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5454 /* 18779 */ // Label 204: @18779
5455 /* 18779 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18893), // Rule ID 418 //
5456 /* 18784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
5457 /* 18787 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5458 /* 18790 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5459 /* 18793 */ // MIs[0] dst
5460 /* 18793 */ // No operand predicates
5461 /* 18793 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
5462 /* 18797 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5463 /* 18800 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5464 /* 18803 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5465 /* 18806 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5466 /* 18809 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5467 /* 18812 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5468 /* 18815 */ // Combiner Rule #259: combine_and_s64_with_s32_mask
5469 /* 18815 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5470 /* 18818 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5471 /* 18823 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5472 /* 18828 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5473 /* 18830 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5474 /* 18834 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5475 /* 18839 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5476 /* 18844 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5477 /* 18848 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5478 /* 18852 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5479 /* 18857 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5480 /* 18860 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5481 /* 18863 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5482 /* 18867 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5483 /* 18872 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5484 /* 18875 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5485 /* 18878 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5486 /* 18882 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5487 /* 18886 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5488 /* 18889 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5489 /* 18892 */ GIR_EraseRootFromParent_Done,
5490 /* 18893 */ // Label 205: @18893
5491 /* 18893 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18917), // Rule ID 120 //
5492 /* 18898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5493 /* 18901 */ // MIs[0] dst
5494 /* 18901 */ // No operand predicates
5495 /* 18901 */ // MIs[0] src
5496 /* 18901 */ // No operand predicates
5497 /* 18901 */ // MIs[0] src
5498 /* 18901 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5499 /* 18906 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5500 /* 18911 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
5501 /* 18911 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5502 /* 18916 */ GIR_EraseRootFromParent_Done,
5503 /* 18917 */ // Label 206: @18917
5504 /* 18917 */ GIM_Reject,
5505 /* 18918 */ // Label 9: @18918
5506 /* 18918 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18929), // Rule ID 85 //
5507 /* 18923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5508 /* 18926 */ // Combiner Rule #79: undef_to_negative_one; wip_match_opcode 'G_OR'
5509 /* 18926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5510 /* 18929 */ // Label 207: @18929
5511 /* 18929 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18940), // Rule ID 153 //
5512 /* 18934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5513 /* 18937 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
5514 /* 18937 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5515 /* 18940 */ // Label 208: @18940
5516 /* 18940 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18951), // Rule ID 179 //
5517 /* 18945 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
5518 /* 18948 */ // Combiner Rule #135: redundant_or; wip_match_opcode 'G_OR'
5519 /* 18948 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5520 /* 18951 */ // Label 209: @18951
5521 /* 18951 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18962), // Rule ID 228 //
5522 /* 18956 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
5523 /* 18959 */ // Combiner Rule #168: load_or_combine; wip_match_opcode 'G_OR'
5524 /* 18959 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5525 /* 18962 */ // Label 210: @18962
5526 /* 18962 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18973), // Rule ID 233 //
5527 /* 18967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5528 /* 18970 */ // Combiner Rule #170: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
5529 /* 18970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5530 /* 18973 */ // Label 211: @18973
5531 /* 18973 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18984), // Rule ID 259 //
5532 /* 18978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5533 /* 18981 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_OR'
5534 /* 18981 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5535 /* 18984 */ // Label 212: @18984
5536 /* 18984 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(18995), // Rule ID 301 //
5537 /* 18989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5538 /* 18992 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_OR'
5539 /* 18992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5540 /* 18995 */ // Label 213: @18995
5541 /* 18995 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(19006), // Rule ID 336 //
5542 /* 19000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5543 /* 19003 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
5544 /* 19003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5545 /* 19006 */ // Label 214: @19006
5546 /* 19006 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(19017), // Rule ID 363 //
5547 /* 19011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
5548 /* 19014 */ // Combiner Rule #214: match_ors; wip_match_opcode 'G_OR'
5549 /* 19014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5550 /* 19017 */ // Label 215: @19017
5551 /* 19017 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(19028), // Rule ID 398 //
5552 /* 19022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5553 /* 19025 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_OR'
5554 /* 19025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5555 /* 19028 */ // Label 216: @19028
5556 /* 19028 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(19115), // Rule ID 420 //
5557 /* 19033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
5558 /* 19036 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5559 /* 19039 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5560 /* 19042 */ // MIs[0] dst
5561 /* 19042 */ // No operand predicates
5562 /* 19042 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5563 /* 19046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5564 /* 19050 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5565 /* 19054 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5566 /* 19058 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5567 /* 19060 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5568 /* 19063 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5569 /* 19066 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5570 /* 19069 */ // Combiner Rule #260: combine_or_s64_s32 @ [dst[1]]
5571 /* 19069 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5572 /* 19072 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5573 /* 19077 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5574 /* 19082 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
5575 /* 19084 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5576 /* 19088 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5577 /* 19093 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5578 /* 19096 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5579 /* 19100 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5580 /* 19104 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5581 /* 19108 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5582 /* 19111 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5583 /* 19114 */ GIR_EraseRootFromParent_Done,
5584 /* 19115 */ // Label 217: @19115
5585 /* 19115 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(19162), // Rule ID 240 //
5586 /* 19120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
5587 /* 19123 */ // MIs[0] root
5588 /* 19123 */ // No operand predicates
5589 /* 19123 */ // MIs[0] out1
5590 /* 19123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5591 /* 19127 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
5592 /* 19131 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5593 /* 19131 */ // No operand predicates
5594 /* 19131 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5595 /* 19131 */ // No operand predicates
5596 /* 19131 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5597 /* 19131 */ // No operand predicates
5598 /* 19131 */ // MIs[0] out2
5599 /* 19131 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5600 /* 19135 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5601 /* 19139 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5602 /* 19139 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5603 /* 19144 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5604 /* 19144 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5605 /* 19149 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5606 /* 19154 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5607 /* 19156 */ // Combiner Rule #175: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
5608 /* 19156 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5609 /* 19161 */ GIR_EraseRootFromParent_Done,
5610 /* 19162 */ // Label 218: @19162
5611 /* 19162 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(19209), // Rule ID 242 //
5612 /* 19167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5613 /* 19170 */ // MIs[0] root
5614 /* 19170 */ // No operand predicates
5615 /* 19170 */ // MIs[0] out1
5616 /* 19170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5617 /* 19174 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
5618 /* 19178 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5619 /* 19178 */ // No operand predicates
5620 /* 19178 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5621 /* 19178 */ // No operand predicates
5622 /* 19178 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5623 /* 19178 */ // No operand predicates
5624 /* 19178 */ // MIs[0] out2
5625 /* 19178 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5626 /* 19182 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5627 /* 19186 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5628 /* 19186 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5629 /* 19191 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5630 /* 19191 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5631 /* 19196 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5632 /* 19201 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5633 /* 19203 */ // Combiner Rule #176: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
5634 /* 19203 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5635 /* 19208 */ GIR_EraseRootFromParent_Done,
5636 /* 19209 */ // Label 219: @19209
5637 /* 19209 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(19307), // Rule ID 166 //
5638 /* 19214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5639 /* 19217 */ // MIs[0] root
5640 /* 19217 */ // No operand predicates
5641 /* 19217 */ // MIs[0] d1
5642 /* 19217 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5643 /* 19221 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5644 /* 19225 */ // MIs[1] p
5645 /* 19225 */ // No operand predicates
5646 /* 19225 */ // MIs[1] s1
5647 /* 19225 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5648 /* 19229 */ // MIs[1] Operand 3
5649 /* 19229 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5650 /* 19233 */ // MIs[0] d2
5651 /* 19233 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5652 /* 19237 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5653 /* 19241 */ // MIs[2] p
5654 /* 19241 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5655 /* 19246 */ // MIs[2] s2
5656 /* 19246 */ // No operand predicates
5657 /* 19246 */ // MIs[2] Operand 3
5658 /* 19246 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5659 /* 19250 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
5660 /* 19254 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5661 /* 19256 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5662 /* 19259 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5663 /* 19269 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5664 /* 19272 */ // Combiner Rule #122: double_icmp_zero_or_combine
5665 /* 19272 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5666 /* 19275 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5667 /* 19280 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5668 /* 19284 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5669 /* 19288 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5670 /* 19292 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5671 /* 19296 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5672 /* 19300 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5673 /* 19303 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5674 /* 19306 */ GIR_EraseRootFromParent_Done,
5675 /* 19307 */ // Label 220: @19307
5676 /* 19307 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(19354), // Rule ID 243 //
5677 /* 19312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5678 /* 19315 */ // MIs[0] root
5679 /* 19315 */ // No operand predicates
5680 /* 19315 */ // MIs[0] out2
5681 /* 19315 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5682 /* 19319 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5683 /* 19323 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5684 /* 19323 */ // No operand predicates
5685 /* 19323 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5686 /* 19323 */ // No operand predicates
5687 /* 19323 */ // MIs[0] out1
5688 /* 19323 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5689 /* 19327 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
5690 /* 19331 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5691 /* 19331 */ // No operand predicates
5692 /* 19331 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5693 /* 19331 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5694 /* 19336 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5695 /* 19336 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5696 /* 19341 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5697 /* 19346 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5698 /* 19348 */ // Combiner Rule #176: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
5699 /* 19348 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5700 /* 19353 */ GIR_EraseRootFromParent_Done,
5701 /* 19354 */ // Label 221: @19354
5702 /* 19354 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(19401), // Rule ID 241 //
5703 /* 19359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
5704 /* 19362 */ // MIs[0] root
5705 /* 19362 */ // No operand predicates
5706 /* 19362 */ // MIs[0] out2
5707 /* 19362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5708 /* 19366 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5709 /* 19370 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5710 /* 19370 */ // No operand predicates
5711 /* 19370 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5712 /* 19370 */ // No operand predicates
5713 /* 19370 */ // MIs[0] out1
5714 /* 19370 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5715 /* 19374 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
5716 /* 19378 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5717 /* 19378 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5718 /* 19383 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5719 /* 19383 */ // No operand predicates
5720 /* 19383 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5721 /* 19383 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5722 /* 19388 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5723 /* 19393 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5724 /* 19395 */ // Combiner Rule #175: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
5725 /* 19395 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5726 /* 19400 */ GIR_EraseRootFromParent_Done,
5727 /* 19401 */ // Label 222: @19401
5728 /* 19401 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(19602),
5729 /* 19406 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5730 /* 19409 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5731 /* 19412 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(19493), // Rule ID 419 //
5732 /* 19417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
5733 /* 19420 */ // MIs[0] dst
5734 /* 19420 */ // No operand predicates
5735 /* 19420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5736 /* 19424 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5737 /* 19428 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5738 /* 19432 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5739 /* 19436 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5740 /* 19438 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5741 /* 19441 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5742 /* 19444 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5743 /* 19447 */ // Combiner Rule #260: combine_or_s64_s32 @ [dst[0]]
5744 /* 19447 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5745 /* 19450 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5746 /* 19455 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5747 /* 19460 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5748 /* 19462 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5749 /* 19466 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5750 /* 19471 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5751 /* 19474 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5752 /* 19478 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5753 /* 19482 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5754 /* 19486 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5755 /* 19489 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5756 /* 19492 */ GIR_EraseRootFromParent_Done,
5757 /* 19493 */ // Label 224: @19493
5758 /* 19493 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(19601), // Rule ID 417 //
5759 /* 19498 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
5760 /* 19501 */ // MIs[0] dst
5761 /* 19501 */ // No operand predicates
5762 /* 19501 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
5763 /* 19505 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5764 /* 19508 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5765 /* 19511 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5766 /* 19514 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5767 /* 19517 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5768 /* 19520 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5769 /* 19523 */ // Combiner Rule #258: combine_or_s64_with_s32_mask
5770 /* 19523 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5771 /* 19526 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5772 /* 19531 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5773 /* 19536 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5774 /* 19538 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5775 /* 19542 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5776 /* 19547 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5777 /* 19552 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5778 /* 19556 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5779 /* 19560 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5780 /* 19565 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5781 /* 19568 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5782 /* 19571 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5783 /* 19575 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5784 /* 19580 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5785 /* 19583 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5786 /* 19586 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5787 /* 19590 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5788 /* 19594 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5789 /* 19597 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5790 /* 19600 */ GIR_EraseRootFromParent_Done,
5791 /* 19601 */ // Label 225: @19601
5792 /* 19601 */ GIM_Reject,
5793 /* 19602 */ // Label 223: @19602
5794 /* 19602 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(19626), // Rule ID 121 //
5795 /* 19607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5796 /* 19610 */ // MIs[0] dst
5797 /* 19610 */ // No operand predicates
5798 /* 19610 */ // MIs[0] src
5799 /* 19610 */ // No operand predicates
5800 /* 19610 */ // MIs[0] src
5801 /* 19610 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5802 /* 19615 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5803 /* 19620 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
5804 /* 19620 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5805 /* 19625 */ GIR_EraseRootFromParent_Done,
5806 /* 19626 */ // Label 226: @19626
5807 /* 19626 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(19649), // Rule ID 112 //
5808 /* 19631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5809 /* 19634 */ // MIs[0] dst
5810 /* 19634 */ // No operand predicates
5811 /* 19634 */ // MIs[0] lhs
5812 /* 19634 */ // No operand predicates
5813 /* 19634 */ // MIs[0] Operand 2
5814 /* 19634 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5815 /* 19638 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5816 /* 19643 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
5817 /* 19643 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5818 /* 19648 */ GIR_EraseRootFromParent_Done,
5819 /* 19649 */ // Label 227: @19649
5820 /* 19649 */ GIM_Reject,
5821 /* 19650 */ // Label 10: @19650
5822 /* 19650 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(19661), // Rule ID 102 //
5823 /* 19655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5824 /* 19658 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_XOR'
5825 /* 19658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5826 /* 19661 */ // Label 228: @19661
5827 /* 19661 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(19672), // Rule ID 154 //
5828 /* 19666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5829 /* 19669 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
5830 /* 19669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5831 /* 19672 */ // Label 229: @19672
5832 /* 19672 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(19683), // Rule ID 184 //
5833 /* 19677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
5834 /* 19680 */ // Combiner Rule #140: not_cmp_fold; wip_match_opcode 'G_XOR'
5835 /* 19680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5836 /* 19683 */ // Label 230: @19683
5837 /* 19683 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(19694), // Rule ID 216 //
5838 /* 19688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5839 /* 19691 */ // Combiner Rule #164: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
5840 /* 19691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5841 /* 19694 */ // Label 231: @19694
5842 /* 19694 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(19705), // Rule ID 262 //
5843 /* 19699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5844 /* 19702 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_XOR'
5845 /* 19702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5846 /* 19705 */ // Label 232: @19705
5847 /* 19705 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(19716), // Rule ID 302 //
5848 /* 19710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5849 /* 19713 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_XOR'
5850 /* 19713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5851 /* 19716 */ // Label 233: @19716
5852 /* 19716 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(19727), // Rule ID 337 //
5853 /* 19721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5854 /* 19724 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
5855 /* 19724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5856 /* 19727 */ // Label 234: @19727
5857 /* 19727 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(19738), // Rule ID 399 //
5858 /* 19732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5859 /* 19735 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_XOR'
5860 /* 19735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5861 /* 19738 */ // Label 235: @19738
5862 /* 19738 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(19798), // Rule ID 13 //
5863 /* 19743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
5864 /* 19746 */ // MIs[0] root
5865 /* 19746 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5866 /* 19750 */ // MIs[0] add
5867 /* 19750 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5868 /* 19754 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5869 /* 19758 */ // MIs[1] A
5870 /* 19758 */ // No operand predicates
5871 /* 19758 */ // MIs[1] Operand 2
5872 /* 19758 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
5873 /* 19762 */ // MIs[0] Operand 2
5874 /* 19762 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5875 /* 19766 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5876 /* 19770 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5877 /* 19772 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5878 /* 19775 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5879 /* 19785 */ // Combiner Rule #13: NotAPlusNegOne
5880 /* 19785 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5881 /* 19788 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5882 /* 19790 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5883 /* 19793 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5884 /* 19797 */ GIR_EraseRootFromParent_Done,
5885 /* 19798 */ // Label 236: @19798
5886 /* 19798 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(19837), // Rule ID 123 //
5887 /* 19803 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5888 /* 19806 */ // MIs[0] dst
5889 /* 19806 */ // No operand predicates
5890 /* 19806 */ // MIs[0] x
5891 /* 19806 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5892 /* 19810 */ // MIs[0] x
5893 /* 19810 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5894 /* 19815 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5895 /* 19818 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5896 /* 19828 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
5897 /* 19828 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5898 /* 19831 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5899 /* 19833 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5900 /* 19836 */ GIR_EraseRootFromParent_Done,
5901 /* 19837 */ // Label 237: @19837
5902 /* 19837 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(19860), // Rule ID 113 //
5903 /* 19842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5904 /* 19845 */ // MIs[0] dst
5905 /* 19845 */ // No operand predicates
5906 /* 19845 */ // MIs[0] lhs
5907 /* 19845 */ // No operand predicates
5908 /* 19845 */ // MIs[0] Operand 2
5909 /* 19845 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5910 /* 19849 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5911 /* 19854 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
5912 /* 19854 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5913 /* 19859 */ GIR_EraseRootFromParent_Done,
5914 /* 19860 */ // Label 238: @19860
5915 /* 19860 */ GIM_Reject,
5916 /* 19861 */ // Label 11: @19861
5917 /* 19861 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(19872), // Rule ID 150 //
5918 /* 19866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
5919 /* 19869 */ // Combiner Rule #110: extend_through_phis; wip_match_opcode 'G_PHI'
5920 /* 19869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5921 /* 19872 */ // Label 239: @19872
5922 /* 19872 */ GIM_Reject,
5923 /* 19873 */ // Label 12: @19873
5924 /* 19873 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(19884), // Rule ID 373 //
5925 /* 19878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5926 /* 19881 */ // Combiner Rule #224: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
5927 /* 19881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
5928 /* 19884 */ // Label 240: @19884
5929 /* 19884 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(19895), // Rule ID 374 //
5930 /* 19889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
5931 /* 19892 */ // Combiner Rule #225: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
5932 /* 19892 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
5933 /* 19895 */ // Label 241: @19895
5934 /* 19895 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(19906), // Rule ID 376 //
5935 /* 19900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5936 /* 19903 */ // Combiner Rule #227: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
5937 /* 19903 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
5938 /* 19906 */ // Label 242: @19906
5939 /* 19906 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(19917), // Rule ID 377 //
5940 /* 19911 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
5941 /* 19914 */ // Combiner Rule #228: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
5942 /* 19914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
5943 /* 19917 */ // Label 243: @19917
5944 /* 19917 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(19928), // Rule ID 378 //
5945 /* 19922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
5946 /* 19925 */ // Combiner Rule #229: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
5947 /* 19925 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
5948 /* 19928 */ // Label 244: @19928
5949 /* 19928 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(19939), // Rule ID 379 //
5950 /* 19933 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
5951 /* 19936 */ // Combiner Rule #230: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
5952 /* 19936 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
5953 /* 19939 */ // Label 245: @19939
5954 /* 19939 */ GIM_Reject,
5955 /* 19940 */ // Label 13: @19940
5956 /* 19940 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(19954), // Rule ID 375 //
5957 /* 19945 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
5958 /* 19948 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5959 /* 19951 */ // MIs[0] dst
5960 /* 19951 */ // No operand predicates
5961 /* 19951 */ // MIs[0] merge_srcs
5962 /* 19951 */ // No operand predicates
5963 /* 19951 */ // Combiner Rule #226: merge_unmerge
5964 /* 19951 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
5965 /* 19954 */ // Label 246: @19954
5966 /* 19954 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(20016),
5967 /* 19959 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
5968 /* 19962 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(19983), // Rule ID 380 //
5969 /* 19967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
5970 /* 19970 */ // MIs[0] root
5971 /* 19970 */ // No operand predicates
5972 /* 19970 */ // MIs[0] x
5973 /* 19970 */ // No operand predicates
5974 /* 19970 */ // MIs[0] undef
5975 /* 19970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5976 /* 19974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5977 /* 19978 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5978 /* 19980 */ // Combiner Rule #231: merge_of_x_and_undef
5979 /* 19980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
5980 /* 19983 */ // Label 248: @19983
5981 /* 19983 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(20015), // Rule ID 381 //
5982 /* 19988 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
5983 /* 19991 */ // MIs[0] root
5984 /* 19991 */ // No operand predicates
5985 /* 19991 */ // MIs[0] x
5986 /* 19991 */ // No operand predicates
5987 /* 19991 */ // MIs[0] zero
5988 /* 19991 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5989 /* 19995 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5990 /* 19999 */ // MIs[1] Operand 1
5991 /* 19999 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5992 /* 20010 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5993 /* 20012 */ // Combiner Rule #232: merge_of_x_and_zero
5994 /* 20012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5995 /* 20015 */ // Label 249: @20015
5996 /* 20015 */ GIM_Reject,
5997 /* 20016 */ // Label 247: @20016
5998 /* 20016 */ GIM_Reject,
5999 /* 20017 */ // Label 14: @20017
6000 /* 20017 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(20028), // Rule ID 75 //
6001 /* 20022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6002 /* 20025 */ // Combiner Rule #73: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
6003 /* 20025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6004 /* 20028 */ // Label 250: @20028
6005 /* 20028 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(20039), // Rule ID 104 //
6006 /* 20033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6007 /* 20036 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
6008 /* 20036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
6009 /* 20039 */ // Label 251: @20039
6010 /* 20039 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(20050), // Rule ID 142 //
6011 /* 20044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6012 /* 20047 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
6013 /* 20047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6014 /* 20050 */ // Label 252: @20050
6015 /* 20050 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(20081),
6016 /* 20055 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6017 /* 20058 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(20069), // Rule ID 372 //
6018 /* 20063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
6019 /* 20066 */ // MIs[0] dst
6020 /* 20066 */ // No operand predicates
6021 /* 20066 */ // MIs[0] unused
6022 /* 20066 */ // No operand predicates
6023 /* 20066 */ // Combiner Rule #223: combine_use_vector_truncate
6024 /* 20066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
6025 /* 20069 */ // Label 254: @20069
6026 /* 20069 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(20080), // Rule ID 382 //
6027 /* 20074 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6028 /* 20077 */ // MIs[0] dst
6029 /* 20077 */ // No operand predicates
6030 /* 20077 */ // MIs[0] unused
6031 /* 20077 */ // No operand predicates
6032 /* 20077 */ // Combiner Rule #233: combine_build_unmerge
6033 /* 20077 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6034 /* 20080 */ // Label 255: @20080
6035 /* 20080 */ GIM_Reject,
6036 /* 20081 */ // Label 253: @20081
6037 /* 20081 */ GIM_Reject,
6038 /* 20082 */ // Label 15: @20082
6039 /* 20082 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(20093), // Rule ID 141 //
6040 /* 20087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6041 /* 20090 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
6042 /* 20090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6043 /* 20093 */ // Label 256: @20093
6044 /* 20093 */ GIM_Reject,
6045 /* 20094 */ // Label 16: @20094
6046 /* 20094 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(20105), // Rule ID 365 //
6047 /* 20099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6048 /* 20102 */ // Combiner Rule #216: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
6049 /* 20102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
6050 /* 20105 */ // Label 257: @20105
6051 /* 20105 */ GIM_Reject,
6052 /* 20106 */ // Label 17: @20106
6053 /* 20106 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(20127), // Rule ID 134 //
6054 /* 20111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6055 /* 20114 */ // MIs[0] dst
6056 /* 20114 */ // No operand predicates
6057 /* 20114 */ // MIs[0] t
6058 /* 20114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6059 /* 20118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
6060 /* 20122 */ // MIs[1] ptr
6061 /* 20122 */ // No operand predicates
6062 /* 20122 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6063 /* 20124 */ // Combiner Rule #96: i2p_to_p2i
6064 /* 20124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6065 /* 20127 */ // Label 258: @20127
6066 /* 20127 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(20148), // Rule ID 96 //
6067 /* 20132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6068 /* 20135 */ // MIs[0] dst
6069 /* 20135 */ // No operand predicates
6070 /* 20135 */ // MIs[0] __unary_undef_to_undef_match_0.x
6071 /* 20135 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6072 /* 20139 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6073 /* 20143 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6074 /* 20145 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
6075 /* 20145 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6076 /* 20148 */ // Label 259: @20148
6077 /* 20148 */ GIM_Reject,
6078 /* 20149 */ // Label 18: @20149
6079 /* 20149 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(20160), // Rule ID 133 //
6080 /* 20154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6081 /* 20157 */ // Combiner Rule #95: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
6082 /* 20157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
6083 /* 20160 */ // Label 260: @20160
6084 /* 20160 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(20181), // Rule ID 97 //
6085 /* 20165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6086 /* 20168 */ // MIs[0] dst
6087 /* 20168 */ // No operand predicates
6088 /* 20168 */ // MIs[0] __unary_undef_to_undef_match_0.x
6089 /* 20168 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6090 /* 20172 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6091 /* 20176 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6092 /* 20178 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
6093 /* 20178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6094 /* 20181 */ // Label 261: @20181
6095 /* 20181 */ GIM_Reject,
6096 /* 20182 */ // Label 19: @20182
6097 /* 20182 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(20203), // Rule ID 145 //
6098 /* 20187 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
6099 /* 20190 */ // MIs[0] dst
6100 /* 20190 */ // No operand predicates
6101 /* 20190 */ // MIs[0] src1
6102 /* 20190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6103 /* 20194 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6104 /* 20198 */ // MIs[1] src0
6105 /* 20198 */ // No operand predicates
6106 /* 20198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6107 /* 20200 */ // Combiner Rule #105: bitcast_bitcast_fold
6108 /* 20200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
6109 /* 20203 */ // Label 262: @20203
6110 /* 20203 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(20224), // Rule ID 94 //
6111 /* 20208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6112 /* 20211 */ // MIs[0] dst
6113 /* 20211 */ // No operand predicates
6114 /* 20211 */ // MIs[0] __unary_undef_to_undef_match_0.x
6115 /* 20211 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6116 /* 20215 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6117 /* 20219 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6118 /* 20221 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
6119 /* 20221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6120 /* 20224 */ // Label 263: @20224
6121 /* 20224 */ GIM_Reject,
6122 /* 20225 */ // Label 20: @20225
6123 /* 20225 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(20254), // Rule ID 24 //
6124 /* 20230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6125 /* 20233 */ // MIs[0] dst
6126 /* 20233 */ // No operand predicates
6127 /* 20233 */ // MIs[0] src
6128 /* 20233 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6129 /* 20237 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
6130 /* 20241 */ // MIs[1] __idempotent_prop_match_0.x
6131 /* 20241 */ // No operand predicates
6132 /* 20241 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6133 /* 20246 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6134 /* 20248 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
6135 /* 20248 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6136 /* 20253 */ GIR_EraseRootFromParent_Done,
6137 /* 20254 */ // Label 264: @20254
6138 /* 20254 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(20277), // Rule ID 49 //
6139 /* 20259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6140 /* 20262 */ // MIs[0] root
6141 /* 20262 */ // No operand predicates
6142 /* 20262 */ // MIs[0] src
6143 /* 20262 */ // No operand predicates
6144 /* 20262 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
6145 /* 20266 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6146 /* 20271 */ // Combiner Rule #47: freeze_of_non_undef_non_poison
6147 /* 20271 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6148 /* 20276 */ GIR_EraseRootFromParent_Done,
6149 /* 20277 */ // Label 265: @20277
6150 /* 20277 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(20288), // Rule ID 50 //
6151 /* 20282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6152 /* 20285 */ // MIs[0] dst
6153 /* 20285 */ // No operand predicates
6154 /* 20285 */ // MIs[0] src
6155 /* 20285 */ // No operand predicates
6156 /* 20285 */ // Combiner Rule #48: push_freeze_to_prevent_poison_from_propagating
6157 /* 20285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
6158 /* 20288 */ // Label 266: @20288
6159 /* 20288 */ GIM_Reject,
6160 /* 20289 */ // Label 21: @20289
6161 /* 20289 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(20310), // Rule ID 194 //
6162 /* 20294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
6163 /* 20297 */ // MIs[0] dst
6164 /* 20297 */ // No operand predicates
6165 /* 20297 */ // MIs[0] src0
6166 /* 20297 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6167 /* 20301 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6168 /* 20305 */ // MIs[1] cst
6169 /* 20305 */ // No operand predicates
6170 /* 20305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6171 /* 20307 */ // Combiner Rule #150: constant_fold_intrinsic_trunc
6172 /* 20307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6173 /* 20310 */ // Label 267: @20310
6174 /* 20310 */ GIM_Reject,
6175 /* 20311 */ // Label 22: @20311
6176 /* 20311 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(20332), // Rule ID 195 //
6177 /* 20316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6178 /* 20319 */ // MIs[0] dst
6179 /* 20319 */ // No operand predicates
6180 /* 20319 */ // MIs[0] src0
6181 /* 20319 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6182 /* 20323 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6183 /* 20327 */ // MIs[1] cst
6184 /* 20327 */ // No operand predicates
6185 /* 20327 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6186 /* 20329 */ // Combiner Rule #151: constant_fold_intrinsic_round
6187 /* 20329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6188 /* 20332 */ // Label 268: @20332
6189 /* 20332 */ GIM_Reject,
6190 /* 20333 */ // Label 23: @20333
6191 /* 20333 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(20354), // Rule ID 196 //
6192 /* 20338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
6193 /* 20341 */ // MIs[0] dst
6194 /* 20341 */ // No operand predicates
6195 /* 20341 */ // MIs[0] src0
6196 /* 20341 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6197 /* 20345 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6198 /* 20349 */ // MIs[1] cst
6199 /* 20349 */ // No operand predicates
6200 /* 20349 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6201 /* 20351 */ // Combiner Rule #152: constant_fold_intrinsic_roundeven
6202 /* 20351 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6203 /* 20354 */ // Label 269: @20354
6204 /* 20354 */ GIM_Reject,
6205 /* 20355 */ // Label 24: @20355
6206 /* 20355 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(20366), // Rule ID 76 //
6207 /* 20360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6208 /* 20363 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_LOAD'
6209 /* 20363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6210 /* 20366 */ // Label 270: @20366
6211 /* 20366 */ GIM_Reject,
6212 /* 20367 */ // Label 25: @20367
6213 /* 20367 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(20378), // Rule ID 77 //
6214 /* 20372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6215 /* 20375 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_SEXTLOAD'
6216 /* 20375 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6217 /* 20378 */ // Label 271: @20378
6218 /* 20378 */ GIM_Reject,
6219 /* 20379 */ // Label 26: @20379
6220 /* 20379 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(20390), // Rule ID 78 //
6221 /* 20384 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6222 /* 20387 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
6223 /* 20387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6224 /* 20390 */ // Label 272: @20390
6225 /* 20390 */ GIM_Reject,
6226 /* 20391 */ // Label 27: @20391
6227 /* 20391 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(20402), // Rule ID 106 //
6228 /* 20396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6229 /* 20399 */ // Combiner Rule #87: erase_undef_store; wip_match_opcode 'G_STORE'
6230 /* 20399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
6231 /* 20402 */ // Label 273: @20402
6232 /* 20402 */ GIM_Reject,
6233 /* 20403 */ // Label 28: @20403
6234 /* 20403 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(20414), // Rule ID 412 //
6235 /* 20408 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6236 /* 20411 */ // Combiner Rule #254: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
6237 /* 20411 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
6238 /* 20414 */ // Label 274: @20414
6239 /* 20414 */ GIM_Reject,
6240 /* 20415 */ // Label 29: @20415
6241 /* 20415 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(20426), // Rule ID 135 //
6242 /* 20420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
6243 /* 20423 */ // Combiner Rule #97: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
6244 /* 20423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
6245 /* 20426 */ // Label 275: @20426
6246 /* 20426 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(20437), // Rule ID 279 //
6247 /* 20431 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6248 /* 20434 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
6249 /* 20434 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6250 /* 20437 */ // Label 276: @20437
6251 /* 20437 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(20458), // Rule ID 63 //
6252 /* 20442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
6253 /* 20445 */ // MIs[0] root
6254 /* 20445 */ // No operand predicates
6255 /* 20445 */ // MIs[0] select
6256 /* 20445 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6257 /* 20449 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6258 /* 20453 */ // MIs[1] cond
6259 /* 20453 */ // No operand predicates
6260 /* 20453 */ // MIs[1] true
6261 /* 20453 */ // No operand predicates
6262 /* 20453 */ // MIs[1] false
6263 /* 20453 */ // No operand predicates
6264 /* 20453 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6265 /* 20455 */ // Combiner Rule #61: select_of_anyext
6266 /* 20455 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6267 /* 20458 */ // Label 277: @20458
6268 /* 20458 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(20479), // Rule ID 58 //
6269 /* 20463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6270 /* 20466 */ // MIs[0] root
6271 /* 20466 */ // No operand predicates
6272 /* 20466 */ // MIs[0] second
6273 /* 20466 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6274 /* 20470 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6275 /* 20474 */ // MIs[1] src
6276 /* 20474 */ // No operand predicates
6277 /* 20474 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6278 /* 20476 */ // Combiner Rule #56: anyext_of_anyext
6279 /* 20476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6280 /* 20479 */ // Label 278: @20479
6281 /* 20479 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(20500), // Rule ID 60 //
6282 /* 20484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
6283 /* 20487 */ // MIs[0] root
6284 /* 20487 */ // No operand predicates
6285 /* 20487 */ // MIs[0] second
6286 /* 20487 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6287 /* 20491 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6288 /* 20495 */ // MIs[1] src
6289 /* 20495 */ // No operand predicates
6290 /* 20495 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6291 /* 20497 */ // Combiner Rule #58: anyext_of_sext
6292 /* 20497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6293 /* 20500 */ // Label 279: @20500
6294 /* 20500 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(20521), // Rule ID 59 //
6295 /* 20505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
6296 /* 20508 */ // MIs[0] root
6297 /* 20508 */ // No operand predicates
6298 /* 20508 */ // MIs[0] second
6299 /* 20508 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6300 /* 20512 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6301 /* 20516 */ // MIs[1] src
6302 /* 20516 */ // No operand predicates
6303 /* 20516 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6304 /* 20518 */ // Combiner Rule #57: anyext_of_zext
6305 /* 20518 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6306 /* 20521 */ // Label 280: @20521
6307 /* 20521 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(20542), // Rule ID 95 //
6308 /* 20526 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6309 /* 20529 */ // MIs[0] dst
6310 /* 20529 */ // No operand predicates
6311 /* 20529 */ // MIs[0] __unary_undef_to_undef_match_0.x
6312 /* 20529 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6313 /* 20533 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6314 /* 20537 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6315 /* 20539 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
6316 /* 20539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6317 /* 20542 */ // Label 281: @20542
6318 /* 20542 */ GIM_Reject,
6319 /* 20543 */ // Label 30: @20543
6320 /* 20543 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(20554), // Rule ID 143 //
6321 /* 20548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
6322 /* 20551 */ // Combiner Rule #103: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
6323 /* 20551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
6324 /* 20554 */ // Label 282: @20554
6325 /* 20554 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(20565), // Rule ID 144 //
6326 /* 20559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
6327 /* 20562 */ // Combiner Rule #104: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
6328 /* 20562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
6329 /* 20565 */ // Label 283: @20565
6330 /* 20565 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(20576), // Rule ID 183 //
6331 /* 20570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
6332 /* 20573 */ // Combiner Rule #139: trunc_shift; wip_match_opcode 'G_TRUNC'
6333 /* 20573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
6334 /* 20576 */ // Label 284: @20576
6335 /* 20576 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(20597), // Rule ID 64 //
6336 /* 20581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
6337 /* 20584 */ // MIs[0] root
6338 /* 20584 */ // No operand predicates
6339 /* 20584 */ // MIs[0] select
6340 /* 20584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6341 /* 20588 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6342 /* 20592 */ // MIs[1] cond
6343 /* 20592 */ // No operand predicates
6344 /* 20592 */ // MIs[1] true
6345 /* 20592 */ // No operand predicates
6346 /* 20592 */ // MIs[1] false
6347 /* 20592 */ // No operand predicates
6348 /* 20592 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6349 /* 20594 */ // Combiner Rule #62: select_of_truncate
6350 /* 20594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6351 /* 20597 */ // Label 285: @20597
6352 /* 20597 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(20626), // Rule ID 66 //
6353 /* 20602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
6354 /* 20605 */ // MIs[0] root
6355 /* 20605 */ // No operand predicates
6356 /* 20605 */ // MIs[0] binop
6357 /* 20605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6358 /* 20609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6359 /* 20613 */ // MIs[1] x
6360 /* 20613 */ // No operand predicates
6361 /* 20613 */ // MIs[1] const
6362 /* 20613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6363 /* 20617 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6364 /* 20621 */ // MIs[2] imm
6365 /* 20621 */ // No operand predicates
6366 /* 20621 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6367 /* 20623 */ // Combiner Rule #64: narrow_binop_add
6368 /* 20623 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6369 /* 20626 */ // Label 286: @20626
6370 /* 20626 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(20655), // Rule ID 69 //
6371 /* 20631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
6372 /* 20634 */ // MIs[0] root
6373 /* 20634 */ // No operand predicates
6374 /* 20634 */ // MIs[0] binop
6375 /* 20634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6376 /* 20638 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6377 /* 20642 */ // MIs[1] x
6378 /* 20642 */ // No operand predicates
6379 /* 20642 */ // MIs[1] const
6380 /* 20642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6381 /* 20646 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6382 /* 20650 */ // MIs[2] imm
6383 /* 20650 */ // No operand predicates
6384 /* 20650 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6385 /* 20652 */ // Combiner Rule #67: narrow_binop_and
6386 /* 20652 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6387 /* 20655 */ // Label 287: @20655
6388 /* 20655 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(20684), // Rule ID 68 //
6389 /* 20660 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6390 /* 20663 */ // MIs[0] root
6391 /* 20663 */ // No operand predicates
6392 /* 20663 */ // MIs[0] binop
6393 /* 20663 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6394 /* 20667 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
6395 /* 20671 */ // MIs[1] x
6396 /* 20671 */ // No operand predicates
6397 /* 20671 */ // MIs[1] const
6398 /* 20671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6399 /* 20675 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6400 /* 20679 */ // MIs[2] imm
6401 /* 20679 */ // No operand predicates
6402 /* 20679 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6403 /* 20681 */ // Combiner Rule #66: narrow_binop_mul
6404 /* 20681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6405 /* 20684 */ // Label 288: @20684
6406 /* 20684 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(20713), // Rule ID 70 //
6407 /* 20689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
6408 /* 20692 */ // MIs[0] root
6409 /* 20692 */ // No operand predicates
6410 /* 20692 */ // MIs[0] binop
6411 /* 20692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6412 /* 20696 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6413 /* 20700 */ // MIs[1] x
6414 /* 20700 */ // No operand predicates
6415 /* 20700 */ // MIs[1] const
6416 /* 20700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6417 /* 20704 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6418 /* 20708 */ // MIs[2] imm
6419 /* 20708 */ // No operand predicates
6420 /* 20708 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6421 /* 20710 */ // Combiner Rule #68: narrow_binop_or
6422 /* 20710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6423 /* 20713 */ // Label 289: @20713
6424 /* 20713 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(20742), // Rule ID 67 //
6425 /* 20718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6426 /* 20721 */ // MIs[0] root
6427 /* 20721 */ // No operand predicates
6428 /* 20721 */ // MIs[0] binop
6429 /* 20721 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6430 /* 20725 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6431 /* 20729 */ // MIs[1] x
6432 /* 20729 */ // No operand predicates
6433 /* 20729 */ // MIs[1] const
6434 /* 20729 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6435 /* 20733 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6436 /* 20737 */ // MIs[2] imm
6437 /* 20737 */ // No operand predicates
6438 /* 20737 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6439 /* 20739 */ // Combiner Rule #65: narrow_binop_sub
6440 /* 20739 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6441 /* 20742 */ // Label 290: @20742
6442 /* 20742 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(20774), // Rule ID 389 //
6443 /* 20747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6444 /* 20750 */ // MIs[0] dst
6445 /* 20750 */ // No operand predicates
6446 /* 20750 */ // MIs[0] min
6447 /* 20750 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6448 /* 20754 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
6449 /* 20758 */ // MIs[1] x
6450 /* 20758 */ // No operand predicates
6451 /* 20758 */ // MIs[1] y
6452 /* 20758 */ // No operand predicates
6453 /* 20758 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
6454 /* 20762 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6455 /* 20764 */ // Combiner Rule #238: trunc_usatu
6456 /* 20764 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
6457 /* 20767 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6458 /* 20769 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6459 /* 20773 */ GIR_EraseRootFromParent_Done,
6460 /* 20774 */ // Label 291: @20774
6461 /* 20774 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(20803), // Rule ID 71 //
6462 /* 20779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
6463 /* 20782 */ // MIs[0] root
6464 /* 20782 */ // No operand predicates
6465 /* 20782 */ // MIs[0] binop
6466 /* 20782 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6467 /* 20786 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6468 /* 20790 */ // MIs[1] x
6469 /* 20790 */ // No operand predicates
6470 /* 20790 */ // MIs[1] const
6471 /* 20790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6472 /* 20794 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6473 /* 20798 */ // MIs[2] imm
6474 /* 20798 */ // No operand predicates
6475 /* 20798 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6476 /* 20800 */ // Combiner Rule #69: narrow_binop_xor
6477 /* 20800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6478 /* 20803 */ // Label 292: @20803
6479 /* 20803 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(20824), // Rule ID 53 //
6480 /* 20808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
6481 /* 20811 */ // MIs[0] root
6482 /* 20811 */ // No operand predicates
6483 /* 20811 */ // MIs[0] ext
6484 /* 20811 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6485 /* 20815 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6486 /* 20819 */ // MIs[1] src
6487 /* 20819 */ // No operand predicates
6488 /* 20819 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6489 /* 20821 */ // Combiner Rule #51: truncate_of_anyext
6490 /* 20821 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6491 /* 20824 */ // Label 293: @20824
6492 /* 20824 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(20848), // Rule ID 65 //
6493 /* 20829 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
6494 /* 20832 */ // MIs[0] root
6495 /* 20832 */ // No operand predicates
6496 /* 20832 */ // MIs[0] bv
6497 /* 20832 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6498 /* 20836 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
6499 /* 20840 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
6500 /* 20843 */ // MIs[1] unused
6501 /* 20843 */ // No operand predicates
6502 /* 20843 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6503 /* 20845 */ // Combiner Rule #63: buildvector_of_truncate
6504 /* 20845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
6505 /* 20848 */ // Label 294: @20848
6506 /* 20848 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(20869), // Rule ID 52 //
6507 /* 20853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
6508 /* 20856 */ // MIs[0] root
6509 /* 20856 */ // No operand predicates
6510 /* 20856 */ // MIs[0] ext
6511 /* 20856 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6512 /* 20860 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6513 /* 20864 */ // MIs[1] src
6514 /* 20864 */ // No operand predicates
6515 /* 20864 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6516 /* 20866 */ // Combiner Rule #50: truncate_of_sext
6517 /* 20866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6518 /* 20869 */ // Label 295: @20869
6519 /* 20869 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(20890), // Rule ID 51 //
6520 /* 20874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
6521 /* 20877 */ // MIs[0] root
6522 /* 20877 */ // No operand predicates
6523 /* 20877 */ // MIs[0] ext
6524 /* 20877 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6525 /* 20881 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6526 /* 20885 */ // MIs[1] src
6527 /* 20885 */ // No operand predicates
6528 /* 20885 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6529 /* 20887 */ // Combiner Rule #49: truncate_of_zext
6530 /* 20887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6531 /* 20890 */ // Label 296: @20890
6532 /* 20890 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(20911), // Rule ID 93 //
6533 /* 20895 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6534 /* 20898 */ // MIs[0] dst
6535 /* 20898 */ // No operand predicates
6536 /* 20898 */ // MIs[0] __unary_undef_to_undef_match_0.x
6537 /* 20898 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6538 /* 20902 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6539 /* 20906 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6540 /* 20908 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
6541 /* 20908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6542 /* 20911 */ // Label 297: @20911
6543 /* 20911 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(20932), // Rule ID 72 //
6544 /* 20916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
6545 /* 20919 */ // MIs[0] root
6546 /* 20919 */ // No operand predicates
6547 /* 20919 */ // MIs[0] int
6548 /* 20919 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6549 /* 20923 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6550 /* 20927 */ // MIs[1] imm
6551 /* 20927 */ // No operand predicates
6552 /* 20927 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6553 /* 20929 */ // Combiner Rule #70: integer_of_truncate
6554 /* 20929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
6555 /* 20932 */ // Label 298: @20932
6556 /* 20932 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(20943), // Rule ID 387 //
6557 /* 20937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6558 /* 20940 */ // MIs[0] dst
6559 /* 20940 */ // No operand predicates
6560 /* 20940 */ // MIs[0] src
6561 /* 20940 */ // No operand predicates
6562 /* 20940 */ // Combiner Rule #236: trunc_ssats
6563 /* 20940 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6564 /* 20943 */ // Label 299: @20943
6565 /* 20943 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(20954), // Rule ID 388 //
6566 /* 20948 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6567 /* 20951 */ // MIs[0] dst
6568 /* 20951 */ // No operand predicates
6569 /* 20951 */ // MIs[0] src
6570 /* 20951 */ // No operand predicates
6571 /* 20951 */ // Combiner Rule #237: trunc_ssatu
6572 /* 20951 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6573 /* 20954 */ // Label 300: @20954
6574 /* 20954 */ GIM_Reject,
6575 /* 20955 */ // Label 31: @20955
6576 /* 20955 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(20987), // Rule ID 390 //
6577 /* 20960 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6578 /* 20963 */ // MIs[0] dst
6579 /* 20963 */ // No operand predicates
6580 /* 20963 */ // MIs[0] src
6581 /* 20963 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6582 /* 20967 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
6583 /* 20971 */ // MIs[1] x
6584 /* 20971 */ // No operand predicates
6585 /* 20971 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
6586 /* 20975 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6587 /* 20977 */ // Combiner Rule #239: truncusatu_to_fptouisat
6588 /* 20977 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
6589 /* 20980 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6590 /* 20982 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6591 /* 20986 */ GIR_EraseRootFromParent_Done,
6592 /* 20987 */ // Label 301: @20987
6593 /* 20987 */ GIM_Reject,
6594 /* 20988 */ // Label 32: @20988
6595 /* 20988 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(20999), // Rule ID 278 //
6596 /* 20993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6597 /* 20996 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
6598 /* 20996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6599 /* 20999 */ // Label 302: @20999
6600 /* 20999 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(21020), // Rule ID 57 //
6601 /* 21004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
6602 /* 21007 */ // MIs[0] root
6603 /* 21007 */ // No operand predicates
6604 /* 21007 */ // MIs[0] second
6605 /* 21007 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6606 /* 21011 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6607 /* 21015 */ // MIs[1] src
6608 /* 21015 */ // No operand predicates
6609 /* 21015 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6610 /* 21017 */ // Combiner Rule #55: sext_of_anyext
6611 /* 21017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6612 /* 21020 */ // Label 303: @21020
6613 /* 21020 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(21041), // Rule ID 56 //
6614 /* 21025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
6615 /* 21028 */ // MIs[0] root
6616 /* 21028 */ // No operand predicates
6617 /* 21028 */ // MIs[0] second
6618 /* 21028 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6619 /* 21032 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6620 /* 21036 */ // MIs[1] src
6621 /* 21036 */ // No operand predicates
6622 /* 21036 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6623 /* 21038 */ // Combiner Rule #54: sext_of_sext
6624 /* 21038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6625 /* 21041 */ // Label 304: @21041
6626 /* 21041 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(21062), // Rule ID 366 //
6627 /* 21046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6628 /* 21049 */ // MIs[0] root
6629 /* 21049 */ // No operand predicates
6630 /* 21049 */ // MIs[0] src
6631 /* 21049 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6632 /* 21053 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6633 /* 21057 */ // MIs[1] x
6634 /* 21057 */ // No operand predicates
6635 /* 21057 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6636 /* 21059 */ // Combiner Rule #217: sext_trunc
6637 /* 21059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6638 /* 21062 */ // Label 305: @21062
6639 /* 21062 */ GIM_Reject,
6640 /* 21063 */ // Label 33: @21063
6641 /* 21063 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(21074), // Rule ID 170 //
6642 /* 21068 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
6643 /* 21071 */ // Combiner Rule #126: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
6644 /* 21071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6645 /* 21074 */ // Label 306: @21074
6646 /* 21074 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(21085), // Rule ID 178 //
6647 /* 21079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6648 /* 21082 */ // Combiner Rule #134: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6649 /* 21082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6650 /* 21085 */ // Label 307: @21085
6651 /* 21085 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(21096), // Rule ID 247 //
6652 /* 21090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6653 /* 21093 */ // Combiner Rule #180: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6654 /* 21093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6655 /* 21096 */ // Label 308: @21096
6656 /* 21096 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(21107), // Rule ID 415 //
6657 /* 21101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
6658 /* 21104 */ // Combiner Rule #256: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
6659 /* 21104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
6660 /* 21107 */ // Label 309: @21107
6661 /* 21107 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(21128), // Rule ID 61 //
6662 /* 21112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
6663 /* 21115 */ // MIs[0] dst
6664 /* 21115 */ // No operand predicates
6665 /* 21115 */ // MIs[0] x
6666 /* 21115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6667 /* 21119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6668 /* 21123 */ // MIs[1] src
6669 /* 21123 */ // No operand predicates
6670 /* 21123 */ // MIs[1] a
6671 /* 21123 */ // No operand predicates
6672 /* 21123 */ // MIs[0] b
6673 /* 21123 */ // No operand predicates
6674 /* 21123 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6675 /* 21125 */ // Combiner Rule #59: sext_inreg_of_sext_inreg
6676 /* 21125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
6677 /* 21128 */ // Label 310: @21128
6678 /* 21128 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(21139), // Rule ID 182 //
6679 /* 21133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6680 /* 21136 */ // MIs[0] dst
6681 /* 21136 */ // No operand predicates
6682 /* 21136 */ // MIs[0] src
6683 /* 21136 */ // No operand predicates
6684 /* 21136 */ // MIs[0] imm
6685 /* 21136 */ // No operand predicates
6686 /* 21136 */ // Combiner Rule #138: sext_inreg_to_zext_inreg
6687 /* 21136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6688 /* 21139 */ // Label 311: @21139
6689 /* 21139 */ GIM_Reject,
6690 /* 21140 */ // Label 34: @21140
6691 /* 21140 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(21151), // Rule ID 181 //
6692 /* 21145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
6693 /* 21148 */ // Combiner Rule #137: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
6694 /* 21148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
6695 /* 21151 */ // Label 312: @21151
6696 /* 21151 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(21162), // Rule ID 277 //
6697 /* 21156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6698 /* 21159 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
6699 /* 21159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6700 /* 21162 */ // Label 313: @21162
6701 /* 21162 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(21183), // Rule ID 62 //
6702 /* 21167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
6703 /* 21170 */ // MIs[0] root
6704 /* 21170 */ // No operand predicates
6705 /* 21170 */ // MIs[0] select
6706 /* 21170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6707 /* 21174 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6708 /* 21178 */ // MIs[1] cond
6709 /* 21178 */ // No operand predicates
6710 /* 21178 */ // MIs[1] true
6711 /* 21178 */ // No operand predicates
6712 /* 21178 */ // MIs[1] false
6713 /* 21178 */ // No operand predicates
6714 /* 21178 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6715 /* 21180 */ // Combiner Rule #60: select_of_zext
6716 /* 21180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6717 /* 21183 */ // Label 314: @21183
6718 /* 21183 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(21204), // Rule ID 55 //
6719 /* 21188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
6720 /* 21191 */ // MIs[0] root
6721 /* 21191 */ // No operand predicates
6722 /* 21191 */ // MIs[0] second
6723 /* 21191 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6724 /* 21195 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6725 /* 21199 */ // MIs[1] src
6726 /* 21199 */ // No operand predicates
6727 /* 21199 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6728 /* 21201 */ // Combiner Rule #53: zext_of_anyext
6729 /* 21201 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6730 /* 21204 */ // Label 315: @21204
6731 /* 21204 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(21231), // Rule ID 367 //
6732 /* 21209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6733 /* 21212 */ // MIs[0] root
6734 /* 21212 */ // No operand predicates
6735 /* 21212 */ // MIs[0] src
6736 /* 21212 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6737 /* 21216 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6738 /* 21220 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
6739 /* 21226 */ // MIs[1] x
6740 /* 21226 */ // No operand predicates
6741 /* 21226 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6742 /* 21228 */ // Combiner Rule #218: zext_trunc
6743 /* 21228 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6744 /* 21231 */ // Label 316: @21231
6745 /* 21231 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(21252), // Rule ID 54 //
6746 /* 21236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
6747 /* 21239 */ // MIs[0] root
6748 /* 21239 */ // No operand predicates
6749 /* 21239 */ // MIs[0] second
6750 /* 21239 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6751 /* 21243 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6752 /* 21247 */ // MIs[1] src
6753 /* 21247 */ // No operand predicates
6754 /* 21247 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6755 /* 21249 */ // Combiner Rule #52: zext_of_zext
6756 /* 21249 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6757 /* 21252 */ // Label 317: @21252
6758 /* 21252 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(21269), // Rule ID 368 //
6759 /* 21257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
6760 /* 21260 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
6761 /* 21266 */ // MIs[0] root
6762 /* 21266 */ // No operand predicates
6763 /* 21266 */ // MIs[0] x
6764 /* 21266 */ // No operand predicates
6765 /* 21266 */ // Combiner Rule #219: nneg_zext
6766 /* 21266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6767 /* 21269 */ // Label 318: @21269
6768 /* 21269 */ GIM_Reject,
6769 /* 21270 */ // Label 35: @21270
6770 /* 21270 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(21281), // Rule ID 86 //
6771 /* 21275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
6772 /* 21278 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
6773 /* 21278 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6774 /* 21281 */ // Label 319: @21281
6775 /* 21281 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(21292), // Rule ID 89 //
6776 /* 21286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6777 /* 21289 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
6778 /* 21289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6779 /* 21292 */ // Label 320: @21292
6780 /* 21292 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(21303), // Rule ID 218 //
6781 /* 21297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6782 /* 21300 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_SHL'
6783 /* 21300 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6784 /* 21303 */ // Label 321: @21303
6785 /* 21303 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(21314), // Rule ID 223 //
6786 /* 21308 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6787 /* 21311 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
6788 /* 21311 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6789 /* 21314 */ // Label 322: @21314
6790 /* 21314 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(21325), // Rule ID 246 //
6791 /* 21319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6792 /* 21322 */ // Combiner Rule #179: commute_shift; wip_match_opcode 'G_SHL'
6793 /* 21322 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6794 /* 21325 */ // Label 323: @21325
6795 /* 21325 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(21336), // Rule ID 260 //
6796 /* 21330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6797 /* 21333 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SHL'
6798 /* 21333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6799 /* 21336 */ // Label 324: @21336
6800 /* 21336 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(21347), // Rule ID 309 //
6801 /* 21341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
6802 /* 21344 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SHL'
6803 /* 21344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6804 /* 21347 */ // Label 325: @21347
6805 /* 21347 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(21382), // Rule ID 47 //
6806 /* 21352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6807 /* 21355 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6808 /* 21361 */ // MIs[0] root
6809 /* 21361 */ // No operand predicates
6810 /* 21361 */ // MIs[0] left
6811 /* 21361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6812 /* 21365 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6813 /* 21369 */ // MIs[1] imm
6814 /* 21369 */ // No operand predicates
6815 /* 21369 */ // MIs[0] x
6816 /* 21369 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6817 /* 21373 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6818 /* 21377 */ // MIs[2] imm1
6819 /* 21377 */ // No operand predicates
6820 /* 21377 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6821 /* 21379 */ // Combiner Rule #45: shl_of_vscale
6822 /* 21379 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
6823 /* 21382 */ // Label 326: @21382
6824 /* 21382 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(21422), // Rule ID 124 //
6825 /* 21387 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6826 /* 21390 */ // MIs[0] dst
6827 /* 21390 */ // No operand predicates
6828 /* 21390 */ // MIs[0] zero
6829 /* 21390 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6830 /* 21394 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6831 /* 21398 */ // MIs[1] Operand 1
6832 /* 21398 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6833 /* 21409 */ // MIs[0] rhs
6834 /* 21409 */ // No operand predicates
6835 /* 21409 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6836 /* 21414 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6837 /* 21416 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
6838 /* 21416 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6839 /* 21421 */ GIR_EraseRootFromParent_Done,
6840 /* 21422 */ // Label 327: @21422
6841 /* 21422 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(21445), // Rule ID 114 //
6842 /* 21427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6843 /* 21430 */ // MIs[0] dst
6844 /* 21430 */ // No operand predicates
6845 /* 21430 */ // MIs[0] lhs
6846 /* 21430 */ // No operand predicates
6847 /* 21430 */ // MIs[0] Operand 2
6848 /* 21430 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6849 /* 21434 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6850 /* 21439 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
6851 /* 21439 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6852 /* 21444 */ GIR_EraseRootFromParent_Done,
6853 /* 21445 */ // Label 328: @21445
6854 /* 21445 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(21456), // Rule ID 155 //
6855 /* 21450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6856 /* 21453 */ // MIs[0] root
6857 /* 21453 */ // No operand predicates
6858 /* 21453 */ // MIs[0] mi.shifted
6859 /* 21453 */ // No operand predicates
6860 /* 21453 */ // MIs[0] mi.amt
6861 /* 21453 */ // No operand predicates
6862 /* 21453 */ // Combiner Rule #113: shifts_too_big @ [mi[0]]
6863 /* 21453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6864 /* 21456 */ // Label 329: @21456
6865 /* 21456 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(21467), // Rule ID 171 //
6866 /* 21461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6867 /* 21464 */ // MIs[0] dst
6868 /* 21464 */ // No operand predicates
6869 /* 21464 */ // MIs[0] src0
6870 /* 21464 */ // No operand predicates
6871 /* 21464 */ // MIs[0] src1
6872 /* 21464 */ // No operand predicates
6873 /* 21464 */ // Combiner Rule #127: reduce_shl_of_extend
6874 /* 21464 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6875 /* 21467 */ // Label 330: @21467
6876 /* 21467 */ GIM_Reject,
6877 /* 21468 */ // Label 36: @21468
6878 /* 21468 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(21479), // Rule ID 91 //
6879 /* 21473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6880 /* 21476 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
6881 /* 21476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6882 /* 21479 */ // Label 331: @21479
6883 /* 21479 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(21490), // Rule ID 220 //
6884 /* 21484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6885 /* 21487 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_LSHR'
6886 /* 21487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6887 /* 21490 */ // Label 332: @21490
6888 /* 21490 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(21501), // Rule ID 225 //
6889 /* 21495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6890 /* 21498 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
6891 /* 21498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6892 /* 21501 */ // Label 333: @21501
6893 /* 21501 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(21512), // Rule ID 250 //
6894 /* 21506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6895 /* 21509 */ // Combiner Rule #182: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
6896 /* 21509 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6897 /* 21512 */ // Label 334: @21512
6898 /* 21512 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(21523), // Rule ID 252 //
6899 /* 21517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6900 /* 21520 */ // Combiner Rule #183: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
6901 /* 21520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6902 /* 21523 */ // Label 335: @21523
6903 /* 21523 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(21534), // Rule ID 257 //
6904 /* 21528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6905 /* 21531 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_LSHR'
6906 /* 21531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6907 /* 21534 */ // Label 336: @21534
6908 /* 21534 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(21545), // Rule ID 307 //
6909 /* 21539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
6910 /* 21542 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_LSHR'
6911 /* 21542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6912 /* 21545 */ // Label 337: @21545
6913 /* 21545 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(21574), // Rule ID 391 //
6914 /* 21550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6915 /* 21553 */ // MIs[0] dst
6916 /* 21553 */ // No operand predicates
6917 /* 21553 */ // MIs[0] d2
6918 /* 21553 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6919 /* 21557 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6920 /* 21561 */ // MIs[1] d1
6921 /* 21561 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6922 /* 21565 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6923 /* 21569 */ // MIs[2] x
6924 /* 21569 */ // No operand predicates
6925 /* 21569 */ // MIs[2] y
6926 /* 21569 */ // No operand predicates
6927 /* 21569 */ // MIs[0] z
6928 /* 21569 */ // No operand predicates
6929 /* 21569 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6930 /* 21571 */ // Combiner Rule #240: lshr_of_trunc_of_lshr
6931 /* 21571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6932 /* 21574 */ // Label 338: @21574
6933 /* 21574 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(21614), // Rule ID 125 //
6934 /* 21579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6935 /* 21582 */ // MIs[0] dst
6936 /* 21582 */ // No operand predicates
6937 /* 21582 */ // MIs[0] zero
6938 /* 21582 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6939 /* 21586 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6940 /* 21590 */ // MIs[1] Operand 1
6941 /* 21590 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6942 /* 21601 */ // MIs[0] rhs
6943 /* 21601 */ // No operand predicates
6944 /* 21601 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6945 /* 21606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6946 /* 21608 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
6947 /* 21608 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6948 /* 21613 */ GIR_EraseRootFromParent_Done,
6949 /* 21614 */ // Label 339: @21614
6950 /* 21614 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(21637), // Rule ID 116 //
6951 /* 21619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6952 /* 21622 */ // MIs[0] dst
6953 /* 21622 */ // No operand predicates
6954 /* 21622 */ // MIs[0] lhs
6955 /* 21622 */ // No operand predicates
6956 /* 21622 */ // MIs[0] Operand 2
6957 /* 21622 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6958 /* 21626 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6959 /* 21631 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
6960 /* 21631 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6961 /* 21636 */ GIR_EraseRootFromParent_Done,
6962 /* 21637 */ // Label 340: @21637
6963 /* 21637 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(21648), // Rule ID 157 //
6964 /* 21642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6965 /* 21645 */ // MIs[0] root
6966 /* 21645 */ // No operand predicates
6967 /* 21645 */ // MIs[0] mi.shifted
6968 /* 21645 */ // No operand predicates
6969 /* 21645 */ // MIs[0] mi.amt
6970 /* 21645 */ // No operand predicates
6971 /* 21645 */ // Combiner Rule #113: shifts_too_big @ [mi[2]]
6972 /* 21645 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6973 /* 21648 */ // Label 341: @21648
6974 /* 21648 */ GIM_Reject,
6975 /* 21649 */ // Label 37: @21649
6976 /* 21649 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(21660), // Rule ID 90 //
6977 /* 21654 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6978 /* 21657 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
6979 /* 21657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6980 /* 21660 */ // Label 342: @21660
6981 /* 21660 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(21671), // Rule ID 168 //
6982 /* 21665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
6983 /* 21668 */ // Combiner Rule #124: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
6984 /* 21668 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6985 /* 21671 */ // Label 343: @21671
6986 /* 21671 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(21682), // Rule ID 219 //
6987 /* 21676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6988 /* 21679 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_ASHR'
6989 /* 21679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6990 /* 21682 */ // Label 344: @21682
6991 /* 21682 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(21693), // Rule ID 224 //
6992 /* 21687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6993 /* 21690 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
6994 /* 21690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6995 /* 21693 */ // Label 345: @21693
6996 /* 21693 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(21704), // Rule ID 249 //
6997 /* 21698 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6998 /* 21701 */ // Combiner Rule #182: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
6999 /* 21701 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
7000 /* 21704 */ // Label 346: @21704
7001 /* 21704 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(21715), // Rule ID 251 //
7002 /* 21709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7003 /* 21712 */ // Combiner Rule #183: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
7004 /* 21712 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7005 /* 21715 */ // Label 347: @21715
7006 /* 21715 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(21726), // Rule ID 256 //
7007 /* 21720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7008 /* 21723 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_ASHR'
7009 /* 21723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7010 /* 21726 */ // Label 348: @21726
7011 /* 21726 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(21737), // Rule ID 308 //
7012 /* 21731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7013 /* 21734 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_ASHR'
7014 /* 21734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7015 /* 21737 */ // Label 349: @21737
7016 /* 21737 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(21777), // Rule ID 126 //
7017 /* 21742 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7018 /* 21745 */ // MIs[0] dst
7019 /* 21745 */ // No operand predicates
7020 /* 21745 */ // MIs[0] zero
7021 /* 21745 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7022 /* 21749 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7023 /* 21753 */ // MIs[1] Operand 1
7024 /* 21753 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7025 /* 21764 */ // MIs[0] rhs
7026 /* 21764 */ // No operand predicates
7027 /* 21764 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7028 /* 21769 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7029 /* 21771 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
7030 /* 21771 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7031 /* 21776 */ GIR_EraseRootFromParent_Done,
7032 /* 21777 */ // Label 350: @21777
7033 /* 21777 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(21800), // Rule ID 115 //
7034 /* 21782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7035 /* 21785 */ // MIs[0] dst
7036 /* 21785 */ // No operand predicates
7037 /* 21785 */ // MIs[0] lhs
7038 /* 21785 */ // No operand predicates
7039 /* 21785 */ // MIs[0] Operand 2
7040 /* 21785 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7041 /* 21789 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7042 /* 21794 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
7043 /* 21794 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7044 /* 21799 */ GIR_EraseRootFromParent_Done,
7045 /* 21800 */ // Label 351: @21800
7046 /* 21800 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(21811), // Rule ID 156 //
7047 /* 21805 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
7048 /* 21808 */ // MIs[0] root
7049 /* 21808 */ // No operand predicates
7050 /* 21808 */ // MIs[0] mi.shifted
7051 /* 21808 */ // No operand predicates
7052 /* 21808 */ // MIs[0] mi.amt
7053 /* 21808 */ // No operand predicates
7054 /* 21808 */ // Combiner Rule #113: shifts_too_big @ [mi[1]]
7055 /* 21808 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7056 /* 21811 */ // Label 352: @21811
7057 /* 21811 */ GIM_Reject,
7058 /* 21812 */ // Label 38: @21812
7059 /* 21812 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(21823), // Rule ID 234 //
7060 /* 21817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
7061 /* 21820 */ // Combiner Rule #171: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
7062 /* 21820 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7063 /* 21823 */ // Label 353: @21823
7064 /* 21823 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(21834), // Rule ID 238 //
7065 /* 21828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7066 /* 21831 */ // Combiner Rule #174: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
7067 /* 21831 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7068 /* 21834 */ // Label 354: @21834
7069 /* 21834 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(21854), // Rule ID 237 //
7070 /* 21839 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7071 /* 21842 */ // MIs[0] x
7072 /* 21842 */ // No operand predicates
7073 /* 21842 */ // MIs[0] y
7074 /* 21842 */ // No operand predicates
7075 /* 21842 */ // MIs[0] z
7076 /* 21842 */ // No operand predicates
7077 /* 21842 */ // MIs[0] Operand 3
7078 /* 21842 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7079 /* 21846 */ // Combiner Rule #173: funnel_shift_left_zero
7080 /* 21846 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7081 /* 21849 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7082 /* 21851 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
7083 /* 21853 */ GIR_EraseRootFromParent_Done,
7084 /* 21854 */ // Label 355: @21854
7085 /* 21854 */ GIM_Reject,
7086 /* 21855 */ // Label 39: @21855
7087 /* 21855 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(21866), // Rule ID 235 //
7088 /* 21860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
7089 /* 21863 */ // Combiner Rule #171: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
7090 /* 21863 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7091 /* 21866 */ // Label 356: @21866
7092 /* 21866 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(21877), // Rule ID 239 //
7093 /* 21871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7094 /* 21874 */ // Combiner Rule #174: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
7095 /* 21874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7096 /* 21877 */ // Label 357: @21877
7097 /* 21877 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(21897), // Rule ID 236 //
7098 /* 21882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
7099 /* 21885 */ // MIs[0] x
7100 /* 21885 */ // No operand predicates
7101 /* 21885 */ // MIs[0] y
7102 /* 21885 */ // No operand predicates
7103 /* 21885 */ // MIs[0] z
7104 /* 21885 */ // No operand predicates
7105 /* 21885 */ // MIs[0] Operand 3
7106 /* 21885 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7107 /* 21889 */ // Combiner Rule #172: funnel_shift_right_zero
7108 /* 21889 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7109 /* 21892 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7110 /* 21894 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
7111 /* 21896 */ GIR_EraseRootFromParent_Done,
7112 /* 21897 */ // Label 358: @21897
7113 /* 21897 */ GIM_Reject,
7114 /* 21898 */ // Label 40: @21898
7115 /* 21898 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(21921), // Rule ID 119 //
7116 /* 21903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7117 /* 21906 */ // MIs[0] dst
7118 /* 21906 */ // No operand predicates
7119 /* 21906 */ // MIs[0] lhs
7120 /* 21906 */ // No operand predicates
7121 /* 21906 */ // MIs[0] Operand 2
7122 /* 21906 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7123 /* 21910 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7124 /* 21915 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
7125 /* 21915 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7126 /* 21920 */ GIR_EraseRootFromParent_Done,
7127 /* 21921 */ // Label 359: @21921
7128 /* 21921 */ GIM_Reject,
7129 /* 21922 */ // Label 41: @21922
7130 /* 21922 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(21945), // Rule ID 118 //
7131 /* 21927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7132 /* 21930 */ // MIs[0] dst
7133 /* 21930 */ // No operand predicates
7134 /* 21930 */ // MIs[0] lhs
7135 /* 21930 */ // No operand predicates
7136 /* 21930 */ // MIs[0] Operand 2
7137 /* 21930 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7138 /* 21934 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7139 /* 21939 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
7140 /* 21939 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7141 /* 21944 */ GIR_EraseRootFromParent_Done,
7142 /* 21945 */ // Label 360: @21945
7143 /* 21945 */ GIM_Reject,
7144 /* 21946 */ // Label 42: @21946
7145 /* 21946 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(21957), // Rule ID 163 //
7146 /* 21951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
7147 /* 21954 */ // Combiner Rule #119: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
7148 /* 21954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7149 /* 21957 */ // Label 361: @21957
7150 /* 21957 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(21968), // Rule ID 164 //
7151 /* 21962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
7152 /* 21965 */ // Combiner Rule #120: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
7153 /* 21965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
7154 /* 21968 */ // Label 362: @21968
7155 /* 21968 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(21979), // Rule ID 167 //
7156 /* 21973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
7157 /* 21976 */ // Combiner Rule #123: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
7158 /* 21976 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7159 /* 21979 */ // Label 363: @21979
7160 /* 21979 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(21990), // Rule ID 161 //
7161 /* 21984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
7162 /* 21987 */ // MIs[0] root
7163 /* 21987 */ // No operand predicates
7164 /* 21987 */ // MIs[0] pred
7165 /* 21987 */ // No operand predicates
7166 /* 21987 */ // MIs[0] lhs
7167 /* 21987 */ // No operand predicates
7168 /* 21987 */ // MIs[0] rhs
7169 /* 21987 */ // No operand predicates
7170 /* 21987 */ // Combiner Rule #117: canonicalize_icmp
7171 /* 21987 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
7172 /* 21990 */ // Label 364: @21990
7173 /* 21990 */ GIM_Reject,
7174 /* 21991 */ // Label 43: @21991
7175 /* 21991 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(22002), // Rule ID 162 //
7176 /* 21996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7177 /* 21999 */ // MIs[0] root
7178 /* 21999 */ // No operand predicates
7179 /* 21999 */ // MIs[0] pred
7180 /* 21999 */ // No operand predicates
7181 /* 21999 */ // MIs[0] lhs
7182 /* 21999 */ // No operand predicates
7183 /* 21999 */ // MIs[0] rhs
7184 /* 21999 */ // No operand predicates
7185 /* 21999 */ // Combiner Rule #118: canonicalize_fcmp
7186 /* 21999 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
7187 /* 22002 */ // Label 365: @22002
7188 /* 22002 */ GIM_Reject,
7189 /* 22003 */ // Label 44: @22003
7190 /* 22003 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(22014), // Rule ID 109 //
7191 /* 22008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
7192 /* 22011 */ // Combiner Rule #89: select_same_val; wip_match_opcode 'G_SELECT'
7193 /* 22011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
7194 /* 22014 */ // Label 366: @22014
7195 /* 22014 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(22025), // Rule ID 174 //
7196 /* 22019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
7197 /* 22022 */ // Combiner Rule #130: select_constant_cmp; wip_match_opcode 'G_SELECT'
7198 /* 22022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7199 /* 22025 */ // Label 367: @22025
7200 /* 22025 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(22036), // Rule ID 176 //
7201 /* 22030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
7202 /* 22033 */ // Combiner Rule #132: match_selects; wip_match_opcode 'G_SELECT'
7203 /* 22033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
7204 /* 22036 */ // Label 368: @22036
7205 /* 22036 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(22047), // Rule ID 331 //
7206 /* 22041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7207 /* 22044 */ // Combiner Rule #209: select_to_minmax; wip_match_opcode 'G_SELECT'
7208 /* 22044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
7209 /* 22047 */ // Label 369: @22047
7210 /* 22047 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(22074), // Rule ID 401 //
7211 /* 22052 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
7212 /* 22055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7213 /* 22058 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
7214 /* 22061 */ // MIs[0] cond
7215 /* 22061 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7216 /* 22065 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
7217 /* 22069 */ // MIs[1] pred
7218 /* 22069 */ // No operand predicates
7219 /* 22069 */ // MIs[1] lhs
7220 /* 22069 */ // No operand predicates
7221 /* 22069 */ // MIs[1] rhs
7222 /* 22069 */ // No operand predicates
7223 /* 22069 */ // MIs[0] true
7224 /* 22069 */ // No operand predicates
7225 /* 22069 */ // MIs[0] false
7226 /* 22069 */ // No operand predicates
7227 /* 22069 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7228 /* 22071 */ // Combiner Rule #247: fcmp_select_to_fmin_fmax_legacy
7229 /* 22071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
7230 /* 22074 */ // Label 370: @22074
7231 /* 22074 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(22095), // Rule ID 175 //
7232 /* 22079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
7233 /* 22082 */ // MIs[0] root
7234 /* 22082 */ // No operand predicates
7235 /* 22082 */ // MIs[0] tst
7236 /* 22082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7237 /* 22086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
7238 /* 22090 */ // MIs[1] tst1
7239 /* 22090 */ // No operand predicates
7240 /* 22090 */ // MIs[1] a
7241 /* 22090 */ // No operand predicates
7242 /* 22090 */ // MIs[1] b
7243 /* 22090 */ // No operand predicates
7244 /* 22090 */ // MIs[0] x
7245 /* 22090 */ // No operand predicates
7246 /* 22090 */ // MIs[0] y
7247 /* 22090 */ // No operand predicates
7248 /* 22090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7249 /* 22092 */ // Combiner Rule #131: select_to_iminmax
7250 /* 22092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
7251 /* 22095 */ // Label 371: @22095
7252 /* 22095 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(22124), // Rule ID 173 //
7253 /* 22100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
7254 /* 22103 */ // MIs[0] dst
7255 /* 22103 */ // No operand predicates
7256 /* 22103 */ // MIs[0] undef
7257 /* 22103 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7258 /* 22107 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7259 /* 22111 */ // MIs[0] x
7260 /* 22111 */ // No operand predicates
7261 /* 22111 */ // MIs[0] y
7262 /* 22111 */ // No operand predicates
7263 /* 22111 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
7264 /* 22116 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7265 /* 22118 */ // Combiner Rule #129: select_undef_cmp
7266 /* 22118 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
7267 /* 22123 */ GIR_EraseRootFromParent_Done,
7268 /* 22124 */ // Label 372: @22124
7269 /* 22124 */ GIM_Reject,
7270 /* 22125 */ // Label 45: @22125
7271 /* 22125 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(22136), // Rule ID 342 //
7272 /* 22130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7273 /* 22133 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
7274 /* 22133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7275 /* 22136 */ // Label 373: @22136
7276 /* 22136 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(22147), // Rule ID 384 //
7277 /* 22141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
7278 /* 22144 */ // Combiner Rule #234: match_addos; wip_match_opcode 'G_UADDO'
7279 /* 22144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7280 /* 22147 */ // Label 374: @22147
7281 /* 22147 */ GIM_Reject,
7282 /* 22148 */ // Label 46: @22148
7283 /* 22148 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(22159), // Rule ID 207 //
7284 /* 22153 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7285 /* 22156 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_UADDE'
7286 /* 22156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7287 /* 22159 */ // Label 375: @22159
7288 /* 22159 */ GIM_Reject,
7289 /* 22160 */ // Label 47: @22160
7290 /* 22160 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(22171), // Rule ID 386 //
7291 /* 22165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
7292 /* 22168 */ // Combiner Rule #235: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
7293 /* 22168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7294 /* 22171 */ // Label 376: @22171
7295 /* 22171 */ GIM_Reject,
7296 /* 22172 */ // Label 48: @22172
7297 /* 22172 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(22183), // Rule ID 209 //
7298 /* 22177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7299 /* 22180 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_USUBE'
7300 /* 22180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7301 /* 22183 */ // Label 377: @22183
7302 /* 22183 */ GIM_Reject,
7303 /* 22184 */ // Label 49: @22184
7304 /* 22184 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(22195), // Rule ID 343 //
7305 /* 22189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7306 /* 22192 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
7307 /* 22192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7308 /* 22195 */ // Label 378: @22195
7309 /* 22195 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(22206), // Rule ID 383 //
7310 /* 22200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
7311 /* 22203 */ // Combiner Rule #234: match_addos; wip_match_opcode 'G_SADDO'
7312 /* 22203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7313 /* 22206 */ // Label 379: @22206
7314 /* 22206 */ GIM_Reject,
7315 /* 22207 */ // Label 50: @22207
7316 /* 22207 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(22218), // Rule ID 208 //
7317 /* 22212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7318 /* 22215 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_SADDE'
7319 /* 22215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7320 /* 22218 */ // Label 380: @22218
7321 /* 22218 */ GIM_Reject,
7322 /* 22219 */ // Label 51: @22219
7323 /* 22219 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(22230), // Rule ID 385 //
7324 /* 22224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
7325 /* 22227 */ // Combiner Rule #235: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
7326 /* 22227 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7327 /* 22230 */ // Label 381: @22230
7328 /* 22230 */ GIM_Reject,
7329 /* 22231 */ // Label 52: @22231
7330 /* 22231 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(22242), // Rule ID 210 //
7331 /* 22236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7332 /* 22239 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_SSUBE'
7333 /* 22239 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7334 /* 22242 */ // Label 382: @22242
7335 /* 22242 */ GIM_Reject,
7336 /* 22243 */ // Label 53: @22243
7337 /* 22243 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(22254), // Rule ID 203 //
7338 /* 22248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7339 /* 22251 */ // Combiner Rule #159: mulo_by_2; wip_match_opcode 'G_UMULO'
7340 /* 22251 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7341 /* 22254 */ // Label 383: @22254
7342 /* 22254 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(22265), // Rule ID 205 //
7343 /* 22259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7344 /* 22262 */ // Combiner Rule #160: mulo_by_0; wip_match_opcode 'G_UMULO'
7345 /* 22262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7346 /* 22265 */ // Label 384: @22265
7347 /* 22265 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(22276), // Rule ID 344 //
7348 /* 22270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7349 /* 22273 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
7350 /* 22273 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7351 /* 22276 */ // Label 385: @22276
7352 /* 22276 */ GIM_Reject,
7353 /* 22277 */ // Label 54: @22277
7354 /* 22277 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(22288), // Rule ID 204 //
7355 /* 22282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7356 /* 22285 */ // Combiner Rule #159: mulo_by_2; wip_match_opcode 'G_SMULO'
7357 /* 22285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7358 /* 22288 */ // Label 386: @22288
7359 /* 22288 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(22299), // Rule ID 206 //
7360 /* 22293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7361 /* 22296 */ // Combiner Rule #160: mulo_by_0; wip_match_opcode 'G_SMULO'
7362 /* 22296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7363 /* 22299 */ // Label 387: @22299
7364 /* 22299 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(22310), // Rule ID 345 //
7365 /* 22304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7366 /* 22307 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
7367 /* 22307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7368 /* 22310 */ // Label 388: @22310
7369 /* 22310 */ GIM_Reject,
7370 /* 22311 */ // Label 55: @22311
7371 /* 22311 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(22322), // Rule ID 281 //
7372 /* 22316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7373 /* 22319 */ // Combiner Rule #189: mulh_to_lshr; wip_match_opcode 'G_UMULH'
7374 /* 22319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7375 /* 22322 */ // Label 389: @22322
7376 /* 22322 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(22333), // Rule ID 346 //
7377 /* 22327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7378 /* 22330 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
7379 /* 22330 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7380 /* 22333 */ // Label 390: @22333
7381 /* 22333 */ GIM_Reject,
7382 /* 22334 */ // Label 56: @22334
7383 /* 22334 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(22345), // Rule ID 347 //
7384 /* 22339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7385 /* 22342 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
7386 /* 22342 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7387 /* 22345 */ // Label 391: @22345
7388 /* 22345 */ GIM_Reject,
7389 /* 22346 */ // Label 57: @22346
7390 /* 22346 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(22357), // Rule ID 348 //
7391 /* 22351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7392 /* 22354 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
7393 /* 22354 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7394 /* 22357 */ // Label 392: @22357
7395 /* 22357 */ GIM_Reject,
7396 /* 22358 */ // Label 58: @22358
7397 /* 22358 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(22369), // Rule ID 349 //
7398 /* 22363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7399 /* 22366 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
7400 /* 22366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7401 /* 22369 */ // Label 393: @22369
7402 /* 22369 */ GIM_Reject,
7403 /* 22370 */ // Label 59: @22370
7404 /* 22370 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(22381), // Rule ID 222 //
7405 /* 22375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
7406 /* 22378 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
7407 /* 22378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7408 /* 22381 */ // Label 394: @22381
7409 /* 22381 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(22392), // Rule ID 226 //
7410 /* 22386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
7411 /* 22389 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
7412 /* 22389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7413 /* 22392 */ // Label 395: @22392
7414 /* 22392 */ GIM_Reject,
7415 /* 22393 */ // Label 60: @22393
7416 /* 22393 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(22404), // Rule ID 221 //
7417 /* 22398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
7418 /* 22401 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
7419 /* 22401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7420 /* 22404 */ // Label 396: @22404
7421 /* 22404 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(22415), // Rule ID 227 //
7422 /* 22409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
7423 /* 22412 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
7424 /* 22412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7425 /* 22415 */ // Label 397: @22415
7426 /* 22415 */ GIM_Reject,
7427 /* 22416 */ // Label 61: @22416
7428 /* 22416 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(22427), // Rule ID 350 //
7429 /* 22421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7430 /* 22424 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
7431 /* 22424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7432 /* 22427 */ // Label 398: @22427
7433 /* 22427 */ GIM_Reject,
7434 /* 22428 */ // Label 62: @22428
7435 /* 22428 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(22439), // Rule ID 351 //
7436 /* 22433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7437 /* 22436 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
7438 /* 22436 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7439 /* 22439 */ // Label 399: @22439
7440 /* 22439 */ GIM_Reject,
7441 /* 22440 */ // Label 63: @22440
7442 /* 22440 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(22451), // Rule ID 352 //
7443 /* 22445 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7444 /* 22448 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
7445 /* 22448 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7446 /* 22451 */ // Label 400: @22451
7447 /* 22451 */ GIM_Reject,
7448 /* 22452 */ // Label 64: @22452
7449 /* 22452 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(22463), // Rule ID 353 //
7450 /* 22457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7451 /* 22460 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
7452 /* 22460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7453 /* 22463 */ // Label 401: @22463
7454 /* 22463 */ GIM_Reject,
7455 /* 22464 */ // Label 65: @22464
7456 /* 22464 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(22475), // Rule ID 271 //
7457 /* 22469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7458 /* 22472 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
7459 /* 22472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7460 /* 22475 */ // Label 402: @22475
7461 /* 22475 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(22486), // Rule ID 282 //
7462 /* 22480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7463 /* 22483 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FADD'
7464 /* 22483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7465 /* 22486 */ // Label 403: @22486
7466 /* 22486 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(22497), // Rule ID 289 //
7467 /* 22491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7468 /* 22494 */ // Combiner Rule #192: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7469 /* 22494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
7470 /* 22497 */ // Label 404: @22497
7471 /* 22497 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(22508), // Rule ID 290 //
7472 /* 22502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
7473 /* 22505 */ // Combiner Rule #193: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7474 /* 22505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
7475 /* 22508 */ // Label 405: @22508
7476 /* 22508 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(22519), // Rule ID 291 //
7477 /* 22513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7478 /* 22516 */ // Combiner Rule #194: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7479 /* 22516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7480 /* 22519 */ // Label 406: @22519
7481 /* 22519 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(22530), // Rule ID 292 //
7482 /* 22524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7483 /* 22527 */ // Combiner Rule #195: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7484 /* 22527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7485 /* 22530 */ // Label 407: @22530
7486 /* 22530 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(22541), // Rule ID 315 //
7487 /* 22535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7488 /* 22538 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FADD'
7489 /* 22538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7490 /* 22541 */ // Label 408: @22541
7491 /* 22541 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(22552), // Rule ID 354 //
7492 /* 22546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7493 /* 22549 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
7494 /* 22549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7495 /* 22552 */ // Label 409: @22552
7496 /* 22552 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(22575), // Rule ID 147 //
7497 /* 22557 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
7498 /* 22560 */ // MIs[0] dst
7499 /* 22560 */ // No operand predicates
7500 /* 22560 */ // MIs[0] x
7501 /* 22560 */ // No operand predicates
7502 /* 22560 */ // MIs[0] y
7503 /* 22560 */ // No operand predicates
7504 /* 22560 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
7505 /* 22564 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7506 /* 22569 */ // Combiner Rule #107: right_identity_neg_zero_fp
7507 /* 22569 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7508 /* 22574 */ GIR_EraseRootFromParent_Done,
7509 /* 22575 */ // Label 410: @22575
7510 /* 22575 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(22604), // Rule ID 148 //
7511 /* 22580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
7512 /* 22583 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
7513 /* 22589 */ // MIs[0] dst
7514 /* 22589 */ // No operand predicates
7515 /* 22589 */ // MIs[0] x
7516 /* 22589 */ // No operand predicates
7517 /* 22589 */ // MIs[0] y
7518 /* 22589 */ // No operand predicates
7519 /* 22589 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
7520 /* 22593 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7521 /* 22598 */ // Combiner Rule #108: right_identity_neg_zero_fp_nsz
7522 /* 22598 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7523 /* 22603 */ GIR_EraseRootFromParent_Done,
7524 /* 22604 */ // Label 411: @22604
7525 /* 22604 */ GIM_Reject,
7526 /* 22605 */ // Label 66: @22605
7527 /* 22605 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(22616), // Rule ID 272 //
7528 /* 22610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7529 /* 22613 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
7530 /* 22613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7531 /* 22616 */ // Label 412: @22616
7532 /* 22616 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(22627), // Rule ID 283 //
7533 /* 22621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7534 /* 22624 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FSUB'
7535 /* 22624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7536 /* 22627 */ // Label 413: @22627
7537 /* 22627 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(22638), // Rule ID 293 //
7538 /* 22632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
7539 /* 22635 */ // Combiner Rule #196: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7540 /* 22635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7541 /* 22638 */ // Label 414: @22638
7542 /* 22638 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(22649), // Rule ID 294 //
7543 /* 22643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7544 /* 22646 */ // Combiner Rule #197: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7545 /* 22646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7546 /* 22649 */ // Label 415: @22649
7547 /* 22649 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(22660), // Rule ID 295 //
7548 /* 22654 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
7549 /* 22657 */ // Combiner Rule #198: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7550 /* 22657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7551 /* 22660 */ // Label 416: @22660
7552 /* 22660 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(22671), // Rule ID 296 //
7553 /* 22665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
7554 /* 22668 */ // Combiner Rule #199: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7555 /* 22668 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7556 /* 22671 */ // Label 417: @22671
7557 /* 22671 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(22682), // Rule ID 316 //
7558 /* 22676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7559 /* 22679 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FSUB'
7560 /* 22679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7561 /* 22682 */ // Label 418: @22682
7562 /* 22682 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(22693), // Rule ID 332 //
7563 /* 22687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7564 /* 22690 */ // Combiner Rule #210: fsub_to_fneg; wip_match_opcode 'G_FSUB'
7565 /* 22690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7566 /* 22693 */ // Label 419: @22693
7567 /* 22693 */ GIM_Reject,
7568 /* 22694 */ // Label 67: @22694
7569 /* 22694 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(22705), // Rule ID 273 //
7570 /* 22699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7571 /* 22702 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
7572 /* 22702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7573 /* 22705 */ // Label 420: @22705
7574 /* 22705 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(22716), // Rule ID 284 //
7575 /* 22710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7576 /* 22713 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMUL'
7577 /* 22713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7578 /* 22716 */ // Label 421: @22716
7579 /* 22716 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(22727), // Rule ID 314 //
7580 /* 22721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7581 /* 22724 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMUL'
7582 /* 22724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7583 /* 22727 */ // Label 422: @22727
7584 /* 22727 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(22738), // Rule ID 355 //
7585 /* 22732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7586 /* 22735 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
7587 /* 22735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7588 /* 22738 */ // Label 423: @22738
7589 /* 22738 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(22759), // Rule ID 403 //
7590 /* 22743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
7591 /* 22746 */ // MIs[0] dst
7592 /* 22746 */ // No operand predicates
7593 /* 22746 */ // MIs[0] x
7594 /* 22746 */ // No operand predicates
7595 /* 22746 */ // MIs[0] select
7596 /* 22746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7597 /* 22750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7598 /* 22754 */ // MIs[1] y
7599 /* 22754 */ // No operand predicates
7600 /* 22754 */ // MIs[1] A
7601 /* 22754 */ // No operand predicates
7602 /* 22754 */ // MIs[1] B
7603 /* 22754 */ // No operand predicates
7604 /* 22754 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7605 /* 22756 */ // Combiner Rule #249: combine_fmul_with_select_to_fldexp
7606 /* 22756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
7607 /* 22759 */ // Label 424: @22759
7608 /* 22759 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(22782), // Rule ID 138 //
7609 /* 22764 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
7610 /* 22767 */ // MIs[0] dst
7611 /* 22767 */ // No operand predicates
7612 /* 22767 */ // MIs[0] x
7613 /* 22767 */ // No operand predicates
7614 /* 22767 */ // MIs[0] y
7615 /* 22767 */ // No operand predicates
7616 /* 22767 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7617 /* 22771 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7618 /* 22776 */ // Combiner Rule #100: right_identity_one_fp
7619 /* 22776 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7620 /* 22781 */ GIR_EraseRootFromParent_Done,
7621 /* 22782 */ // Label 425: @22782
7622 /* 22782 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(22802), // Rule ID 149 //
7623 /* 22787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
7624 /* 22790 */ // MIs[0] dst
7625 /* 22790 */ // No operand predicates
7626 /* 22790 */ // MIs[0] x
7627 /* 22790 */ // No operand predicates
7628 /* 22790 */ // MIs[0] y
7629 /* 22790 */ // No operand predicates
7630 /* 22790 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7631 /* 22794 */ // Combiner Rule #109: right_identity_neg_one_fp
7632 /* 22794 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
7633 /* 22797 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7634 /* 22799 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7635 /* 22801 */ GIR_EraseRootFromParent_Done,
7636 /* 22802 */ // Label 426: @22802
7637 /* 22802 */ GIM_Reject,
7638 /* 22803 */ // Label 68: @22803
7639 /* 22803 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(22814), // Rule ID 276 //
7640 /* 22808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7641 /* 22811 */ // Combiner Rule #186: constant_fold_fma; wip_match_opcode 'G_FMA'
7642 /* 22811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7643 /* 22814 */ // Label 427: @22814
7644 /* 22814 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(22825), // Rule ID 287 //
7645 /* 22819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7646 /* 22822 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMA'
7647 /* 22822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7648 /* 22825 */ // Label 428: @22825
7649 /* 22825 */ GIM_Reject,
7650 /* 22826 */ // Label 69: @22826
7651 /* 22826 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(22837), // Rule ID 275 //
7652 /* 22831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7653 /* 22834 */ // Combiner Rule #186: constant_fold_fma; wip_match_opcode 'G_FMAD'
7654 /* 22834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7655 /* 22837 */ // Label 429: @22837
7656 /* 22837 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(22848), // Rule ID 286 //
7657 /* 22842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7658 /* 22845 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMAD'
7659 /* 22845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7660 /* 22848 */ // Label 430: @22848
7661 /* 22848 */ GIM_Reject,
7662 /* 22849 */ // Label 70: @22849
7663 /* 22849 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(22860), // Rule ID 274 //
7664 /* 22854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7665 /* 22857 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
7666 /* 22857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7667 /* 22860 */ // Label 431: @22860
7668 /* 22860 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(22871), // Rule ID 285 //
7669 /* 22865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7670 /* 22868 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FDIV'
7671 /* 22868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7672 /* 22871 */ // Label 432: @22871
7673 /* 22871 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(22882), // Rule ID 317 //
7674 /* 22876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7675 /* 22879 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FDIV'
7676 /* 22879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7677 /* 22882 */ // Label 433: @22882
7678 /* 22882 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(22921), // Rule ID 414 //
7679 /* 22887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
7680 /* 22890 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
7681 /* 22893 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
7682 /* 22896 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7683 /* 22902 */ // MIs[0] y
7684 /* 22902 */ // No operand predicates
7685 /* 22902 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7686 /* 22906 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
7687 /* 22910 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7688 /* 22916 */ // MIs[1] x
7689 /* 22916 */ // No operand predicates
7690 /* 22916 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7691 /* 22918 */ // Combiner Rule #255: fdiv_by_sqrt_to_rsq_f16
7692 /* 22918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
7693 /* 22921 */ // Label 434: @22921
7694 /* 22921 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(22932), // Rule ID 329 //
7695 /* 22926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7696 /* 22929 */ // MIs[0] dst
7697 /* 22929 */ // No operand predicates
7698 /* 22929 */ // MIs[0] src1
7699 /* 22929 */ // No operand predicates
7700 /* 22929 */ // MIs[0] src2
7701 /* 22929 */ // No operand predicates
7702 /* 22929 */ // Combiner Rule #207: fdiv_repeated_divison
7703 /* 22929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7704 /* 22932 */ // Label 435: @22932
7705 /* 22932 */ GIM_Reject,
7706 /* 22933 */ // Label 71: @22933
7707 /* 22933 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(22944), // Rule ID 318 //
7708 /* 22938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7709 /* 22941 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FREM'
7710 /* 22941 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7711 /* 22944 */ // Label 436: @22944
7712 /* 22944 */ GIM_Reject,
7713 /* 22945 */ // Label 72: @22945
7714 /* 22945 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(22966), // Rule ID 215 //
7715 /* 22950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
7716 /* 22953 */ // MIs[0] dst
7717 /* 22953 */ // No operand predicates
7718 /* 22953 */ // MIs[0] float
7719 /* 22953 */ // No operand predicates
7720 /* 22953 */ // MIs[0] int
7721 /* 22953 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7722 /* 22957 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7723 /* 22961 */ // MIs[1] imm
7724 /* 22961 */ // No operand predicates
7725 /* 22961 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7726 /* 22963 */ // Combiner Rule #163: expand_const_fpowi
7727 /* 22963 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7728 /* 22966 */ // Label 437: @22966
7729 /* 22966 */ GIM_Reject,
7730 /* 22967 */ // Label 73: @22967
7731 /* 22967 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(22988), // Rule ID 189 //
7732 /* 22972 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
7733 /* 22975 */ // MIs[0] dst
7734 /* 22975 */ // No operand predicates
7735 /* 22975 */ // MIs[0] src0
7736 /* 22975 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7737 /* 22979 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7738 /* 22983 */ // MIs[1] cst
7739 /* 22983 */ // No operand predicates
7740 /* 22983 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7741 /* 22985 */ // Combiner Rule #145: constant_fold_flog2
7742 /* 22985 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7743 /* 22988 */ // Label 438: @22988
7744 /* 22988 */ GIM_Reject,
7745 /* 22989 */ // Label 74: @22989
7746 /* 22989 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(23000), // Rule ID 411 //
7747 /* 22994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7748 /* 22997 */ // Combiner Rule #253: foldable_fneg; wip_match_opcode 'G_FNEG'
7749 /* 22997 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
7750 /* 23000 */ // Label 439: @23000
7751 /* 23000 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(23021), // Rule ID 186 //
7752 /* 23005 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7753 /* 23008 */ // MIs[0] dst
7754 /* 23008 */ // No operand predicates
7755 /* 23008 */ // MIs[0] src0
7756 /* 23008 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7757 /* 23012 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7758 /* 23016 */ // MIs[1] cst
7759 /* 23016 */ // No operand predicates
7760 /* 23016 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7761 /* 23018 */ // Combiner Rule #142: constant_fold_fneg
7762 /* 23018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7763 /* 23021 */ // Label 440: @23021
7764 /* 23021 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(23050), // Rule ID 136 //
7765 /* 23026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
7766 /* 23029 */ // MIs[0] dst
7767 /* 23029 */ // No operand predicates
7768 /* 23029 */ // MIs[0] t
7769 /* 23029 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7770 /* 23033 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7771 /* 23037 */ // MIs[1] src
7772 /* 23037 */ // No operand predicates
7773 /* 23037 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7774 /* 23042 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7775 /* 23044 */ // Combiner Rule #98: fneg_fneg_fold
7776 /* 23044 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7777 /* 23049 */ GIR_EraseRootFromParent_Done,
7778 /* 23050 */ // Label 441: @23050
7779 /* 23050 */ GIM_Reject,
7780 /* 23051 */ // Label 75: @23051
7781 /* 23051 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(23072), // Rule ID 191 //
7782 /* 23056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
7783 /* 23059 */ // MIs[0] dst
7784 /* 23059 */ // No operand predicates
7785 /* 23059 */ // MIs[0] src0
7786 /* 23059 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7787 /* 23063 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7788 /* 23067 */ // MIs[1] cst
7789 /* 23067 */ // No operand predicates
7790 /* 23067 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7791 /* 23069 */ // Combiner Rule #147: constant_fold_fpext
7792 /* 23069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7793 /* 23072 */ // Label 442: @23072
7794 /* 23072 */ GIM_Reject,
7795 /* 23073 */ // Label 76: @23073
7796 /* 23073 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(23097), // Rule ID 402 //
7797 /* 23078 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
7798 /* 23081 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7799 /* 23084 */ // MIs[0] fptrunc_dst
7800 /* 23084 */ // No operand predicates
7801 /* 23084 */ // MIs[0] fmed3_dst
7802 /* 23084 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7803 /* 23088 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
7804 /* 23092 */ // MIs[1] src0
7805 /* 23092 */ // No operand predicates
7806 /* 23092 */ // MIs[1] src1
7807 /* 23092 */ // No operand predicates
7808 /* 23092 */ // MIs[1] src2
7809 /* 23092 */ // No operand predicates
7810 /* 23092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7811 /* 23094 */ // Combiner Rule #248: expand_promoted_fmed3
7812 /* 23094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
7813 /* 23097 */ // Label 443: @23097
7814 /* 23097 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(23118), // Rule ID 190 //
7815 /* 23102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
7816 /* 23105 */ // MIs[0] dst
7817 /* 23105 */ // No operand predicates
7818 /* 23105 */ // MIs[0] src0
7819 /* 23105 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7820 /* 23109 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7821 /* 23113 */ // MIs[1] cst
7822 /* 23113 */ // No operand predicates
7823 /* 23113 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7824 /* 23115 */ // Combiner Rule #146: constant_fold_fptrunc
7825 /* 23115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7826 /* 23118 */ // Label 444: @23118
7827 /* 23118 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(23139), // Rule ID 146 //
7828 /* 23123 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7829 /* 23126 */ // MIs[0] dst
7830 /* 23126 */ // No operand predicates
7831 /* 23126 */ // MIs[0] src1
7832 /* 23126 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7833 /* 23130 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
7834 /* 23134 */ // MIs[1] src0
7835 /* 23134 */ // No operand predicates
7836 /* 23134 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7837 /* 23136 */ // Combiner Rule #106: fptrunc_fpext_fold
7838 /* 23136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7839 /* 23139 */ // Label 445: @23139
7840 /* 23139 */ GIM_Reject,
7841 /* 23140 */ // Label 77: @23140
7842 /* 23140 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(23161), // Rule ID 98 //
7843 /* 23145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7844 /* 23148 */ // MIs[0] dst
7845 /* 23148 */ // No operand predicates
7846 /* 23148 */ // MIs[0] __unary_undef_to_undef_match_0.x
7847 /* 23148 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7848 /* 23152 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7849 /* 23156 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7850 /* 23158 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
7851 /* 23158 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7852 /* 23161 */ // Label 446: @23161
7853 /* 23161 */ GIM_Reject,
7854 /* 23162 */ // Label 78: @23162
7855 /* 23162 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(23183), // Rule ID 99 //
7856 /* 23167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7857 /* 23170 */ // MIs[0] dst
7858 /* 23170 */ // No operand predicates
7859 /* 23170 */ // MIs[0] __unary_undef_to_undef_match_0.x
7860 /* 23170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7861 /* 23174 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7862 /* 23178 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7863 /* 23180 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
7864 /* 23180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7865 /* 23183 */ // Label 447: @23183
7866 /* 23183 */ GIM_Reject,
7867 /* 23184 */ // Label 79: @23184
7868 /* 23184 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(23195), // Rule ID 82 //
7869 /* 23189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
7870 /* 23192 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
7871 /* 23192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7872 /* 23195 */ // Label 448: @23195
7873 /* 23195 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(23206), // Rule ID 405 //
7874 /* 23200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
7875 /* 23203 */ // Combiner Rule #250: uchar_to_float; wip_match_opcode 'G_SITOFP'
7876 /* 23203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
7877 /* 23206 */ // Label 449: @23206
7878 /* 23206 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(23221), // Rule ID 199 //
7879 /* 23211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7880 /* 23214 */ // MIs[0] dst
7881 /* 23214 */ // No operand predicates
7882 /* 23214 */ // MIs[0] Operand 1
7883 /* 23214 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7884 /* 23218 */ // Combiner Rule #155: itof_const_zero_fold_si
7885 /* 23218 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7886 /* 23221 */ // Label 450: @23221
7887 /* 23221 */ GIM_Reject,
7888 /* 23222 */ // Label 80: @23222
7889 /* 23222 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(23233), // Rule ID 81 //
7890 /* 23227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
7891 /* 23230 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
7892 /* 23230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7893 /* 23233 */ // Label 451: @23233
7894 /* 23233 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(23244), // Rule ID 404 //
7895 /* 23238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
7896 /* 23241 */ // Combiner Rule #250: uchar_to_float; wip_match_opcode 'G_UITOFP'
7897 /* 23241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
7898 /* 23244 */ // Label 452: @23244
7899 /* 23244 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(23259), // Rule ID 200 //
7900 /* 23249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7901 /* 23252 */ // MIs[0] dst
7902 /* 23252 */ // No operand predicates
7903 /* 23252 */ // MIs[0] Operand 1
7904 /* 23252 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7905 /* 23256 */ // Combiner Rule #156: itof_const_zero_fold_ui
7906 /* 23256 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7907 /* 23259 */ // Label 453: @23259
7908 /* 23259 */ GIM_Reject,
7909 /* 23260 */ // Label 81: @23260
7910 /* 23260 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(23289), // Rule ID 25 //
7911 /* 23265 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7912 /* 23268 */ // MIs[0] dst
7913 /* 23268 */ // No operand predicates
7914 /* 23268 */ // MIs[0] src
7915 /* 23268 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7916 /* 23272 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
7917 /* 23276 */ // MIs[1] __idempotent_prop_match_0.x
7918 /* 23276 */ // No operand predicates
7919 /* 23276 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7920 /* 23281 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7921 /* 23283 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
7922 /* 23283 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7923 /* 23288 */ GIR_EraseRootFromParent_Done,
7924 /* 23289 */ // Label 454: @23289
7925 /* 23289 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(23310), // Rule ID 187 //
7926 /* 23294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
7927 /* 23297 */ // MIs[0] dst
7928 /* 23297 */ // No operand predicates
7929 /* 23297 */ // MIs[0] src0
7930 /* 23297 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7931 /* 23301 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7932 /* 23305 */ // MIs[1] cst
7933 /* 23305 */ // No operand predicates
7934 /* 23305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7935 /* 23307 */ // Combiner Rule #143: constant_fold_fabs
7936 /* 23307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7937 /* 23310 */ // Label 455: @23310
7938 /* 23310 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(23338), // Rule ID 280 //
7939 /* 23315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
7940 /* 23318 */ // MIs[0] dst
7941 /* 23318 */ // No operand predicates
7942 /* 23318 */ // MIs[0] tmp
7943 /* 23318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7944 /* 23322 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7945 /* 23326 */ // MIs[1] x
7946 /* 23326 */ // No operand predicates
7947 /* 23326 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7948 /* 23328 */ // Combiner Rule #188: fabs_fneg_fold
7949 /* 23328 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
7950 /* 23331 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7951 /* 23333 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7952 /* 23337 */ GIR_EraseRootFromParent_Done,
7953 /* 23338 */ // Label 456: @23338
7954 /* 23338 */ GIM_Reject,
7955 /* 23339 */ // Label 82: @23339
7956 /* 23339 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(23350), // Rule ID 410 //
7957 /* 23344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7958 /* 23347 */ // Combiner Rule #252: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
7959 /* 23347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
7960 /* 23350 */ // Label 457: @23350
7961 /* 23350 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(23379), // Rule ID 26 //
7962 /* 23355 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7963 /* 23358 */ // MIs[0] dst
7964 /* 23358 */ // No operand predicates
7965 /* 23358 */ // MIs[0] src
7966 /* 23358 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7967 /* 23362 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
7968 /* 23366 */ // MIs[1] __idempotent_prop_match_0.x
7969 /* 23366 */ // No operand predicates
7970 /* 23366 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7971 /* 23371 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7972 /* 23373 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
7973 /* 23373 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7974 /* 23378 */ GIR_EraseRootFromParent_Done,
7975 /* 23379 */ // Label 458: @23379
7976 /* 23379 */ GIM_Reject,
7977 /* 23380 */ // Label 83: @23380
7978 /* 23380 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(23391), // Rule ID 211 //
7979 /* 23385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7980 /* 23388 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
7981 /* 23388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7982 /* 23391 */ // Label 459: @23391
7983 /* 23391 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(23402), // Rule ID 319 //
7984 /* 23396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7985 /* 23399 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
7986 /* 23399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7987 /* 23402 */ // Label 460: @23402
7988 /* 23402 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(23413), // Rule ID 356 //
7989 /* 23407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7990 /* 23410 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
7991 /* 23410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7992 /* 23413 */ // Label 461: @23413
7993 /* 23413 */ GIM_Reject,
7994 /* 23414 */ // Label 84: @23414
7995 /* 23414 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(23425), // Rule ID 212 //
7996 /* 23419 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7997 /* 23422 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
7998 /* 23422 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7999 /* 23425 */ // Label 462: @23425
8000 /* 23425 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(23436), // Rule ID 320 //
8001 /* 23430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8002 /* 23433 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
8003 /* 23433 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8004 /* 23436 */ // Label 463: @23436
8005 /* 23436 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(23447), // Rule ID 357 //
8006 /* 23441 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8007 /* 23444 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
8008 /* 23444 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8009 /* 23447 */ // Label 464: @23447
8010 /* 23447 */ GIM_Reject,
8011 /* 23448 */ // Label 85: @23448
8012 /* 23448 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(23459), // Rule ID 358 //
8013 /* 23453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8014 /* 23456 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
8015 /* 23456 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8016 /* 23459 */ // Label 465: @23459
8017 /* 23459 */ GIM_Reject,
8018 /* 23460 */ // Label 86: @23460
8019 /* 23460 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(23471), // Rule ID 359 //
8020 /* 23465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8021 /* 23468 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
8022 /* 23468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8023 /* 23471 */ // Label 466: @23471
8024 /* 23471 */ GIM_Reject,
8025 /* 23472 */ // Label 87: @23472
8026 /* 23472 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(23483), // Rule ID 213 //
8027 /* 23477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8028 /* 23480 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
8029 /* 23480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8030 /* 23483 */ // Label 467: @23483
8031 /* 23483 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(23494), // Rule ID 321 //
8032 /* 23488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8033 /* 23491 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
8034 /* 23491 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8035 /* 23494 */ // Label 468: @23494
8036 /* 23494 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(23505), // Rule ID 360 //
8037 /* 23499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8038 /* 23502 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
8039 /* 23502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8040 /* 23505 */ // Label 469: @23505
8041 /* 23505 */ GIM_Reject,
8042 /* 23506 */ // Label 88: @23506
8043 /* 23506 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(23517), // Rule ID 214 //
8044 /* 23511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8045 /* 23514 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
8046 /* 23514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8047 /* 23517 */ // Label 470: @23517
8048 /* 23517 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(23528), // Rule ID 322 //
8049 /* 23522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8050 /* 23525 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
8051 /* 23525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8052 /* 23528 */ // Label 471: @23528
8053 /* 23528 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(23539), // Rule ID 361 //
8054 /* 23533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8055 /* 23536 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
8056 /* 23536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8057 /* 23539 */ // Label 472: @23539
8058 /* 23539 */ GIM_Reject,
8059 /* 23540 */ // Label 89: @23540
8060 /* 23540 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(23551), // Rule ID 158 //
8061 /* 23545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8062 /* 23548 */ // Combiner Rule #114: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
8063 /* 23548 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
8064 /* 23551 */ // Label 473: @23551
8065 /* 23551 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(23562), // Rule ID 160 //
8066 /* 23556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
8067 /* 23559 */ // Combiner Rule #116: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
8068 /* 23559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
8069 /* 23562 */ // Label 474: @23562
8070 /* 23562 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(23573), // Rule ID 201 //
8071 /* 23567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
8072 /* 23570 */ // Combiner Rule #157: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
8073 /* 23570 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8074 /* 23573 */ // Label 475: @23573
8075 /* 23573 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(23584), // Rule ID 217 //
8076 /* 23578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8077 /* 23581 */ // Combiner Rule #165: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
8078 /* 23581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8079 /* 23584 */ // Label 476: @23584
8080 /* 23584 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(23595), // Rule ID 254 //
8081 /* 23589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
8082 /* 23592 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
8083 /* 23592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8084 /* 23595 */ // Label 477: @23595
8085 /* 23595 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(23606), // Rule ID 299 //
8086 /* 23600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8087 /* 23603 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
8088 /* 23603 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8089 /* 23606 */ // Label 478: @23606
8090 /* 23606 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(23629), // Rule ID 117 //
8091 /* 23611 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8092 /* 23614 */ // MIs[0] dst
8093 /* 23614 */ // No operand predicates
8094 /* 23614 */ // MIs[0] lhs
8095 /* 23614 */ // No operand predicates
8096 /* 23614 */ // MIs[0] Operand 2
8097 /* 23614 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8098 /* 23618 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8099 /* 23623 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
8100 /* 23623 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8101 /* 23628 */ GIR_EraseRootFromParent_Done,
8102 /* 23629 */ // Label 479: @23629
8103 /* 23629 */ GIM_Reject,
8104 /* 23630 */ // Label 90: @23630
8105 /* 23630 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(23641), // Rule ID 267 //
8106 /* 23635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
8107 /* 23638 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SMIN'
8108 /* 23638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8109 /* 23641 */ // Label 480: @23641
8110 /* 23641 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(23652), // Rule ID 310 //
8111 /* 23646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8112 /* 23649 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SMIN'
8113 /* 23649 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8114 /* 23652 */ // Label 481: @23652
8115 /* 23652 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(23663), // Rule ID 338 //
8116 /* 23657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
8117 /* 23660 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
8118 /* 23660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8119 /* 23663 */ // Label 482: @23663
8120 /* 23663 */ GIM_Reject,
8121 /* 23664 */ // Label 91: @23664
8122 /* 23664 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(23675), // Rule ID 268 //
8123 /* 23669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
8124 /* 23672 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SMAX'
8125 /* 23672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8126 /* 23675 */ // Label 483: @23675
8127 /* 23675 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(23686), // Rule ID 311 //
8128 /* 23680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8129 /* 23683 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SMAX'
8130 /* 23683 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8131 /* 23686 */ // Label 484: @23686
8132 /* 23686 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(23697), // Rule ID 339 //
8133 /* 23691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
8134 /* 23694 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
8135 /* 23694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8136 /* 23697 */ // Label 485: @23697
8137 /* 23697 */ GIM_Reject,
8138 /* 23698 */ // Label 92: @23698
8139 /* 23698 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(23709), // Rule ID 269 //
8140 /* 23703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
8141 /* 23706 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UMIN'
8142 /* 23706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8143 /* 23709 */ // Label 486: @23709
8144 /* 23709 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(23720), // Rule ID 312 //
8145 /* 23714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8146 /* 23717 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UMIN'
8147 /* 23717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8148 /* 23720 */ // Label 487: @23720
8149 /* 23720 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(23731), // Rule ID 340 //
8150 /* 23725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
8151 /* 23728 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
8152 /* 23728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8153 /* 23731 */ // Label 488: @23731
8154 /* 23731 */ GIM_Reject,
8155 /* 23732 */ // Label 93: @23732
8156 /* 23732 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(23743), // Rule ID 270 //
8157 /* 23737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
8158 /* 23740 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UMAX'
8159 /* 23740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8160 /* 23743 */ // Label 489: @23743
8161 /* 23743 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(23754), // Rule ID 313 //
8162 /* 23748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8163 /* 23751 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UMAX'
8164 /* 23751 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8165 /* 23754 */ // Label 490: @23754
8166 /* 23754 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(23765), // Rule ID 341 //
8167 /* 23759 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
8168 /* 23762 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
8169 /* 23762 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8170 /* 23765 */ // Label 491: @23765
8171 /* 23765 */ GIM_Reject,
8172 /* 23766 */ // Label 94: @23766
8173 /* 23766 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(23777), // Rule ID 92 //
8174 /* 23771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8175 /* 23774 */ // Combiner Rule #82: unary_undef_to_zero; wip_match_opcode 'G_ABS'
8176 /* 23774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
8177 /* 23777 */ // Label 492: @23777
8178 /* 23777 */ GIM_Reject,
8179 /* 23778 */ // Label 95: @23778
8180 /* 23778 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(23789), // Rule ID 185 //
8181 /* 23783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
8182 /* 23786 */ // Combiner Rule #141: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
8183 /* 23786 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
8184 /* 23789 */ // Label 493: @23789
8185 /* 23789 */ GIM_Reject,
8186 /* 23790 */ // Label 96: @23790
8187 /* 23790 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(23801), // Rule ID 32 //
8188 /* 23795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
8189 /* 23798 */ // Combiner Rule #30: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8190 /* 23798 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
8191 /* 23801 */ // Label 494: @23801
8192 /* 23801 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(23812), // Rule ID 73 //
8193 /* 23806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
8194 /* 23809 */ // Combiner Rule #71: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8195 /* 23809 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8196 /* 23812 */ // Label 495: @23812
8197 /* 23812 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(23823), // Rule ID 107 //
8198 /* 23817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
8199 /* 23820 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8200 /* 23820 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8201 /* 23823 */ // Label 496: @23823
8202 /* 23823 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(23862), // Rule ID 44 //
8203 /* 23828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
8204 /* 23831 */ // MIs[0] root
8205 /* 23831 */ // No operand predicates
8206 /* 23831 */ // MIs[0] src
8207 /* 23831 */ // No operand predicates
8208 /* 23831 */ // MIs[0] elt
8209 /* 23831 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8210 /* 23835 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
8211 /* 23839 */ // MIs[1] src
8212 /* 23839 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
8213 /* 23844 */ // MIs[1] idx
8214 /* 23844 */ // No operand predicates
8215 /* 23844 */ // MIs[0] idx
8216 /* 23844 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
8217 /* 23849 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8218 /* 23854 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8219 /* 23856 */ // Combiner Rule #42: insert_vector_element_extract_vector_element
8220 /* 23856 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8221 /* 23861 */ GIR_EraseRootFromParent_Done,
8222 /* 23862 */ // Label 497: @23862
8223 /* 23862 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(23895), // Rule ID 30 //
8224 /* 23867 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
8225 /* 23870 */ // MIs[0] root
8226 /* 23870 */ // No operand predicates
8227 /* 23870 */ // MIs[0] src
8228 /* 23870 */ // No operand predicates
8229 /* 23870 */ // MIs[0] elt
8230 /* 23870 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8231 /* 23874 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8232 /* 23878 */ // MIs[0] idx
8233 /* 23878 */ // No operand predicates
8234 /* 23878 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
8235 /* 23882 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8236 /* 23887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8237 /* 23889 */ // Combiner Rule #28: insert_vector_element_elt_undef
8238 /* 23889 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8239 /* 23894 */ GIR_EraseRootFromParent_Done,
8240 /* 23895 */ // Label 498: @23895
8241 /* 23895 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(23919), // Rule ID 29 //
8242 /* 23900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
8243 /* 23903 */ // MIs[0] root
8244 /* 23903 */ // No operand predicates
8245 /* 23903 */ // MIs[0] src
8246 /* 23903 */ // No operand predicates
8247 /* 23903 */ // MIs[0] elt
8248 /* 23903 */ // No operand predicates
8249 /* 23903 */ // MIs[0] idx
8250 /* 23903 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
8251 /* 23907 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8252 /* 23911 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8253 /* 23913 */ // Combiner Rule #27: insert_vector_element_idx_undef
8254 /* 23913 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8255 /* 23916 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8256 /* 23918 */ GIR_EraseRootFromParent_Done,
8257 /* 23919 */ // Label 499: @23919
8258 /* 23919 */ GIM_Reject,
8259 /* 23920 */ // Label 97: @23920
8260 /* 23920 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(23931), // Rule ID 31 //
8261 /* 23925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
8262 /* 23928 */ // Combiner Rule #29: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8263 /* 23928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
8264 /* 23931 */ // Label 500: @23931
8265 /* 23931 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(23942), // Rule ID 74 //
8266 /* 23936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
8267 /* 23939 */ // Combiner Rule #72: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8268 /* 23939 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
8269 /* 23942 */ // Label 501: @23942
8270 /* 23942 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(23953), // Rule ID 80 //
8271 /* 23947 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
8272 /* 23950 */ // Combiner Rule #76: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8273 /* 23950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
8274 /* 23953 */ // Label 502: @23953
8275 /* 23953 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(23964), // Rule ID 108 //
8276 /* 23958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
8277 /* 23961 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8278 /* 23961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8279 /* 23964 */ // Label 503: @23964
8280 /* 23964 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(23988), // Rule ID 42 //
8281 /* 23969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
8282 /* 23972 */ // MIs[0] root
8283 /* 23972 */ // No operand predicates
8284 /* 23972 */ // MIs[0] src
8285 /* 23972 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8286 /* 23976 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8287 /* 23980 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
8288 /* 23983 */ // MIs[1] x
8289 /* 23983 */ // No operand predicates
8290 /* 23983 */ // MIs[1] y
8291 /* 23983 */ // No operand predicates
8292 /* 23983 */ // MIs[1] z
8293 /* 23983 */ // No operand predicates
8294 /* 23983 */ // MIs[1] a
8295 /* 23983 */ // No operand predicates
8296 /* 23983 */ // MIs[1] b
8297 /* 23983 */ // No operand predicates
8298 /* 23983 */ // MIs[1] c
8299 /* 23983 */ // No operand predicates
8300 /* 23983 */ // MIs[1] d
8301 /* 23983 */ // No operand predicates
8302 /* 23983 */ // MIs[1] e
8303 /* 23983 */ // No operand predicates
8304 /* 23983 */ // MIs[0] idx
8305 /* 23983 */ // No operand predicates
8306 /* 23983 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8307 /* 23985 */ // Combiner Rule #40: extract_vector_element_build_vector_trunc8
8308 /* 23985 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8309 /* 23988 */ // Label 504: @23988
8310 /* 23988 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(24012), // Rule ID 41 //
8311 /* 23993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
8312 /* 23996 */ // MIs[0] root
8313 /* 23996 */ // No operand predicates
8314 /* 23996 */ // MIs[0] src
8315 /* 23996 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8316 /* 24000 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8317 /* 24004 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
8318 /* 24007 */ // MIs[1] x
8319 /* 24007 */ // No operand predicates
8320 /* 24007 */ // MIs[1] y
8321 /* 24007 */ // No operand predicates
8322 /* 24007 */ // MIs[1] z
8323 /* 24007 */ // No operand predicates
8324 /* 24007 */ // MIs[1] a
8325 /* 24007 */ // No operand predicates
8326 /* 24007 */ // MIs[1] b
8327 /* 24007 */ // No operand predicates
8328 /* 24007 */ // MIs[1] c
8329 /* 24007 */ // No operand predicates
8330 /* 24007 */ // MIs[1] d
8331 /* 24007 */ // No operand predicates
8332 /* 24007 */ // MIs[0] idx
8333 /* 24007 */ // No operand predicates
8334 /* 24007 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8335 /* 24009 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc7
8336 /* 24009 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8337 /* 24012 */ // Label 505: @24012
8338 /* 24012 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(24036), // Rule ID 40 //
8339 /* 24017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
8340 /* 24020 */ // MIs[0] root
8341 /* 24020 */ // No operand predicates
8342 /* 24020 */ // MIs[0] src
8343 /* 24020 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8344 /* 24024 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8345 /* 24028 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
8346 /* 24031 */ // MIs[1] x
8347 /* 24031 */ // No operand predicates
8348 /* 24031 */ // MIs[1] y
8349 /* 24031 */ // No operand predicates
8350 /* 24031 */ // MIs[1] z
8351 /* 24031 */ // No operand predicates
8352 /* 24031 */ // MIs[1] a
8353 /* 24031 */ // No operand predicates
8354 /* 24031 */ // MIs[1] b
8355 /* 24031 */ // No operand predicates
8356 /* 24031 */ // MIs[1] c
8357 /* 24031 */ // No operand predicates
8358 /* 24031 */ // MIs[0] idx
8359 /* 24031 */ // No operand predicates
8360 /* 24031 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8361 /* 24033 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc6
8362 /* 24033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8363 /* 24036 */ // Label 506: @24036
8364 /* 24036 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(24060), // Rule ID 39 //
8365 /* 24041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
8366 /* 24044 */ // MIs[0] root
8367 /* 24044 */ // No operand predicates
8368 /* 24044 */ // MIs[0] src
8369 /* 24044 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8370 /* 24048 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8371 /* 24052 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
8372 /* 24055 */ // MIs[1] x
8373 /* 24055 */ // No operand predicates
8374 /* 24055 */ // MIs[1] y
8375 /* 24055 */ // No operand predicates
8376 /* 24055 */ // MIs[1] z
8377 /* 24055 */ // No operand predicates
8378 /* 24055 */ // MIs[1] a
8379 /* 24055 */ // No operand predicates
8380 /* 24055 */ // MIs[1] b
8381 /* 24055 */ // No operand predicates
8382 /* 24055 */ // MIs[0] idx
8383 /* 24055 */ // No operand predicates
8384 /* 24055 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8385 /* 24057 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc5
8386 /* 24057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8387 /* 24060 */ // Label 507: @24060
8388 /* 24060 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(24084), // Rule ID 38 //
8389 /* 24065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
8390 /* 24068 */ // MIs[0] root
8391 /* 24068 */ // No operand predicates
8392 /* 24068 */ // MIs[0] src
8393 /* 24068 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8394 /* 24072 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8395 /* 24076 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
8396 /* 24079 */ // MIs[1] x
8397 /* 24079 */ // No operand predicates
8398 /* 24079 */ // MIs[1] y
8399 /* 24079 */ // No operand predicates
8400 /* 24079 */ // MIs[1] z
8401 /* 24079 */ // No operand predicates
8402 /* 24079 */ // MIs[1] a
8403 /* 24079 */ // No operand predicates
8404 /* 24079 */ // MIs[0] idx
8405 /* 24079 */ // No operand predicates
8406 /* 24079 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8407 /* 24081 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc4
8408 /* 24081 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8409 /* 24084 */ // Label 508: @24084
8410 /* 24084 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(24108), // Rule ID 37 //
8411 /* 24089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
8412 /* 24092 */ // MIs[0] root
8413 /* 24092 */ // No operand predicates
8414 /* 24092 */ // MIs[0] src
8415 /* 24092 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8416 /* 24096 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8417 /* 24100 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
8418 /* 24103 */ // MIs[1] x
8419 /* 24103 */ // No operand predicates
8420 /* 24103 */ // MIs[1] y
8421 /* 24103 */ // No operand predicates
8422 /* 24103 */ // MIs[1] z
8423 /* 24103 */ // No operand predicates
8424 /* 24103 */ // MIs[0] idx
8425 /* 24103 */ // No operand predicates
8426 /* 24103 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8427 /* 24105 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc3
8428 /* 24105 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8429 /* 24108 */ // Label 509: @24108
8430 /* 24108 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(24142), // Rule ID 33 //
8431 /* 24113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
8432 /* 24116 */ // MIs[0] root
8433 /* 24116 */ // No operand predicates
8434 /* 24116 */ // MIs[0] src
8435 /* 24116 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8436 /* 24120 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8437 /* 24124 */ // MIs[1] x
8438 /* 24124 */ // No operand predicates
8439 /* 24124 */ // MIs[1] value
8440 /* 24124 */ // No operand predicates
8441 /* 24124 */ // MIs[1] idx
8442 /* 24124 */ // No operand predicates
8443 /* 24124 */ // MIs[0] idx
8444 /* 24124 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
8445 /* 24129 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8446 /* 24134 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8447 /* 24136 */ // Combiner Rule #31: extract_vector_element_not_const
8448 /* 24136 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8449 /* 24141 */ GIR_EraseRootFromParent_Done,
8450 /* 24142 */ // Label 510: @24142
8451 /* 24142 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(24163), // Rule ID 34 //
8452 /* 24147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
8453 /* 24150 */ // MIs[0] root
8454 /* 24150 */ // No operand predicates
8455 /* 24150 */ // MIs[0] src
8456 /* 24150 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8457 /* 24154 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8458 /* 24158 */ // MIs[1] x
8459 /* 24158 */ // No operand predicates
8460 /* 24158 */ // MIs[1] value
8461 /* 24158 */ // No operand predicates
8462 /* 24158 */ // MIs[1] idx2
8463 /* 24158 */ // No operand predicates
8464 /* 24158 */ // MIs[0] idx1
8465 /* 24158 */ // No operand predicates
8466 /* 24158 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8467 /* 24160 */ // Combiner Rule #32: extract_vector_element_different_indices
8468 /* 24160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
8469 /* 24163 */ // Label 511: @24163
8470 /* 24163 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(24192), // Rule ID 43 //
8471 /* 24168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
8472 /* 24171 */ // MIs[0] root
8473 /* 24171 */ // No operand predicates
8474 /* 24171 */ // MIs[0] src
8475 /* 24171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8476 /* 24175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
8477 /* 24179 */ // MIs[1] src1
8478 /* 24179 */ // No operand predicates
8479 /* 24179 */ // MIs[1] src2
8480 /* 24179 */ // No operand predicates
8481 /* 24179 */ // MIs[1] mask
8482 /* 24179 */ // No operand predicates
8483 /* 24179 */ // MIs[0] idx
8484 /* 24179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8485 /* 24183 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8486 /* 24187 */ // MIs[2] imm
8487 /* 24187 */ // No operand predicates
8488 /* 24187 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8489 /* 24189 */ // Combiner Rule #41: extract_vector_element_shuffle_vector
8490 /* 24189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
8491 /* 24192 */ // Label 512: @24192
8492 /* 24192 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(24216), // Rule ID 36 //
8493 /* 24197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
8494 /* 24200 */ // MIs[0] root
8495 /* 24200 */ // No operand predicates
8496 /* 24200 */ // MIs[0] src
8497 /* 24200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8498 /* 24204 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8499 /* 24208 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8500 /* 24211 */ // MIs[1] x
8501 /* 24211 */ // No operand predicates
8502 /* 24211 */ // MIs[1] y
8503 /* 24211 */ // No operand predicates
8504 /* 24211 */ // MIs[0] idx
8505 /* 24211 */ // No operand predicates
8506 /* 24211 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8507 /* 24213 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc2
8508 /* 24213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8509 /* 24216 */ // Label 513: @24216
8510 /* 24216 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(24248), // Rule ID 35 //
8511 /* 24221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
8512 /* 24224 */ // MIs[0] root
8513 /* 24224 */ // No operand predicates
8514 /* 24224 */ // MIs[0] src
8515 /* 24224 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8516 /* 24228 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8517 /* 24232 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8518 /* 24235 */ // MIs[1] unused
8519 /* 24235 */ // No operand predicates
8520 /* 24235 */ // MIs[0] idx
8521 /* 24235 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8522 /* 24239 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8523 /* 24243 */ // MIs[2] imm
8524 /* 24243 */ // No operand predicates
8525 /* 24243 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8526 /* 24245 */ // Combiner Rule #33: extract_vector_element_build_vector
8527 /* 24245 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
8528 /* 24248 */ // Label 514: @24248
8529 /* 24248 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(24272), // Rule ID 27 //
8530 /* 24253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
8531 /* 24256 */ // MIs[0] root
8532 /* 24256 */ // No operand predicates
8533 /* 24256 */ // MIs[0] vector
8534 /* 24256 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8535 /* 24260 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8536 /* 24264 */ // MIs[0] idx
8537 /* 24264 */ // No operand predicates
8538 /* 24264 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8539 /* 24266 */ // Combiner Rule #25: match_extract_of_element_undef_vector
8540 /* 24266 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8541 /* 24269 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8542 /* 24271 */ GIR_EraseRootFromParent_Done,
8543 /* 24272 */ // Label 515: @24272
8544 /* 24272 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(24296), // Rule ID 28 //
8545 /* 24277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
8546 /* 24280 */ // MIs[0] root
8547 /* 24280 */ // No operand predicates
8548 /* 24280 */ // MIs[0] vector
8549 /* 24280 */ // No operand predicates
8550 /* 24280 */ // MIs[0] idx
8551 /* 24280 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8552 /* 24284 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8553 /* 24288 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8554 /* 24290 */ // Combiner Rule #26: match_extract_of_element_undef_index
8555 /* 24290 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8556 /* 24293 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8557 /* 24295 */ GIR_EraseRootFromParent_Done,
8558 /* 24296 */ // Label 516: @24296
8559 /* 24296 */ GIM_Reject,
8560 /* 24297 */ // Label 98: @24297
8561 /* 24297 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(24308), // Rule ID 103 //
8562 /* 24302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
8563 /* 24305 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
8564 /* 24305 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
8565 /* 24308 */ // Label 517: @24308
8566 /* 24308 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(24319), // Rule ID 105 //
8567 /* 24313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
8568 /* 24316 */ // Combiner Rule #86: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8569 /* 24316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
8570 /* 24319 */ // Label 518: @24319
8571 /* 24319 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(24330), // Rule ID 369 //
8572 /* 24324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8573 /* 24327 */ // Combiner Rule #220: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
8574 /* 24327 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
8575 /* 24330 */ // Label 519: @24330
8576 /* 24330 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(24341), // Rule ID 371 //
8577 /* 24335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
8578 /* 24338 */ // Combiner Rule #222: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8579 /* 24338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
8580 /* 24341 */ // Label 520: @24341
8581 /* 24341 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(24362), // Rule ID 370 //
8582 /* 24346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
8583 /* 24349 */ // MIs[0] root
8584 /* 24349 */ // No operand predicates
8585 /* 24349 */ // MIs[0] src1
8586 /* 24349 */ // No operand predicates
8587 /* 24349 */ // MIs[0] undef
8588 /* 24349 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8589 /* 24353 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8590 /* 24357 */ // MIs[0] mask
8591 /* 24357 */ // No operand predicates
8592 /* 24357 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8593 /* 24359 */ // Combiner Rule #221: combine_shuffle_undef_rhs
8594 /* 24359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
8595 /* 24362 */ // Label 521: @24362
8596 /* 24362 */ GIM_Reject,
8597 /* 24363 */ // Label 99: @24363
8598 /* 24363 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(24374), // Rule ID 392 //
8599 /* 24368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
8600 /* 24371 */ // MIs[0] dst
8601 /* 24371 */ // No operand predicates
8602 /* 24371 */ // MIs[0] src
8603 /* 24371 */ // No operand predicates
8604 /* 24371 */ // Combiner Rule #241: ctlz_to_ctls
8605 /* 24371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8606 /* 24374 */ // Label 522: @24374
8607 /* 24374 */ GIM_Reject,
8608 /* 24375 */ // Label 100: @24375
8609 /* 24375 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(24386), // Rule ID 393 //
8610 /* 24380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
8611 /* 24383 */ // MIs[0] dst
8612 /* 24383 */ // No operand predicates
8613 /* 24383 */ // MIs[0] src
8614 /* 24383 */ // No operand predicates
8615 /* 24383 */ // Combiner Rule #242: ctlz_zero_undef_to_ctls
8616 /* 24383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8617 /* 24386 */ // Label 523: @24386
8618 /* 24386 */ GIM_Reject,
8619 /* 24387 */ // Label 101: @24387
8620 /* 24387 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(24431), // Rule ID 245 //
8621 /* 24392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
8622 /* 24395 */ // MIs[0] d
8623 /* 24395 */ // No operand predicates
8624 /* 24395 */ // MIs[0] src
8625 /* 24395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8626 /* 24399 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8627 /* 24403 */ // MIs[1] rev
8628 /* 24403 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8629 /* 24407 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8630 /* 24411 */ // MIs[2] val
8631 /* 24411 */ // No operand predicates
8632 /* 24411 */ // MIs[1] amt
8633 /* 24411 */ // No operand predicates
8634 /* 24411 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8635 /* 24415 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8636 /* 24417 */ // Combiner Rule #178: bitreverse_lshr
8637 /* 24417 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8638 /* 24420 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8639 /* 24422 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8640 /* 24426 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8641 /* 24430 */ GIR_EraseRootFromParent_Done,
8642 /* 24431 */ // Label 524: @24431
8643 /* 24431 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(24475), // Rule ID 244 //
8644 /* 24436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
8645 /* 24439 */ // MIs[0] d
8646 /* 24439 */ // No operand predicates
8647 /* 24439 */ // MIs[0] src
8648 /* 24439 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8649 /* 24443 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
8650 /* 24447 */ // MIs[1] rev
8651 /* 24447 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8652 /* 24451 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8653 /* 24455 */ // MIs[2] val
8654 /* 24455 */ // No operand predicates
8655 /* 24455 */ // MIs[1] amt
8656 /* 24455 */ // No operand predicates
8657 /* 24455 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
8658 /* 24459 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8659 /* 24461 */ // Combiner Rule #177: bitreverse_shl
8660 /* 24461 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
8661 /* 24464 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8662 /* 24466 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8663 /* 24470 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8664 /* 24474 */ GIR_EraseRootFromParent_Done,
8665 /* 24475 */ // Label 525: @24475
8666 /* 24475 */ GIM_Reject,
8667 /* 24476 */ // Label 102: @24476
8668 /* 24476 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(24497), // Rule ID 192 //
8669 /* 24481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8670 /* 24484 */ // MIs[0] dst
8671 /* 24484 */ // No operand predicates
8672 /* 24484 */ // MIs[0] src0
8673 /* 24484 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8674 /* 24488 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8675 /* 24492 */ // MIs[1] cst
8676 /* 24492 */ // No operand predicates
8677 /* 24492 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8678 /* 24494 */ // Combiner Rule #148: constant_fold_fceil
8679 /* 24494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8680 /* 24497 */ // Label 526: @24497
8681 /* 24497 */ GIM_Reject,
8682 /* 24498 */ // Label 103: @24498
8683 /* 24498 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(24509), // Rule ID 413 //
8684 /* 24503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
8685 /* 24506 */ // Combiner Rule #254: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
8686 /* 24506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
8687 /* 24509 */ // Label 527: @24509
8688 /* 24509 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(24530), // Rule ID 188 //
8689 /* 24514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8690 /* 24517 */ // MIs[0] dst
8691 /* 24517 */ // No operand predicates
8692 /* 24517 */ // MIs[0] src0
8693 /* 24517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8694 /* 24521 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8695 /* 24525 */ // MIs[1] cst
8696 /* 24525 */ // No operand predicates
8697 /* 24525 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8698 /* 24527 */ // Combiner Rule #144: constant_fold_fsqrt
8699 /* 24527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8700 /* 24530 */ // Label 528: @24530
8701 /* 24530 */ GIM_Reject,
8702 /* 24531 */ // Label 104: @24531
8703 /* 24531 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(24552), // Rule ID 193 //
8704 /* 24536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8705 /* 24539 */ // MIs[0] dst
8706 /* 24539 */ // No operand predicates
8707 /* 24539 */ // MIs[0] src0
8708 /* 24539 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8709 /* 24543 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8710 /* 24547 */ // MIs[1] cst
8711 /* 24547 */ // No operand predicates
8712 /* 24547 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8713 /* 24549 */ // Combiner Rule #149: constant_fold_ffloor
8714 /* 24549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8715 /* 24552 */ // Label 529: @24552
8716 /* 24552 */ GIM_Reject,
8717 /* 24553 */ // Label 105: @24553
8718 /* 24553 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(24574), // Rule ID 197 //
8719 /* 24558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
8720 /* 24561 */ // MIs[0] dst
8721 /* 24561 */ // No operand predicates
8722 /* 24561 */ // MIs[0] src0
8723 /* 24561 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8724 /* 24565 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8725 /* 24569 */ // MIs[1] cst
8726 /* 24569 */ // No operand predicates
8727 /* 24569 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8728 /* 24571 */ // Combiner Rule #153: constant_fold_frint
8729 /* 24571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8730 /* 24574 */ // Label 530: @24574
8731 /* 24574 */ GIM_Reject,
8732 /* 24575 */ // Label 106: @24575
8733 /* 24575 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(24596), // Rule ID 198 //
8734 /* 24580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8735 /* 24583 */ // MIs[0] dst
8736 /* 24583 */ // No operand predicates
8737 /* 24583 */ // MIs[0] src0
8738 /* 24583 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8739 /* 24587 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8740 /* 24591 */ // MIs[1] cst
8741 /* 24591 */ // No operand predicates
8742 /* 24591 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8743 /* 24593 */ // Combiner Rule #154: constant_fold_fnearbyint
8744 /* 24593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8745 /* 24596 */ // Label 531: @24596
8746 /* 24596 */ GIM_Reject,
8747 /* 24597 */ // Label 107: @24597
8748 /* 24597 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(24608), // Rule ID 406 //
8749 /* 24602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
8750 /* 24605 */ // Combiner Rule #251: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
8751 /* 24605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8752 /* 24608 */ // Label 532: @24608
8753 /* 24608 */ GIM_Reject,
8754 /* 24609 */ // Label 108: @24609
8755 /* 24609 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(24620), // Rule ID 407 //
8756 /* 24614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
8757 /* 24617 */ // Combiner Rule #251: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
8758 /* 24617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8759 /* 24620 */ // Label 533: @24620
8760 /* 24620 */ GIM_Reject,
8761 /* 24621 */ // Label 109: @24621
8762 /* 24621 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(24632), // Rule ID 408 //
8763 /* 24626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
8764 /* 24629 */ // Combiner Rule #251: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
8765 /* 24629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8766 /* 24632 */ // Label 534: @24632
8767 /* 24632 */ GIM_Reject,
8768 /* 24633 */ // Label 110: @24633
8769 /* 24633 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(24644), // Rule ID 409 //
8770 /* 24638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
8771 /* 24641 */ // Combiner Rule #251: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
8772 /* 24641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8773 /* 24644 */ // Label 535: @24644
8774 /* 24644 */ GIM_Reject,
8775 /* 24645 */ // Label 111: @24645
8776 /* 24645 */ GIM_Reject,
8777 /* 24646 */ }; // Size: 24646 bytes
8778 return MatchTable0;
8779}
8780#undef GIMT_Encode2
8781#undef GIMT_Encode4
8782#undef GIMT_Encode8
8783
8784
8785#endif // GET_GICOMBINER_IMPL
8786
8787#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8788
8789AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
8790AvailableFunctionFeatures()
8791
8792#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8793
8794#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8795
8796, State(0),
8797ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
8798
8799#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8800
8801