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 252; // "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 240; // "add_shift"
52 case 'c': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
54 break;
55 return 16; // "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 211; // "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 157; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 156; // "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 216; // "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 93; // "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 210; // "match_ands"
96 case 'u': // 1 string to match.
97 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
98 break;
99 return 17; // "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 92; // "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 214; // "sext_trunc"
113 case 'u': // 1 string to match.
114 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
115 break;
116 return 18; // "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 215; // "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 98; // "add_sub_reg"
132 case 'm': // 1 string to match.
133 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
134 break;
135 return 231; // "match_addos"
136 case 's': // 1 string to match.
137 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
138 break;
139 return 205; // "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 136; // "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 233; // "trunc_ssats"
159 case 'u': // 1 string to match.
160 return 234; // "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 235; // "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 224; // "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 158; // "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 238; // "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 207; // "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 186; // "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 137; // "not_cmp_fold"
208 case 'r': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
210 break;
211 return 132; // "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 201; // "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 51; // "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 200; // "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 49; // "zext_of_zext"
233 }
234 break;
235 case 13: // 17 strings to match.
236 switch (RuleIdentifier[0]) {
237 default: break;
238 case 'a': // 1 string to match.
239 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
240 break;
241 return 40; // "add_of_vscale"
242 case 'c': // 1 string to match.
243 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
244 break;
245 return 176; // "commute_shift"
246 case 'f': // 1 string to match.
247 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
248 break;
249 return 248; // "foldable_fneg"
250 case 'l': // 1 string to match.
251 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
252 break;
253 return 72; // "load_and_mask"
254 case 'm': // 3 strings to match.
255 switch (RuleIdentifier[1]) {
256 default: break;
257 case 'a': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
259 break;
260 return 129; // "match_selects"
261 case 'e': // 1 string to match.
262 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
263 break;
264 return 223; // "merge_unmerge"
265 case 'u': // 1 string to match.
266 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
267 break;
268 return 41; // "mul_of_vscale"
269 }
270 break;
271 case 'r': // 1 string to match.
272 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
273 break;
274 return 130; // "redundant_and"
275 case 's': // 5 strings to match.
276 switch (RuleIdentifier[1]) {
277 default: break;
278 case 'a': // 1 string to match.
279 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
280 break;
281 return 89; // "same_val_zero"
282 case 'd': // 1 string to match.
283 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
284 break;
285 return 203; // "sdiv_by_const"
286 case 'h': // 1 string to match.
287 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
288 break;
289 return 42; // "shl_of_vscale"
290 case 'r': // 1 string to match.
291 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
292 break;
293 return 199; // "srem_by_const"
294 case 'u': // 1 string to match.
295 if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
296 break;
297 return 43; // "sub_of_vscale"
298 }
299 break;
300 case 'u': // 4 strings to match.
301 switch (RuleIdentifier[1]) {
302 default: break;
303 case 'd': // 1 string to match.
304 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
305 break;
306 return 202; // "udiv_by_const"
307 case 'n': // 2 strings to match.
308 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
309 break;
310 switch (RuleIdentifier[8]) {
311 default: break;
312 case 'm': // 1 string to match.
313 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
314 break;
315 return 222; // "unmerge_merge"
316 case 'u': // 1 string to match.
317 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
318 break;
319 return 225; // "unmerge_undef"
320 }
321 break;
322 case 'r': // 1 string to match.
323 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
324 break;
325 return 198; // "urem_by_const"
326 }
327 break;
328 }
329 break;
330 case 14: // 18 strings to match.
331 switch (RuleIdentifier[0]) {
332 default: break;
333 case 'A': // 2 strings to match.
334 switch (RuleIdentifier[1]) {
335 default: break;
336 case 'M': // 1 string to match.
337 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
338 break;
339 return 15; // "AMinusC1PlusC2"
340 case 'P': // 1 string to match.
341 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
342 break;
343 return 11; // "APlusC1MinusC2"
344 }
345 break;
346 case 'C': // 1 string to match.
347 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
348 break;
349 return 12; // "C2MinusAPlusC1"
350 case 'N': // 1 string to match.
351 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
352 break;
353 return 10; // "NotAPlusNegOne"
354 case 'a': // 2 strings to match.
355 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
356 break;
357 switch (RuleIdentifier[10]) {
358 default: break;
359 case 's': // 1 string to match.
360 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
361 break;
362 return 55; // "anyext_of_sext"
363 case 'z': // 1 string to match.
364 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
365 break;
366 return 54; // "anyext_of_zext"
367 }
368 break;
369 case 'b': // 2 strings to match.
370 if (RuleIdentifier[1] != 'i')
371 break;
372 switch (RuleIdentifier[2]) {
373 default: break;
374 case 'n': // 1 string to match.
375 if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
376 break;
377 return 88; // "binop_same_val"
378 case 't': // 1 string to match.
379 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
380 break;
381 return 174; // "bitreverse_shl"
382 }
383 break;
384 case 'c': // 1 string to match.
385 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
386 break;
387 return 246; // "cvt_f32_ubyteN"
388 case 'f': // 2 strings to match.
389 switch (RuleIdentifier[1]) {
390 default: break;
391 case 'a': // 1 string to match.
392 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
393 break;
394 return 185; // "fabs_fneg_fold"
395 case 'n': // 1 string to match.
396 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
397 break;
398 return 95; // "fneg_fneg_fold"
399 }
400 break;
401 case 'm': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
403 break;
404 return 20; // "mul_by_neg_one"
405 case 'r': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
407 break;
408 return 111; // "reassoc_ptradd"
409 case 's': // 3 strings to match.
410 switch (RuleIdentifier[1]) {
411 default: break;
412 case 'e': // 2 strings to match.
413 switch (RuleIdentifier[2]) {
414 default: break;
415 case 'l': // 1 string to match.
416 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
417 break;
418 return 57; // "select_of_zext"
419 case 'x': // 1 string to match.
420 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
421 break;
422 return 52; // "sext_of_anyext"
423 }
424 break;
425 case 'h': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
427 break;
428 return 110; // "shifts_too_big"
429 }
430 break;
431 case 'u': // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
433 break;
434 return 245; // "uchar_to_float"
435 case 'z': // 1 string to match.
436 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
437 break;
438 return 50; // "zext_of_anyext"
439 }
440 break;
441 case 15: // 13 strings to match.
442 switch (RuleIdentifier[0]) {
443 default: break;
444 case 'A': // 2 strings to match.
445 switch (RuleIdentifier[1]) {
446 default: break;
447 case 'M': // 1 string to match.
448 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
449 break;
450 return 13; // "AMinusC1MinusC2"
451 case 'P': // 1 string to match.
452 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
453 break;
454 return 3; // "APlusZeroMinusB"
455 }
456 break;
457 case 'C': // 1 string to match.
458 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
459 break;
460 return 14; // "C1Minus2MinusC2"
461 case 'Z': // 1 string to match.
462 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
463 break;
464 return 2; // "ZeroMinusAPlusB"
465 case 'b': // 1 string to match.
466 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
467 break;
468 return 175; // "bitreverse_lshr"
469 case 'e': // 1 string to match.
470 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
471 break;
472 return 71; // "extending_loads"
473 case 'i': // 1 string to match.
474 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
475 break;
476 return 21; // "idempotent_prop"
477 case 'l': // 1 string to match.
478 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
479 break;
480 return 165; // "load_or_combine"
481 case 'n': // 1 string to match.
482 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
483 break;
484 return 65; // "narrow_binop_or"
485 case 'o': // 1 string to match.
486 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
487 break;
488 return 155; // "overlapping_and"
489 case 'r': // 1 string to match.
490 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
491 break;
492 return 249; // "rcp_sqrt_to_rsq"
493 case 's': // 1 string to match.
494 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
495 break;
496 return 86; // "select_same_val"
497 case 'z': // 1 string to match.
498 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
499 break;
500 return 134; // "zext_trunc_fold"
501 }
502 break;
503 case 16: // 13 strings to match.
504 switch (RuleIdentifier[0]) {
505 default: break;
506 case 'a': // 1 string to match.
507 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
508 break;
509 return 53; // "anyext_of_anyext"
510 case 'n': // 5 strings to match.
511 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
512 break;
513 switch (RuleIdentifier[13]) {
514 default: break;
515 case 'a': // 2 strings to match.
516 switch (RuleIdentifier[14]) {
517 default: break;
518 case 'd': // 1 string to match.
519 if (RuleIdentifier[15] != 'd')
520 break;
521 return 61; // "narrow_binop_add"
522 case 'n': // 1 string to match.
523 if (RuleIdentifier[15] != 'd')
524 break;
525 return 64; // "narrow_binop_and"
526 }
527 break;
528 case 'm': // 1 string to match.
529 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
530 break;
531 return 63; // "narrow_binop_mul"
532 case 's': // 1 string to match.
533 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
534 break;
535 return 62; // "narrow_binop_sub"
536 case 'x': // 1 string to match.
537 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
538 break;
539 return 66; // "narrow_binop_xor"
540 }
541 break;
542 case 's': // 4 strings to match.
543 switch (RuleIdentifier[1]) {
544 default: break;
545 case 'e': // 3 strings to match.
546 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
547 break;
548 switch (RuleIdentifier[7]) {
549 default: break;
550 case 'o': // 1 string to match.
551 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
552 break;
553 return 58; // "select_of_anyext"
554 case 't': // 1 string to match.
555 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
556 break;
557 return 206; // "select_to_minmax"
558 case 'u': // 1 string to match.
559 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
560 break;
561 return 126; // "select_undef_cmp"
562 }
563 break;
564 case 'u': // 1 string to match.
565 if (memcmp(RuleIdentifier.data()+2, "b_one_from_sub", 14) != 0)
566 break;
567 return 241; // "sub_one_from_sub"
568 }
569 break;
570 case 't': // 2 strings to match.
571 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
572 break;
573 switch (RuleIdentifier[12]) {
574 default: break;
575 case 's': // 1 string to match.
576 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
577 break;
578 return 47; // "truncate_of_sext"
579 case 'z': // 1 string to match.
580 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
581 break;
582 return 46; // "truncate_of_zext"
583 }
584 break;
585 case 'u': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
587 break;
588 return 74; // "undef_to_fp_zero"
589 }
590 break;
591 case 17: // 14 strings to match.
592 switch (RuleIdentifier[0]) {
593 default: break;
594 case 'A': // 2 strings to match.
595 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
596 break;
597 switch (RuleIdentifier[11]) {
598 default: break;
599 case 'A': // 1 string to match.
600 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
601 break;
602 return 8; // "APlusBMinusAplusC"
603 case 'C': // 1 string to match.
604 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
605 break;
606 return 9; // "APlusBMinusCPlusA"
607 }
608 break;
609 case 'a': // 2 strings to match.
610 switch (RuleIdentifier[1]) {
611 default: break;
612 case 'd': // 1 string to match.
613 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
614 break;
615 return 19; // "add_p2i_to_ptradd"
616 case 'n': // 1 string to match.
617 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
618 break;
619 return 94; // "anyext_trunc_fold"
620 }
621 break;
622 case 'c': // 3 strings to match.
623 switch (RuleIdentifier[1]) {
624 default: break;
625 case 'a': // 2 strings to match.
626 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
627 break;
628 switch (RuleIdentifier[13]) {
629 default: break;
630 case 'f': // 1 string to match.
631 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
632 break;
633 return 115; // "canonicalize_fcmp"
634 case 'i': // 1 string to match.
635 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
636 break;
637 return 114; // "canonicalize_icmp"
638 }
639 break;
640 case 'o': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
642 break;
643 return 183; // "constant_fold_fma"
644 }
645 break;
646 case 'd': // 1 string to match.
647 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
648 break;
649 return 166; // "div_rem_to_divrem"
650 case 'e': // 1 string to match.
651 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
652 break;
653 return 84; // "erase_undef_store"
654 case 'p': // 1 string to match.
655 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
656 break;
657 return 162; // "ptr_add_with_zero"
658 case 's': // 2 strings to match.
659 switch (RuleIdentifier[1]) {
660 default: break;
661 case 'e': // 1 string to match.
662 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
663 break;
664 return 128; // "select_to_iminmax"
665 case 'h': // 1 string to match.
666 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
667 break;
668 return 163; // "shift_immed_chain"
669 }
670 break;
671 case 'u': // 2 strings to match.
672 switch (RuleIdentifier[1]) {
673 default: break;
674 case 'n': // 1 string to match.
675 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
676 break;
677 return 75; // "undef_to_int_zero"
678 case 'r': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
680 break;
681 return 133; // "urem_pow2_to_mask"
682 }
683 break;
684 }
685 break;
686 case 18: // 13 strings to match.
687 switch (RuleIdentifier[0]) {
688 default: break;
689 case 'A': // 3 strings to match.
690 switch (RuleIdentifier[1]) {
691 default: break;
692 case 'M': // 2 strings to match.
693 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
694 break;
695 switch (RuleIdentifier[11]) {
696 default: break;
697 case 'B': // 1 string to match.
698 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
699 break;
700 return 7; // "AMinusBPlusBMinusC"
701 case 'C': // 1 string to match.
702 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
703 break;
704 return 6; // "AMinusBPlusCMinusA"
705 }
706 break;
707 case 'P': // 1 string to match.
708 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
709 break;
710 return 0; // "APlusBMinusCMinusB"
711 }
712 break;
713 case 'b': // 1 string to match.
714 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
715 break;
716 return 90; // "binop_left_to_zero"
717 case 'c': // 4 strings to match.
718 if (RuleIdentifier[1] != 'o')
719 break;
720 switch (RuleIdentifier[2]) {
721 default: break;
722 case 'm': // 2 strings to match.
723 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
724 break;
725 switch (RuleIdentifier[8]) {
726 default: break;
727 case 'm': // 1 string to match.
728 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
729 break;
730 return 159; // "combine_minmax_nan"
731 case 'o': // 1 string to match.
732 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
733 break;
734 return 255; // "combine_or_s64_s32"
735 }
736 break;
737 case 'n': // 2 strings to match.
738 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
739 break;
740 switch (RuleIdentifier[15]) {
741 default: break;
742 case 'a': // 1 string to match.
743 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
744 break;
745 return 140; // "constant_fold_fabs"
746 case 'n': // 1 string to match.
747 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
748 break;
749 return 139; // "constant_fold_fneg"
750 }
751 break;
752 }
753 break;
754 case 'e': // 1 string to match.
755 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
756 break;
757 return 160; // "expand_const_fpowi"
758 case 'f': // 1 string to match.
759 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
760 break;
761 return 103; // "fptrunc_fpext_fold"
762 case 's': // 2 strings to match.
763 if (RuleIdentifier[1] != 'e')
764 break;
765 switch (RuleIdentifier[2]) {
766 default: break;
767 case 'l': // 1 string to match.
768 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
769 break;
770 return 59; // "select_of_truncate"
771 case 'x': // 1 string to match.
772 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
773 break;
774 return 123; // "sext_inreg_of_load"
775 }
776 break;
777 case 't': // 1 string to match.
778 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
779 break;
780 return 48; // "truncate_of_anyext"
781 }
782 break;
783 case 19: // 19 strings to match.
784 switch (RuleIdentifier[0]) {
785 default: break;
786 case 'A': // 1 string to match.
787 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
788 break;
789 return 1; // "AMinusBMinusCMinusC"
790 case 'b': // 1 string to match.
791 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
792 break;
793 return 91; // "binop_right_to_zero"
794 case 'c': // 7 strings to match.
795 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
796 break;
797 switch (RuleIdentifier[5]) {
798 default: break;
799 case '_': // 1 string to match.
800 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
801 break;
802 return 154; // "const_ptradd_to_i2p"
803 case 'a': // 6 strings to match.
804 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
805 break;
806 switch (RuleIdentifier[14]) {
807 default: break;
808 case 'b': // 1 string to match.
809 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
810 break;
811 return 181; // "constant_fold_binop"
812 case 'f': // 5 strings to match.
813 switch (RuleIdentifier[15]) {
814 default: break;
815 case 'c': // 1 string to match.
816 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
817 break;
818 return 145; // "constant_fold_fceil"
819 case 'l': // 1 string to match.
820 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
821 break;
822 return 142; // "constant_fold_flog2"
823 case 'p': // 1 string to match.
824 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
825 break;
826 return 144; // "constant_fold_fpext"
827 case 'r': // 1 string to match.
828 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
829 break;
830 return 150; // "constant_fold_frint"
831 case 's': // 1 string to match.
832 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
833 break;
834 return 141; // "constant_fold_fsqrt"
835 }
836 break;
837 }
838 break;
839 }
840 break;
841 case 'e': // 1 string to match.
842 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
843 break;
844 return 107; // "extend_through_phis"
845 case 'i': // 1 string to match.
846 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
847 break;
848 return 67; // "integer_of_truncate"
849 case 'm': // 1 string to match.
850 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
851 break;
852 return 229; // "merge_of_x_and_zero"
853 case 'p': // 1 string to match.
854 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
855 break;
856 return 113; // "ptr_add_immed_chain"
857 case 'r': // 2 strings to match.
858 switch (RuleIdentifier[1]) {
859 default: break;
860 case 'e': // 1 string to match.
861 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
862 break;
863 return 112; // "reassoc_comm_binops"
864 case 'i': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
866 break;
867 return 87; // "right_identity_zero"
868 }
869 break;
870 case 's': // 3 strings to match.
871 switch (RuleIdentifier[1]) {
872 default: break;
873 case 'e': // 1 string to match.
874 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
875 break;
876 return 127; // "select_constant_cmp"
877 case 'i': // 2 strings to match.
878 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
879 break;
880 switch (RuleIdentifier[9]) {
881 default: break;
882 case 'a': // 1 string to match.
883 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
884 break;
885 return 108; // "simplify_add_to_sub"
886 case 'n': // 1 string to match.
887 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
888 break;
889 return 212; // "simplify_neg_minmax"
890 }
891 break;
892 }
893 break;
894 case 'u': // 1 string to match.
895 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
896 break;
897 return 79; // "unary_undef_to_zero"
898 }
899 break;
900 case 20: // 9 strings to match.
901 switch (RuleIdentifier[0]) {
902 default: break;
903 case 'a': // 1 string to match.
904 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
905 break;
906 return 188; // "and_or_disjoint_mask"
907 case 'b': // 1 string to match.
908 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
909 break;
910 return 102; // "bitcast_bitcast_fold"
911 case 'c': // 1 string to match.
912 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
913 break;
914 return 146; // "constant_fold_ffloor"
915 case 'm': // 1 string to match.
916 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
917 break;
918 return 228; // "merge_of_x_and_undef"
919 case 'r': // 3 strings to match.
920 if (RuleIdentifier[1] != 'e')
921 break;
922 switch (RuleIdentifier[2]) {
923 default: break;
924 case 'd': // 2 strings to match.
925 if (RuleIdentifier[3] != 'u')
926 break;
927 switch (RuleIdentifier[4]) {
928 default: break;
929 case 'c': // 1 string to match.
930 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
931 break;
932 return 124; // "reduce_shl_of_extend"
933 case 'n': // 1 string to match.
934 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
935 break;
936 return 131; // "redundant_sext_inreg"
937 }
938 break;
939 case 'm': // 1 string to match.
940 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
941 break;
942 return 247; // "remove_fcanonicalize"
943 }
944 break;
945 case 'u': // 2 strings to match.
946 if (RuleIdentifier[1] != 'n')
947 break;
948 switch (RuleIdentifier[2]) {
949 default: break;
950 case 'a': // 1 string to match.
951 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
952 break;
953 return 80; // "unary_undef_to_undef"
954 case 'm': // 1 string to match.
955 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
956 break;
957 return 227; // "unmerge_zext_to_zext"
958 }
959 break;
960 }
961 break;
962 case 21: // 12 strings to match.
963 switch (RuleIdentifier[0]) {
964 default: break;
965 case 'c': // 4 strings to match.
966 if (RuleIdentifier[1] != 'o')
967 break;
968 switch (RuleIdentifier[2]) {
969 default: break;
970 case 'm': // 2 strings to match.
971 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
972 break;
973 switch (RuleIdentifier[8]) {
974 default: break;
975 case 'b': // 1 string to match.
976 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
977 break;
978 return 230; // "combine_build_unmerge"
979 case 'c': // 1 string to match.
980 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
981 break;
982 return 213; // "combine_concat_vector"
983 }
984 break;
985 case 'n': // 2 strings to match.
986 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
987 break;
988 switch (RuleIdentifier[14]) {
989 default: break;
990 case 'c': // 1 string to match.
991 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
992 break;
993 return 184; // "constant_fold_cast_op"
994 case 'f': // 1 string to match.
995 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
996 break;
997 return 143; // "constant_fold_fptrunc"
998 }
999 break;
1000 }
1001 break;
1002 case 'e': // 1 string to match.
1003 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1004 break;
1005 return 243; // "expand_promoted_fmed3"
1006 case 'f': // 1 string to match.
1007 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1008 break;
1009 return 204; // "fdiv_repeated_divison"
1010 case 'i': // 1 string to match.
1011 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1012 break;
1013 return 27; // "insert_vector_elt_oob"
1014 case 'l': // 1 string to match.
1015 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1016 break;
1017 return 237; // "lshr_of_trunc_of_lshr"
1018 case 'r': // 1 string to match.
1019 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1020 break;
1021 return 97; // "right_identity_one_fp"
1022 case 's': // 1 string to match.
1023 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
1024 break;
1025 return 251; // "sign_extension_in_reg"
1026 case 'u': // 2 strings to match.
1027 if (RuleIdentifier[1] != 'n')
1028 break;
1029 switch (RuleIdentifier[2]) {
1030 default: break;
1031 case 'd': // 1 string to match.
1032 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1033 break;
1034 return 76; // "undef_to_negative_one"
1035 case 'm': // 1 string to match.
1036 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1037 break;
1038 return 226; // "unmerge_dead_to_trunc"
1039 }
1040 break;
1041 }
1042 break;
1043 case 22: // 13 strings to match.
1044 switch (RuleIdentifier[0]) {
1045 default: break;
1046 case 'c': // 2 strings to match.
1047 if (RuleIdentifier[1] != 'o')
1048 break;
1049 switch (RuleIdentifier[2]) {
1050 default: break;
1051 case 'm': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1053 break;
1054 return 217; // "combine_shuffle_concat"
1055 case 'n': // 1 string to match.
1056 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1057 break;
1058 return 182; // "constant_fold_fp_binop"
1059 }
1060 break;
1061 case 'f': // 4 strings to match.
1062 switch (RuleIdentifier[1]) {
1063 default: break;
1064 case 'o': // 1 string to match.
1065 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1066 break;
1067 return 197; // "fold_binop_into_select"
1068 case 'u': // 3 strings to match.
1069 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1070 break;
1071 switch (RuleIdentifier[13]) {
1072 default: break;
1073 case 'l': // 1 string to match.
1074 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1075 break;
1076 return 170; // "funnel_shift_left_zero"
1077 case 'o': // 1 string to match.
1078 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1079 break;
1080 return 171; // "funnel_shift_overshift"
1081 case 't': // 1 string to match.
1082 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1083 break;
1084 return 168; // "funnel_shift_to_rotate"
1085 }
1086 break;
1087 }
1088 break;
1089 case 'i': // 1 string to match.
1090 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1091 break;
1092 return 117; // "icmp_to_lhs_known_bits"
1093 case 'm': // 1 string to match.
1094 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1095 break;
1096 return 232; // "match_subo_no_overflow"
1097 case 'p': // 1 string to match.
1098 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1099 break;
1100 return 81; // "propagate_undef_any_op"
1101 case 'r': // 2 strings to match.
1102 switch (RuleIdentifier[1]) {
1103 default: break;
1104 case 'e': // 1 string to match.
1105 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1106 break;
1107 return 187; // "redundant_neg_operands"
1108 case 'i': // 1 string to match.
1109 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1110 break;
1111 return 96; // "right_identity_one_int"
1112 }
1113 break;
1114 case 's': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1116 break;
1117 return 121; // "shl_ashr_to_sext_inreg"
1118 case 't': // 1 string to match.
1119 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1120 break;
1121 return 100; // "trunc_buildvector_fold"
1122 }
1123 break;
1124 case 23: // 8 strings to match.
1125 switch (RuleIdentifier[0]) {
1126 default: break;
1127 case 'b': // 1 string to match.
1128 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1129 break;
1130 return 60; // "buildvector_of_truncate"
1131 case 'c': // 1 string to match.
1132 if (memcmp(RuleIdentifier.data()+1, "tlz_zero_undef_to_ctls", 22) != 0)
1133 break;
1134 return 239; // "ctlz_zero_undef_to_ctls"
1135 case 'f': // 2 strings to match.
1136 switch (RuleIdentifier[1]) {
1137 default: break;
1138 case 'd': // 1 string to match.
1139 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1140 break;
1141 return 250; // "fdiv_by_sqrt_to_rsq_f16"
1142 case 'u': // 1 string to match.
1143 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1144 break;
1145 return 169; // "funnel_shift_right_zero"
1146 }
1147 break;
1148 case 'i': // 2 strings to match.
1149 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1150 break;
1151 switch (RuleIdentifier[21]) {
1152 default: break;
1153 case 's': // 1 string to match.
1154 if (RuleIdentifier[22] != 'i')
1155 break;
1156 return 152; // "itof_const_zero_fold_si"
1157 case 'u': // 1 string to match.
1158 if (RuleIdentifier[22] != 'i')
1159 break;
1160 return 153; // "itof_const_zero_fold_ui"
1161 }
1162 break;
1163 case 'p': // 1 string to match.
1164 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1165 break;
1166 return 82; // "propagate_undef_all_ops"
1167 case 't': // 1 string to match.
1168 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1169 break;
1170 return 236; // "truncusatu_to_fptouisat"
1171 }
1172 break;
1173 case 24: // 7 strings to match.
1174 switch (RuleIdentifier[0]) {
1175 default: break;
1176 case 'b': // 1 string to match.
1177 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1178 break;
1179 return 77; // "binop_left_undef_to_zero"
1180 case 'c': // 1 string to match.
1181 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fnearbyint", 23) != 0)
1182 break;
1183 return 151; // "constant_fold_fnearbyint"
1184 case 'm': // 1 string to match.
1185 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1186 break;
1187 return 26; // "match_extract_of_element"
1188 case 'n': // 1 string to match.
1189 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1190 break;
1191 return 125; // "narrow_binop_feeding_and"
1192 case 's': // 2 strings to match.
1193 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1194 break;
1195 switch (RuleIdentifier[11]) {
1196 default: break;
1197 case 'o': // 1 string to match.
1198 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1199 break;
1200 return 56; // "sext_inreg_of_sext_inreg"
1201 case 't': // 1 string to match.
1202 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1203 break;
1204 return 135; // "sext_inreg_to_zext_inreg"
1205 }
1206 break;
1207 case 'x': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1209 break;
1210 return 161; // "xor_of_and_with_same_reg"
1211 }
1212 break;
1213 case 25: // 7 strings to match.
1214 switch (RuleIdentifier[0]) {
1215 default: break;
1216 case 'b': // 3 strings to match.
1217 switch (RuleIdentifier[1]) {
1218 default: break;
1219 case 'i': // 2 strings to match.
1220 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1221 break;
1222 switch (RuleIdentifier[22]) {
1223 default: break;
1224 case 'a': // 1 string to match.
1225 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1226 break;
1227 return 178; // "bitfield_extract_from_and"
1228 case 's': // 1 string to match.
1229 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1230 break;
1231 return 179; // "bitfield_extract_from_shr"
1232 }
1233 break;
1234 case 'u': // 1 string to match.
1235 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1236 break;
1237 return 99; // "buildvector_identity_fold"
1238 }
1239 break;
1240 case 'c': // 1 string to match.
1241 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1242 break;
1243 return 218; // "combine_shuffle_undef_rhs"
1244 case 'e': // 1 string to match.
1245 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1246 break;
1247 return 69; // "extract_vec_elt_build_vec"
1248 case 'n': // 1 string to match.
1249 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1250 break;
1251 return 122; // "neg_and_one_to_sext_inreg"
1252 case 'r': // 1 string to match.
1253 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1254 break;
1255 return 106; // "right_identity_neg_one_fp"
1256 }
1257 break;
1258 case 26: // 4 strings to match.
1259 switch (RuleIdentifier[0]) {
1260 default: break;
1261 case 'b': // 1 string to match.
1262 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1263 break;
1264 return 78; // "binop_right_undef_to_undef"
1265 case 'c': // 1 string to match.
1266 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1267 break;
1268 return 209; // "commute_fp_constant_to_rhs"
1269 case 'f': // 1 string to match.
1270 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1271 break;
1272 return 167; // "funnel_shift_from_or_shift"
1273 case 'r': // 1 string to match.
1274 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1275 break;
1276 return 104; // "right_identity_neg_zero_fp"
1277 }
1278 break;
1279 case 27: // 6 strings to match.
1280 switch (RuleIdentifier[0]) {
1281 default: break;
1282 case 'c': // 2 strings to match.
1283 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1284 break;
1285 switch (RuleIdentifier[3]) {
1286 default: break;
1287 case 'b': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1289 break;
1290 return 220; // "combine_use_vector_truncate"
1291 case 'm': // 1 string to match.
1292 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1293 break;
1294 return 208; // "commute_int_constant_to_rhs"
1295 }
1296 break;
1297 case 'd': // 1 string to match.
1298 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1299 break;
1300 return 119; // "double_icmp_zero_or_combine"
1301 case 'r': // 1 string to match.
1302 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1303 break;
1304 return 120; // "redundant_binop_in_equality"
1305 case 't': // 1 string to match.
1306 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1307 break;
1308 return 101; // "trunc_lshr_buildvector_fold"
1309 case 'u': // 1 string to match.
1310 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1311 break;
1312 return 221; // "unmerge_anyext_build_vector"
1313 }
1314 break;
1315 case 28: // 5 strings to match.
1316 switch (RuleIdentifier[0]) {
1317 default: break;
1318 case 'c': // 1 string to match.
1319 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1320 break;
1321 return 253; // "combine_or_s64_with_s32_mask"
1322 case 'd': // 1 string to match.
1323 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1324 break;
1325 return 118; // "double_icmp_zero_and_combine"
1326 case 'o': // 1 string to match.
1327 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1328 break;
1329 return 138; // "opt_brcond_by_inverting_cond"
1330 case 'p': // 1 string to match.
1331 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1332 break;
1333 return 83; // "propagate_undef_shuffle_mask"
1334 case 's': // 1 string to match.
1335 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1336 break;
1337 return 164; // "shift_of_shifted_logic_chain"
1338 }
1339 break;
1340 case 29: // 7 strings to match.
1341 switch (RuleIdentifier[0]) {
1342 default: break;
1343 case 'b': // 1 string to match.
1344 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1345 break;
1346 return 180; // "bitfield_extract_from_shr_and"
1347 case 'c': // 5 strings to match.
1348 if (RuleIdentifier[1] != 'o')
1349 break;
1350 switch (RuleIdentifier[2]) {
1351 default: break;
1352 case 'm': // 3 strings to match.
1353 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1354 break;
1355 switch (RuleIdentifier[8]) {
1356 default: break;
1357 case 'a': // 1 string to match.
1358 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1359 break;
1360 return 254; // "combine_and_s64_with_s32_mask"
1361 case 'e': // 1 string to match.
1362 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1363 break;
1364 return 73; // "combine_extracted_vector_load"
1365 case 's': // 1 string to match.
1366 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1367 break;
1368 return 219; // "combine_shuffle_disjoint_mask"
1369 }
1370 break;
1371 case 'n': // 2 strings to match.
1372 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1373 break;
1374 switch (RuleIdentifier[24]) {
1375 default: break;
1376 case 'r': // 1 string to match.
1377 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1378 break;
1379 return 148; // "constant_fold_intrinsic_round"
1380 case 't': // 1 string to match.
1381 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1382 break;
1383 return 147; // "constant_fold_intrinsic_trunc"
1384 }
1385 break;
1386 }
1387 break;
1388 case 'i': // 1 string to match.
1389 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1390 break;
1391 return 116; // "icmp_to_true_false_known_bits"
1392 }
1393 break;
1394 case 30: // 2 strings to match.
1395 switch (RuleIdentifier[0]) {
1396 default: break;
1397 case 'f': // 1 string to match.
1398 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1399 break;
1400 return 44; // "freeze_of_non_undef_non_poison"
1401 case 'r': // 1 string to match.
1402 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1403 break;
1404 return 105; // "right_identity_neg_zero_fp_nsz"
1405 }
1406 break;
1407 case 31: // 3 strings to match.
1408 switch (RuleIdentifier[0]) {
1409 default: break;
1410 case 'f': // 1 string to match.
1411 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1412 break;
1413 return 242; // "fcmp_select_to_fmin_fmax_legacy"
1414 case 'i': // 2 strings to match.
1415 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1416 break;
1417 switch (RuleIdentifier[22]) {
1418 default: break;
1419 case 'e': // 1 string to match.
1420 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1421 break;
1422 return 25; // "insert_vector_element_elt_undef"
1423 case 'i': // 1 string to match.
1424 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1425 break;
1426 return 24; // "insert_vector_element_idx_undef"
1427 }
1428 break;
1429 }
1430 break;
1431 case 32: // 4 strings to match.
1432 switch (RuleIdentifier[0]) {
1433 default: break;
1434 case 'b': // 1 string to match.
1435 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1436 break;
1437 return 177; // "bitfield_extract_from_sext_inreg"
1438 case 'c': // 2 strings to match.
1439 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1440 break;
1441 switch (RuleIdentifier[9]) {
1442 default: break;
1443 case 'a': // 1 string to match.
1444 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1445 break;
1446 return 189; // "combine_fadd_fmul_to_fmad_or_fma"
1447 case 's': // 1 string to match.
1448 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1449 break;
1450 return 193; // "combine_fsub_fmul_to_fmad_or_fma"
1451 }
1452 break;
1453 case 'e': // 1 string to match.
1454 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1455 break;
1456 return 28; // "extract_vector_element_not_const"
1457 }
1458 break;
1459 case 33: // 1 string to match.
1460 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1461 break;
1462 return 149; // "constant_fold_intrinsic_roundeven"
1463 case 34: // 2 strings to match.
1464 switch (RuleIdentifier[0]) {
1465 default: break;
1466 case 'c': // 1 string to match.
1467 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1468 break;
1469 return 244; // "combine_fmul_with_select_to_fldexp"
1470 case 'e': // 1 string to match.
1471 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1472 break;
1473 return 70; // "extract_all_elts_from_build_vector"
1474 }
1475 break;
1476 case 35: // 1 string to match.
1477 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1478 break;
1479 return 30; // "extract_vector_element_build_vector"
1480 case 36: // 4 strings to match.
1481 switch (RuleIdentifier[0]) {
1482 default: break;
1483 case 'c': // 2 strings to match.
1484 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1485 break;
1486 switch (RuleIdentifier[8]) {
1487 default: break;
1488 case 'f': // 1 string to match.
1489 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1490 break;
1491 return 191; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1492 case 'i': // 1 string to match.
1493 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1494 break;
1495 return 68; // "combine_insert_vec_elts_build_vector"
1496 }
1497 break;
1498 case 'i': // 1 string to match.
1499 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1500 break;
1501 return 85; // "insert_extract_vec_elt_out_of_bounds"
1502 case 'm': // 1 string to match.
1503 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1504 break;
1505 return 23; // "match_extract_of_element_undef_index"
1506 }
1507 break;
1508 case 37: // 4 strings to match.
1509 switch (RuleIdentifier[0]) {
1510 default: break;
1511 case 'c': // 1 string to match.
1512 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1513 break;
1514 return 194; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1515 case 'e': // 1 string to match.
1516 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1517 break;
1518 return 38; // "extract_vector_element_shuffle_vector"
1519 case 'h': // 1 string to match.
1520 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1521 break;
1522 return 109; // "hoist_logic_op_with_same_opcode_hands"
1523 case 'm': // 1 string to match.
1524 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1525 break;
1526 return 22; // "match_extract_of_element_undef_vector"
1527 }
1528 break;
1529 case 38: // 2 strings to match.
1530 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1531 break;
1532 switch (RuleIdentifier[9]) {
1533 default: break;
1534 case 'a': // 1 string to match.
1535 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1536 break;
1537 return 190; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1538 case 's': // 1 string to match.
1539 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1540 break;
1541 return 195; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1542 }
1543 break;
1544 case 40: // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1546 break;
1547 return 29; // "extract_vector_element_different_indices"
1548 case 42: // 9 strings to match.
1549 switch (RuleIdentifier[0]) {
1550 default: break;
1551 case 'c': // 1 string to match.
1552 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1553 break;
1554 return 192; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1555 case 'e': // 7 strings to match.
1556 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1557 break;
1558 switch (RuleIdentifier[41]) {
1559 default: break;
1560 case '2': // 1 string to match.
1561 return 31; // "extract_vector_element_build_vector_trunc2"
1562 case '3': // 1 string to match.
1563 return 32; // "extract_vector_element_build_vector_trunc3"
1564 case '4': // 1 string to match.
1565 return 33; // "extract_vector_element_build_vector_trunc4"
1566 case '5': // 1 string to match.
1567 return 34; // "extract_vector_element_build_vector_trunc5"
1568 case '6': // 1 string to match.
1569 return 35; // "extract_vector_element_build_vector_trunc6"
1570 case '7': // 1 string to match.
1571 return 36; // "extract_vector_element_build_vector_trunc7"
1572 case '8': // 1 string to match.
1573 return 37; // "extract_vector_element_build_vector_trunc8"
1574 }
1575 break;
1576 case 'f': // 1 string to match.
1577 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1578 break;
1579 return 172; // "funnel_shift_or_shift_to_funnel_shift_left"
1580 }
1581 break;
1582 case 43: // 2 strings to match.
1583 switch (RuleIdentifier[0]) {
1584 default: break;
1585 case 'c': // 1 string to match.
1586 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1587 break;
1588 return 196; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1589 case 'f': // 1 string to match.
1590 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1591 break;
1592 return 173; // "funnel_shift_or_shift_to_funnel_shift_right"
1593 }
1594 break;
1595 case 44: // 1 string to match.
1596 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1597 break;
1598 return 39; // "insert_vector_element_extract_vector_element"
1599 case 46: // 1 string to match.
1600 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1601 break;
1602 return 45; // "push_freeze_to_prevent_poison_from_propagating"
1603 }
1604#endif // ifndef NDEBUG
1605
1606 return std::nullopt;
1607}
1608static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1609 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1610 if (!RangePair.second.empty()) {
1611 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1612 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1613 if (!First || !Last)
1614 return std::nullopt;
1615 if (First >= Last)
1616 report_fatal_error(reason: "Beginning of range should be before end of range");
1617 return {{*First, *Last + 1}};
1618 }
1619 if (RangePair.first == "*") {
1620 return {{0, 256}};
1621 }
1622 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1623 if (!I)
1624 return std::nullopt;
1625 return {{*I, *I + 1}};
1626}
1627
1628bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1629 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1630 if (!MaybeRange)
1631 return false;
1632 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1633 DisabledRules.reset(Idx: I);
1634 return true;
1635}
1636
1637bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1638 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1639 if (!MaybeRange)
1640 return false;
1641 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1642 DisabledRules.set(I);
1643 return true;
1644}
1645
1646static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1647static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1648 "amdgpupostlegalizercombiner-disable-rule",
1649 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1650 cl::CommaSeparated,
1651 cl::Hidden,
1652 cl::cat(GICombinerOptionCategory),
1653 cl::callback(CB: [](const std::string &Str) {
1654 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1655 }));
1656static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1657 "amdgpupostlegalizercombiner-only-enable-rule",
1658 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1659 cl::Hidden,
1660 cl::cat(GICombinerOptionCategory),
1661 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1662 StringRef Str = CommaSeparatedArg;
1663 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1664 do {
1665 auto X = Str.split(Separator: ",");
1666 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1667 Str = X.second;
1668 } while (!Str.empty());
1669 }));
1670
1671
1672bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1673 return !DisabledRules.test(Idx: RuleID);
1674}
1675bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1676 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1677 bool Enabled = Identifier.consume_front(Prefix: "!");
1678 if (Enabled && !setRuleEnabled(Identifier))
1679 return false;
1680 if (!Enabled && !setRuleDisabled(Identifier))
1681 return false;
1682 }
1683 return true;
1684}
1685
1686
1687#endif // GET_GICOMBINER_TYPES
1688
1689#ifdef GET_GICOMBINER_TYPES
1690
1691const unsigned MAX_SUBTARGET_PREDICATES = 3;
1692using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1693
1694#endif // GET_GICOMBINER_TYPES
1695
1696#ifdef GET_GICOMBINER_CLASS_MEMBERS
1697
1698PredicateBitset AvailableModuleFeatures;
1699mutable PredicateBitset AvailableFunctionFeatures;
1700PredicateBitset getAvailableFeatures() const {
1701 return AvailableModuleFeatures | AvailableFunctionFeatures;
1702}
1703PredicateBitset
1704computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1705PredicateBitset
1706computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1707 const MachineFunction *MF) const;
1708void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1709
1710#endif // GET_GICOMBINER_CLASS_MEMBERS
1711
1712#ifdef GET_GICOMBINER_CLASS_MEMBERS
1713
1714 mutable MatcherState State;
1715 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1716 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1717 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1718 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1719 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1720 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1721 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1722 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1723 const uint8_t *getMatchTable() const override;
1724 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1725 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1726 bool testSimplePredicate(unsigned PredicateID) const override;
1727 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1728
1729#endif // GET_GICOMBINER_CLASS_MEMBERS
1730
1731#ifdef GET_GICOMBINER_IMPL
1732
1733// LLT Objects.
1734enum {
1735 GILLT_s16,
1736 GILLT_s32,
1737 GILLT_s64,
1738};
1739const static size_t NumTypeObjects = 3;
1740const static LLT TypeObjects[] = {
1741 LLT::scalar(16),
1742 LLT::scalar(32),
1743 LLT::scalar(64),
1744};
1745
1746// Bits for subtarget features that participate in instruction matching.
1747enum SubtargetFeatureBits : uint8_t {
1748 Feature_Has16BitInstsBit = 1,
1749 Feature_NotHasMed3_16Bit = 2,
1750 Feature_HasFminFmaxLegacyBit = 0,
1751};
1752
1753PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1754computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1755 PredicateBitset Features{};
1756 if (Subtarget->has16BitInsts())
1757 Features.set(Feature_Has16BitInstsBit);
1758 if (!Subtarget->hasMed3_16())
1759 Features.set(Feature_NotHasMed3_16Bit);
1760 if (Subtarget->hasFminFmaxLegacy())
1761 Features.set(Feature_HasFminFmaxLegacyBit);
1762 return Features;
1763}
1764
1765void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1766 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1767}
1768PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1769computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1770 PredicateBitset Features{};
1771 return Features;
1772}
1773
1774// Feature bitsets.
1775enum {
1776 GIFBS_Invalid,
1777 GIFBS_HasFminFmaxLegacy,
1778 GIFBS_Has16BitInsts_NotHasMed3_16,
1779};
1780constexpr static PredicateBitset FeatureBitsets[] {
1781 {}, // GIFBS_Invalid
1782 {Feature_HasFminFmaxLegacyBit, },
1783 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1784};
1785
1786// ComplexPattern predicates.
1787enum {
1788 GICP_Invalid,
1789};
1790// See constructor for table contents
1791
1792AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1793AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1794 nullptr, // GICP_Invalid
1795};
1796
1797enum {
1798 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1799 GICXXPred_MI_Predicate_GICombiner1,
1800 GICXXPred_MI_Predicate_GICombiner2,
1801 GICXXPred_MI_Predicate_GICombiner3,
1802 GICXXPred_MI_Predicate_GICombiner4,
1803 GICXXPred_MI_Predicate_GICombiner5,
1804 GICXXPred_MI_Predicate_GICombiner6,
1805 GICXXPred_MI_Predicate_GICombiner7,
1806 GICXXPred_MI_Predicate_GICombiner8,
1807 GICXXPred_MI_Predicate_GICombiner9,
1808 GICXXPred_MI_Predicate_GICombiner10,
1809 GICXXPred_MI_Predicate_GICombiner11,
1810 GICXXPred_MI_Predicate_GICombiner12,
1811 GICXXPred_MI_Predicate_GICombiner13,
1812 GICXXPred_MI_Predicate_GICombiner14,
1813 GICXXPred_MI_Predicate_GICombiner15,
1814 GICXXPred_MI_Predicate_GICombiner16,
1815};
1816bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1817 switch (PredicateID) {
1818 case GICXXPred_MI_Predicate_GICombiner0: {
1819 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
1820 }
1821 case GICXXPred_MI_Predicate_GICombiner1: {
1822 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1823 }
1824 case GICXXPred_MI_Predicate_GICombiner2: {
1825 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1826 }
1827 case GICXXPred_MI_Predicate_GICombiner3: {
1828 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1829 }
1830 case GICXXPred_MI_Predicate_GICombiner4: {
1831 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1832 }
1833 case GICXXPred_MI_Predicate_GICombiner5: {
1834 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
1835 }
1836 case GICXXPred_MI_Predicate_GICombiner6: {
1837 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1838 }
1839 case GICXXPred_MI_Predicate_GICombiner7: {
1840 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1841 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1842 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1843 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1844 }
1845 case GICXXPred_MI_Predicate_GICombiner8: {
1846 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1847 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1848 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1849 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1850 }
1851 case GICXXPred_MI_Predicate_GICombiner9: {
1852 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1853 Helper.isLegalOrBeforeLegalizer(
1854 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1855 }
1856 case GICXXPred_MI_Predicate_GICombiner10: {
1857 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1858 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1859 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1860 }
1861 case GICXXPred_MI_Predicate_GICombiner11: {
1862 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1863 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1864 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1865 }
1866 case GICXXPred_MI_Predicate_GICombiner12: {
1867 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
1868 }
1869 case GICXXPred_MI_Predicate_GICombiner13: {
1870 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
1871 }
1872 case GICXXPred_MI_Predicate_GICombiner14: {
1873 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1874 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1875 }
1876 case GICXXPred_MI_Predicate_GICombiner15: {
1877 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
1878 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1879 }
1880 case GICXXPred_MI_Predicate_GICombiner16: {
1881 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
1882 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
1883 }
1884 }
1885 llvm_unreachable("Unknown predicate");
1886 return false;
1887}
1888bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1889 llvm_unreachable("Unknown predicate");
1890 return false;
1891}
1892bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1893 llvm_unreachable("Unknown predicate");
1894 return false;
1895}
1896bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1897 llvm_unreachable("Unknown predicate");
1898 return false;
1899}
1900bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1901 llvm_unreachable("Unknown predicate");
1902 return false;
1903}
1904enum {
1905 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1906 GICXXPred_Simple_IsRule1Enabled,
1907 GICXXPred_Simple_IsRule2Enabled,
1908 GICXXPred_Simple_IsRule3Enabled,
1909 GICXXPred_Simple_IsRule4Enabled,
1910 GICXXPred_Simple_IsRule5Enabled,
1911 GICXXPred_Simple_IsRule6Enabled,
1912 GICXXPred_Simple_IsRule7Enabled,
1913 GICXXPred_Simple_IsRule8Enabled,
1914 GICXXPred_Simple_IsRule9Enabled,
1915 GICXXPred_Simple_IsRule10Enabled,
1916 GICXXPred_Simple_IsRule11Enabled,
1917 GICXXPred_Simple_IsRule12Enabled,
1918 GICXXPred_Simple_IsRule13Enabled,
1919 GICXXPred_Simple_IsRule14Enabled,
1920 GICXXPred_Simple_IsRule15Enabled,
1921 GICXXPred_Simple_IsRule16Enabled,
1922 GICXXPred_Simple_IsRule17Enabled,
1923 GICXXPred_Simple_IsRule18Enabled,
1924 GICXXPred_Simple_IsRule19Enabled,
1925 GICXXPred_Simple_IsRule20Enabled,
1926 GICXXPred_Simple_IsRule21Enabled,
1927 GICXXPred_Simple_IsRule22Enabled,
1928 GICXXPred_Simple_IsRule23Enabled,
1929 GICXXPred_Simple_IsRule24Enabled,
1930 GICXXPred_Simple_IsRule25Enabled,
1931 GICXXPred_Simple_IsRule26Enabled,
1932 GICXXPred_Simple_IsRule27Enabled,
1933 GICXXPred_Simple_IsRule28Enabled,
1934 GICXXPred_Simple_IsRule29Enabled,
1935 GICXXPred_Simple_IsRule30Enabled,
1936 GICXXPred_Simple_IsRule31Enabled,
1937 GICXXPred_Simple_IsRule32Enabled,
1938 GICXXPred_Simple_IsRule33Enabled,
1939 GICXXPred_Simple_IsRule34Enabled,
1940 GICXXPred_Simple_IsRule35Enabled,
1941 GICXXPred_Simple_IsRule36Enabled,
1942 GICXXPred_Simple_IsRule37Enabled,
1943 GICXXPred_Simple_IsRule38Enabled,
1944 GICXXPred_Simple_IsRule39Enabled,
1945 GICXXPred_Simple_IsRule40Enabled,
1946 GICXXPred_Simple_IsRule41Enabled,
1947 GICXXPred_Simple_IsRule42Enabled,
1948 GICXXPred_Simple_IsRule43Enabled,
1949 GICXXPred_Simple_IsRule44Enabled,
1950 GICXXPred_Simple_IsRule45Enabled,
1951 GICXXPred_Simple_IsRule46Enabled,
1952 GICXXPred_Simple_IsRule47Enabled,
1953 GICXXPred_Simple_IsRule48Enabled,
1954 GICXXPred_Simple_IsRule49Enabled,
1955 GICXXPred_Simple_IsRule50Enabled,
1956 GICXXPred_Simple_IsRule51Enabled,
1957 GICXXPred_Simple_IsRule52Enabled,
1958 GICXXPred_Simple_IsRule53Enabled,
1959 GICXXPred_Simple_IsRule54Enabled,
1960 GICXXPred_Simple_IsRule55Enabled,
1961 GICXXPred_Simple_IsRule56Enabled,
1962 GICXXPred_Simple_IsRule57Enabled,
1963 GICXXPred_Simple_IsRule58Enabled,
1964 GICXXPred_Simple_IsRule59Enabled,
1965 GICXXPred_Simple_IsRule60Enabled,
1966 GICXXPred_Simple_IsRule61Enabled,
1967 GICXXPred_Simple_IsRule62Enabled,
1968 GICXXPred_Simple_IsRule63Enabled,
1969 GICXXPred_Simple_IsRule64Enabled,
1970 GICXXPred_Simple_IsRule65Enabled,
1971 GICXXPred_Simple_IsRule66Enabled,
1972 GICXXPred_Simple_IsRule67Enabled,
1973 GICXXPred_Simple_IsRule68Enabled,
1974 GICXXPred_Simple_IsRule69Enabled,
1975 GICXXPred_Simple_IsRule70Enabled,
1976 GICXXPred_Simple_IsRule71Enabled,
1977 GICXXPred_Simple_IsRule72Enabled,
1978 GICXXPred_Simple_IsRule73Enabled,
1979 GICXXPred_Simple_IsRule74Enabled,
1980 GICXXPred_Simple_IsRule75Enabled,
1981 GICXXPred_Simple_IsRule76Enabled,
1982 GICXXPred_Simple_IsRule77Enabled,
1983 GICXXPred_Simple_IsRule78Enabled,
1984 GICXXPred_Simple_IsRule79Enabled,
1985 GICXXPred_Simple_IsRule80Enabled,
1986 GICXXPred_Simple_IsRule81Enabled,
1987 GICXXPred_Simple_IsRule82Enabled,
1988 GICXXPred_Simple_IsRule83Enabled,
1989 GICXXPred_Simple_IsRule84Enabled,
1990 GICXXPred_Simple_IsRule85Enabled,
1991 GICXXPred_Simple_IsRule86Enabled,
1992 GICXXPred_Simple_IsRule87Enabled,
1993 GICXXPred_Simple_IsRule88Enabled,
1994 GICXXPred_Simple_IsRule89Enabled,
1995 GICXXPred_Simple_IsRule90Enabled,
1996 GICXXPred_Simple_IsRule91Enabled,
1997 GICXXPred_Simple_IsRule92Enabled,
1998 GICXXPred_Simple_IsRule93Enabled,
1999 GICXXPred_Simple_IsRule94Enabled,
2000 GICXXPred_Simple_IsRule95Enabled,
2001 GICXXPred_Simple_IsRule96Enabled,
2002 GICXXPred_Simple_IsRule97Enabled,
2003 GICXXPred_Simple_IsRule98Enabled,
2004 GICXXPred_Simple_IsRule99Enabled,
2005 GICXXPred_Simple_IsRule100Enabled,
2006 GICXXPred_Simple_IsRule101Enabled,
2007 GICXXPred_Simple_IsRule102Enabled,
2008 GICXXPred_Simple_IsRule103Enabled,
2009 GICXXPred_Simple_IsRule104Enabled,
2010 GICXXPred_Simple_IsRule105Enabled,
2011 GICXXPred_Simple_IsRule106Enabled,
2012 GICXXPred_Simple_IsRule107Enabled,
2013 GICXXPred_Simple_IsRule108Enabled,
2014 GICXXPred_Simple_IsRule109Enabled,
2015 GICXXPred_Simple_IsRule110Enabled,
2016 GICXXPred_Simple_IsRule111Enabled,
2017 GICXXPred_Simple_IsRule112Enabled,
2018 GICXXPred_Simple_IsRule113Enabled,
2019 GICXXPred_Simple_IsRule114Enabled,
2020 GICXXPred_Simple_IsRule115Enabled,
2021 GICXXPred_Simple_IsRule116Enabled,
2022 GICXXPred_Simple_IsRule117Enabled,
2023 GICXXPred_Simple_IsRule118Enabled,
2024 GICXXPred_Simple_IsRule119Enabled,
2025 GICXXPred_Simple_IsRule120Enabled,
2026 GICXXPred_Simple_IsRule121Enabled,
2027 GICXXPred_Simple_IsRule122Enabled,
2028 GICXXPred_Simple_IsRule123Enabled,
2029 GICXXPred_Simple_IsRule124Enabled,
2030 GICXXPred_Simple_IsRule125Enabled,
2031 GICXXPred_Simple_IsRule126Enabled,
2032 GICXXPred_Simple_IsRule127Enabled,
2033 GICXXPred_Simple_IsRule128Enabled,
2034 GICXXPred_Simple_IsRule129Enabled,
2035 GICXXPred_Simple_IsRule130Enabled,
2036 GICXXPred_Simple_IsRule131Enabled,
2037 GICXXPred_Simple_IsRule132Enabled,
2038 GICXXPred_Simple_IsRule133Enabled,
2039 GICXXPred_Simple_IsRule134Enabled,
2040 GICXXPred_Simple_IsRule135Enabled,
2041 GICXXPred_Simple_IsRule136Enabled,
2042 GICXXPred_Simple_IsRule137Enabled,
2043 GICXXPred_Simple_IsRule138Enabled,
2044 GICXXPred_Simple_IsRule139Enabled,
2045 GICXXPred_Simple_IsRule140Enabled,
2046 GICXXPred_Simple_IsRule141Enabled,
2047 GICXXPred_Simple_IsRule142Enabled,
2048 GICXXPred_Simple_IsRule143Enabled,
2049 GICXXPred_Simple_IsRule144Enabled,
2050 GICXXPred_Simple_IsRule145Enabled,
2051 GICXXPred_Simple_IsRule146Enabled,
2052 GICXXPred_Simple_IsRule147Enabled,
2053 GICXXPred_Simple_IsRule148Enabled,
2054 GICXXPred_Simple_IsRule149Enabled,
2055 GICXXPred_Simple_IsRule150Enabled,
2056 GICXXPred_Simple_IsRule151Enabled,
2057 GICXXPred_Simple_IsRule152Enabled,
2058 GICXXPred_Simple_IsRule153Enabled,
2059 GICXXPred_Simple_IsRule154Enabled,
2060 GICXXPred_Simple_IsRule155Enabled,
2061 GICXXPred_Simple_IsRule156Enabled,
2062 GICXXPred_Simple_IsRule157Enabled,
2063 GICXXPred_Simple_IsRule158Enabled,
2064 GICXXPred_Simple_IsRule159Enabled,
2065 GICXXPred_Simple_IsRule160Enabled,
2066 GICXXPred_Simple_IsRule161Enabled,
2067 GICXXPred_Simple_IsRule162Enabled,
2068 GICXXPred_Simple_IsRule163Enabled,
2069 GICXXPred_Simple_IsRule164Enabled,
2070 GICXXPred_Simple_IsRule165Enabled,
2071 GICXXPred_Simple_IsRule166Enabled,
2072 GICXXPred_Simple_IsRule167Enabled,
2073 GICXXPred_Simple_IsRule168Enabled,
2074 GICXXPred_Simple_IsRule169Enabled,
2075 GICXXPred_Simple_IsRule170Enabled,
2076 GICXXPred_Simple_IsRule171Enabled,
2077 GICXXPred_Simple_IsRule172Enabled,
2078 GICXXPred_Simple_IsRule173Enabled,
2079 GICXXPred_Simple_IsRule174Enabled,
2080 GICXXPred_Simple_IsRule175Enabled,
2081 GICXXPred_Simple_IsRule176Enabled,
2082 GICXXPred_Simple_IsRule177Enabled,
2083 GICXXPred_Simple_IsRule178Enabled,
2084 GICXXPred_Simple_IsRule179Enabled,
2085 GICXXPred_Simple_IsRule180Enabled,
2086 GICXXPred_Simple_IsRule181Enabled,
2087 GICXXPred_Simple_IsRule182Enabled,
2088 GICXXPred_Simple_IsRule183Enabled,
2089 GICXXPred_Simple_IsRule184Enabled,
2090 GICXXPred_Simple_IsRule185Enabled,
2091 GICXXPred_Simple_IsRule186Enabled,
2092 GICXXPred_Simple_IsRule187Enabled,
2093 GICXXPred_Simple_IsRule188Enabled,
2094 GICXXPred_Simple_IsRule189Enabled,
2095 GICXXPred_Simple_IsRule190Enabled,
2096 GICXXPred_Simple_IsRule191Enabled,
2097 GICXXPred_Simple_IsRule192Enabled,
2098 GICXXPred_Simple_IsRule193Enabled,
2099 GICXXPred_Simple_IsRule194Enabled,
2100 GICXXPred_Simple_IsRule195Enabled,
2101 GICXXPred_Simple_IsRule196Enabled,
2102 GICXXPred_Simple_IsRule197Enabled,
2103 GICXXPred_Simple_IsRule198Enabled,
2104 GICXXPred_Simple_IsRule199Enabled,
2105 GICXXPred_Simple_IsRule200Enabled,
2106 GICXXPred_Simple_IsRule201Enabled,
2107 GICXXPred_Simple_IsRule202Enabled,
2108 GICXXPred_Simple_IsRule203Enabled,
2109 GICXXPred_Simple_IsRule204Enabled,
2110 GICXXPred_Simple_IsRule205Enabled,
2111 GICXXPred_Simple_IsRule206Enabled,
2112 GICXXPred_Simple_IsRule207Enabled,
2113 GICXXPred_Simple_IsRule208Enabled,
2114 GICXXPred_Simple_IsRule209Enabled,
2115 GICXXPred_Simple_IsRule210Enabled,
2116 GICXXPred_Simple_IsRule211Enabled,
2117 GICXXPred_Simple_IsRule212Enabled,
2118 GICXXPred_Simple_IsRule213Enabled,
2119 GICXXPred_Simple_IsRule214Enabled,
2120 GICXXPred_Simple_IsRule215Enabled,
2121 GICXXPred_Simple_IsRule216Enabled,
2122 GICXXPred_Simple_IsRule217Enabled,
2123 GICXXPred_Simple_IsRule218Enabled,
2124 GICXXPred_Simple_IsRule219Enabled,
2125 GICXXPred_Simple_IsRule220Enabled,
2126 GICXXPred_Simple_IsRule221Enabled,
2127 GICXXPred_Simple_IsRule222Enabled,
2128 GICXXPred_Simple_IsRule223Enabled,
2129 GICXXPred_Simple_IsRule224Enabled,
2130 GICXXPred_Simple_IsRule225Enabled,
2131 GICXXPred_Simple_IsRule226Enabled,
2132 GICXXPred_Simple_IsRule227Enabled,
2133 GICXXPred_Simple_IsRule228Enabled,
2134 GICXXPred_Simple_IsRule229Enabled,
2135 GICXXPred_Simple_IsRule230Enabled,
2136 GICXXPred_Simple_IsRule231Enabled,
2137 GICXXPred_Simple_IsRule232Enabled,
2138 GICXXPred_Simple_IsRule233Enabled,
2139 GICXXPred_Simple_IsRule234Enabled,
2140 GICXXPred_Simple_IsRule235Enabled,
2141 GICXXPred_Simple_IsRule236Enabled,
2142 GICXXPred_Simple_IsRule237Enabled,
2143 GICXXPred_Simple_IsRule238Enabled,
2144 GICXXPred_Simple_IsRule239Enabled,
2145 GICXXPred_Simple_IsRule240Enabled,
2146 GICXXPred_Simple_IsRule241Enabled,
2147 GICXXPred_Simple_IsRule242Enabled,
2148 GICXXPred_Simple_IsRule243Enabled,
2149 GICXXPred_Simple_IsRule244Enabled,
2150 GICXXPred_Simple_IsRule245Enabled,
2151 GICXXPred_Simple_IsRule246Enabled,
2152 GICXXPred_Simple_IsRule247Enabled,
2153 GICXXPred_Simple_IsRule248Enabled,
2154 GICXXPred_Simple_IsRule249Enabled,
2155 GICXXPred_Simple_IsRule250Enabled,
2156 GICXXPred_Simple_IsRule251Enabled,
2157 GICXXPred_Simple_IsRule252Enabled,
2158 GICXXPred_Simple_IsRule253Enabled,
2159 GICXXPred_Simple_IsRule254Enabled,
2160 GICXXPred_Simple_IsRule255Enabled,
2161};
2162
2163bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2164 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2165}
2166// Custom renderers.
2167enum {
2168 GICR_Invalid,
2169};
2170AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2171AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2172 nullptr, // GICR_Invalid
2173};
2174
2175bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2176 const TargetSubtargetInfo &ST = MF.getSubtarget();
2177 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2178 B.setInstrAndDebugLoc(I);
2179 State.MIs.clear();
2180 State.MIs.push_back(&I);
2181 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2182 return true;
2183 }
2184
2185 return false;
2186}
2187
2188enum {
2189 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2190 GICXXCustomAction_GICombiner1,
2191 GICXXCustomAction_GICombiner2,
2192 GICXXCustomAction_GICombiner3,
2193 GICXXCustomAction_GICombiner4,
2194 GICXXCustomAction_GICombiner5,
2195 GICXXCustomAction_GICombiner6,
2196 GICXXCustomAction_GICombiner7,
2197 GICXXCustomAction_GICombiner8,
2198 GICXXCustomAction_GICombiner9,
2199 GICXXCustomAction_GICombiner10,
2200 GICXXCustomAction_GICombiner11,
2201 GICXXCustomAction_GICombiner12,
2202 GICXXCustomAction_GICombiner13,
2203 GICXXCustomAction_GICombiner14,
2204 GICXXCustomAction_GICombiner15,
2205 GICXXCustomAction_GICombiner16,
2206 GICXXCustomAction_GICombiner17,
2207 GICXXCustomAction_GICombiner18,
2208 GICXXCustomAction_GICombiner19,
2209 GICXXCustomAction_GICombiner20,
2210 GICXXCustomAction_GICombiner21,
2211 GICXXCustomAction_GICombiner22,
2212 GICXXCustomAction_GICombiner23,
2213 GICXXCustomAction_GICombiner24,
2214 GICXXCustomAction_GICombiner25,
2215 GICXXCustomAction_GICombiner26,
2216 GICXXCustomAction_GICombiner27,
2217 GICXXCustomAction_GICombiner28,
2218 GICXXCustomAction_GICombiner29,
2219 GICXXCustomAction_GICombiner30,
2220 GICXXCustomAction_GICombiner31,
2221 GICXXCustomAction_GICombiner32,
2222 GICXXCustomAction_GICombiner33,
2223 GICXXCustomAction_GICombiner34,
2224 GICXXCustomAction_GICombiner35,
2225 GICXXCustomAction_GICombiner36,
2226 GICXXCustomAction_GICombiner37,
2227 GICXXCustomAction_GICombiner38,
2228 GICXXCustomAction_GICombiner39,
2229 GICXXCustomAction_GICombiner40,
2230 GICXXCustomAction_GICombiner41,
2231 GICXXCustomAction_GICombiner42,
2232 GICXXCustomAction_GICombiner43,
2233 GICXXCustomAction_GICombiner44,
2234 GICXXCustomAction_GICombiner45,
2235 GICXXCustomAction_GICombiner46,
2236 GICXXCustomAction_GICombiner47,
2237 GICXXCustomAction_GICombiner48,
2238 GICXXCustomAction_GICombiner49,
2239 GICXXCustomAction_GICombiner50,
2240 GICXXCustomAction_GICombiner51,
2241 GICXXCustomAction_GICombiner52,
2242 GICXXCustomAction_GICombiner53,
2243 GICXXCustomAction_GICombiner54,
2244 GICXXCustomAction_GICombiner55,
2245 GICXXCustomAction_GICombiner56,
2246 GICXXCustomAction_GICombiner57,
2247 GICXXCustomAction_GICombiner58,
2248 GICXXCustomAction_GICombiner59,
2249 GICXXCustomAction_GICombiner60,
2250 GICXXCustomAction_GICombiner61,
2251 GICXXCustomAction_GICombiner62,
2252 GICXXCustomAction_GICombiner63,
2253 GICXXCustomAction_GICombiner64,
2254 GICXXCustomAction_GICombiner65,
2255 GICXXCustomAction_GICombiner66,
2256 GICXXCustomAction_GICombiner67,
2257 GICXXCustomAction_GICombiner68,
2258 GICXXCustomAction_GICombiner69,
2259 GICXXCustomAction_GICombiner70,
2260 GICXXCustomAction_GICombiner71,
2261 GICXXCustomAction_GICombiner72,
2262 GICXXCustomAction_GICombiner73,
2263 GICXXCustomAction_GICombiner74,
2264 GICXXCustomAction_GICombiner75,
2265 GICXXCustomAction_GICombiner76,
2266 GICXXCustomAction_GICombiner77,
2267 GICXXCustomAction_GICombiner78,
2268 GICXXCustomAction_GICombiner79,
2269 GICXXCustomAction_GICombiner80,
2270 GICXXCustomAction_GICombiner81,
2271 GICXXCustomAction_GICombiner82,
2272 GICXXCustomAction_GICombiner83,
2273 GICXXCustomAction_GICombiner84,
2274 GICXXCustomAction_GICombiner85,
2275 GICXXCustomAction_GICombiner86,
2276 GICXXCustomAction_GICombiner87,
2277 GICXXCustomAction_GICombiner88,
2278 GICXXCustomAction_GICombiner89,
2279 GICXXCustomAction_GICombiner90,
2280 GICXXCustomAction_GICombiner91,
2281 GICXXCustomAction_GICombiner92,
2282 GICXXCustomAction_GICombiner93,
2283 GICXXCustomAction_GICombiner94,
2284 GICXXCustomAction_GICombiner95,
2285 GICXXCustomAction_GICombiner96,
2286 GICXXCustomAction_GICombiner97,
2287 GICXXCustomAction_GICombiner98,
2288 GICXXCustomAction_GICombiner99,
2289 GICXXCustomAction_GICombiner100,
2290 GICXXCustomAction_GICombiner101,
2291 GICXXCustomAction_GICombiner102,
2292 GICXXCustomAction_GICombiner103,
2293 GICXXCustomAction_GICombiner104,
2294 GICXXCustomAction_GICombiner105,
2295 GICXXCustomAction_GICombiner106,
2296 GICXXCustomAction_GICombiner107,
2297 GICXXCustomAction_GICombiner108,
2298 GICXXCustomAction_GICombiner109,
2299 GICXXCustomAction_GICombiner110,
2300 GICXXCustomAction_GICombiner111,
2301 GICXXCustomAction_GICombiner112,
2302 GICXXCustomAction_GICombiner113,
2303 GICXXCustomAction_GICombiner114,
2304 GICXXCustomAction_GICombiner115,
2305 GICXXCustomAction_GICombiner116,
2306 GICXXCustomAction_GICombiner117,
2307 GICXXCustomAction_GICombiner118,
2308 GICXXCustomAction_GICombiner119,
2309 GICXXCustomAction_GICombiner120,
2310 GICXXCustomAction_GICombiner121,
2311 GICXXCustomAction_GICombiner122,
2312 GICXXCustomAction_GICombiner123,
2313 GICXXCustomAction_GICombiner124,
2314 GICXXCustomAction_GICombiner125,
2315 GICXXCustomAction_GICombiner126,
2316 GICXXCustomAction_GICombiner127,
2317 GICXXCustomAction_GICombiner128,
2318 GICXXCustomAction_GICombiner129,
2319 GICXXCustomAction_GICombiner130,
2320 GICXXCustomAction_GICombiner131,
2321 GICXXCustomAction_GICombiner132,
2322 GICXXCustomAction_GICombiner133,
2323 GICXXCustomAction_GICombiner134,
2324 GICXXCustomAction_GICombiner135,
2325 GICXXCustomAction_GICombiner136,
2326 GICXXCustomAction_GICombiner137,
2327 GICXXCustomAction_GICombiner138,
2328 GICXXCustomAction_GICombiner139,
2329 GICXXCustomAction_GICombiner140,
2330 GICXXCustomAction_GICombiner141,
2331 GICXXCustomAction_GICombiner142,
2332 GICXXCustomAction_GICombiner143,
2333 GICXXCustomAction_GICombiner144,
2334 GICXXCustomAction_GICombiner145,
2335 GICXXCustomAction_GICombiner146,
2336 GICXXCustomAction_GICombiner147,
2337 GICXXCustomAction_GICombiner148,
2338 GICXXCustomAction_GICombiner149,
2339 GICXXCustomAction_GICombiner150,
2340 GICXXCustomAction_GICombiner151,
2341 GICXXCustomAction_GICombiner152,
2342 GICXXCustomAction_GICombiner153,
2343 GICXXCustomAction_GICombiner154,
2344 GICXXCustomAction_GICombiner155,
2345 GICXXCustomAction_GICombiner156,
2346 GICXXCustomAction_GICombiner157,
2347 GICXXCustomAction_GICombiner158,
2348 GICXXCustomAction_GICombiner159,
2349 GICXXCustomAction_GICombiner160,
2350 GICXXCustomAction_GICombiner161,
2351 GICXXCustomAction_GICombiner162,
2352 GICXXCustomAction_GICombiner163,
2353 GICXXCustomAction_GICombiner164,
2354 GICXXCustomAction_GICombiner165,
2355 GICXXCustomAction_GICombiner166,
2356};
2357bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2358 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2359 switch(ApplyID) {
2360 case GICXXCustomAction_GICombiner0:{
2361 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2362 // Match Patterns
2363 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2364 return false;
2365 }
2366 // Apply Patterns
2367 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2368 return true;
2369 }
2370 case GICXXCustomAction_GICombiner1:{
2371 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2372 // Match Patterns
2373 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2374 return false;
2375 }
2376 // Apply Patterns
2377 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2378 return true;
2379 }
2380 case GICXXCustomAction_GICombiner2:{
2381 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2382 // Match Patterns
2383 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2384 return false;
2385 }
2386 // Apply Patterns
2387 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2388 return true;
2389 }
2390 case GICXXCustomAction_GICombiner3:{
2391 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2392 // Match Patterns
2393 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2394 return false;
2395 }
2396 // Apply Patterns
2397 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2398 return true;
2399 }
2400 case GICXXCustomAction_GICombiner4:{
2401 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2402 // Match Patterns
2403 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2404 return false;
2405 }
2406 // Apply Patterns
2407 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2408 return true;
2409 }
2410 case GICXXCustomAction_GICombiner5:{
2411 // Match Patterns
2412 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2413 return false;
2414 }
2415 // Apply Patterns
2416 Helper.applyCombineCopy(*State.MIs[0]);
2417 return true;
2418 }
2419 case GICXXCustomAction_GICombiner6:{
2420 unsigned GIMatchData_matchinfo;
2421 // Match Patterns
2422 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2423 return false;
2424 }
2425 // Apply Patterns
2426 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2427 return true;
2428 }
2429 case GICXXCustomAction_GICombiner7:{
2430 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2431 // Match Patterns
2432 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2433 return false;
2434 }
2435 // Apply Patterns
2436 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2437 return true;
2438 }
2439 case GICXXCustomAction_GICombiner8:{
2440 std::pair<Register, bool> GIMatchData_info;
2441 // Match Patterns
2442 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2443 return false;
2444 }
2445 // Apply Patterns
2446 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2447 return true;
2448 }
2449 case GICXXCustomAction_GICombiner9:{
2450 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2451 // Match Patterns
2452 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2453 return false;
2454 }
2455 // Apply Patterns
2456 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2457 return true;
2458 }
2459 case GICXXCustomAction_GICombiner10:{
2460 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2461 // Match Patterns
2462 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2463 return false;
2464 }
2465 // Apply Patterns
2466 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2467 return true;
2468 }
2469 case GICXXCustomAction_GICombiner11:{
2470 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2471 // Match Patterns
2472 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2473 return false;
2474 }
2475 // Apply Patterns
2476 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2477 return true;
2478 }
2479 case GICXXCustomAction_GICombiner12:{
2480 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2481 // Match Patterns
2482 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2483 GIMatchData_matchinfo);}()) {
2484 return false;
2485 }
2486 // Apply Patterns
2487 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2488 return true;
2489 }
2490 case GICXXCustomAction_GICombiner13:{
2491 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2492 // Match Patterns
2493 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2494 return false;
2495 }
2496 // Apply Patterns
2497 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2498 return true;
2499 }
2500 case GICXXCustomAction_GICombiner14:{
2501 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2502 // Match Patterns
2503 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2504 GIMatchData_matchinfo);}()) {
2505 return false;
2506 }
2507 // Apply Patterns
2508 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2509 return true;
2510 }
2511 case GICXXCustomAction_GICombiner15:{
2512 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2513 // Match Patterns
2514 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2515 return false;
2516 }
2517 // Apply Patterns
2518 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2519 return true;
2520 }
2521 case GICXXCustomAction_GICombiner16:{
2522 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2523 // Match Patterns
2524 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2525 return false;
2526 }
2527 // Apply Patterns
2528 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2529 return true;
2530 }
2531 case GICXXCustomAction_GICombiner17:{
2532 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2533 // Match Patterns
2534 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2535 return false;
2536 }
2537 // Apply Patterns
2538 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2539 return true;
2540 }
2541 case GICXXCustomAction_GICombiner18:{
2542 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2543 // Match Patterns
2544 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2545 return false;
2546 }
2547 // Apply Patterns
2548 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2549 return true;
2550 }
2551 case GICXXCustomAction_GICombiner19:{
2552 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2553 // Match Patterns
2554 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2555 return false;
2556 }
2557 // Apply Patterns
2558 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2559 return true;
2560 }
2561 case GICXXCustomAction_GICombiner20:{
2562 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2563 // Match Patterns
2564 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2565 return false;
2566 }
2567 // Apply Patterns
2568 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2569 return true;
2570 }
2571 case GICXXCustomAction_GICombiner21:{
2572 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2573 // Match Patterns
2574 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2575 return false;
2576 }
2577 // Apply Patterns
2578 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2579 return true;
2580 }
2581 case GICXXCustomAction_GICombiner22:{
2582 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2583 // Match Patterns
2584 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2585 return false;
2586 }
2587 // Apply Patterns
2588 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2589 return true;
2590 }
2591 case GICXXCustomAction_GICombiner23:{
2592 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2593 // Match Patterns
2594 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2595 return false;
2596 }
2597 // Apply Patterns
2598 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2599 return true;
2600 }
2601 case GICXXCustomAction_GICombiner24:{
2602 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2603 // Match Patterns
2604 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2605 return false;
2606 }
2607 // Apply Patterns
2608 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2609 return true;
2610 }
2611 case GICXXCustomAction_GICombiner25:{
2612 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2613 // Match Patterns
2614 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2615 return false;
2616 }
2617 // Apply Patterns
2618 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2619 return true;
2620 }
2621 case GICXXCustomAction_GICombiner26:{
2622 APInt GIMatchData_matchinfo;
2623 // Match Patterns
2624 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2625 return false;
2626 }
2627 // Apply Patterns
2628 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2629 return true;
2630 }
2631 case GICXXCustomAction_GICombiner27:{
2632 SmallVector<Register> GIMatchData_info;
2633 // Match Patterns
2634 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2635 return false;
2636 }
2637 // Apply Patterns
2638 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2639 return true;
2640 }
2641 case GICXXCustomAction_GICombiner28:{
2642 Register GIMatchData_matchinfo;
2643 // Match Patterns
2644 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2645 return false;
2646 }
2647 // Apply Patterns
2648 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2649 return true;
2650 }
2651 case GICXXCustomAction_GICombiner29:{
2652 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2653 // Match Patterns
2654 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2655 return false;
2656 }
2657 // Apply Patterns
2658 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2659 return true;
2660 }
2661 case GICXXCustomAction_GICombiner30:{
2662 PreferredTuple GIMatchData_matchinfo;
2663 // Match Patterns
2664 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2665 return false;
2666 }
2667 // Apply Patterns
2668 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2669 return true;
2670 }
2671 case GICXXCustomAction_GICombiner31:{
2672 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2673 // Match Patterns
2674 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2675 return false;
2676 }
2677 // Apply Patterns
2678 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2679 return true;
2680 }
2681 case GICXXCustomAction_GICombiner32:{
2682 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2683 // Match Patterns
2684 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2685 return false;
2686 }
2687 // Apply Patterns
2688 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2689 return true;
2690 }
2691 case GICXXCustomAction_GICombiner33:{
2692 // Match Patterns
2693 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2694 return false;
2695 }
2696 // Apply Patterns
2697 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2698 return true;
2699 }
2700 case GICXXCustomAction_GICombiner34:{
2701 // Match Patterns
2702 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2703 return false;
2704 }
2705 // Apply Patterns
2706 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2707 return true;
2708 }
2709 case GICXXCustomAction_GICombiner35:{
2710 // Match Patterns
2711 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2712 return false;
2713 }
2714 // Apply Patterns
2715 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2716 return true;
2717 }
2718 case GICXXCustomAction_GICombiner36:{
2719 // Match Patterns
2720 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2721 return false;
2722 }
2723 // Apply Patterns
2724 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2725 return true;
2726 }
2727 case GICXXCustomAction_GICombiner37:{
2728 // Match Patterns
2729 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2730 return false;
2731 }
2732 // Apply Patterns
2733 Helper.replaceInstWithUndef(*State.MIs[0]);
2734 return true;
2735 }
2736 case GICXXCustomAction_GICombiner38:{
2737 // Apply Patterns
2738 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2739 return true;
2740 }
2741 case GICXXCustomAction_GICombiner39:{
2742 // Match Patterns
2743 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2744 return false;
2745 }
2746 // Apply Patterns
2747 Helper.replaceInstWithUndef(*State.MIs[0]);
2748 return true;
2749 }
2750 case GICXXCustomAction_GICombiner40:{
2751 // Match Patterns
2752 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2753 return false;
2754 }
2755 // Apply Patterns
2756 Helper.replaceInstWithUndef(*State.MIs[0]);
2757 return true;
2758 }
2759 case GICXXCustomAction_GICombiner41:{
2760 // Match Patterns
2761 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2762 return false;
2763 }
2764 // Apply Patterns
2765 Helper.replaceInstWithUndef(*State.MIs[0]);
2766 return true;
2767 }
2768 case GICXXCustomAction_GICombiner42:{
2769 // Match Patterns
2770 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2771 return false;
2772 }
2773 // Apply Patterns
2774 Helper.eraseInst(*State.MIs[0]);
2775 return true;
2776 }
2777 case GICXXCustomAction_GICombiner43:{
2778 // Match Patterns
2779 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2780 return false;
2781 }
2782 // Apply Patterns
2783 Helper.replaceInstWithUndef(*State.MIs[0]);
2784 return true;
2785 }
2786 case GICXXCustomAction_GICombiner44:{
2787 // Match Patterns
2788 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2789 return false;
2790 }
2791 // Apply Patterns
2792 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2793 return true;
2794 }
2795 case GICXXCustomAction_GICombiner45:{
2796 Register GIMatchData_info;
2797 // Match Patterns
2798 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2799 return false;
2800 }
2801 // Apply Patterns
2802 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2803 return true;
2804 }
2805 case GICXXCustomAction_GICombiner46:{
2806 Register GIMatchData_info;
2807 // Match Patterns
2808 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2809 return false;
2810 }
2811 // Apply Patterns
2812 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2813 return true;
2814 }
2815 case GICXXCustomAction_GICombiner47:{
2816 Register GIMatchData_matchinfo;
2817 // Match Patterns
2818 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2819 return false;
2820 }
2821 // Apply Patterns
2822 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2823 return true;
2824 }
2825 case GICXXCustomAction_GICombiner48:{
2826 Register GIMatchData_matchinfo;
2827 // Match Patterns
2828 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2829 return false;
2830 }
2831 // Apply Patterns
2832 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2833 return true;
2834 }
2835 case GICXXCustomAction_GICombiner49:{
2836 Register GIMatchData_matchinfo;
2837 // Match Patterns
2838 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2839 return false;
2840 }
2841 // Apply Patterns
2842 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2843 return true;
2844 }
2845 case GICXXCustomAction_GICombiner50:{
2846 Register GIMatchData_matchinfo;
2847 // Match Patterns
2848 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2849 return false;
2850 }
2851 // Apply Patterns
2852 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2853 return true;
2854 }
2855 case GICXXCustomAction_GICombiner51:{
2856 // Match Patterns
2857 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2858 return false;
2859 }
2860 // Apply Patterns
2861 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2862 return true;
2863 }
2864 case GICXXCustomAction_GICombiner52:{
2865 MachineInstr* GIMatchData_matchinfo;
2866 // Match Patterns
2867 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2868 return false;
2869 }
2870 // Apply Patterns
2871 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2872 return true;
2873 }
2874 case GICXXCustomAction_GICombiner53:{
2875 std::tuple<Register, Register> GIMatchData_info;
2876 // Match Patterns
2877 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2878 return false;
2879 }
2880 // Apply Patterns
2881 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2882 return true;
2883 }
2884 case GICXXCustomAction_GICombiner54:{
2885 InstructionStepsMatchInfo GIMatchData_info;
2886 // Match Patterns
2887 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2888 return false;
2889 }
2890 // Apply Patterns
2891 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2892 return true;
2893 }
2894 case GICXXCustomAction_GICombiner55:{
2895 std::optional<int64_t> GIMatchData_matchinfo;
2896 // Match Patterns
2897 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2898 return false;
2899 }
2900 // Apply Patterns
2901 if (GIMatchData_matchinfo) {
2902 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2903 } else {
2904 Helper.replaceInstWithUndef(*State.MIs[0]);
2905 }
2906 return true;
2907 }
2908 case GICXXCustomAction_GICombiner56:{
2909 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2910 // Match Patterns
2911 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2912 return false;
2913 }
2914 // Apply Patterns
2915 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2916 return true;
2917 }
2918 case GICXXCustomAction_GICombiner57:{
2919 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2920 // Match Patterns
2921 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2922 return false;
2923 }
2924 // Apply Patterns
2925 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2926 return true;
2927 }
2928 case GICXXCustomAction_GICombiner58:{
2929 PtrAddChain GIMatchData_matchinfo;
2930 // Match Patterns
2931 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2932 return false;
2933 }
2934 // Apply Patterns
2935 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2936 return true;
2937 }
2938 case GICXXCustomAction_GICombiner59:{
2939 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2940 // Match Patterns
2941 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2942 return false;
2943 }
2944 // Apply Patterns
2945 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2946 return true;
2947 }
2948 case GICXXCustomAction_GICombiner60:{
2949 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2950 // Match Patterns
2951 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2952 return false;
2953 }
2954 // Apply Patterns
2955 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2956 return true;
2957 }
2958 case GICXXCustomAction_GICombiner61:{
2959 int64_t GIMatchData_matchinfo;
2960 // Match Patterns
2961 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2962 return false;
2963 }
2964 // Apply Patterns
2965 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2966 return true;
2967 }
2968 case GICXXCustomAction_GICombiner62:{
2969 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2970 // Match Patterns
2971 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2972 return false;
2973 }
2974 // Apply Patterns
2975 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2976 return true;
2977 }
2978 case GICXXCustomAction_GICombiner63:{
2979 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2980 // Match Patterns
2981 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2982 return false;
2983 }
2984 // Apply Patterns
2985 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2986 return true;
2987 }
2988 case GICXXCustomAction_GICombiner64:{
2989 std::tuple<Register, int64_t> GIMatchData_info;
2990 // Match Patterns
2991 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2992 return false;
2993 }
2994 // Apply Patterns
2995 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2996 return true;
2997 }
2998 case GICXXCustomAction_GICombiner65:{
2999 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3000 // Match Patterns
3001 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3002 return false;
3003 }
3004 // Apply Patterns
3005 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3006 return true;
3007 }
3008 case GICXXCustomAction_GICombiner66:{
3009 RegisterImmPair GIMatchData_matchinfo;
3010 // Match Patterns
3011 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3012 return false;
3013 }
3014 // Apply Patterns
3015 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3016 return true;
3017 }
3018 case GICXXCustomAction_GICombiner67:{
3019 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3020 // Match Patterns
3021 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3022 return false;
3023 }
3024 // Apply Patterns
3025 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3026 return true;
3027 }
3028 case GICXXCustomAction_GICombiner68:{
3029 unsigned GIMatchData_matchinfo;
3030 // Match Patterns
3031 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3032 return false;
3033 }
3034 // Apply Patterns
3035 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3036 return true;
3037 }
3038 case GICXXCustomAction_GICombiner69:{
3039 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3040 // Match Patterns
3041 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3042 return false;
3043 }
3044 // Apply Patterns
3045 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3046 return true;
3047 }
3048 case GICXXCustomAction_GICombiner70:{
3049 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3050 // Match Patterns
3051 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3052 return false;
3053 }
3054 // Apply Patterns
3055 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3056 return true;
3057 }
3058 case GICXXCustomAction_GICombiner71:{
3059 Register GIMatchData_matchinfo;
3060 // Match Patterns
3061 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3062 return false;
3063 }
3064 // Apply Patterns
3065 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3066 return true;
3067 }
3068 case GICXXCustomAction_GICombiner72:{
3069 // Match Patterns
3070 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3071 return false;
3072 }
3073 // Apply Patterns
3074 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3075 return true;
3076 }
3077 case GICXXCustomAction_GICombiner73:{
3078 Register GIMatchData_matchinfo;
3079 // Match Patterns
3080 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3081 return false;
3082 }
3083 // Apply Patterns
3084 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3085 return true;
3086 }
3087 case GICXXCustomAction_GICombiner74:{
3088 // Match Patterns
3089 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
3090 return false;
3091 }
3092 // Apply Patterns
3093 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3094 return true;
3095 }
3096 case GICXXCustomAction_GICombiner75:{
3097 Register GIMatchData_matchinfo;
3098 // Match Patterns
3099 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3100 return false;
3101 }
3102 // Apply Patterns
3103 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3104 return true;
3105 }
3106 case GICXXCustomAction_GICombiner76:{
3107 // Match Patterns
3108 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3109 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3110 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3111 return false;
3112 }
3113 // Apply Patterns
3114 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3115 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3116 State.MIs[0]->eraseFromParent();
3117 return true;
3118 }
3119 case GICXXCustomAction_GICombiner77:{
3120 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3121 // Match Patterns
3122 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3123 return false;
3124 }
3125 // Apply Patterns
3126 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3127 return true;
3128 }
3129 case GICXXCustomAction_GICombiner78:{
3130 SmallVector<Register> GIMatchData_info;
3131 // Match Patterns
3132 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3133 return false;
3134 }
3135 // Apply Patterns
3136 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3137 return true;
3138 }
3139 case GICXXCustomAction_GICombiner79:{
3140 MachineInstr * GIMatchData_matchinfo;
3141 // Match Patterns
3142 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3143 return false;
3144 }
3145 // Apply Patterns
3146 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3147 return true;
3148 }
3149 case GICXXCustomAction_GICombiner80:{
3150 // Apply Patterns
3151 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3152 return true;
3153 }
3154 case GICXXCustomAction_GICombiner81:{
3155 // Apply Patterns
3156 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3157 return true;
3158 }
3159 case GICXXCustomAction_GICombiner82:{
3160 APInt GIMatchData_info;
3161 // Match Patterns
3162 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3163 return false;
3164 }
3165 // Apply Patterns
3166 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3167 return true;
3168 }
3169 case GICXXCustomAction_GICombiner83:{
3170 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3171 // Match Patterns
3172 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3173 return false;
3174 }
3175 // Apply Patterns
3176 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3177 return true;
3178 }
3179 case GICXXCustomAction_GICombiner84:{
3180 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3181 // Match Patterns
3182 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3183 return false;
3184 }
3185 // Apply Patterns
3186 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3187 return true;
3188 }
3189 case GICXXCustomAction_GICombiner85:{
3190 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3191 // Match Patterns
3192 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3193 return false;
3194 }
3195 // Apply Patterns
3196 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3197 return true;
3198 }
3199 case GICXXCustomAction_GICombiner86:{
3200 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3201 // Match Patterns
3202 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3203 return false;
3204 }
3205 // Apply Patterns
3206 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3207 return true;
3208 }
3209 case GICXXCustomAction_GICombiner87:{
3210 unsigned GIMatchData_info;
3211 // Match Patterns
3212 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3213 return false;
3214 }
3215 // Apply Patterns
3216 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3217 return true;
3218 }
3219 case GICXXCustomAction_GICombiner88:{
3220 // Match Patterns
3221 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3222 return false;
3223 }
3224 // Apply Patterns
3225 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3226 return true;
3227 }
3228 case GICXXCustomAction_GICombiner89:{
3229 std::pair<Register, Register> GIMatchData_matchinfo;
3230 // Match Patterns
3231 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3232 return false;
3233 }
3234 // Apply Patterns
3235 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3236 return true;
3237 }
3238 case GICXXCustomAction_GICombiner90:{
3239 // Match Patterns
3240 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3241 return false;
3242 }
3243 // Apply Patterns
3244 Helper.applyPtrAddZero(*State.MIs[0]);
3245 return true;
3246 }
3247 case GICXXCustomAction_GICombiner91:{
3248 RegisterImmPair GIMatchData_matchinfo;
3249 // Match Patterns
3250 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3251 return false;
3252 }
3253 // Apply Patterns
3254 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3255 return true;
3256 }
3257 case GICXXCustomAction_GICombiner92:{
3258 ShiftOfShiftedLogic GIMatchData_matchinfo;
3259 // Match Patterns
3260 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3261 return false;
3262 }
3263 // Apply Patterns
3264 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3265 return true;
3266 }
3267 case GICXXCustomAction_GICombiner93:{
3268 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3269 // Match Patterns
3270 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3271 return false;
3272 }
3273 // Apply Patterns
3274 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3275 return true;
3276 }
3277 case GICXXCustomAction_GICombiner94:{
3278 MachineInstr * GIMatchData_matchinfo;
3279 // Match Patterns
3280 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3281 return false;
3282 }
3283 // Apply Patterns
3284 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3285 return true;
3286 }
3287 case GICXXCustomAction_GICombiner95:{
3288 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3289 // Match Patterns
3290 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3291 return false;
3292 }
3293 // Apply Patterns
3294 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3295 return true;
3296 }
3297 case GICXXCustomAction_GICombiner96:{
3298 // Match Patterns
3299 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3300 return false;
3301 }
3302 // Apply Patterns
3303 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3304 return true;
3305 }
3306 case GICXXCustomAction_GICombiner97:{
3307 // Match Patterns
3308 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3309 return false;
3310 }
3311 // Apply Patterns
3312 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3313 return true;
3314 }
3315 case GICXXCustomAction_GICombiner98:{
3316 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3317 // Match Patterns
3318 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3319 return false;
3320 }
3321 // Apply Patterns
3322 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3323 return true;
3324 }
3325 case GICXXCustomAction_GICombiner99:{
3326 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3327 // Match Patterns
3328 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3329 return false;
3330 }
3331 // Apply Patterns
3332 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3333 return true;
3334 }
3335 case GICXXCustomAction_GICombiner100:{
3336 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3337 // Match Patterns
3338 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3339 return false;
3340 }
3341 // Apply Patterns
3342 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3343 return true;
3344 }
3345 case GICXXCustomAction_GICombiner101:{
3346 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3347 // Match Patterns
3348 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3349 return false;
3350 }
3351 // Apply Patterns
3352 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3353 return true;
3354 }
3355 case GICXXCustomAction_GICombiner102:{
3356 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3357 // Match Patterns
3358 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3359 return false;
3360 }
3361 // Apply Patterns
3362 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3363 return true;
3364 }
3365 case GICXXCustomAction_GICombiner103:{
3366 APInt GIMatchData_matchinfo;
3367 // Match Patterns
3368 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3369 return false;
3370 }
3371 // Apply Patterns
3372 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3373 return true;
3374 }
3375 case GICXXCustomAction_GICombiner104:{
3376 ConstantFP* GIMatchData_matchinfo;
3377 // Match Patterns
3378 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3379 return false;
3380 }
3381 // Apply Patterns
3382 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3383 return true;
3384 }
3385 case GICXXCustomAction_GICombiner105:{
3386 ConstantFP* GIMatchData_matchinfo;
3387 // Match Patterns
3388 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3389 return false;
3390 }
3391 // Apply Patterns
3392 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3393 return true;
3394 }
3395 case GICXXCustomAction_GICombiner106:{
3396 APInt GIMatchData_matchinfo;
3397 // Match Patterns
3398 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3399 return false;
3400 }
3401 // Apply Patterns
3402 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3403 return true;
3404 }
3405 case GICXXCustomAction_GICombiner107:{
3406 // Match Patterns
3407 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3408 return false;
3409 }
3410 // Apply Patterns
3411 Helper.applyUMulHToLShr(*State.MIs[0]);
3412 return true;
3413 }
3414 case GICXXCustomAction_GICombiner108:{
3415 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3416 // Match Patterns
3417 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3418 return false;
3419 }
3420 // Apply Patterns
3421 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3422 return true;
3423 }
3424 case GICXXCustomAction_GICombiner109:{
3425 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3426 // Match Patterns
3427 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3428 return false;
3429 }
3430 // Apply Patterns
3431 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3432 return true;
3433 }
3434 case GICXXCustomAction_GICombiner110:{
3435 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3436 // Match Patterns
3437 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3438 GIMatchData_info);}()) {
3439 return false;
3440 }
3441 // Apply Patterns
3442 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3443 return true;
3444 }
3445 case GICXXCustomAction_GICombiner111:{
3446 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3447 // Match Patterns
3448 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3449 GIMatchData_info);}()) {
3450 return false;
3451 }
3452 // Apply Patterns
3453 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3454 return true;
3455 }
3456 case GICXXCustomAction_GICombiner112:{
3457 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3458 // Match Patterns
3459 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3460 GIMatchData_info);}()) {
3461 return false;
3462 }
3463 // Apply Patterns
3464 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3465 return true;
3466 }
3467 case GICXXCustomAction_GICombiner113:{
3468 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3469 // Match Patterns
3470 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3471 *State.MIs[0], GIMatchData_info);}()) {
3472 return false;
3473 }
3474 // Apply Patterns
3475 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3476 return true;
3477 }
3478 case GICXXCustomAction_GICombiner114:{
3479 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3480 // Match Patterns
3481 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3482 GIMatchData_info);}()) {
3483 return false;
3484 }
3485 // Apply Patterns
3486 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3487 return true;
3488 }
3489 case GICXXCustomAction_GICombiner115:{
3490 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3491 // Match Patterns
3492 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3493 GIMatchData_info);}()) {
3494 return false;
3495 }
3496 // Apply Patterns
3497 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3498 return true;
3499 }
3500 case GICXXCustomAction_GICombiner116:{
3501 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3502 // Match Patterns
3503 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3504 GIMatchData_info);}()) {
3505 return false;
3506 }
3507 // Apply Patterns
3508 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3509 return true;
3510 }
3511 case GICXXCustomAction_GICombiner117:{
3512 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3513 // Match Patterns
3514 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3515 *State.MIs[0], GIMatchData_info);}()) {
3516 return false;
3517 }
3518 // Apply Patterns
3519 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3520 return true;
3521 }
3522 case GICXXCustomAction_GICombiner118:{
3523 unsigned GIMatchData_select_op_no;
3524 // Match Patterns
3525 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3526 return false;
3527 }
3528 // Apply Patterns
3529 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3530 return true;
3531 }
3532 case GICXXCustomAction_GICombiner119:{
3533 // Match Patterns
3534 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3535 return false;
3536 }
3537 // Apply Patterns
3538 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3539 return true;
3540 }
3541 case GICXXCustomAction_GICombiner120:{
3542 // Match Patterns
3543 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3544 return false;
3545 }
3546 // Apply Patterns
3547 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3548 return true;
3549 }
3550 case GICXXCustomAction_GICombiner121:{
3551 // Match Patterns
3552 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3553 return false;
3554 }
3555 // Apply Patterns
3556 Helper.applyUDivByPow2(*State.MIs[0]);
3557 return true;
3558 }
3559 case GICXXCustomAction_GICombiner122:{
3560 // Match Patterns
3561 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3562 return false;
3563 }
3564 // Apply Patterns
3565 Helper.applySDivByPow2(*State.MIs[0]);
3566 return true;
3567 }
3568 case GICXXCustomAction_GICombiner123:{
3569 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3570 // Match Patterns
3571 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3572 return false;
3573 }
3574 // Apply Patterns
3575 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3576 return true;
3577 }
3578 case GICXXCustomAction_GICombiner124:{
3579 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3580 // Match Patterns
3581 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3582 return false;
3583 }
3584 // Apply Patterns
3585 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3586 return true;
3587 }
3588 case GICXXCustomAction_GICombiner125:{
3589 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3590 // Match Patterns
3591 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3592 return false;
3593 }
3594 // Apply Patterns
3595 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3596 return true;
3597 }
3598 case GICXXCustomAction_GICombiner126:{
3599 Register GIMatchData_matchinfo;
3600 // Match Patterns
3601 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3602 return false;
3603 }
3604 // Apply Patterns
3605 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3606 return true;
3607 }
3608 case GICXXCustomAction_GICombiner127:{
3609 // Match Patterns
3610 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3611 return false;
3612 }
3613 // Apply Patterns
3614 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3615 return true;
3616 }
3617 case GICXXCustomAction_GICombiner128:{
3618 // Match Patterns
3619 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3620 return false;
3621 }
3622 // Apply Patterns
3623 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3624 return true;
3625 }
3626 case GICXXCustomAction_GICombiner129:{
3627 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3628 // Match Patterns
3629 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3630 return false;
3631 }
3632 // Apply Patterns
3633 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3634 return true;
3635 }
3636 case GICXXCustomAction_GICombiner130:{
3637 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3638 // Match Patterns
3639 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3640 return false;
3641 }
3642 // Apply Patterns
3643 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3644 return true;
3645 }
3646 case GICXXCustomAction_GICombiner131:{
3647 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3648 // Match Patterns
3649 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3650 return false;
3651 }
3652 // Apply Patterns
3653 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3654 return true;
3655 }
3656 case GICXXCustomAction_GICombiner132:{
3657 SmallVector<Register> GIMatchData_matchinfo;
3658 // Match Patterns
3659 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3660 return false;
3661 }
3662 // Apply Patterns
3663 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3664 return true;
3665 }
3666 case GICXXCustomAction_GICombiner133:{
3667 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3668 // Match Patterns
3669 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3670 return false;
3671 }
3672 // Apply Patterns
3673 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3674 return true;
3675 }
3676 case GICXXCustomAction_GICombiner134:{
3677 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3678 // Match Patterns
3679 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3680 return false;
3681 }
3682 // Apply Patterns
3683 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3684 return true;
3685 }
3686 case GICXXCustomAction_GICombiner135:{
3687 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3688 // Match Patterns
3689 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3690 return false;
3691 }
3692 // Apply Patterns
3693 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3694 return true;
3695 }
3696 case GICXXCustomAction_GICombiner136:{
3697 SmallVector<Register> GIMatchData_matchinfo;
3698 // Match Patterns
3699 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3700 return false;
3701 }
3702 // Apply Patterns
3703 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3704 return true;
3705 }
3706 case GICXXCustomAction_GICombiner137:{
3707 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3708 // Match Patterns
3709 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3710 return false;
3711 }
3712 // Apply Patterns
3713 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3714 return true;
3715 }
3716 case GICXXCustomAction_GICombiner138:{
3717 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3718 // Match Patterns
3719 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3720 return false;
3721 }
3722 // Apply Patterns
3723 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3724 return true;
3725 }
3726 case GICXXCustomAction_GICombiner139:{
3727 Register GIMatchData_matchinfo;
3728 // Match Patterns
3729 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3730 return false;
3731 }
3732 // Apply Patterns
3733 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3734 return true;
3735 }
3736 case GICXXCustomAction_GICombiner140:{
3737 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3738 // Match Patterns
3739 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3740 return false;
3741 }
3742 // Apply Patterns
3743 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3744 return true;
3745 }
3746 case GICXXCustomAction_GICombiner141:{
3747 SmallVector<Register> GIMatchData_info;
3748 // Match Patterns
3749 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3750 return false;
3751 }
3752 // Apply Patterns
3753 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3754 return true;
3755 }
3756 case GICXXCustomAction_GICombiner142:{
3757 Register GIMatchData_src;
3758 // Match Patterns
3759 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
3760 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
3761 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
3762 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
3763 return false;
3764
3765 // Check counts match.
3766 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
3767 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
3768 if (NumMergeSrcs != NumUnmergeDefs)
3769 return false;
3770
3771 // Verify all merge sources match unmerge defs in order.
3772 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
3773 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
3774 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
3775
3776 if (MergeSrc != UnmergeDef)
3777 return false;
3778
3779 if (!MRI.hasOneNonDBGUse(MergeSrc))
3780 return false;
3781 }
3782
3783 // Check size compatibility.
3784 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
3785 LLT SrcTy = MRI.getType(GIMatchData_src);
3786 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3787 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
3788 return false;
3789
3790 // Check bitcast legality.
3791 if (SrcTy != DstTy) {
3792 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
3793 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
3794 if (!Helper.isLegalOrBeforeLegalizer(Query))
3795 return false;
3796 }
3797
3798 return true;}()) {
3799 return false;
3800 }
3801 // Apply Patterns
3802 LLT SrcTy = MRI.getType(GIMatchData_src);
3803 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3804
3805 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3806
3807 if (SrcTy == DstTy) {
3808 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3809 } else {
3810 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3811 }
3812
3813 State.MIs[0]->eraseFromParent();
3814 return true;
3815 }
3816 case GICXXCustomAction_GICombiner143:{
3817 SmallVector<APInt, 8> GIMatchData_info;
3818 // Match Patterns
3819 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3820 return false;
3821 }
3822 // Apply Patterns
3823 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3824 return true;
3825 }
3826 case GICXXCustomAction_GICombiner144:{
3827 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3828 // Match Patterns
3829 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3830 return false;
3831 }
3832 // Apply Patterns
3833 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3834 return true;
3835 }
3836 case GICXXCustomAction_GICombiner145:{
3837 // Match Patterns
3838 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3839 return false;
3840 }
3841 // Apply Patterns
3842 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3843 return true;
3844 }
3845 case GICXXCustomAction_GICombiner146:{
3846 // Match Patterns
3847 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3848 return false;
3849 }
3850 // Apply Patterns
3851 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3852 return true;
3853 }
3854 case GICXXCustomAction_GICombiner147:{
3855 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3856 // Match Patterns
3857 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3858 return false;
3859 }
3860 // Apply Patterns
3861 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3862 return true;
3863 }
3864 case GICXXCustomAction_GICombiner148:{
3865 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3866 // Match Patterns
3867 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3868 return false;
3869 }
3870 // Apply Patterns
3871 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3872 return true;
3873 }
3874 case GICXXCustomAction_GICombiner149:{
3875 Register GIMatchData_unmergeSrc;
3876 // Match Patterns
3877 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
3878 return false;
3879 }
3880 // Apply Patterns
3881 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
3882 return true;
3883 }
3884 case GICXXCustomAction_GICombiner150:{
3885 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3886 // Match Patterns
3887 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3888 return false;
3889 }
3890 // Apply Patterns
3891 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3892 return true;
3893 }
3894 case GICXXCustomAction_GICombiner151:{
3895 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3896 // Match Patterns
3897 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3898 return false;
3899 }
3900 // Apply Patterns
3901 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3902 return true;
3903 }
3904 case GICXXCustomAction_GICombiner152:{
3905 Register GIMatchData_matchinfo;
3906 // Match Patterns
3907 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3908 return false;
3909 }
3910 // Apply Patterns
3911 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
3912 return true;
3913 }
3914 case GICXXCustomAction_GICombiner153:{
3915 Register GIMatchData_matchinfo;
3916 // Match Patterns
3917 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
3918 return false;
3919 }
3920 // Apply Patterns
3921 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
3922 return true;
3923 }
3924 case GICXXCustomAction_GICombiner154:{
3925 LshrOfTruncOfLshr GIMatchData_matchinfo;
3926 // Match Patterns
3927 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
3928 return false;
3929 }
3930 // Apply Patterns
3931 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
3932 return true;
3933 }
3934 case GICXXCustomAction_GICombiner155:{
3935 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3936 // Match Patterns
3937 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
3938 return false;
3939 }
3940 // Apply Patterns
3941 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3942 return true;
3943 }
3944 case GICXXCustomAction_GICombiner156:{
3945 FMinFMaxLegacyInfo GIMatchData_matchinfo;
3946 // Match Patterns
3947 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3948 return false;
3949 }
3950 // Apply Patterns
3951 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
3952 return true;
3953 }
3954 case GICXXCustomAction_GICombiner157:{
3955 // Match Patterns
3956 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());}()) {
3957 return false;
3958 }
3959 // Apply Patterns
3960 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
3961 return true;
3962 }
3963 case GICXXCustomAction_GICombiner158:{
3964 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3965 // Match Patterns
3966 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3967 return false;
3968 }
3969 // Apply Patterns
3970 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3971 return true;
3972 }
3973 case GICXXCustomAction_GICombiner159:{
3974 // Match Patterns
3975 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
3976 return false;
3977 }
3978 // Apply Patterns
3979 applyUCharToFloat(*State.MIs[0]);
3980 return true;
3981 }
3982 case GICXXCustomAction_GICombiner160:{
3983 CvtF32UByteMatchInfo GIMatchData_matchinfo;
3984 // Match Patterns
3985 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
3986 return false;
3987 }
3988 // Apply Patterns
3989 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
3990 return true;
3991 }
3992 case GICXXCustomAction_GICombiner161:{
3993 Register GIMatchData_matchinfo;
3994 // Match Patterns
3995 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
3996 return false;
3997 }
3998 // Apply Patterns
3999 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4000 return true;
4001 }
4002 case GICXXCustomAction_GICombiner162:{
4003 MachineInstr * GIMatchData_matchinfo;
4004 // Match Patterns
4005 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4006 return false;
4007 }
4008 // Apply Patterns
4009 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4010 return true;
4011 }
4012 case GICXXCustomAction_GICombiner163:{
4013 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4014 // Match Patterns
4015 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
4016 return false;
4017 }
4018 // Apply Patterns
4019 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4020 return true;
4021 }
4022 case GICXXCustomAction_GICombiner164:{
4023 // Match Patterns
4024 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4025 return false;
4026 }
4027 // Apply Patterns
4028 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4029 return true;
4030 }
4031 case GICXXCustomAction_GICombiner165:{
4032 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4033 // Match Patterns
4034 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4035 return false;
4036 }
4037 // Apply Patterns
4038 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4039 return true;
4040 }
4041 case GICXXCustomAction_GICombiner166:{
4042 unsigned GIMatchData_matchinfo;
4043 // Match Patterns
4044 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4045 return false;
4046 }
4047 // Apply Patterns
4048 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4049 return true;
4050 }
4051 }
4052 llvm_unreachable("Unknown Apply Action");
4053}
4054#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4055#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4056#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4057#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)
4058#else
4059#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4060#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4061#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)
4062#endif
4063const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4064 constexpr static uint8_t MatchTable0[] = {
4065 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4128), /*)*//*default:*//*Label 111*/ GIMT_Encode4(24435),
4066 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(16442), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4067 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16454),
4068 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(17187),
4069 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(17711),
4070 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(17928),
4071 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(18030),
4072 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(18143),
4073 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(18228), GIMT_Encode4(0), GIMT_Encode4(0),
4074 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(18335),
4075 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(18730),
4076 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(19451), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4077 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(19651), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4078 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(19663), GIMT_Encode4(0),
4079 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(19730),
4080 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(19807),
4081 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(19872),
4082 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(19884),
4083 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(19896),
4084 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(19939),
4085 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(19972),
4086 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(20015), GIMT_Encode4(0), GIMT_Encode4(0),
4087 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(20079),
4088 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(20101), GIMT_Encode4(0), GIMT_Encode4(0),
4089 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(20123), GIMT_Encode4(0), GIMT_Encode4(0),
4090 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(20145),
4091 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(20157),
4092 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(20169), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4093 /* 350 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(20181), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4094 /* 470 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(20193), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4095 /* 486 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(20205),
4096 /* 490 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(20333), GIMT_Encode4(0), GIMT_Encode4(0),
4097 /* 502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(20745), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4098 /* 522 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(20778),
4099 /* 526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(20853),
4100 /* 530 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(20930),
4101 /* 534 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(21060),
4102 /* 538 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(21258),
4103 /* 542 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(21439),
4104 /* 546 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(21602),
4105 /* 550 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(21645),
4106 /* 554 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(21688),
4107 /* 558 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(21712),
4108 /* 562 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(21736),
4109 /* 566 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(21781), GIMT_Encode4(0), GIMT_Encode4(0),
4110 /* 578 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(21793),
4111 /* 582 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(21915),
4112 /* 586 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(21938),
4113 /* 590 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(21950),
4114 /* 594 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(21962),
4115 /* 598 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(21974),
4116 /* 602 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(21997),
4117 /* 606 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(22009),
4118 /* 610 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(22021),
4119 /* 614 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(22033),
4120 /* 618 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(22067),
4121 /* 622 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(22101),
4122 /* 626 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(22124),
4123 /* 630 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(22136),
4124 /* 634 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(22148), GIMT_Encode4(0), GIMT_Encode4(0),
4125 /* 646 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(22160),
4126 /* 650 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(22183),
4127 /* 654 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(22206),
4128 /* 658 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(22218),
4129 /* 662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(22230),
4130 /* 666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(22242), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4131 /* 686 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(22254),
4132 /* 690 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(22395),
4133 /* 694 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(22484),
4134 /* 698 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(22593),
4135 /* 702 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(22616),
4136 /* 706 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(22639),
4137 /* 710 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(22723), GIMT_Encode4(0), GIMT_Encode4(0),
4138 /* 722 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(22735), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4139 /* 742 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(22757), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4140 /* 758 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(22779),
4141 /* 762 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(22841),
4142 /* 766 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(22863),
4143 /* 770 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(22930),
4144 /* 774 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(22952),
4145 /* 778 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(22974),
4146 /* 782 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(23012), GIMT_Encode4(0), GIMT_Encode4(0),
4147 /* 794 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(23050), GIMT_Encode4(0), GIMT_Encode4(0),
4148 /* 806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 82*/ GIMT_Encode4(23129),
4149 /* 810 */ /*TargetOpcode::G_FMINNUM*//*Label 83*/ GIMT_Encode4(23170),
4150 /* 814 */ /*TargetOpcode::G_FMAXNUM*//*Label 84*/ GIMT_Encode4(23204),
4151 /* 818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 85*/ GIMT_Encode4(23238),
4152 /* 822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 86*/ GIMT_Encode4(23250),
4153 /* 826 */ /*TargetOpcode::G_FMINIMUM*//*Label 87*/ GIMT_Encode4(23262),
4154 /* 830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 88*/ GIMT_Encode4(23296), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4155 /* 874 */ /*TargetOpcode::G_PTR_ADD*//*Label 89*/ GIMT_Encode4(23330), GIMT_Encode4(0),
4156 /* 882 */ /*TargetOpcode::G_SMIN*//*Label 90*/ GIMT_Encode4(23420),
4157 /* 886 */ /*TargetOpcode::G_SMAX*//*Label 91*/ GIMT_Encode4(23454),
4158 /* 890 */ /*TargetOpcode::G_UMIN*//*Label 92*/ GIMT_Encode4(23488),
4159 /* 894 */ /*TargetOpcode::G_UMAX*//*Label 93*/ GIMT_Encode4(23522),
4160 /* 898 */ /*TargetOpcode::G_ABS*//*Label 94*/ GIMT_Encode4(23556), GIMT_Encode4(0), GIMT_Encode4(0),
4161 /* 910 */ /*TargetOpcode::G_BR*//*Label 95*/ GIMT_Encode4(23568), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4162 /* 930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 96*/ GIMT_Encode4(23580),
4163 /* 934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 97*/ GIMT_Encode4(23710),
4164 /* 938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 98*/ GIMT_Encode4(24087), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4165 /* 962 */ /*TargetOpcode::G_CTLZ*//*Label 99*/ GIMT_Encode4(24153),
4166 /* 966 */ /*TargetOpcode::G_CTLZ_ZERO_UNDEF*//*Label 100*/ GIMT_Encode4(24165), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4167 /* 982 */ /*TargetOpcode::G_BITREVERSE*//*Label 101*/ GIMT_Encode4(24177),
4168 /* 986 */ /*TargetOpcode::G_FCEIL*//*Label 102*/ GIMT_Encode4(24266), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4169 /* 1034 */ /*TargetOpcode::G_FSQRT*//*Label 103*/ GIMT_Encode4(24288),
4170 /* 1038 */ /*TargetOpcode::G_FFLOOR*//*Label 104*/ GIMT_Encode4(24321),
4171 /* 1042 */ /*TargetOpcode::G_FRINT*//*Label 105*/ GIMT_Encode4(24343),
4172 /* 1046 */ /*TargetOpcode::G_FNEARBYINT*//*Label 106*/ GIMT_Encode4(24365), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4173 /* 16426 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 107*/ GIMT_Encode4(24387),
4174 /* 16430 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 108*/ GIMT_Encode4(24399),
4175 /* 16434 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 109*/ GIMT_Encode4(24411),
4176 /* 16438 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 110*/ GIMT_Encode4(24423),
4177 /* 16442 */ // Label 0: @16442
4178 /* 16442 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(16453), // Rule ID 16 //
4179 /* 16447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4180 /* 16450 */ // MIs[0] d
4181 /* 16450 */ // No operand predicates
4182 /* 16450 */ // MIs[0] s
4183 /* 16450 */ // No operand predicates
4184 /* 16450 */ // Combiner Rule #16: copy_prop
4185 /* 16450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4186 /* 16453 */ // Label 112: @16453
4187 /* 16453 */ GIM_Reject,
4188 /* 16454 */ // Label 1: @16454
4189 /* 16454 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(16465), // Rule ID 19 //
4190 /* 16459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4191 /* 16462 */ // Combiner Rule #19: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4192 /* 16462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4193 /* 16465 */ // Label 113: @16465
4194 /* 16465 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(16476), // Rule ID 97 //
4195 /* 16470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
4196 /* 16473 */ // Combiner Rule #81: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4197 /* 16473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4198 /* 16476 */ // Label 114: @16476
4199 /* 16476 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(16487), // Rule ID 148 //
4200 /* 16481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
4201 /* 16484 */ // Combiner Rule #108: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4202 /* 16484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4203 /* 16487 */ // Label 115: @16487
4204 /* 16487 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(16498), // Rule ID 250 //
4205 /* 16492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
4206 /* 16495 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_ADD'
4207 /* 16495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4208 /* 16498 */ // Label 116: @16498
4209 /* 16498 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(16509), // Rule ID 294 //
4210 /* 16503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
4211 /* 16506 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_ADD'
4212 /* 16506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4213 /* 16509 */ // Label 117: @16509
4214 /* 16509 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(16520), // Rule ID 330 //
4215 /* 16514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4216 /* 16517 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4217 /* 16517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4218 /* 16520 */ // Label 118: @16520
4219 /* 16520 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16608), // Rule ID 392 //
4220 /* 16525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
4221 /* 16528 */ // MIs[0] dst
4222 /* 16528 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4223 /* 16532 */ // MIs[0] __add_shift_match_0.shl_neg
4224 /* 16532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4225 /* 16536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4226 /* 16540 */ // MIs[1] __add_shift_match_0.neg_y
4227 /* 16540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4228 /* 16544 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4229 /* 16548 */ // MIs[2] __add_shift_match_0.zero
4230 /* 16548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4231 /* 16552 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4232 /* 16556 */ // MIs[3] Operand 1
4233 /* 16556 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4234 /* 16567 */ // MIs[2] y
4235 /* 16567 */ // No operand predicates
4236 /* 16567 */ // MIs[1] n
4237 /* 16567 */ // No operand predicates
4238 /* 16567 */ // MIs[0] x
4239 /* 16567 */ // No operand predicates
4240 /* 16567 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
4241 /* 16571 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4242 /* 16573 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4243 /* 16576 */ // Combiner Rule #240: add_shift @ [__add_shift_match_0[1]]
4244 /* 16576 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4245 /* 16579 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4246 /* 16584 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4247 /* 16588 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4248 /* 16592 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4249 /* 16596 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4250 /* 16600 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4251 /* 16604 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4252 /* 16607 */ GIR_EraseRootFromParent_Done,
4253 /* 16608 */ // Label 119: @16608
4254 /* 16608 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16696), // Rule ID 391 //
4255 /* 16613 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
4256 /* 16616 */ // MIs[0] dst
4257 /* 16616 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4258 /* 16620 */ // MIs[0] x
4259 /* 16620 */ // No operand predicates
4260 /* 16620 */ // MIs[0] __add_shift_match_0.shl_neg
4261 /* 16620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4262 /* 16624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4263 /* 16628 */ // MIs[1] __add_shift_match_0.neg_y
4264 /* 16628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4265 /* 16632 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4266 /* 16636 */ // MIs[2] __add_shift_match_0.zero
4267 /* 16636 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4268 /* 16640 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4269 /* 16644 */ // MIs[3] Operand 1
4270 /* 16644 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4271 /* 16655 */ // MIs[2] y
4272 /* 16655 */ // No operand predicates
4273 /* 16655 */ // MIs[1] n
4274 /* 16655 */ // No operand predicates
4275 /* 16655 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
4276 /* 16659 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4277 /* 16661 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4278 /* 16664 */ // Combiner Rule #240: add_shift @ [__add_shift_match_0[0]]
4279 /* 16664 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4280 /* 16667 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4281 /* 16672 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4282 /* 16676 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4283 /* 16680 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4284 /* 16684 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4285 /* 16688 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4286 /* 16692 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4287 /* 16695 */ GIR_EraseRootFromParent_Done,
4288 /* 16696 */ // Label 120: @16696
4289 /* 16696 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16730), // Rule ID 2 //
4290 /* 16701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4291 /* 16704 */ // MIs[0] root
4292 /* 16704 */ // No operand predicates
4293 /* 16704 */ // MIs[0] sub
4294 /* 16704 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4295 /* 16708 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4296 /* 16712 */ // MIs[1] Operand 1
4297 /* 16712 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4298 /* 16716 */ // MIs[1] A
4299 /* 16716 */ // No operand predicates
4300 /* 16716 */ // MIs[0] B
4301 /* 16716 */ // No operand predicates
4302 /* 16716 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4303 /* 16718 */ // Combiner Rule #2: ZeroMinusAPlusB
4304 /* 16718 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4305 /* 16721 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4306 /* 16723 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4307 /* 16725 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4308 /* 16729 */ GIR_EraseRootFromParent_Done,
4309 /* 16730 */ // Label 121: @16730
4310 /* 16730 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16767), // Rule ID 15 //
4311 /* 16735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4312 /* 16738 */ // MIs[0] root
4313 /* 16738 */ // No operand predicates
4314 /* 16738 */ // MIs[0] sub
4315 /* 16738 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4316 /* 16742 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4317 /* 16746 */ // MIs[1] A
4318 /* 16746 */ // No operand predicates
4319 /* 16746 */ // MIs[1] c1
4320 /* 16746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4321 /* 16750 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4322 /* 16754 */ // MIs[2] imm1
4323 /* 16754 */ // No operand predicates
4324 /* 16754 */ // MIs[0] c2
4325 /* 16754 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4326 /* 16758 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4327 /* 16762 */ // MIs[3] imm2
4328 /* 16762 */ // No operand predicates
4329 /* 16762 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4330 /* 16764 */ // Combiner Rule #15: AMinusC1PlusC2
4331 /* 16764 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4332 /* 16767 */ // Label 122: @16767
4333 /* 16767 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16801), // Rule ID 5 //
4334 /* 16772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4335 /* 16775 */ // MIs[0] root
4336 /* 16775 */ // No operand predicates
4337 /* 16775 */ // MIs[0] sub
4338 /* 16775 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4339 /* 16779 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4340 /* 16783 */ // MIs[1] B
4341 /* 16783 */ // No operand predicates
4342 /* 16783 */ // MIs[1] A
4343 /* 16783 */ // No operand predicates
4344 /* 16783 */ // MIs[0] A
4345 /* 16783 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4346 /* 16788 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4347 /* 16793 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4348 /* 16795 */ // Combiner Rule #5: BMinusAPlusA
4349 /* 16795 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4350 /* 16800 */ GIR_EraseRootFromParent_Done,
4351 /* 16801 */ // Label 123: @16801
4352 /* 16801 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16835), // Rule ID 137 //
4353 /* 16806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
4354 /* 16809 */ // MIs[0] dst
4355 /* 16809 */ // No operand predicates
4356 /* 16809 */ // MIs[0] __add_sub_reg_match_0.tmp
4357 /* 16809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4358 /* 16813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4359 /* 16817 */ // MIs[1] src
4360 /* 16817 */ // No operand predicates
4361 /* 16817 */ // MIs[1] __add_sub_reg_match_0.x
4362 /* 16817 */ // No operand predicates
4363 /* 16817 */ // MIs[0] __add_sub_reg_match_0.x
4364 /* 16817 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4365 /* 16822 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4366 /* 16827 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4367 /* 16829 */ // Combiner Rule #98: add_sub_reg @ [__add_sub_reg_match_0[1]]
4368 /* 16829 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4369 /* 16834 */ GIR_EraseRootFromParent_Done,
4370 /* 16835 */ // Label 124: @16835
4371 /* 16835 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16880), // Rule ID 7 //
4372 /* 16840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4373 /* 16843 */ // MIs[0] root
4374 /* 16843 */ // No operand predicates
4375 /* 16843 */ // MIs[0] sub1
4376 /* 16843 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4377 /* 16847 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4378 /* 16851 */ // MIs[1] A
4379 /* 16851 */ // No operand predicates
4380 /* 16851 */ // MIs[1] B
4381 /* 16851 */ // No operand predicates
4382 /* 16851 */ // MIs[0] sub2
4383 /* 16851 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4384 /* 16855 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4385 /* 16859 */ // MIs[2] B
4386 /* 16859 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4387 /* 16864 */ // MIs[2] C
4388 /* 16864 */ // No operand predicates
4389 /* 16864 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4390 /* 16866 */ // Combiner Rule #7: AMinusBPlusBMinusC
4391 /* 16866 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4392 /* 16869 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4393 /* 16871 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4394 /* 16875 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4395 /* 16879 */ GIR_EraseRootFromParent_Done,
4396 /* 16880 */ // Label 125: @16880
4397 /* 16880 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16925), // Rule ID 6 //
4398 /* 16885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4399 /* 16888 */ // MIs[0] root
4400 /* 16888 */ // No operand predicates
4401 /* 16888 */ // MIs[0] sub1
4402 /* 16888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4403 /* 16892 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4404 /* 16896 */ // MIs[1] A
4405 /* 16896 */ // No operand predicates
4406 /* 16896 */ // MIs[1] B
4407 /* 16896 */ // No operand predicates
4408 /* 16896 */ // MIs[0] sub2
4409 /* 16896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4410 /* 16900 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4411 /* 16904 */ // MIs[2] C
4412 /* 16904 */ // No operand predicates
4413 /* 16904 */ // MIs[2] A
4414 /* 16904 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4415 /* 16909 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4416 /* 16911 */ // Combiner Rule #6: AMinusBPlusCMinusA
4417 /* 16911 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4418 /* 16914 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4419 /* 16916 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4420 /* 16920 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4421 /* 16924 */ GIR_EraseRootFromParent_Done,
4422 /* 16925 */ // Label 126: @16925
4423 /* 16925 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16960), // Rule ID 42 //
4424 /* 16930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
4425 /* 16933 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4426 /* 16939 */ // MIs[0] root
4427 /* 16939 */ // No operand predicates
4428 /* 16939 */ // MIs[0] left
4429 /* 16939 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4430 /* 16943 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4431 /* 16947 */ // MIs[1] imm1
4432 /* 16947 */ // No operand predicates
4433 /* 16947 */ // MIs[0] right
4434 /* 16947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4435 /* 16951 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4436 /* 16955 */ // MIs[2] imm2
4437 /* 16955 */ // No operand predicates
4438 /* 16955 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4439 /* 16957 */ // Combiner Rule #40: add_of_vscale
4440 /* 16957 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4441 /* 16960 */ // Label 127: @16960
4442 /* 16960 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(16994), // Rule ID 3 //
4443 /* 16965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4444 /* 16968 */ // MIs[0] root
4445 /* 16968 */ // No operand predicates
4446 /* 16968 */ // MIs[0] A
4447 /* 16968 */ // No operand predicates
4448 /* 16968 */ // MIs[0] sub
4449 /* 16968 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4450 /* 16972 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4451 /* 16976 */ // MIs[1] Operand 1
4452 /* 16976 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4453 /* 16980 */ // MIs[1] B
4454 /* 16980 */ // No operand predicates
4455 /* 16980 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4456 /* 16982 */ // Combiner Rule #3: APlusZeroMinusB
4457 /* 16982 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4458 /* 16985 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4459 /* 16987 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4460 /* 16989 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4461 /* 16993 */ GIR_EraseRootFromParent_Done,
4462 /* 16994 */ // Label 128: @16994
4463 /* 16994 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(17028), // Rule ID 4 //
4464 /* 16999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4465 /* 17002 */ // MIs[0] root
4466 /* 17002 */ // No operand predicates
4467 /* 17002 */ // MIs[0] A
4468 /* 17002 */ // No operand predicates
4469 /* 17002 */ // MIs[0] sub
4470 /* 17002 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4471 /* 17006 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4472 /* 17010 */ // MIs[1] B
4473 /* 17010 */ // No operand predicates
4474 /* 17010 */ // MIs[1] A
4475 /* 17010 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4476 /* 17015 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4477 /* 17020 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4478 /* 17022 */ // Combiner Rule #4: APlusBMinusB
4479 /* 17022 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4480 /* 17027 */ GIR_EraseRootFromParent_Done,
4481 /* 17028 */ // Label 129: @17028
4482 /* 17028 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(17062), // Rule ID 136 //
4483 /* 17033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
4484 /* 17036 */ // MIs[0] dst
4485 /* 17036 */ // No operand predicates
4486 /* 17036 */ // MIs[0] __add_sub_reg_match_0.x
4487 /* 17036 */ // No operand predicates
4488 /* 17036 */ // MIs[0] __add_sub_reg_match_0.tmp
4489 /* 17036 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4490 /* 17040 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4491 /* 17044 */ // MIs[1] src
4492 /* 17044 */ // No operand predicates
4493 /* 17044 */ // MIs[1] __add_sub_reg_match_0.x
4494 /* 17044 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4495 /* 17049 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4496 /* 17054 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4497 /* 17056 */ // Combiner Rule #98: add_sub_reg @ [__add_sub_reg_match_0[0]]
4498 /* 17056 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4499 /* 17061 */ GIR_EraseRootFromParent_Done,
4500 /* 17062 */ // Label 130: @17062
4501 /* 17062 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(17107), // Rule ID 8 //
4502 /* 17067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4503 /* 17070 */ // MIs[0] root
4504 /* 17070 */ // No operand predicates
4505 /* 17070 */ // MIs[0] A
4506 /* 17070 */ // No operand predicates
4507 /* 17070 */ // MIs[0] sub1
4508 /* 17070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4509 /* 17074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4510 /* 17078 */ // MIs[1] B
4511 /* 17078 */ // No operand predicates
4512 /* 17078 */ // MIs[1] add1
4513 /* 17078 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4514 /* 17082 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4515 /* 17086 */ // MIs[2] A
4516 /* 17086 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4517 /* 17091 */ // MIs[2] C
4518 /* 17091 */ // No operand predicates
4519 /* 17091 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4520 /* 17093 */ // Combiner Rule #8: APlusBMinusAplusC
4521 /* 17093 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4522 /* 17096 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4523 /* 17098 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4524 /* 17102 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4525 /* 17106 */ GIR_EraseRootFromParent_Done,
4526 /* 17107 */ // Label 131: @17107
4527 /* 17107 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(17152), // Rule ID 9 //
4528 /* 17112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4529 /* 17115 */ // MIs[0] root
4530 /* 17115 */ // No operand predicates
4531 /* 17115 */ // MIs[0] A
4532 /* 17115 */ // No operand predicates
4533 /* 17115 */ // MIs[0] sub1
4534 /* 17115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4535 /* 17119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4536 /* 17123 */ // MIs[1] B
4537 /* 17123 */ // No operand predicates
4538 /* 17123 */ // MIs[1] add1
4539 /* 17123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4540 /* 17127 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4541 /* 17131 */ // MIs[2] C
4542 /* 17131 */ // No operand predicates
4543 /* 17131 */ // MIs[2] A
4544 /* 17131 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4545 /* 17136 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4546 /* 17138 */ // Combiner Rule #9: APlusBMinusCPlusA
4547 /* 17138 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4548 /* 17141 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4549 /* 17143 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4550 /* 17147 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4551 /* 17151 */ GIR_EraseRootFromParent_Done,
4552 /* 17152 */ // Label 132: @17152
4553 /* 17152 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(17175), // Rule ID 108 //
4554 /* 17157 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
4555 /* 17160 */ // MIs[0] dst
4556 /* 17160 */ // No operand predicates
4557 /* 17160 */ // MIs[0] lhs
4558 /* 17160 */ // No operand predicates
4559 /* 17160 */ // MIs[0] Operand 2
4560 /* 17160 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4561 /* 17164 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4562 /* 17169 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[1]]
4563 /* 17169 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4564 /* 17174 */ GIR_EraseRootFromParent_Done,
4565 /* 17175 */ // Label 133: @17175
4566 /* 17175 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(17186), // Rule ID 156 //
4567 /* 17180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4568 /* 17183 */ // MIs[0] root
4569 /* 17183 */ // No operand predicates
4570 /* 17183 */ // MIs[0] src1
4571 /* 17183 */ // No operand predicates
4572 /* 17183 */ // MIs[0] src2
4573 /* 17183 */ // No operand predicates
4574 /* 17183 */ // Combiner Rule #112: reassoc_comm_binops
4575 /* 17183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4576 /* 17186 */ // Label 134: @17186
4577 /* 17186 */ GIM_Reject,
4578 /* 17187 */ // Label 2: @17187
4579 /* 17187 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(17198), // Rule ID 98 //
4580 /* 17192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
4581 /* 17195 */ // Combiner Rule #81: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4582 /* 17195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4583 /* 17198 */ // Label 135: @17198
4584 /* 17198 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(17209), // Rule ID 258 //
4585 /* 17203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
4586 /* 17206 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SUB'
4587 /* 17206 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4588 /* 17209 */ // Label 136: @17209
4589 /* 17209 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(17220), // Rule ID 295 //
4590 /* 17214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
4591 /* 17217 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SUB'
4592 /* 17217 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4593 /* 17220 */ // Label 137: @17220
4594 /* 17220 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(17231), // Rule ID 327 //
4595 /* 17225 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
4596 /* 17228 */ // Combiner Rule #205: sub_add_reg; wip_match_opcode 'G_SUB'
4597 /* 17228 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4598 /* 17231 */ // Label 138: @17231
4599 /* 17231 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(17242), // Rule ID 361 //
4600 /* 17236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
4601 /* 17239 */ // Combiner Rule #212: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4602 /* 17239 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4603 /* 17242 */ // Label 139: @17242
4604 /* 17242 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(17319), // Rule ID 393 //
4605 /* 17247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
4606 /* 17250 */ // MIs[0] dst
4607 /* 17250 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4608 /* 17254 */ // MIs[0] sub1
4609 /* 17254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4610 /* 17258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4611 /* 17262 */ // MIs[1] a
4612 /* 17262 */ // No operand predicates
4613 /* 17262 */ // MIs[1] b
4614 /* 17262 */ // No operand predicates
4615 /* 17262 */ // MIs[0] Operand 2
4616 /* 17262 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4617 /* 17266 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
4618 /* 17270 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4619 /* 17272 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
4620 /* 17275 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
4621 /* 17285 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4622 /* 17288 */ // Combiner Rule #241: sub_one_from_sub
4623 /* 17288 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4624 /* 17291 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4625 /* 17296 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
4626 /* 17300 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4627 /* 17303 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4628 /* 17307 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4629 /* 17311 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4630 /* 17314 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
4631 /* 17318 */ GIR_EraseRootFromParent_Done,
4632 /* 17319 */ // Label 140: @17319
4633 /* 17319 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(17364), // Rule ID 0 //
4634 /* 17324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
4635 /* 17327 */ // MIs[0] root
4636 /* 17327 */ // No operand predicates
4637 /* 17327 */ // MIs[0] add1
4638 /* 17327 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4639 /* 17331 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4640 /* 17335 */ // MIs[1] A
4641 /* 17335 */ // No operand predicates
4642 /* 17335 */ // MIs[1] sub1
4643 /* 17335 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4644 /* 17339 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4645 /* 17343 */ // MIs[2] B
4646 /* 17343 */ // No operand predicates
4647 /* 17343 */ // MIs[2] C
4648 /* 17343 */ // No operand predicates
4649 /* 17343 */ // MIs[0] B
4650 /* 17343 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
4651 /* 17348 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4652 /* 17350 */ // Combiner Rule #0: APlusBMinusCMinusB
4653 /* 17350 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4654 /* 17353 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4655 /* 17355 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4656 /* 17359 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4657 /* 17363 */ GIR_EraseRootFromParent_Done,
4658 /* 17364 */ // Label 141: @17364
4659 /* 17364 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(17401), // Rule ID 11 //
4660 /* 17369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4661 /* 17372 */ // MIs[0] root
4662 /* 17372 */ // No operand predicates
4663 /* 17372 */ // MIs[0] add
4664 /* 17372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4665 /* 17376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4666 /* 17380 */ // MIs[1] A
4667 /* 17380 */ // No operand predicates
4668 /* 17380 */ // MIs[1] c1
4669 /* 17380 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4670 /* 17384 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4671 /* 17388 */ // MIs[2] imm1
4672 /* 17388 */ // No operand predicates
4673 /* 17388 */ // MIs[0] c2
4674 /* 17388 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4675 /* 17392 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4676 /* 17396 */ // MIs[3] imm2
4677 /* 17396 */ // No operand predicates
4678 /* 17396 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4679 /* 17398 */ // Combiner Rule #11: APlusC1MinusC2
4680 /* 17398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4681 /* 17401 */ // Label 142: @17401
4682 /* 17401 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(17438), // Rule ID 14 //
4683 /* 17406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4684 /* 17409 */ // MIs[0] root
4685 /* 17409 */ // No operand predicates
4686 /* 17409 */ // MIs[0] sub1
4687 /* 17409 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4688 /* 17413 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4689 /* 17417 */ // MIs[1] c1
4690 /* 17417 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4691 /* 17421 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4692 /* 17425 */ // MIs[2] imm1
4693 /* 17425 */ // No operand predicates
4694 /* 17425 */ // MIs[1] A
4695 /* 17425 */ // No operand predicates
4696 /* 17425 */ // MIs[0] c2
4697 /* 17425 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4698 /* 17429 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4699 /* 17433 */ // MIs[3] imm2
4700 /* 17433 */ // No operand predicates
4701 /* 17433 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4702 /* 17435 */ // Combiner Rule #14: C1Minus2MinusC2
4703 /* 17435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4704 /* 17438 */ // Label 143: @17438
4705 /* 17438 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17483), // Rule ID 1 //
4706 /* 17443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
4707 /* 17446 */ // MIs[0] root
4708 /* 17446 */ // No operand predicates
4709 /* 17446 */ // MIs[0] sub2
4710 /* 17446 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4711 /* 17450 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4712 /* 17454 */ // MIs[1] A
4713 /* 17454 */ // No operand predicates
4714 /* 17454 */ // MIs[1] sub1
4715 /* 17454 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4716 /* 17458 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4717 /* 17462 */ // MIs[2] B
4718 /* 17462 */ // No operand predicates
4719 /* 17462 */ // MIs[2] C
4720 /* 17462 */ // No operand predicates
4721 /* 17462 */ // MIs[0] C
4722 /* 17462 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
4723 /* 17467 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4724 /* 17469 */ // Combiner Rule #1: AMinusBMinusCMinusC
4725 /* 17469 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4726 /* 17472 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4727 /* 17474 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4728 /* 17478 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
4729 /* 17482 */ GIR_EraseRootFromParent_Done,
4730 /* 17483 */ // Label 144: @17483
4731 /* 17483 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17520), // Rule ID 13 //
4732 /* 17488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
4733 /* 17491 */ // MIs[0] root
4734 /* 17491 */ // No operand predicates
4735 /* 17491 */ // MIs[0] sub1
4736 /* 17491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4737 /* 17495 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4738 /* 17499 */ // MIs[1] A
4739 /* 17499 */ // No operand predicates
4740 /* 17499 */ // MIs[1] c1
4741 /* 17499 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4742 /* 17503 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4743 /* 17507 */ // MIs[2] imm1
4744 /* 17507 */ // No operand predicates
4745 /* 17507 */ // MIs[0] c2
4746 /* 17507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4747 /* 17511 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4748 /* 17515 */ // MIs[3] imm2
4749 /* 17515 */ // No operand predicates
4750 /* 17515 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4751 /* 17517 */ // Combiner Rule #13: AMinusC1MinusC2
4752 /* 17517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4753 /* 17520 */ // Label 145: @17520
4754 /* 17520 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17563), // Rule ID 166 //
4755 /* 17525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
4756 /* 17528 */ // MIs[0] dst
4757 /* 17528 */ // No operand predicates
4758 /* 17528 */ // MIs[0] Operand 1
4759 /* 17528 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4760 /* 17532 */ // MIs[0] and
4761 /* 17532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4762 /* 17536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4763 /* 17540 */ // MIs[1] x
4764 /* 17540 */ // No operand predicates
4765 /* 17540 */ // MIs[1] Operand 2
4766 /* 17540 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4767 /* 17544 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
4768 /* 17548 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4769 /* 17550 */ // Combiner Rule #122: neg_and_one_to_sext_inreg
4770 /* 17550 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4771 /* 17553 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4772 /* 17555 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4773 /* 17559 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4774 /* 17562 */ GIR_EraseRootFromParent_Done,
4775 /* 17563 */ // Label 146: @17563
4776 /* 17563 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17600), // Rule ID 12 //
4777 /* 17568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
4778 /* 17571 */ // MIs[0] root
4779 /* 17571 */ // No operand predicates
4780 /* 17571 */ // MIs[0] c2
4781 /* 17571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4782 /* 17575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4783 /* 17579 */ // MIs[1] imm2
4784 /* 17579 */ // No operand predicates
4785 /* 17579 */ // MIs[0] add
4786 /* 17579 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4787 /* 17583 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4788 /* 17587 */ // MIs[2] A
4789 /* 17587 */ // No operand predicates
4790 /* 17587 */ // MIs[2] c1
4791 /* 17587 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4792 /* 17591 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4793 /* 17595 */ // MIs[3] imm1
4794 /* 17595 */ // No operand predicates
4795 /* 17595 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4796 /* 17597 */ // Combiner Rule #12: C2MinusAPlusC1
4797 /* 17597 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4798 /* 17600 */ // Label 147: @17600
4799 /* 17600 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17639), // Rule ID 119 //
4800 /* 17605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
4801 /* 17608 */ // MIs[0] dst
4802 /* 17608 */ // No operand predicates
4803 /* 17608 */ // MIs[0] x
4804 /* 17608 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
4805 /* 17612 */ // MIs[0] x
4806 /* 17612 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4807 /* 17617 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4808 /* 17620 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4809 /* 17630 */ // Combiner Rule #89: same_val_zero @ [__same_val_zero_match_0[0]]
4810 /* 17630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
4811 /* 17633 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4812 /* 17635 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4813 /* 17638 */ GIR_EraseRootFromParent_Done,
4814 /* 17639 */ // Label 148: @17639
4815 /* 17639 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17666), // Rule ID 45 //
4816 /* 17644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4817 /* 17647 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4818 /* 17653 */ // MIs[0] root
4819 /* 17653 */ // No operand predicates
4820 /* 17653 */ // MIs[0] x
4821 /* 17653 */ // No operand predicates
4822 /* 17653 */ // MIs[0] right
4823 /* 17653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4824 /* 17657 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4825 /* 17661 */ // MIs[1] imm
4826 /* 17661 */ // No operand predicates
4827 /* 17661 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4828 /* 17663 */ // Combiner Rule #43: sub_of_vscale
4829 /* 17663 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4830 /* 17666 */ // Label 149: @17666
4831 /* 17666 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17689), // Rule ID 107 //
4832 /* 17671 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
4833 /* 17674 */ // MIs[0] dst
4834 /* 17674 */ // No operand predicates
4835 /* 17674 */ // MIs[0] lhs
4836 /* 17674 */ // No operand predicates
4837 /* 17674 */ // MIs[0] Operand 2
4838 /* 17674 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4839 /* 17678 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4840 /* 17683 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[0]]
4841 /* 17683 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4842 /* 17688 */ GIR_EraseRootFromParent_Done,
4843 /* 17689 */ // Label 150: @17689
4844 /* 17689 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17710), // Rule ID 18 //
4845 /* 17694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4846 /* 17697 */ // MIs[0] d
4847 /* 17697 */ // No operand predicates
4848 /* 17697 */ // MIs[0] op1
4849 /* 17697 */ // No operand predicates
4850 /* 17697 */ // MIs[0] c
4851 /* 17697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4852 /* 17701 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4853 /* 17705 */ // MIs[1] imm
4854 /* 17705 */ // No operand predicates
4855 /* 17705 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4856 /* 17707 */ // Combiner Rule #18: sub_to_add
4857 /* 17707 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4858 /* 17710 */ // Label 151: @17710
4859 /* 17710 */ GIM_Reject,
4860 /* 17711 */ // Label 3: @17711
4861 /* 17711 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17722), // Rule ID 81 //
4862 /* 17716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
4863 /* 17719 */ // Combiner Rule #75: undef_to_int_zero; wip_match_opcode 'G_MUL'
4864 /* 17719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4865 /* 17722 */ // Label 152: @17722
4866 /* 17722 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17733), // Rule ID 255 //
4867 /* 17727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
4868 /* 17730 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_MUL'
4869 /* 17730 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4870 /* 17733 */ // Label 153: @17733
4871 /* 17733 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17744), // Rule ID 331 //
4872 /* 17738 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4873 /* 17741 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4874 /* 17741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4875 /* 17744 */ // Label 154: @17744
4876 /* 17744 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17755), // Rule ID 409 //
4877 /* 17749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
4878 /* 17752 */ // Combiner Rule #252: smulu64; wip_match_opcode 'G_MUL'
4879 /* 17752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
4880 /* 17755 */ // Label 155: @17755
4881 /* 17755 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17795), // Rule ID 20 //
4882 /* 17760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
4883 /* 17763 */ // MIs[0] dst
4884 /* 17763 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4885 /* 17767 */ // MIs[0] x
4886 /* 17767 */ // No operand predicates
4887 /* 17767 */ // MIs[0] Operand 2
4888 /* 17767 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
4889 /* 17771 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4890 /* 17774 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4891 /* 17784 */ // Combiner Rule #20: mul_by_neg_one
4892 /* 17784 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4893 /* 17787 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4894 /* 17789 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4895 /* 17792 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4896 /* 17794 */ GIR_EraseRootFromParent_Done,
4897 /* 17795 */ // Label 156: @17795
4898 /* 17795 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17830), // Rule ID 43 //
4899 /* 17800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
4900 /* 17803 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4901 /* 17809 */ // MIs[0] root
4902 /* 17809 */ // No operand predicates
4903 /* 17809 */ // MIs[0] left
4904 /* 17809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4905 /* 17813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4906 /* 17817 */ // MIs[1] scale
4907 /* 17817 */ // No operand predicates
4908 /* 17817 */ // MIs[0] x
4909 /* 17817 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4910 /* 17821 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4911 /* 17825 */ // MIs[2] imm1
4912 /* 17825 */ // No operand predicates
4913 /* 17825 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4914 /* 17827 */ // Combiner Rule #41: mul_of_vscale
4915 /* 17827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4916 /* 17830 */ // Label 157: @17830
4917 /* 17830 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17870), // Rule ID 128 //
4918 /* 17835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4919 /* 17838 */ // MIs[0] dst
4920 /* 17838 */ // No operand predicates
4921 /* 17838 */ // MIs[0] zero
4922 /* 17838 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4923 /* 17842 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4924 /* 17846 */ // MIs[1] Operand 1
4925 /* 17846 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4926 /* 17857 */ // MIs[0] rhs
4927 /* 17857 */ // No operand predicates
4928 /* 17857 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4929 /* 17862 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4930 /* 17864 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
4931 /* 17864 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4932 /* 17869 */ GIR_EraseRootFromParent_Done,
4933 /* 17870 */ // Label 158: @17870
4934 /* 17870 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(17893), // Rule ID 129 //
4935 /* 17875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
4936 /* 17878 */ // MIs[0] dst
4937 /* 17878 */ // No operand predicates
4938 /* 17878 */ // MIs[0] lhs
4939 /* 17878 */ // No operand predicates
4940 /* 17878 */ // MIs[0] zero
4941 /* 17878 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4942 /* 17882 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4943 /* 17887 */ // Combiner Rule #91: binop_right_to_zero
4944 /* 17887 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4945 /* 17892 */ GIR_EraseRootFromParent_Done,
4946 /* 17893 */ // Label 159: @17893
4947 /* 17893 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(17916), // Rule ID 134 //
4948 /* 17898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
4949 /* 17901 */ // MIs[0] dst
4950 /* 17901 */ // No operand predicates
4951 /* 17901 */ // MIs[0] x
4952 /* 17901 */ // No operand predicates
4953 /* 17901 */ // MIs[0] Operand 2
4954 /* 17901 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4955 /* 17905 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4956 /* 17910 */ // Combiner Rule #96: right_identity_one_int
4957 /* 17910 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4958 /* 17915 */ GIR_EraseRootFromParent_Done,
4959 /* 17916 */ // Label 160: @17916
4960 /* 17916 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(17927), // Rule ID 17 //
4961 /* 17921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4962 /* 17924 */ // MIs[0] d
4963 /* 17924 */ // No operand predicates
4964 /* 17924 */ // MIs[0] op1
4965 /* 17924 */ // No operand predicates
4966 /* 17924 */ // MIs[0] op2
4967 /* 17924 */ // No operand predicates
4968 /* 17924 */ // Combiner Rule #17: mul_to_shl
4969 /* 17924 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4970 /* 17927 */ // Label 161: @17927
4971 /* 17927 */ GIM_Reject,
4972 /* 17928 */ // Label 4: @17928
4973 /* 17928 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(17939), // Rule ID 226 //
4974 /* 17933 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4975 /* 17936 */ // Combiner Rule #166: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4976 /* 17936 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4977 /* 17939 */ // Label 162: @17939
4978 /* 17939 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(17950), // Rule ID 261 //
4979 /* 17944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
4980 /* 17947 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SDIV'
4981 /* 17947 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4982 /* 17950 */ // Label 163: @17950
4983 /* 17950 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(17961), // Rule ID 300 //
4984 /* 17955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
4985 /* 17958 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4986 /* 17958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4987 /* 17961 */ // Label 164: @17961
4988 /* 17961 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(18001), // Rule ID 124 //
4989 /* 17966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4990 /* 17969 */ // MIs[0] dst
4991 /* 17969 */ // No operand predicates
4992 /* 17969 */ // MIs[0] zero
4993 /* 17969 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4994 /* 17973 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4995 /* 17977 */ // MIs[1] Operand 1
4996 /* 17977 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4997 /* 17988 */ // MIs[0] rhs
4998 /* 17988 */ // No operand predicates
4999 /* 17988 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5000 /* 17993 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5001 /* 17995 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5002 /* 17995 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5003 /* 18000 */ GIR_EraseRootFromParent_Done,
5004 /* 18001 */ // Label 165: @18001
5005 /* 18001 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(18018), // Rule ID 323 //
5006 /* 18006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
5007 /* 18009 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5008 /* 18015 */ // MIs[0] dst
5009 /* 18015 */ // No operand predicates
5010 /* 18015 */ // MIs[0] x
5011 /* 18015 */ // No operand predicates
5012 /* 18015 */ // MIs[0] y
5013 /* 18015 */ // No operand predicates
5014 /* 18015 */ // Combiner Rule #201: sdiv_by_pow2
5015 /* 18015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5016 /* 18018 */ // Label 166: @18018
5017 /* 18018 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(18029), // Rule ID 325 //
5018 /* 18023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
5019 /* 18026 */ // MIs[0] dst
5020 /* 18026 */ // No operand predicates
5021 /* 18026 */ // MIs[0] x
5022 /* 18026 */ // No operand predicates
5023 /* 18026 */ // MIs[0] y
5024 /* 18026 */ // No operand predicates
5025 /* 18026 */ // Combiner Rule #203: sdiv_by_const
5026 /* 18026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5027 /* 18029 */ // Label 167: @18029
5028 /* 18029 */ GIM_Reject,
5029 /* 18030 */ // Label 5: @18030
5030 /* 18030 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(18041), // Rule ID 84 //
5031 /* 18035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5032 /* 18038 */ // Combiner Rule #77: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
5033 /* 18038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5034 /* 18041 */ // Label 168: @18041
5035 /* 18041 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(18052), // Rule ID 227 //
5036 /* 18046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5037 /* 18049 */ // Combiner Rule #166: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5038 /* 18049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5039 /* 18052 */ // Label 169: @18052
5040 /* 18052 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(18063), // Rule ID 260 //
5041 /* 18057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5042 /* 18060 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_UDIV'
5043 /* 18060 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5044 /* 18063 */ // Label 170: @18063
5045 /* 18063 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(18074), // Rule ID 302 //
5046 /* 18068 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5047 /* 18071 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5048 /* 18071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5049 /* 18074 */ // Label 171: @18074
5050 /* 18074 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(18114), // Rule ID 125 //
5051 /* 18079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5052 /* 18082 */ // MIs[0] dst
5053 /* 18082 */ // No operand predicates
5054 /* 18082 */ // MIs[0] zero
5055 /* 18082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5056 /* 18086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5057 /* 18090 */ // MIs[1] Operand 1
5058 /* 18090 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5059 /* 18101 */ // MIs[0] rhs
5060 /* 18101 */ // No operand predicates
5061 /* 18101 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5062 /* 18106 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5063 /* 18108 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5064 /* 18108 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5065 /* 18113 */ GIR_EraseRootFromParent_Done,
5066 /* 18114 */ // Label 172: @18114
5067 /* 18114 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(18131), // Rule ID 322 //
5068 /* 18119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5069 /* 18122 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5070 /* 18128 */ // MIs[0] dst
5071 /* 18128 */ // No operand predicates
5072 /* 18128 */ // MIs[0] x
5073 /* 18128 */ // No operand predicates
5074 /* 18128 */ // MIs[0] y
5075 /* 18128 */ // No operand predicates
5076 /* 18128 */ // Combiner Rule #200: udiv_by_pow2
5077 /* 18128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5078 /* 18131 */ // Label 173: @18131
5079 /* 18131 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(18142), // Rule ID 324 //
5080 /* 18136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
5081 /* 18139 */ // MIs[0] dst
5082 /* 18139 */ // No operand predicates
5083 /* 18139 */ // MIs[0] x
5084 /* 18139 */ // No operand predicates
5085 /* 18139 */ // MIs[0] y
5086 /* 18139 */ // No operand predicates
5087 /* 18139 */ // Combiner Rule #202: udiv_by_const
5088 /* 18139 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5089 /* 18142 */ // Label 174: @18142
5090 /* 18142 */ GIM_Reject,
5091 /* 18143 */ // Label 6: @18143
5092 /* 18143 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(18154), // Rule ID 228 //
5093 /* 18148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5094 /* 18151 */ // Combiner Rule #166: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5095 /* 18151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5096 /* 18154 */ // Label 175: @18154
5097 /* 18154 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(18165), // Rule ID 263 //
5098 /* 18159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5099 /* 18162 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SREM'
5100 /* 18162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5101 /* 18165 */ // Label 176: @18165
5102 /* 18165 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(18176), // Rule ID 301 //
5103 /* 18170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5104 /* 18173 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SREM'
5105 /* 18173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5106 /* 18176 */ // Label 177: @18176
5107 /* 18176 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(18216), // Rule ID 126 //
5108 /* 18181 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5109 /* 18184 */ // MIs[0] dst
5110 /* 18184 */ // No operand predicates
5111 /* 18184 */ // MIs[0] zero
5112 /* 18184 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5113 /* 18188 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5114 /* 18192 */ // MIs[1] Operand 1
5115 /* 18192 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5116 /* 18203 */ // MIs[0] rhs
5117 /* 18203 */ // No operand predicates
5118 /* 18203 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5119 /* 18208 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5120 /* 18210 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5121 /* 18210 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5122 /* 18215 */ GIR_EraseRootFromParent_Done,
5123 /* 18216 */ // Label 178: @18216
5124 /* 18216 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(18227), // Rule ID 321 //
5125 /* 18221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
5126 /* 18224 */ // MIs[0] dst
5127 /* 18224 */ // No operand predicates
5128 /* 18224 */ // MIs[0] x
5129 /* 18224 */ // No operand predicates
5130 /* 18224 */ // MIs[0] y
5131 /* 18224 */ // No operand predicates
5132 /* 18224 */ // Combiner Rule #199: srem_by_const
5133 /* 18224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5134 /* 18227 */ // Label 179: @18227
5135 /* 18227 */ GIM_Reject,
5136 /* 18228 */ // Label 7: @18228
5137 /* 18228 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(18239), // Rule ID 85 //
5138 /* 18233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5139 /* 18236 */ // Combiner Rule #77: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5140 /* 18236 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5141 /* 18239 */ // Label 180: @18239
5142 /* 18239 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(18250), // Rule ID 177 //
5143 /* 18244 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
5144 /* 18247 */ // Combiner Rule #133: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
5145 /* 18247 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5146 /* 18250 */ // Label 181: @18250
5147 /* 18250 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(18261), // Rule ID 229 //
5148 /* 18255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5149 /* 18258 */ // Combiner Rule #166: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5150 /* 18258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5151 /* 18261 */ // Label 182: @18261
5152 /* 18261 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(18272), // Rule ID 262 //
5153 /* 18266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5154 /* 18269 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_UREM'
5155 /* 18269 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5156 /* 18272 */ // Label 183: @18272
5157 /* 18272 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(18283), // Rule ID 303 //
5158 /* 18277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5159 /* 18280 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_UREM'
5160 /* 18280 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5161 /* 18283 */ // Label 184: @18283
5162 /* 18283 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(18323), // Rule ID 127 //
5163 /* 18288 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5164 /* 18291 */ // MIs[0] dst
5165 /* 18291 */ // No operand predicates
5166 /* 18291 */ // MIs[0] zero
5167 /* 18291 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5168 /* 18295 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5169 /* 18299 */ // MIs[1] Operand 1
5170 /* 18299 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5171 /* 18310 */ // MIs[0] rhs
5172 /* 18310 */ // No operand predicates
5173 /* 18310 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5174 /* 18315 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5175 /* 18317 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5176 /* 18317 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5177 /* 18322 */ GIR_EraseRootFromParent_Done,
5178 /* 18323 */ // Label 185: @18323
5179 /* 18323 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(18334), // Rule ID 320 //
5180 /* 18328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
5181 /* 18331 */ // MIs[0] dst
5182 /* 18331 */ // No operand predicates
5183 /* 18331 */ // MIs[0] x
5184 /* 18331 */ // No operand predicates
5185 /* 18331 */ // MIs[0] y
5186 /* 18331 */ // No operand predicates
5187 /* 18331 */ // Combiner Rule #198: urem_by_const
5188 /* 18331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5189 /* 18334 */ // Label 186: @18334
5190 /* 18334 */ GIM_Reject,
5191 /* 18335 */ // Label 8: @18335
5192 /* 18335 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(18346), // Rule ID 76 //
5193 /* 18340 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
5194 /* 18343 */ // Combiner Rule #72: load_and_mask; wip_match_opcode 'G_AND'
5195 /* 18343 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5196 /* 18346 */ // Label 187: @18346
5197 /* 18346 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(18357), // Rule ID 80 //
5198 /* 18351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5199 /* 18354 */ // Combiner Rule #75: undef_to_int_zero; wip_match_opcode 'G_AND'
5200 /* 18354 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5201 /* 18357 */ // Label 188: @18357
5202 /* 18357 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(18368), // Rule ID 149 //
5203 /* 18362 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
5204 /* 18365 */ // Combiner Rule #109: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5205 /* 18365 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5206 /* 18368 */ // Label 189: @18368
5207 /* 18368 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(18379), // Rule ID 169 //
5208 /* 18373 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
5209 /* 18376 */ // Combiner Rule #125: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5210 /* 18376 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5211 /* 18379 */ // Label 190: @18379
5212 /* 18379 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(18390), // Rule ID 174 //
5213 /* 18384 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
5214 /* 18387 */ // Combiner Rule #130: redundant_and; wip_match_opcode 'G_AND'
5215 /* 18387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5216 /* 18390 */ // Label 191: @18390
5217 /* 18390 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(18401), // Rule ID 199 //
5218 /* 18395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
5219 /* 18398 */ // Combiner Rule #155: overlapping_and; wip_match_opcode 'G_AND'
5220 /* 18398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5221 /* 18401 */ // Label 192: @18401
5222 /* 18401 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(18412), // Rule ID 252 //
5223 /* 18406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5224 /* 18409 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_AND'
5225 /* 18409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5226 /* 18412 */ // Label 193: @18412
5227 /* 18412 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(18423), // Rule ID 285 //
5228 /* 18417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
5229 /* 18420 */ // Combiner Rule #188: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5230 /* 18420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
5231 /* 18423 */ // Label 194: @18423
5232 /* 18423 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(18434), // Rule ID 297 //
5233 /* 18428 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5234 /* 18431 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_AND'
5235 /* 18431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5236 /* 18434 */ // Label 195: @18434
5237 /* 18434 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(18445), // Rule ID 332 //
5238 /* 18439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5239 /* 18442 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5240 /* 18442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5241 /* 18445 */ // Label 196: @18445
5242 /* 18445 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18456), // Rule ID 359 //
5243 /* 18450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5244 /* 18453 */ // Combiner Rule #210: match_ands; wip_match_opcode 'G_AND'
5245 /* 18453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5246 /* 18456 */ // Label 197: @18456
5247 /* 18456 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18554), // Rule ID 162 //
5248 /* 18461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
5249 /* 18464 */ // MIs[0] root
5250 /* 18464 */ // No operand predicates
5251 /* 18464 */ // MIs[0] d1
5252 /* 18464 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5253 /* 18468 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5254 /* 18472 */ // MIs[1] p
5255 /* 18472 */ // No operand predicates
5256 /* 18472 */ // MIs[1] s1
5257 /* 18472 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5258 /* 18476 */ // MIs[1] Operand 3
5259 /* 18476 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5260 /* 18480 */ // MIs[0] d2
5261 /* 18480 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5262 /* 18484 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5263 /* 18488 */ // MIs[2] p
5264 /* 18488 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5265 /* 18493 */ // MIs[2] s2
5266 /* 18493 */ // No operand predicates
5267 /* 18493 */ // MIs[2] Operand 3
5268 /* 18493 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5269 /* 18497 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
5270 /* 18501 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5271 /* 18503 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5272 /* 18506 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5273 /* 18516 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5274 /* 18519 */ // Combiner Rule #118: double_icmp_zero_and_combine
5275 /* 18519 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5276 /* 18522 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5277 /* 18527 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5278 /* 18531 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5279 /* 18535 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5280 /* 18539 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5281 /* 18543 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5282 /* 18547 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5283 /* 18550 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5284 /* 18553 */ GIR_EraseRootFromParent_Done,
5285 /* 18554 */ // Label 198: @18554
5286 /* 18554 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18591), // Rule ID 245 //
5287 /* 18559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5288 /* 18562 */ // MIs[0] root
5289 /* 18562 */ // No operand predicates
5290 /* 18562 */ // MIs[0] shift
5291 /* 18562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5292 /* 18566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5293 /* 18570 */ // MIs[1] x
5294 /* 18570 */ // No operand predicates
5295 /* 18570 */ // MIs[1] lsb
5296 /* 18570 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5297 /* 18574 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5298 /* 18578 */ // MIs[2] imm1
5299 /* 18578 */ // No operand predicates
5300 /* 18578 */ // MIs[0] mask
5301 /* 18578 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5302 /* 18582 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5303 /* 18586 */ // MIs[3] imm2
5304 /* 18586 */ // No operand predicates
5305 /* 18586 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5306 /* 18588 */ // Combiner Rule #178: bitfield_extract_from_and
5307 /* 18588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5308 /* 18591 */ // Label 199: @18591
5309 /* 18591 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18705), // Rule ID 411 //
5310 /* 18596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
5311 /* 18599 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5312 /* 18602 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5313 /* 18605 */ // MIs[0] dst
5314 /* 18605 */ // No operand predicates
5315 /* 18605 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
5316 /* 18609 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5317 /* 18612 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5318 /* 18615 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5319 /* 18618 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5320 /* 18621 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5321 /* 18624 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5322 /* 18627 */ // Combiner Rule #254: combine_and_s64_with_s32_mask
5323 /* 18627 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5324 /* 18630 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5325 /* 18635 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5326 /* 18640 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5327 /* 18642 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5328 /* 18646 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5329 /* 18651 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5330 /* 18656 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5331 /* 18660 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5332 /* 18664 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5333 /* 18669 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5334 /* 18672 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5335 /* 18675 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5336 /* 18679 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5337 /* 18684 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5338 /* 18687 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5339 /* 18690 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5340 /* 18694 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5341 /* 18698 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5342 /* 18701 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5343 /* 18704 */ GIR_EraseRootFromParent_Done,
5344 /* 18705 */ // Label 200: @18705
5345 /* 18705 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18729), // Rule ID 117 //
5346 /* 18710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
5347 /* 18713 */ // MIs[0] dst
5348 /* 18713 */ // No operand predicates
5349 /* 18713 */ // MIs[0] src
5350 /* 18713 */ // No operand predicates
5351 /* 18713 */ // MIs[0] src
5352 /* 18713 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5353 /* 18718 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5354 /* 18723 */ // Combiner Rule #88: binop_same_val @ [__binop_same_val_match_0[0]]
5355 /* 18723 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5356 /* 18728 */ GIR_EraseRootFromParent_Done,
5357 /* 18729 */ // Label 201: @18729
5358 /* 18729 */ GIM_Reject,
5359 /* 18730 */ // Label 9: @18730
5360 /* 18730 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18741), // Rule ID 82 //
5361 /* 18735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
5362 /* 18738 */ // Combiner Rule #76: undef_to_negative_one; wip_match_opcode 'G_OR'
5363 /* 18738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5364 /* 18741 */ // Label 202: @18741
5365 /* 18741 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18752), // Rule ID 150 //
5366 /* 18746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
5367 /* 18749 */ // Combiner Rule #109: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
5368 /* 18749 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5369 /* 18752 */ // Label 203: @18752
5370 /* 18752 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18763), // Rule ID 176 //
5371 /* 18757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
5372 /* 18760 */ // Combiner Rule #132: redundant_or; wip_match_opcode 'G_OR'
5373 /* 18760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5374 /* 18763 */ // Label 204: @18763
5375 /* 18763 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18774), // Rule ID 225 //
5376 /* 18768 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5377 /* 18771 */ // Combiner Rule #165: load_or_combine; wip_match_opcode 'G_OR'
5378 /* 18771 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5379 /* 18774 */ // Label 205: @18774
5380 /* 18774 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18785), // Rule ID 230 //
5381 /* 18779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
5382 /* 18782 */ // Combiner Rule #167: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
5383 /* 18782 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5384 /* 18785 */ // Label 206: @18785
5385 /* 18785 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18796), // Rule ID 256 //
5386 /* 18790 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5387 /* 18793 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_OR'
5388 /* 18793 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5389 /* 18796 */ // Label 207: @18796
5390 /* 18796 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18807), // Rule ID 298 //
5391 /* 18801 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5392 /* 18804 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_OR'
5393 /* 18804 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5394 /* 18807 */ // Label 208: @18807
5395 /* 18807 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18818), // Rule ID 333 //
5396 /* 18812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5397 /* 18815 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
5398 /* 18815 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5399 /* 18818 */ // Label 209: @18818
5400 /* 18818 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18829), // Rule ID 360 //
5401 /* 18823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5402 /* 18826 */ // Combiner Rule #211: match_ors; wip_match_opcode 'G_OR'
5403 /* 18826 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5404 /* 18829 */ // Label 210: @18829
5405 /* 18829 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18916), // Rule ID 413 //
5406 /* 18834 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
5407 /* 18837 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5408 /* 18840 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5409 /* 18843 */ // MIs[0] dst
5410 /* 18843 */ // No operand predicates
5411 /* 18843 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5412 /* 18847 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5413 /* 18851 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5414 /* 18855 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5415 /* 18859 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5416 /* 18861 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5417 /* 18864 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5418 /* 18867 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5419 /* 18870 */ // Combiner Rule #255: combine_or_s64_s32 @ [dst[1]]
5420 /* 18870 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5421 /* 18873 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5422 /* 18878 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5423 /* 18883 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
5424 /* 18885 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5425 /* 18889 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5426 /* 18894 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5427 /* 18897 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5428 /* 18901 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5429 /* 18905 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5430 /* 18909 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5431 /* 18912 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5432 /* 18915 */ GIR_EraseRootFromParent_Done,
5433 /* 18916 */ // Label 211: @18916
5434 /* 18916 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18963), // Rule ID 237 //
5435 /* 18921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5436 /* 18924 */ // MIs[0] root
5437 /* 18924 */ // No operand predicates
5438 /* 18924 */ // MIs[0] out1
5439 /* 18924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5440 /* 18928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
5441 /* 18932 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5442 /* 18932 */ // No operand predicates
5443 /* 18932 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5444 /* 18932 */ // No operand predicates
5445 /* 18932 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5446 /* 18932 */ // No operand predicates
5447 /* 18932 */ // MIs[0] out2
5448 /* 18932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5449 /* 18936 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5450 /* 18940 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5451 /* 18940 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5452 /* 18945 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5453 /* 18945 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5454 /* 18950 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5455 /* 18955 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5456 /* 18957 */ // Combiner Rule #172: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
5457 /* 18957 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5458 /* 18962 */ GIR_EraseRootFromParent_Done,
5459 /* 18963 */ // Label 212: @18963
5460 /* 18963 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(19010), // Rule ID 239 //
5461 /* 18968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
5462 /* 18971 */ // MIs[0] root
5463 /* 18971 */ // No operand predicates
5464 /* 18971 */ // MIs[0] out1
5465 /* 18971 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5466 /* 18975 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
5467 /* 18979 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5468 /* 18979 */ // No operand predicates
5469 /* 18979 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5470 /* 18979 */ // No operand predicates
5471 /* 18979 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5472 /* 18979 */ // No operand predicates
5473 /* 18979 */ // MIs[0] out2
5474 /* 18979 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5475 /* 18983 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5476 /* 18987 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5477 /* 18987 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5478 /* 18992 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5479 /* 18992 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5480 /* 18997 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5481 /* 19002 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5482 /* 19004 */ // Combiner Rule #173: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
5483 /* 19004 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5484 /* 19009 */ GIR_EraseRootFromParent_Done,
5485 /* 19010 */ // Label 213: @19010
5486 /* 19010 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(19108), // Rule ID 163 //
5487 /* 19015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
5488 /* 19018 */ // MIs[0] root
5489 /* 19018 */ // No operand predicates
5490 /* 19018 */ // MIs[0] d1
5491 /* 19018 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5492 /* 19022 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5493 /* 19026 */ // MIs[1] p
5494 /* 19026 */ // No operand predicates
5495 /* 19026 */ // MIs[1] s1
5496 /* 19026 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5497 /* 19030 */ // MIs[1] Operand 3
5498 /* 19030 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5499 /* 19034 */ // MIs[0] d2
5500 /* 19034 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5501 /* 19038 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5502 /* 19042 */ // MIs[2] p
5503 /* 19042 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5504 /* 19047 */ // MIs[2] s2
5505 /* 19047 */ // No operand predicates
5506 /* 19047 */ // MIs[2] Operand 3
5507 /* 19047 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5508 /* 19051 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
5509 /* 19055 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5510 /* 19057 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5511 /* 19060 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5512 /* 19070 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5513 /* 19073 */ // Combiner Rule #119: double_icmp_zero_or_combine
5514 /* 19073 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5515 /* 19076 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5516 /* 19081 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5517 /* 19085 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5518 /* 19089 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5519 /* 19093 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5520 /* 19097 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5521 /* 19101 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5522 /* 19104 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5523 /* 19107 */ GIR_EraseRootFromParent_Done,
5524 /* 19108 */ // Label 214: @19108
5525 /* 19108 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(19155), // Rule ID 240 //
5526 /* 19113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
5527 /* 19116 */ // MIs[0] root
5528 /* 19116 */ // No operand predicates
5529 /* 19116 */ // MIs[0] out2
5530 /* 19116 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5531 /* 19120 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5532 /* 19124 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5533 /* 19124 */ // No operand predicates
5534 /* 19124 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5535 /* 19124 */ // No operand predicates
5536 /* 19124 */ // MIs[0] out1
5537 /* 19124 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5538 /* 19128 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
5539 /* 19132 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5540 /* 19132 */ // No operand predicates
5541 /* 19132 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5542 /* 19132 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5543 /* 19137 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5544 /* 19137 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5545 /* 19142 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5546 /* 19147 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5547 /* 19149 */ // Combiner Rule #173: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
5548 /* 19149 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5549 /* 19154 */ GIR_EraseRootFromParent_Done,
5550 /* 19155 */ // Label 215: @19155
5551 /* 19155 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(19202), // Rule ID 238 //
5552 /* 19160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5553 /* 19163 */ // MIs[0] root
5554 /* 19163 */ // No operand predicates
5555 /* 19163 */ // MIs[0] out2
5556 /* 19163 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5557 /* 19167 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5558 /* 19171 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5559 /* 19171 */ // No operand predicates
5560 /* 19171 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5561 /* 19171 */ // No operand predicates
5562 /* 19171 */ // MIs[0] out1
5563 /* 19171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5564 /* 19175 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
5565 /* 19179 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5566 /* 19179 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5567 /* 19184 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5568 /* 19184 */ // No operand predicates
5569 /* 19184 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5570 /* 19184 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5571 /* 19189 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5572 /* 19194 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5573 /* 19196 */ // Combiner Rule #172: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
5574 /* 19196 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5575 /* 19201 */ GIR_EraseRootFromParent_Done,
5576 /* 19202 */ // Label 216: @19202
5577 /* 19202 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(19403),
5578 /* 19207 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5579 /* 19210 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5580 /* 19213 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(19294), // Rule ID 412 //
5581 /* 19218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
5582 /* 19221 */ // MIs[0] dst
5583 /* 19221 */ // No operand predicates
5584 /* 19221 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5585 /* 19225 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5586 /* 19229 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5587 /* 19233 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5588 /* 19237 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5589 /* 19239 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5590 /* 19242 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5591 /* 19245 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5592 /* 19248 */ // Combiner Rule #255: combine_or_s64_s32 @ [dst[0]]
5593 /* 19248 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5594 /* 19251 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5595 /* 19256 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5596 /* 19261 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5597 /* 19263 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5598 /* 19267 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5599 /* 19272 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5600 /* 19275 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5601 /* 19279 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5602 /* 19283 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5603 /* 19287 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5604 /* 19290 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5605 /* 19293 */ GIR_EraseRootFromParent_Done,
5606 /* 19294 */ // Label 218: @19294
5607 /* 19294 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(19402), // Rule ID 410 //
5608 /* 19299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
5609 /* 19302 */ // MIs[0] dst
5610 /* 19302 */ // No operand predicates
5611 /* 19302 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
5612 /* 19306 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5613 /* 19309 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5614 /* 19312 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5615 /* 19315 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5616 /* 19318 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5617 /* 19321 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5618 /* 19324 */ // Combiner Rule #253: combine_or_s64_with_s32_mask
5619 /* 19324 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5620 /* 19327 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5621 /* 19332 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5622 /* 19337 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5623 /* 19339 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5624 /* 19343 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5625 /* 19348 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5626 /* 19353 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5627 /* 19357 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5628 /* 19361 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5629 /* 19366 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5630 /* 19369 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5631 /* 19372 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5632 /* 19376 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5633 /* 19381 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5634 /* 19384 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5635 /* 19387 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5636 /* 19391 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5637 /* 19395 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5638 /* 19398 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5639 /* 19401 */ GIR_EraseRootFromParent_Done,
5640 /* 19402 */ // Label 219: @19402
5641 /* 19402 */ GIM_Reject,
5642 /* 19403 */ // Label 217: @19403
5643 /* 19403 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(19427), // Rule ID 118 //
5644 /* 19408 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
5645 /* 19411 */ // MIs[0] dst
5646 /* 19411 */ // No operand predicates
5647 /* 19411 */ // MIs[0] src
5648 /* 19411 */ // No operand predicates
5649 /* 19411 */ // MIs[0] src
5650 /* 19411 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5651 /* 19416 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5652 /* 19421 */ // Combiner Rule #88: binop_same_val @ [__binop_same_val_match_0[1]]
5653 /* 19421 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5654 /* 19426 */ GIR_EraseRootFromParent_Done,
5655 /* 19427 */ // Label 220: @19427
5656 /* 19427 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(19450), // Rule ID 109 //
5657 /* 19432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5658 /* 19435 */ // MIs[0] dst
5659 /* 19435 */ // No operand predicates
5660 /* 19435 */ // MIs[0] lhs
5661 /* 19435 */ // No operand predicates
5662 /* 19435 */ // MIs[0] Operand 2
5663 /* 19435 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5664 /* 19439 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5665 /* 19444 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[2]]
5666 /* 19444 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5667 /* 19449 */ GIR_EraseRootFromParent_Done,
5668 /* 19450 */ // Label 221: @19450
5669 /* 19450 */ GIM_Reject,
5670 /* 19451 */ // Label 10: @19451
5671 /* 19451 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(19462), // Rule ID 99 //
5672 /* 19456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
5673 /* 19459 */ // Combiner Rule #81: propagate_undef_any_op; wip_match_opcode 'G_XOR'
5674 /* 19459 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5675 /* 19462 */ // Label 222: @19462
5676 /* 19462 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(19473), // Rule ID 151 //
5677 /* 19467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
5678 /* 19470 */ // Combiner Rule #109: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
5679 /* 19470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5680 /* 19473 */ // Label 223: @19473
5681 /* 19473 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(19484), // Rule ID 181 //
5682 /* 19478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
5683 /* 19481 */ // Combiner Rule #137: not_cmp_fold; wip_match_opcode 'G_XOR'
5684 /* 19481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5685 /* 19484 */ // Label 224: @19484
5686 /* 19484 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(19495), // Rule ID 213 //
5687 /* 19489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
5688 /* 19492 */ // Combiner Rule #161: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
5689 /* 19492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5690 /* 19495 */ // Label 225: @19495
5691 /* 19495 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(19506), // Rule ID 259 //
5692 /* 19500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5693 /* 19503 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_XOR'
5694 /* 19503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5695 /* 19506 */ // Label 226: @19506
5696 /* 19506 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(19517), // Rule ID 299 //
5697 /* 19511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5698 /* 19514 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_XOR'
5699 /* 19514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5700 /* 19517 */ // Label 227: @19517
5701 /* 19517 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(19528), // Rule ID 334 //
5702 /* 19522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5703 /* 19525 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
5704 /* 19525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5705 /* 19528 */ // Label 228: @19528
5706 /* 19528 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(19588), // Rule ID 10 //
5707 /* 19533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5708 /* 19536 */ // MIs[0] root
5709 /* 19536 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5710 /* 19540 */ // MIs[0] add
5711 /* 19540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5712 /* 19544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5713 /* 19548 */ // MIs[1] A
5714 /* 19548 */ // No operand predicates
5715 /* 19548 */ // MIs[1] Operand 2
5716 /* 19548 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
5717 /* 19552 */ // MIs[0] Operand 2
5718 /* 19552 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5719 /* 19556 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5720 /* 19560 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5721 /* 19562 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5722 /* 19565 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5723 /* 19575 */ // Combiner Rule #10: NotAPlusNegOne
5724 /* 19575 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5725 /* 19578 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5726 /* 19580 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5727 /* 19583 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5728 /* 19587 */ GIR_EraseRootFromParent_Done,
5729 /* 19588 */ // Label 229: @19588
5730 /* 19588 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(19627), // Rule ID 120 //
5731 /* 19593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
5732 /* 19596 */ // MIs[0] dst
5733 /* 19596 */ // No operand predicates
5734 /* 19596 */ // MIs[0] x
5735 /* 19596 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5736 /* 19600 */ // MIs[0] x
5737 /* 19600 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5738 /* 19605 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5739 /* 19608 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5740 /* 19618 */ // Combiner Rule #89: same_val_zero @ [__same_val_zero_match_0[1]]
5741 /* 19618 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5742 /* 19621 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5743 /* 19623 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5744 /* 19626 */ GIR_EraseRootFromParent_Done,
5745 /* 19627 */ // Label 230: @19627
5746 /* 19627 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(19650), // Rule ID 110 //
5747 /* 19632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5748 /* 19635 */ // MIs[0] dst
5749 /* 19635 */ // No operand predicates
5750 /* 19635 */ // MIs[0] lhs
5751 /* 19635 */ // No operand predicates
5752 /* 19635 */ // MIs[0] Operand 2
5753 /* 19635 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5754 /* 19639 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5755 /* 19644 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[3]]
5756 /* 19644 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5757 /* 19649 */ GIR_EraseRootFromParent_Done,
5758 /* 19650 */ // Label 231: @19650
5759 /* 19650 */ GIM_Reject,
5760 /* 19651 */ // Label 11: @19651
5761 /* 19651 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(19662), // Rule ID 147 //
5762 /* 19656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5763 /* 19659 */ // Combiner Rule #107: extend_through_phis; wip_match_opcode 'G_PHI'
5764 /* 19659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5765 /* 19662 */ // Label 232: @19662
5766 /* 19662 */ GIM_Reject,
5767 /* 19663 */ // Label 12: @19663
5768 /* 19663 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(19674), // Rule ID 370 //
5769 /* 19668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
5770 /* 19671 */ // Combiner Rule #221: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
5771 /* 19671 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
5772 /* 19674 */ // Label 233: @19674
5773 /* 19674 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(19685), // Rule ID 371 //
5774 /* 19679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5775 /* 19682 */ // Combiner Rule #222: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
5776 /* 19682 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
5777 /* 19685 */ // Label 234: @19685
5778 /* 19685 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(19696), // Rule ID 373 //
5779 /* 19690 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5780 /* 19693 */ // Combiner Rule #224: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
5781 /* 19693 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
5782 /* 19696 */ // Label 235: @19696
5783 /* 19696 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(19707), // Rule ID 374 //
5784 /* 19701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
5785 /* 19704 */ // Combiner Rule #225: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
5786 /* 19704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
5787 /* 19707 */ // Label 236: @19707
5788 /* 19707 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(19718), // Rule ID 375 //
5789 /* 19712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
5790 /* 19715 */ // Combiner Rule #226: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
5791 /* 19715 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
5792 /* 19718 */ // Label 237: @19718
5793 /* 19718 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(19729), // Rule ID 376 //
5794 /* 19723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5795 /* 19726 */ // Combiner Rule #227: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
5796 /* 19726 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
5797 /* 19729 */ // Label 238: @19729
5798 /* 19729 */ GIM_Reject,
5799 /* 19730 */ // Label 13: @19730
5800 /* 19730 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(19744), // Rule ID 372 //
5801 /* 19735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
5802 /* 19738 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5803 /* 19741 */ // MIs[0] dst
5804 /* 19741 */ // No operand predicates
5805 /* 19741 */ // MIs[0] merge_srcs
5806 /* 19741 */ // No operand predicates
5807 /* 19741 */ // Combiner Rule #223: merge_unmerge
5808 /* 19741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
5809 /* 19744 */ // Label 239: @19744
5810 /* 19744 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(19806),
5811 /* 19749 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
5812 /* 19752 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(19773), // Rule ID 377 //
5813 /* 19757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
5814 /* 19760 */ // MIs[0] root
5815 /* 19760 */ // No operand predicates
5816 /* 19760 */ // MIs[0] x
5817 /* 19760 */ // No operand predicates
5818 /* 19760 */ // MIs[0] undef
5819 /* 19760 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5820 /* 19764 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5821 /* 19768 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5822 /* 19770 */ // Combiner Rule #228: merge_of_x_and_undef
5823 /* 19770 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
5824 /* 19773 */ // Label 241: @19773
5825 /* 19773 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(19805), // Rule ID 378 //
5826 /* 19778 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
5827 /* 19781 */ // MIs[0] root
5828 /* 19781 */ // No operand predicates
5829 /* 19781 */ // MIs[0] x
5830 /* 19781 */ // No operand predicates
5831 /* 19781 */ // MIs[0] zero
5832 /* 19781 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5833 /* 19785 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5834 /* 19789 */ // MIs[1] Operand 1
5835 /* 19789 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5836 /* 19800 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5837 /* 19802 */ // Combiner Rule #229: merge_of_x_and_zero
5838 /* 19802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5839 /* 19805 */ // Label 242: @19805
5840 /* 19805 */ GIM_Reject,
5841 /* 19806 */ // Label 240: @19806
5842 /* 19806 */ GIM_Reject,
5843 /* 19807 */ // Label 14: @19807
5844 /* 19807 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(19818), // Rule ID 72 //
5845 /* 19812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5846 /* 19815 */ // Combiner Rule #70: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
5847 /* 19815 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
5848 /* 19818 */ // Label 243: @19818
5849 /* 19818 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(19829), // Rule ID 101 //
5850 /* 19823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
5851 /* 19826 */ // Combiner Rule #82: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
5852 /* 19826 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
5853 /* 19829 */ // Label 244: @19829
5854 /* 19829 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(19840), // Rule ID 139 //
5855 /* 19834 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5856 /* 19837 */ // Combiner Rule #99: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
5857 /* 19837 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5858 /* 19840 */ // Label 245: @19840
5859 /* 19840 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(19871),
5860 /* 19845 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5861 /* 19848 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(19859), // Rule ID 369 //
5862 /* 19853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5863 /* 19856 */ // MIs[0] dst
5864 /* 19856 */ // No operand predicates
5865 /* 19856 */ // MIs[0] unused
5866 /* 19856 */ // No operand predicates
5867 /* 19856 */ // Combiner Rule #220: combine_use_vector_truncate
5868 /* 19856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
5869 /* 19859 */ // Label 247: @19859
5870 /* 19859 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(19870), // Rule ID 379 //
5871 /* 19864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
5872 /* 19867 */ // MIs[0] dst
5873 /* 19867 */ // No operand predicates
5874 /* 19867 */ // MIs[0] unused
5875 /* 19867 */ // No operand predicates
5876 /* 19867 */ // Combiner Rule #230: combine_build_unmerge
5877 /* 19867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5878 /* 19870 */ // Label 248: @19870
5879 /* 19870 */ GIM_Reject,
5880 /* 19871 */ // Label 246: @19871
5881 /* 19871 */ GIM_Reject,
5882 /* 19872 */ // Label 15: @19872
5883 /* 19872 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(19883), // Rule ID 138 //
5884 /* 19877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5885 /* 19880 */ // Combiner Rule #99: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
5886 /* 19880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5887 /* 19883 */ // Label 249: @19883
5888 /* 19883 */ GIM_Reject,
5889 /* 19884 */ // Label 16: @19884
5890 /* 19884 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(19895), // Rule ID 362 //
5891 /* 19889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5892 /* 19892 */ // Combiner Rule #213: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
5893 /* 19892 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
5894 /* 19895 */ // Label 250: @19895
5895 /* 19895 */ GIM_Reject,
5896 /* 19896 */ // Label 17: @19896
5897 /* 19896 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(19917), // Rule ID 131 //
5898 /* 19901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5899 /* 19904 */ // MIs[0] dst
5900 /* 19904 */ // No operand predicates
5901 /* 19904 */ // MIs[0] t
5902 /* 19904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5903 /* 19908 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
5904 /* 19912 */ // MIs[1] ptr
5905 /* 19912 */ // No operand predicates
5906 /* 19912 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5907 /* 19914 */ // Combiner Rule #93: i2p_to_p2i
5908 /* 19914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5909 /* 19917 */ // Label 251: @19917
5910 /* 19917 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(19938), // Rule ID 93 //
5911 /* 19922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5912 /* 19925 */ // MIs[0] dst
5913 /* 19925 */ // No operand predicates
5914 /* 19925 */ // MIs[0] __unary_undef_to_undef_match_0.x
5915 /* 19925 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5916 /* 19929 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5917 /* 19933 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5918 /* 19935 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
5919 /* 19935 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5920 /* 19938 */ // Label 252: @19938
5921 /* 19938 */ GIM_Reject,
5922 /* 19939 */ // Label 18: @19939
5923 /* 19939 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(19950), // Rule ID 130 //
5924 /* 19944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5925 /* 19947 */ // Combiner Rule #92: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
5926 /* 19947 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5927 /* 19950 */ // Label 253: @19950
5928 /* 19950 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(19971), // Rule ID 94 //
5929 /* 19955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5930 /* 19958 */ // MIs[0] dst
5931 /* 19958 */ // No operand predicates
5932 /* 19958 */ // MIs[0] __unary_undef_to_undef_match_0.x
5933 /* 19958 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5934 /* 19962 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5935 /* 19966 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5936 /* 19968 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
5937 /* 19968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5938 /* 19971 */ // Label 254: @19971
5939 /* 19971 */ GIM_Reject,
5940 /* 19972 */ // Label 19: @19972
5941 /* 19972 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(19993), // Rule ID 142 //
5942 /* 19977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
5943 /* 19980 */ // MIs[0] dst
5944 /* 19980 */ // No operand predicates
5945 /* 19980 */ // MIs[0] src1
5946 /* 19980 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5947 /* 19984 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
5948 /* 19988 */ // MIs[1] src0
5949 /* 19988 */ // No operand predicates
5950 /* 19988 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5951 /* 19990 */ // Combiner Rule #102: bitcast_bitcast_fold
5952 /* 19990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5953 /* 19993 */ // Label 255: @19993
5954 /* 19993 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(20014), // Rule ID 91 //
5955 /* 19998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5956 /* 20001 */ // MIs[0] dst
5957 /* 20001 */ // No operand predicates
5958 /* 20001 */ // MIs[0] __unary_undef_to_undef_match_0.x
5959 /* 20001 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5960 /* 20005 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5961 /* 20009 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5962 /* 20011 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
5963 /* 20011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5964 /* 20014 */ // Label 256: @20014
5965 /* 20014 */ GIM_Reject,
5966 /* 20015 */ // Label 20: @20015
5967 /* 20015 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(20044), // Rule ID 21 //
5968 /* 20020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5969 /* 20023 */ // MIs[0] dst
5970 /* 20023 */ // No operand predicates
5971 /* 20023 */ // MIs[0] src
5972 /* 20023 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5973 /* 20027 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
5974 /* 20031 */ // MIs[1] __idempotent_prop_match_0.x
5975 /* 20031 */ // No operand predicates
5976 /* 20031 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5977 /* 20036 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5978 /* 20038 */ // Combiner Rule #21: idempotent_prop @ [__idempotent_prop_match_0[0]]
5979 /* 20038 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5980 /* 20043 */ GIR_EraseRootFromParent_Done,
5981 /* 20044 */ // Label 257: @20044
5982 /* 20044 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(20067), // Rule ID 46 //
5983 /* 20049 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5984 /* 20052 */ // MIs[0] root
5985 /* 20052 */ // No operand predicates
5986 /* 20052 */ // MIs[0] src
5987 /* 20052 */ // No operand predicates
5988 /* 20052 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5989 /* 20056 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5990 /* 20061 */ // Combiner Rule #44: freeze_of_non_undef_non_poison
5991 /* 20061 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5992 /* 20066 */ GIR_EraseRootFromParent_Done,
5993 /* 20067 */ // Label 258: @20067
5994 /* 20067 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(20078), // Rule ID 47 //
5995 /* 20072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5996 /* 20075 */ // MIs[0] dst
5997 /* 20075 */ // No operand predicates
5998 /* 20075 */ // MIs[0] src
5999 /* 20075 */ // No operand predicates
6000 /* 20075 */ // Combiner Rule #45: push_freeze_to_prevent_poison_from_propagating
6001 /* 20075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
6002 /* 20078 */ // Label 259: @20078
6003 /* 20078 */ GIM_Reject,
6004 /* 20079 */ // Label 21: @20079
6005 /* 20079 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(20100), // Rule ID 191 //
6006 /* 20084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
6007 /* 20087 */ // MIs[0] dst
6008 /* 20087 */ // No operand predicates
6009 /* 20087 */ // MIs[0] src0
6010 /* 20087 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6011 /* 20091 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6012 /* 20095 */ // MIs[1] cst
6013 /* 20095 */ // No operand predicates
6014 /* 20095 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6015 /* 20097 */ // Combiner Rule #147: constant_fold_intrinsic_trunc
6016 /* 20097 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6017 /* 20100 */ // Label 260: @20100
6018 /* 20100 */ GIM_Reject,
6019 /* 20101 */ // Label 22: @20101
6020 /* 20101 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(20122), // Rule ID 192 //
6021 /* 20106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
6022 /* 20109 */ // MIs[0] dst
6023 /* 20109 */ // No operand predicates
6024 /* 20109 */ // MIs[0] src0
6025 /* 20109 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6026 /* 20113 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6027 /* 20117 */ // MIs[1] cst
6028 /* 20117 */ // No operand predicates
6029 /* 20117 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6030 /* 20119 */ // Combiner Rule #148: constant_fold_intrinsic_round
6031 /* 20119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6032 /* 20122 */ // Label 261: @20122
6033 /* 20122 */ GIM_Reject,
6034 /* 20123 */ // Label 23: @20123
6035 /* 20123 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(20144), // Rule ID 193 //
6036 /* 20128 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
6037 /* 20131 */ // MIs[0] dst
6038 /* 20131 */ // No operand predicates
6039 /* 20131 */ // MIs[0] src0
6040 /* 20131 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6041 /* 20135 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6042 /* 20139 */ // MIs[1] cst
6043 /* 20139 */ // No operand predicates
6044 /* 20139 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6045 /* 20141 */ // Combiner Rule #149: constant_fold_intrinsic_roundeven
6046 /* 20141 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6047 /* 20144 */ // Label 262: @20144
6048 /* 20144 */ GIM_Reject,
6049 /* 20145 */ // Label 24: @20145
6050 /* 20145 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(20156), // Rule ID 73 //
6051 /* 20150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6052 /* 20153 */ // Combiner Rule #71: extending_loads; wip_match_opcode 'G_LOAD'
6053 /* 20153 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6054 /* 20156 */ // Label 263: @20156
6055 /* 20156 */ GIM_Reject,
6056 /* 20157 */ // Label 25: @20157
6057 /* 20157 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(20168), // Rule ID 74 //
6058 /* 20162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6059 /* 20165 */ // Combiner Rule #71: extending_loads; wip_match_opcode 'G_SEXTLOAD'
6060 /* 20165 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6061 /* 20168 */ // Label 264: @20168
6062 /* 20168 */ GIM_Reject,
6063 /* 20169 */ // Label 26: @20169
6064 /* 20169 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(20180), // Rule ID 75 //
6065 /* 20174 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6066 /* 20177 */ // Combiner Rule #71: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
6067 /* 20177 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6068 /* 20180 */ // Label 265: @20180
6069 /* 20180 */ GIM_Reject,
6070 /* 20181 */ // Label 27: @20181
6071 /* 20181 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(20192), // Rule ID 103 //
6072 /* 20186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6073 /* 20189 */ // Combiner Rule #84: erase_undef_store; wip_match_opcode 'G_STORE'
6074 /* 20189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
6075 /* 20192 */ // Label 266: @20192
6076 /* 20192 */ GIM_Reject,
6077 /* 20193 */ // Label 28: @20193
6078 /* 20193 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(20204), // Rule ID 405 //
6079 /* 20198 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
6080 /* 20201 */ // Combiner Rule #249: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
6081 /* 20201 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
6082 /* 20204 */ // Label 267: @20204
6083 /* 20204 */ GIM_Reject,
6084 /* 20205 */ // Label 29: @20205
6085 /* 20205 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(20216), // Rule ID 132 //
6086 /* 20210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
6087 /* 20213 */ // Combiner Rule #94: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
6088 /* 20213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
6089 /* 20216 */ // Label 268: @20216
6090 /* 20216 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(20227), // Rule ID 276 //
6091 /* 20221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6092 /* 20224 */ // Combiner Rule #184: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
6093 /* 20224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6094 /* 20227 */ // Label 269: @20227
6095 /* 20227 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(20248), // Rule ID 60 //
6096 /* 20232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
6097 /* 20235 */ // MIs[0] root
6098 /* 20235 */ // No operand predicates
6099 /* 20235 */ // MIs[0] select
6100 /* 20235 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6101 /* 20239 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6102 /* 20243 */ // MIs[1] cond
6103 /* 20243 */ // No operand predicates
6104 /* 20243 */ // MIs[1] true
6105 /* 20243 */ // No operand predicates
6106 /* 20243 */ // MIs[1] false
6107 /* 20243 */ // No operand predicates
6108 /* 20243 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6109 /* 20245 */ // Combiner Rule #58: select_of_anyext
6110 /* 20245 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6111 /* 20248 */ // Label 270: @20248
6112 /* 20248 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(20269), // Rule ID 55 //
6113 /* 20253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
6114 /* 20256 */ // MIs[0] root
6115 /* 20256 */ // No operand predicates
6116 /* 20256 */ // MIs[0] second
6117 /* 20256 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6118 /* 20260 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6119 /* 20264 */ // MIs[1] src
6120 /* 20264 */ // No operand predicates
6121 /* 20264 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6122 /* 20266 */ // Combiner Rule #53: anyext_of_anyext
6123 /* 20266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6124 /* 20269 */ // Label 271: @20269
6125 /* 20269 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(20290), // Rule ID 57 //
6126 /* 20274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
6127 /* 20277 */ // MIs[0] root
6128 /* 20277 */ // No operand predicates
6129 /* 20277 */ // MIs[0] second
6130 /* 20277 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6131 /* 20281 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6132 /* 20285 */ // MIs[1] src
6133 /* 20285 */ // No operand predicates
6134 /* 20285 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6135 /* 20287 */ // Combiner Rule #55: anyext_of_sext
6136 /* 20287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6137 /* 20290 */ // Label 272: @20290
6138 /* 20290 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(20311), // Rule ID 56 //
6139 /* 20295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
6140 /* 20298 */ // MIs[0] root
6141 /* 20298 */ // No operand predicates
6142 /* 20298 */ // MIs[0] second
6143 /* 20298 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6144 /* 20302 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6145 /* 20306 */ // MIs[1] src
6146 /* 20306 */ // No operand predicates
6147 /* 20306 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6148 /* 20308 */ // Combiner Rule #54: anyext_of_zext
6149 /* 20308 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6150 /* 20311 */ // Label 273: @20311
6151 /* 20311 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(20332), // Rule ID 92 //
6152 /* 20316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
6153 /* 20319 */ // MIs[0] dst
6154 /* 20319 */ // No operand predicates
6155 /* 20319 */ // MIs[0] __unary_undef_to_undef_match_0.x
6156 /* 20319 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6157 /* 20323 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6158 /* 20327 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6159 /* 20329 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
6160 /* 20329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6161 /* 20332 */ // Label 274: @20332
6162 /* 20332 */ GIM_Reject,
6163 /* 20333 */ // Label 30: @20333
6164 /* 20333 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(20344), // Rule ID 140 //
6165 /* 20338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
6166 /* 20341 */ // Combiner Rule #100: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
6167 /* 20341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
6168 /* 20344 */ // Label 275: @20344
6169 /* 20344 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(20355), // Rule ID 141 //
6170 /* 20349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
6171 /* 20352 */ // Combiner Rule #101: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
6172 /* 20352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
6173 /* 20355 */ // Label 276: @20355
6174 /* 20355 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(20366), // Rule ID 180 //
6175 /* 20360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
6176 /* 20363 */ // Combiner Rule #136: trunc_shift; wip_match_opcode 'G_TRUNC'
6177 /* 20363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
6178 /* 20366 */ // Label 277: @20366
6179 /* 20366 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(20387), // Rule ID 61 //
6180 /* 20371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
6181 /* 20374 */ // MIs[0] root
6182 /* 20374 */ // No operand predicates
6183 /* 20374 */ // MIs[0] select
6184 /* 20374 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6185 /* 20378 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6186 /* 20382 */ // MIs[1] cond
6187 /* 20382 */ // No operand predicates
6188 /* 20382 */ // MIs[1] true
6189 /* 20382 */ // No operand predicates
6190 /* 20382 */ // MIs[1] false
6191 /* 20382 */ // No operand predicates
6192 /* 20382 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6193 /* 20384 */ // Combiner Rule #59: select_of_truncate
6194 /* 20384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6195 /* 20387 */ // Label 278: @20387
6196 /* 20387 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(20416), // Rule ID 63 //
6197 /* 20392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
6198 /* 20395 */ // MIs[0] root
6199 /* 20395 */ // No operand predicates
6200 /* 20395 */ // MIs[0] binop
6201 /* 20395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6202 /* 20399 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6203 /* 20403 */ // MIs[1] x
6204 /* 20403 */ // No operand predicates
6205 /* 20403 */ // MIs[1] const
6206 /* 20403 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6207 /* 20407 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6208 /* 20411 */ // MIs[2] imm
6209 /* 20411 */ // No operand predicates
6210 /* 20411 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6211 /* 20413 */ // Combiner Rule #61: narrow_binop_add
6212 /* 20413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6213 /* 20416 */ // Label 279: @20416
6214 /* 20416 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(20445), // Rule ID 66 //
6215 /* 20421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
6216 /* 20424 */ // MIs[0] root
6217 /* 20424 */ // No operand predicates
6218 /* 20424 */ // MIs[0] binop
6219 /* 20424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6220 /* 20428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6221 /* 20432 */ // MIs[1] x
6222 /* 20432 */ // No operand predicates
6223 /* 20432 */ // MIs[1] const
6224 /* 20432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6225 /* 20436 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6226 /* 20440 */ // MIs[2] imm
6227 /* 20440 */ // No operand predicates
6228 /* 20440 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6229 /* 20442 */ // Combiner Rule #64: narrow_binop_and
6230 /* 20442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6231 /* 20445 */ // Label 280: @20445
6232 /* 20445 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(20474), // Rule ID 65 //
6233 /* 20450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
6234 /* 20453 */ // MIs[0] root
6235 /* 20453 */ // No operand predicates
6236 /* 20453 */ // MIs[0] binop
6237 /* 20453 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6238 /* 20457 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
6239 /* 20461 */ // MIs[1] x
6240 /* 20461 */ // No operand predicates
6241 /* 20461 */ // MIs[1] const
6242 /* 20461 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6243 /* 20465 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6244 /* 20469 */ // MIs[2] imm
6245 /* 20469 */ // No operand predicates
6246 /* 20469 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6247 /* 20471 */ // Combiner Rule #63: narrow_binop_mul
6248 /* 20471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6249 /* 20474 */ // Label 281: @20474
6250 /* 20474 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(20503), // Rule ID 67 //
6251 /* 20479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6252 /* 20482 */ // MIs[0] root
6253 /* 20482 */ // No operand predicates
6254 /* 20482 */ // MIs[0] binop
6255 /* 20482 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6256 /* 20486 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6257 /* 20490 */ // MIs[1] x
6258 /* 20490 */ // No operand predicates
6259 /* 20490 */ // MIs[1] const
6260 /* 20490 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6261 /* 20494 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6262 /* 20498 */ // MIs[2] imm
6263 /* 20498 */ // No operand predicates
6264 /* 20498 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6265 /* 20500 */ // Combiner Rule #65: narrow_binop_or
6266 /* 20500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6267 /* 20503 */ // Label 282: @20503
6268 /* 20503 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(20532), // Rule ID 64 //
6269 /* 20508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
6270 /* 20511 */ // MIs[0] root
6271 /* 20511 */ // No operand predicates
6272 /* 20511 */ // MIs[0] binop
6273 /* 20511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6274 /* 20515 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6275 /* 20519 */ // MIs[1] x
6276 /* 20519 */ // No operand predicates
6277 /* 20519 */ // MIs[1] const
6278 /* 20519 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6279 /* 20523 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6280 /* 20527 */ // MIs[2] imm
6281 /* 20527 */ // No operand predicates
6282 /* 20527 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6283 /* 20529 */ // Combiner Rule #62: narrow_binop_sub
6284 /* 20529 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6285 /* 20532 */ // Label 283: @20532
6286 /* 20532 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(20564), // Rule ID 386 //
6287 /* 20537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6288 /* 20540 */ // MIs[0] dst
6289 /* 20540 */ // No operand predicates
6290 /* 20540 */ // MIs[0] min
6291 /* 20540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6292 /* 20544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
6293 /* 20548 */ // MIs[1] x
6294 /* 20548 */ // No operand predicates
6295 /* 20548 */ // MIs[1] y
6296 /* 20548 */ // No operand predicates
6297 /* 20548 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6298 /* 20552 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6299 /* 20554 */ // Combiner Rule #235: trunc_usatu
6300 /* 20554 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
6301 /* 20557 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6302 /* 20559 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6303 /* 20563 */ GIR_EraseRootFromParent_Done,
6304 /* 20564 */ // Label 284: @20564
6305 /* 20564 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(20593), // Rule ID 68 //
6306 /* 20569 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6307 /* 20572 */ // MIs[0] root
6308 /* 20572 */ // No operand predicates
6309 /* 20572 */ // MIs[0] binop
6310 /* 20572 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6311 /* 20576 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6312 /* 20580 */ // MIs[1] x
6313 /* 20580 */ // No operand predicates
6314 /* 20580 */ // MIs[1] const
6315 /* 20580 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6316 /* 20584 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6317 /* 20588 */ // MIs[2] imm
6318 /* 20588 */ // No operand predicates
6319 /* 20588 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6320 /* 20590 */ // Combiner Rule #66: narrow_binop_xor
6321 /* 20590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6322 /* 20593 */ // Label 285: @20593
6323 /* 20593 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(20614), // Rule ID 50 //
6324 /* 20598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6325 /* 20601 */ // MIs[0] root
6326 /* 20601 */ // No operand predicates
6327 /* 20601 */ // MIs[0] ext
6328 /* 20601 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6329 /* 20605 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6330 /* 20609 */ // MIs[1] src
6331 /* 20609 */ // No operand predicates
6332 /* 20609 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6333 /* 20611 */ // Combiner Rule #48: truncate_of_anyext
6334 /* 20611 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6335 /* 20614 */ // Label 286: @20614
6336 /* 20614 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(20638), // Rule ID 62 //
6337 /* 20619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
6338 /* 20622 */ // MIs[0] root
6339 /* 20622 */ // No operand predicates
6340 /* 20622 */ // MIs[0] bv
6341 /* 20622 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6342 /* 20626 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
6343 /* 20630 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
6344 /* 20633 */ // MIs[1] unused
6345 /* 20633 */ // No operand predicates
6346 /* 20633 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6347 /* 20635 */ // Combiner Rule #60: buildvector_of_truncate
6348 /* 20635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
6349 /* 20638 */ // Label 287: @20638
6350 /* 20638 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(20659), // Rule ID 49 //
6351 /* 20643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6352 /* 20646 */ // MIs[0] root
6353 /* 20646 */ // No operand predicates
6354 /* 20646 */ // MIs[0] ext
6355 /* 20646 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6356 /* 20650 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6357 /* 20654 */ // MIs[1] src
6358 /* 20654 */ // No operand predicates
6359 /* 20654 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6360 /* 20656 */ // Combiner Rule #47: truncate_of_sext
6361 /* 20656 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6362 /* 20659 */ // Label 288: @20659
6363 /* 20659 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(20680), // Rule ID 48 //
6364 /* 20664 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
6365 /* 20667 */ // MIs[0] root
6366 /* 20667 */ // No operand predicates
6367 /* 20667 */ // MIs[0] ext
6368 /* 20667 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6369 /* 20671 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6370 /* 20675 */ // MIs[1] src
6371 /* 20675 */ // No operand predicates
6372 /* 20675 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6373 /* 20677 */ // Combiner Rule #46: truncate_of_zext
6374 /* 20677 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6375 /* 20680 */ // Label 289: @20680
6376 /* 20680 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(20701), // Rule ID 90 //
6377 /* 20685 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
6378 /* 20688 */ // MIs[0] dst
6379 /* 20688 */ // No operand predicates
6380 /* 20688 */ // MIs[0] __unary_undef_to_undef_match_0.x
6381 /* 20688 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6382 /* 20692 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6383 /* 20696 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6384 /* 20698 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
6385 /* 20698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6386 /* 20701 */ // Label 290: @20701
6387 /* 20701 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(20722), // Rule ID 69 //
6388 /* 20706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
6389 /* 20709 */ // MIs[0] root
6390 /* 20709 */ // No operand predicates
6391 /* 20709 */ // MIs[0] int
6392 /* 20709 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6393 /* 20713 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6394 /* 20717 */ // MIs[1] imm
6395 /* 20717 */ // No operand predicates
6396 /* 20717 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6397 /* 20719 */ // Combiner Rule #67: integer_of_truncate
6398 /* 20719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
6399 /* 20722 */ // Label 291: @20722
6400 /* 20722 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(20733), // Rule ID 384 //
6401 /* 20727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6402 /* 20730 */ // MIs[0] dst
6403 /* 20730 */ // No operand predicates
6404 /* 20730 */ // MIs[0] src
6405 /* 20730 */ // No operand predicates
6406 /* 20730 */ // Combiner Rule #233: trunc_ssats
6407 /* 20730 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6408 /* 20733 */ // Label 292: @20733
6409 /* 20733 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(20744), // Rule ID 385 //
6410 /* 20738 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6411 /* 20741 */ // MIs[0] dst
6412 /* 20741 */ // No operand predicates
6413 /* 20741 */ // MIs[0] src
6414 /* 20741 */ // No operand predicates
6415 /* 20741 */ // Combiner Rule #234: trunc_ssatu
6416 /* 20741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6417 /* 20744 */ // Label 293: @20744
6418 /* 20744 */ GIM_Reject,
6419 /* 20745 */ // Label 31: @20745
6420 /* 20745 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(20777), // Rule ID 387 //
6421 /* 20750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6422 /* 20753 */ // MIs[0] dst
6423 /* 20753 */ // No operand predicates
6424 /* 20753 */ // MIs[0] src
6425 /* 20753 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6426 /* 20757 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
6427 /* 20761 */ // MIs[1] x
6428 /* 20761 */ // No operand predicates
6429 /* 20761 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
6430 /* 20765 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6431 /* 20767 */ // Combiner Rule #236: truncusatu_to_fptouisat
6432 /* 20767 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
6433 /* 20770 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6434 /* 20772 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6435 /* 20776 */ GIR_EraseRootFromParent_Done,
6436 /* 20777 */ // Label 294: @20777
6437 /* 20777 */ GIM_Reject,
6438 /* 20778 */ // Label 32: @20778
6439 /* 20778 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(20789), // Rule ID 275 //
6440 /* 20783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6441 /* 20786 */ // Combiner Rule #184: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
6442 /* 20786 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6443 /* 20789 */ // Label 295: @20789
6444 /* 20789 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(20810), // Rule ID 54 //
6445 /* 20794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
6446 /* 20797 */ // MIs[0] root
6447 /* 20797 */ // No operand predicates
6448 /* 20797 */ // MIs[0] second
6449 /* 20797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6450 /* 20801 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6451 /* 20805 */ // MIs[1] src
6452 /* 20805 */ // No operand predicates
6453 /* 20805 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6454 /* 20807 */ // Combiner Rule #52: sext_of_anyext
6455 /* 20807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6456 /* 20810 */ // Label 296: @20810
6457 /* 20810 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(20831), // Rule ID 53 //
6458 /* 20815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
6459 /* 20818 */ // MIs[0] root
6460 /* 20818 */ // No operand predicates
6461 /* 20818 */ // MIs[0] second
6462 /* 20818 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6463 /* 20822 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6464 /* 20826 */ // MIs[1] src
6465 /* 20826 */ // No operand predicates
6466 /* 20826 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6467 /* 20828 */ // Combiner Rule #51: sext_of_sext
6468 /* 20828 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6469 /* 20831 */ // Label 297: @20831
6470 /* 20831 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(20852), // Rule ID 363 //
6471 /* 20836 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
6472 /* 20839 */ // MIs[0] root
6473 /* 20839 */ // No operand predicates
6474 /* 20839 */ // MIs[0] src
6475 /* 20839 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6476 /* 20843 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6477 /* 20847 */ // MIs[1] x
6478 /* 20847 */ // No operand predicates
6479 /* 20847 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6480 /* 20849 */ // Combiner Rule #214: sext_trunc
6481 /* 20849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6482 /* 20852 */ // Label 298: @20852
6483 /* 20852 */ GIM_Reject,
6484 /* 20853 */ // Label 33: @20853
6485 /* 20853 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(20864), // Rule ID 167 //
6486 /* 20858 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6487 /* 20861 */ // Combiner Rule #123: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
6488 /* 20861 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6489 /* 20864 */ // Label 299: @20864
6490 /* 20864 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(20875), // Rule ID 175 //
6491 /* 20869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
6492 /* 20872 */ // Combiner Rule #131: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6493 /* 20872 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6494 /* 20875 */ // Label 300: @20875
6495 /* 20875 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(20886), // Rule ID 244 //
6496 /* 20880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6497 /* 20883 */ // Combiner Rule #177: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6498 /* 20883 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6499 /* 20886 */ // Label 301: @20886
6500 /* 20886 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(20897), // Rule ID 408 //
6501 /* 20891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
6502 /* 20894 */ // Combiner Rule #251: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
6503 /* 20894 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
6504 /* 20897 */ // Label 302: @20897
6505 /* 20897 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(20918), // Rule ID 58 //
6506 /* 20902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6507 /* 20905 */ // MIs[0] dst
6508 /* 20905 */ // No operand predicates
6509 /* 20905 */ // MIs[0] x
6510 /* 20905 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6511 /* 20909 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6512 /* 20913 */ // MIs[1] src
6513 /* 20913 */ // No operand predicates
6514 /* 20913 */ // MIs[1] a
6515 /* 20913 */ // No operand predicates
6516 /* 20913 */ // MIs[0] b
6517 /* 20913 */ // No operand predicates
6518 /* 20913 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6519 /* 20915 */ // Combiner Rule #56: sext_inreg_of_sext_inreg
6520 /* 20915 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
6521 /* 20918 */ // Label 303: @20918
6522 /* 20918 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(20929), // Rule ID 179 //
6523 /* 20923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
6524 /* 20926 */ // MIs[0] dst
6525 /* 20926 */ // No operand predicates
6526 /* 20926 */ // MIs[0] src
6527 /* 20926 */ // No operand predicates
6528 /* 20926 */ // MIs[0] imm
6529 /* 20926 */ // No operand predicates
6530 /* 20926 */ // Combiner Rule #135: sext_inreg_to_zext_inreg
6531 /* 20926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6532 /* 20929 */ // Label 304: @20929
6533 /* 20929 */ GIM_Reject,
6534 /* 20930 */ // Label 34: @20930
6535 /* 20930 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(20941), // Rule ID 178 //
6536 /* 20935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6537 /* 20938 */ // Combiner Rule #134: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
6538 /* 20938 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
6539 /* 20941 */ // Label 305: @20941
6540 /* 20941 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(20952), // Rule ID 274 //
6541 /* 20946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6542 /* 20949 */ // Combiner Rule #184: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
6543 /* 20949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6544 /* 20952 */ // Label 306: @20952
6545 /* 20952 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(20973), // Rule ID 59 //
6546 /* 20957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
6547 /* 20960 */ // MIs[0] root
6548 /* 20960 */ // No operand predicates
6549 /* 20960 */ // MIs[0] select
6550 /* 20960 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6551 /* 20964 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6552 /* 20968 */ // MIs[1] cond
6553 /* 20968 */ // No operand predicates
6554 /* 20968 */ // MIs[1] true
6555 /* 20968 */ // No operand predicates
6556 /* 20968 */ // MIs[1] false
6557 /* 20968 */ // No operand predicates
6558 /* 20968 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6559 /* 20970 */ // Combiner Rule #57: select_of_zext
6560 /* 20970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6561 /* 20973 */ // Label 307: @20973
6562 /* 20973 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(20994), // Rule ID 52 //
6563 /* 20978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
6564 /* 20981 */ // MIs[0] root
6565 /* 20981 */ // No operand predicates
6566 /* 20981 */ // MIs[0] second
6567 /* 20981 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6568 /* 20985 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6569 /* 20989 */ // MIs[1] src
6570 /* 20989 */ // No operand predicates
6571 /* 20989 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6572 /* 20991 */ // Combiner Rule #50: zext_of_anyext
6573 /* 20991 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6574 /* 20994 */ // Label 308: @20994
6575 /* 20994 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(21021), // Rule ID 364 //
6576 /* 20999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6577 /* 21002 */ // MIs[0] root
6578 /* 21002 */ // No operand predicates
6579 /* 21002 */ // MIs[0] src
6580 /* 21002 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6581 /* 21006 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6582 /* 21010 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
6583 /* 21016 */ // MIs[1] x
6584 /* 21016 */ // No operand predicates
6585 /* 21016 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6586 /* 21018 */ // Combiner Rule #215: zext_trunc
6587 /* 21018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6588 /* 21021 */ // Label 309: @21021
6589 /* 21021 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(21042), // Rule ID 51 //
6590 /* 21026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
6591 /* 21029 */ // MIs[0] root
6592 /* 21029 */ // No operand predicates
6593 /* 21029 */ // MIs[0] second
6594 /* 21029 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6595 /* 21033 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6596 /* 21037 */ // MIs[1] src
6597 /* 21037 */ // No operand predicates
6598 /* 21037 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6599 /* 21039 */ // Combiner Rule #49: zext_of_zext
6600 /* 21039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6601 /* 21042 */ // Label 310: @21042
6602 /* 21042 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(21059), // Rule ID 365 //
6603 /* 21047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6604 /* 21050 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
6605 /* 21056 */ // MIs[0] root
6606 /* 21056 */ // No operand predicates
6607 /* 21056 */ // MIs[0] x
6608 /* 21056 */ // No operand predicates
6609 /* 21056 */ // Combiner Rule #216: nneg_zext
6610 /* 21056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6611 /* 21059 */ // Label 311: @21059
6612 /* 21059 */ GIM_Reject,
6613 /* 21060 */ // Label 35: @21060
6614 /* 21060 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(21071), // Rule ID 83 //
6615 /* 21065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6616 /* 21068 */ // Combiner Rule #77: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
6617 /* 21068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6618 /* 21071 */ // Label 312: @21071
6619 /* 21071 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(21082), // Rule ID 86 //
6620 /* 21076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6621 /* 21079 */ // Combiner Rule #78: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
6622 /* 21079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6623 /* 21082 */ // Label 313: @21082
6624 /* 21082 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(21093), // Rule ID 215 //
6625 /* 21087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
6626 /* 21090 */ // Combiner Rule #163: shift_immed_chain; wip_match_opcode 'G_SHL'
6627 /* 21090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6628 /* 21093 */ // Label 314: @21093
6629 /* 21093 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(21104), // Rule ID 220 //
6630 /* 21098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
6631 /* 21101 */ // Combiner Rule #164: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
6632 /* 21101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6633 /* 21104 */ // Label 315: @21104
6634 /* 21104 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(21115), // Rule ID 243 //
6635 /* 21109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6636 /* 21112 */ // Combiner Rule #176: commute_shift; wip_match_opcode 'G_SHL'
6637 /* 21112 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6638 /* 21115 */ // Label 316: @21115
6639 /* 21115 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(21126), // Rule ID 257 //
6640 /* 21120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
6641 /* 21123 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SHL'
6642 /* 21123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6643 /* 21126 */ // Label 317: @21126
6644 /* 21126 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(21137), // Rule ID 306 //
6645 /* 21131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
6646 /* 21134 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SHL'
6647 /* 21134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6648 /* 21137 */ // Label 318: @21137
6649 /* 21137 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(21172), // Rule ID 44 //
6650 /* 21142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
6651 /* 21145 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6652 /* 21151 */ // MIs[0] root
6653 /* 21151 */ // No operand predicates
6654 /* 21151 */ // MIs[0] left
6655 /* 21151 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6656 /* 21155 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6657 /* 21159 */ // MIs[1] imm
6658 /* 21159 */ // No operand predicates
6659 /* 21159 */ // MIs[0] x
6660 /* 21159 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6661 /* 21163 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6662 /* 21167 */ // MIs[2] imm1
6663 /* 21167 */ // No operand predicates
6664 /* 21167 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6665 /* 21169 */ // Combiner Rule #42: shl_of_vscale
6666 /* 21169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
6667 /* 21172 */ // Label 319: @21172
6668 /* 21172 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(21212), // Rule ID 121 //
6669 /* 21177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6670 /* 21180 */ // MIs[0] dst
6671 /* 21180 */ // No operand predicates
6672 /* 21180 */ // MIs[0] zero
6673 /* 21180 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6674 /* 21184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6675 /* 21188 */ // MIs[1] Operand 1
6676 /* 21188 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6677 /* 21199 */ // MIs[0] rhs
6678 /* 21199 */ // No operand predicates
6679 /* 21199 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6680 /* 21204 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6681 /* 21206 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
6682 /* 21206 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6683 /* 21211 */ GIR_EraseRootFromParent_Done,
6684 /* 21212 */ // Label 320: @21212
6685 /* 21212 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(21235), // Rule ID 111 //
6686 /* 21217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6687 /* 21220 */ // MIs[0] dst
6688 /* 21220 */ // No operand predicates
6689 /* 21220 */ // MIs[0] lhs
6690 /* 21220 */ // No operand predicates
6691 /* 21220 */ // MIs[0] Operand 2
6692 /* 21220 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6693 /* 21224 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6694 /* 21229 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[4]]
6695 /* 21229 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6696 /* 21234 */ GIR_EraseRootFromParent_Done,
6697 /* 21235 */ // Label 321: @21235
6698 /* 21235 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(21246), // Rule ID 152 //
6699 /* 21240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
6700 /* 21243 */ // MIs[0] root
6701 /* 21243 */ // No operand predicates
6702 /* 21243 */ // MIs[0] mi.shifted
6703 /* 21243 */ // No operand predicates
6704 /* 21243 */ // MIs[0] mi.amt
6705 /* 21243 */ // No operand predicates
6706 /* 21243 */ // Combiner Rule #110: shifts_too_big @ [mi[0]]
6707 /* 21243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6708 /* 21246 */ // Label 322: @21246
6709 /* 21246 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(21257), // Rule ID 168 //
6710 /* 21251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
6711 /* 21254 */ // MIs[0] dst
6712 /* 21254 */ // No operand predicates
6713 /* 21254 */ // MIs[0] src0
6714 /* 21254 */ // No operand predicates
6715 /* 21254 */ // MIs[0] src1
6716 /* 21254 */ // No operand predicates
6717 /* 21254 */ // Combiner Rule #124: reduce_shl_of_extend
6718 /* 21254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6719 /* 21257 */ // Label 323: @21257
6720 /* 21257 */ GIM_Reject,
6721 /* 21258 */ // Label 36: @21258
6722 /* 21258 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(21269), // Rule ID 88 //
6723 /* 21263 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6724 /* 21266 */ // Combiner Rule #78: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
6725 /* 21266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6726 /* 21269 */ // Label 324: @21269
6727 /* 21269 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(21280), // Rule ID 217 //
6728 /* 21274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
6729 /* 21277 */ // Combiner Rule #163: shift_immed_chain; wip_match_opcode 'G_LSHR'
6730 /* 21277 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6731 /* 21280 */ // Label 325: @21280
6732 /* 21280 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(21291), // Rule ID 222 //
6733 /* 21285 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
6734 /* 21288 */ // Combiner Rule #164: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
6735 /* 21288 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6736 /* 21291 */ // Label 326: @21291
6737 /* 21291 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(21302), // Rule ID 247 //
6738 /* 21296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6739 /* 21299 */ // Combiner Rule #179: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
6740 /* 21299 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6741 /* 21302 */ // Label 327: @21302
6742 /* 21302 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(21313), // Rule ID 249 //
6743 /* 21307 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6744 /* 21310 */ // Combiner Rule #180: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
6745 /* 21310 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6746 /* 21313 */ // Label 328: @21313
6747 /* 21313 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(21324), // Rule ID 254 //
6748 /* 21318 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
6749 /* 21321 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_LSHR'
6750 /* 21321 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6751 /* 21324 */ // Label 329: @21324
6752 /* 21324 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(21335), // Rule ID 304 //
6753 /* 21329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
6754 /* 21332 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_LSHR'
6755 /* 21332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6756 /* 21335 */ // Label 330: @21335
6757 /* 21335 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(21364), // Rule ID 388 //
6758 /* 21340 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6759 /* 21343 */ // MIs[0] dst
6760 /* 21343 */ // No operand predicates
6761 /* 21343 */ // MIs[0] d2
6762 /* 21343 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6763 /* 21347 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6764 /* 21351 */ // MIs[1] d1
6765 /* 21351 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6766 /* 21355 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6767 /* 21359 */ // MIs[2] x
6768 /* 21359 */ // No operand predicates
6769 /* 21359 */ // MIs[2] y
6770 /* 21359 */ // No operand predicates
6771 /* 21359 */ // MIs[0] z
6772 /* 21359 */ // No operand predicates
6773 /* 21359 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6774 /* 21361 */ // Combiner Rule #237: lshr_of_trunc_of_lshr
6775 /* 21361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6776 /* 21364 */ // Label 331: @21364
6777 /* 21364 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(21404), // Rule ID 122 //
6778 /* 21369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6779 /* 21372 */ // MIs[0] dst
6780 /* 21372 */ // No operand predicates
6781 /* 21372 */ // MIs[0] zero
6782 /* 21372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6783 /* 21376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6784 /* 21380 */ // MIs[1] Operand 1
6785 /* 21380 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6786 /* 21391 */ // MIs[0] rhs
6787 /* 21391 */ // No operand predicates
6788 /* 21391 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6789 /* 21396 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6790 /* 21398 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
6791 /* 21398 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6792 /* 21403 */ GIR_EraseRootFromParent_Done,
6793 /* 21404 */ // Label 332: @21404
6794 /* 21404 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(21427), // Rule ID 113 //
6795 /* 21409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6796 /* 21412 */ // MIs[0] dst
6797 /* 21412 */ // No operand predicates
6798 /* 21412 */ // MIs[0] lhs
6799 /* 21412 */ // No operand predicates
6800 /* 21412 */ // MIs[0] Operand 2
6801 /* 21412 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6802 /* 21416 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6803 /* 21421 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[6]]
6804 /* 21421 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6805 /* 21426 */ GIR_EraseRootFromParent_Done,
6806 /* 21427 */ // Label 333: @21427
6807 /* 21427 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(21438), // Rule ID 154 //
6808 /* 21432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
6809 /* 21435 */ // MIs[0] root
6810 /* 21435 */ // No operand predicates
6811 /* 21435 */ // MIs[0] mi.shifted
6812 /* 21435 */ // No operand predicates
6813 /* 21435 */ // MIs[0] mi.amt
6814 /* 21435 */ // No operand predicates
6815 /* 21435 */ // Combiner Rule #110: shifts_too_big @ [mi[2]]
6816 /* 21435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6817 /* 21438 */ // Label 334: @21438
6818 /* 21438 */ GIM_Reject,
6819 /* 21439 */ // Label 37: @21439
6820 /* 21439 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(21450), // Rule ID 87 //
6821 /* 21444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6822 /* 21447 */ // Combiner Rule #78: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
6823 /* 21447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6824 /* 21450 */ // Label 335: @21450
6825 /* 21450 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(21461), // Rule ID 165 //
6826 /* 21455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
6827 /* 21458 */ // Combiner Rule #121: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
6828 /* 21458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6829 /* 21461 */ // Label 336: @21461
6830 /* 21461 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(21472), // Rule ID 216 //
6831 /* 21466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
6832 /* 21469 */ // Combiner Rule #163: shift_immed_chain; wip_match_opcode 'G_ASHR'
6833 /* 21469 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6834 /* 21472 */ // Label 337: @21472
6835 /* 21472 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(21483), // Rule ID 221 //
6836 /* 21477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
6837 /* 21480 */ // Combiner Rule #164: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
6838 /* 21480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6839 /* 21483 */ // Label 338: @21483
6840 /* 21483 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(21494), // Rule ID 246 //
6841 /* 21488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6842 /* 21491 */ // Combiner Rule #179: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
6843 /* 21491 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6844 /* 21494 */ // Label 339: @21494
6845 /* 21494 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(21505), // Rule ID 248 //
6846 /* 21499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6847 /* 21502 */ // Combiner Rule #180: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
6848 /* 21502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6849 /* 21505 */ // Label 340: @21505
6850 /* 21505 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(21516), // Rule ID 253 //
6851 /* 21510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
6852 /* 21513 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_ASHR'
6853 /* 21513 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6854 /* 21516 */ // Label 341: @21516
6855 /* 21516 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(21527), // Rule ID 305 //
6856 /* 21521 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
6857 /* 21524 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_ASHR'
6858 /* 21524 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6859 /* 21527 */ // Label 342: @21527
6860 /* 21527 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(21567), // Rule ID 123 //
6861 /* 21532 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6862 /* 21535 */ // MIs[0] dst
6863 /* 21535 */ // No operand predicates
6864 /* 21535 */ // MIs[0] zero
6865 /* 21535 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6866 /* 21539 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6867 /* 21543 */ // MIs[1] Operand 1
6868 /* 21543 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6869 /* 21554 */ // MIs[0] rhs
6870 /* 21554 */ // No operand predicates
6871 /* 21554 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6872 /* 21559 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6873 /* 21561 */ // Combiner Rule #90: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
6874 /* 21561 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6875 /* 21566 */ GIR_EraseRootFromParent_Done,
6876 /* 21567 */ // Label 343: @21567
6877 /* 21567 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(21590), // Rule ID 112 //
6878 /* 21572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6879 /* 21575 */ // MIs[0] dst
6880 /* 21575 */ // No operand predicates
6881 /* 21575 */ // MIs[0] lhs
6882 /* 21575 */ // No operand predicates
6883 /* 21575 */ // MIs[0] Operand 2
6884 /* 21575 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6885 /* 21579 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6886 /* 21584 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[5]]
6887 /* 21584 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6888 /* 21589 */ GIR_EraseRootFromParent_Done,
6889 /* 21590 */ // Label 344: @21590
6890 /* 21590 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(21601), // Rule ID 153 //
6891 /* 21595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
6892 /* 21598 */ // MIs[0] root
6893 /* 21598 */ // No operand predicates
6894 /* 21598 */ // MIs[0] mi.shifted
6895 /* 21598 */ // No operand predicates
6896 /* 21598 */ // MIs[0] mi.amt
6897 /* 21598 */ // No operand predicates
6898 /* 21598 */ // Combiner Rule #110: shifts_too_big @ [mi[1]]
6899 /* 21598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6900 /* 21601 */ // Label 345: @21601
6901 /* 21601 */ GIM_Reject,
6902 /* 21602 */ // Label 38: @21602
6903 /* 21602 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(21613), // Rule ID 231 //
6904 /* 21607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6905 /* 21610 */ // Combiner Rule #168: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
6906 /* 21610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6907 /* 21613 */ // Label 346: @21613
6908 /* 21613 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(21624), // Rule ID 235 //
6909 /* 21618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6910 /* 21621 */ // Combiner Rule #171: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
6911 /* 21621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6912 /* 21624 */ // Label 347: @21624
6913 /* 21624 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(21644), // Rule ID 234 //
6914 /* 21629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
6915 /* 21632 */ // MIs[0] x
6916 /* 21632 */ // No operand predicates
6917 /* 21632 */ // MIs[0] y
6918 /* 21632 */ // No operand predicates
6919 /* 21632 */ // MIs[0] z
6920 /* 21632 */ // No operand predicates
6921 /* 21632 */ // MIs[0] Operand 3
6922 /* 21632 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6923 /* 21636 */ // Combiner Rule #170: funnel_shift_left_zero
6924 /* 21636 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6925 /* 21639 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6926 /* 21641 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
6927 /* 21643 */ GIR_EraseRootFromParent_Done,
6928 /* 21644 */ // Label 348: @21644
6929 /* 21644 */ GIM_Reject,
6930 /* 21645 */ // Label 39: @21645
6931 /* 21645 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(21656), // Rule ID 232 //
6932 /* 21650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6933 /* 21653 */ // Combiner Rule #168: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
6934 /* 21653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6935 /* 21656 */ // Label 349: @21656
6936 /* 21656 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(21667), // Rule ID 236 //
6937 /* 21661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6938 /* 21664 */ // Combiner Rule #171: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
6939 /* 21664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6940 /* 21667 */ // Label 350: @21667
6941 /* 21667 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(21687), // Rule ID 233 //
6942 /* 21672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
6943 /* 21675 */ // MIs[0] x
6944 /* 21675 */ // No operand predicates
6945 /* 21675 */ // MIs[0] y
6946 /* 21675 */ // No operand predicates
6947 /* 21675 */ // MIs[0] z
6948 /* 21675 */ // No operand predicates
6949 /* 21675 */ // MIs[0] Operand 3
6950 /* 21675 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6951 /* 21679 */ // Combiner Rule #169: funnel_shift_right_zero
6952 /* 21679 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6953 /* 21682 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6954 /* 21684 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
6955 /* 21686 */ GIR_EraseRootFromParent_Done,
6956 /* 21687 */ // Label 351: @21687
6957 /* 21687 */ GIM_Reject,
6958 /* 21688 */ // Label 40: @21688
6959 /* 21688 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(21711), // Rule ID 116 //
6960 /* 21693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6961 /* 21696 */ // MIs[0] dst
6962 /* 21696 */ // No operand predicates
6963 /* 21696 */ // MIs[0] lhs
6964 /* 21696 */ // No operand predicates
6965 /* 21696 */ // MIs[0] Operand 2
6966 /* 21696 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6967 /* 21700 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6968 /* 21705 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[9]]
6969 /* 21705 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6970 /* 21710 */ GIR_EraseRootFromParent_Done,
6971 /* 21711 */ // Label 352: @21711
6972 /* 21711 */ GIM_Reject,
6973 /* 21712 */ // Label 41: @21712
6974 /* 21712 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(21735), // Rule ID 115 //
6975 /* 21717 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6976 /* 21720 */ // MIs[0] dst
6977 /* 21720 */ // No operand predicates
6978 /* 21720 */ // MIs[0] lhs
6979 /* 21720 */ // No operand predicates
6980 /* 21720 */ // MIs[0] Operand 2
6981 /* 21720 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6982 /* 21724 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6983 /* 21729 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[8]]
6984 /* 21729 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6985 /* 21734 */ GIR_EraseRootFromParent_Done,
6986 /* 21735 */ // Label 353: @21735
6987 /* 21735 */ GIM_Reject,
6988 /* 21736 */ // Label 42: @21736
6989 /* 21736 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(21747), // Rule ID 160 //
6990 /* 21741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
6991 /* 21744 */ // Combiner Rule #116: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
6992 /* 21744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
6993 /* 21747 */ // Label 354: @21747
6994 /* 21747 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(21758), // Rule ID 161 //
6995 /* 21752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
6996 /* 21755 */ // Combiner Rule #117: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
6997 /* 21755 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
6998 /* 21758 */ // Label 355: @21758
6999 /* 21758 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(21769), // Rule ID 164 //
7000 /* 21763 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
7001 /* 21766 */ // Combiner Rule #120: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
7002 /* 21766 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7003 /* 21769 */ // Label 356: @21769
7004 /* 21769 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(21780), // Rule ID 158 //
7005 /* 21774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7006 /* 21777 */ // MIs[0] root
7007 /* 21777 */ // No operand predicates
7008 /* 21777 */ // MIs[0] pred
7009 /* 21777 */ // No operand predicates
7010 /* 21777 */ // MIs[0] lhs
7011 /* 21777 */ // No operand predicates
7012 /* 21777 */ // MIs[0] rhs
7013 /* 21777 */ // No operand predicates
7014 /* 21777 */ // Combiner Rule #114: canonicalize_icmp
7015 /* 21777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
7016 /* 21780 */ // Label 357: @21780
7017 /* 21780 */ GIM_Reject,
7018 /* 21781 */ // Label 43: @21781
7019 /* 21781 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(21792), // Rule ID 159 //
7020 /* 21786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
7021 /* 21789 */ // MIs[0] root
7022 /* 21789 */ // No operand predicates
7023 /* 21789 */ // MIs[0] pred
7024 /* 21789 */ // No operand predicates
7025 /* 21789 */ // MIs[0] lhs
7026 /* 21789 */ // No operand predicates
7027 /* 21789 */ // MIs[0] rhs
7028 /* 21789 */ // No operand predicates
7029 /* 21789 */ // Combiner Rule #115: canonicalize_fcmp
7030 /* 21789 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
7031 /* 21792 */ // Label 358: @21792
7032 /* 21792 */ GIM_Reject,
7033 /* 21793 */ // Label 44: @21793
7034 /* 21793 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(21804), // Rule ID 106 //
7035 /* 21798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
7036 /* 21801 */ // Combiner Rule #86: select_same_val; wip_match_opcode 'G_SELECT'
7037 /* 21801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
7038 /* 21804 */ // Label 359: @21804
7039 /* 21804 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(21815), // Rule ID 171 //
7040 /* 21809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
7041 /* 21812 */ // Combiner Rule #127: select_constant_cmp; wip_match_opcode 'G_SELECT'
7042 /* 21812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7043 /* 21815 */ // Label 360: @21815
7044 /* 21815 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(21826), // Rule ID 173 //
7045 /* 21820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
7046 /* 21823 */ // Combiner Rule #129: match_selects; wip_match_opcode 'G_SELECT'
7047 /* 21823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
7048 /* 21826 */ // Label 361: @21826
7049 /* 21826 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(21837), // Rule ID 328 //
7050 /* 21831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7051 /* 21834 */ // Combiner Rule #206: select_to_minmax; wip_match_opcode 'G_SELECT'
7052 /* 21834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
7053 /* 21837 */ // Label 362: @21837
7054 /* 21837 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(21864), // Rule ID 394 //
7055 /* 21842 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
7056 /* 21845 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
7057 /* 21848 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
7058 /* 21851 */ // MIs[0] cond
7059 /* 21851 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7060 /* 21855 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
7061 /* 21859 */ // MIs[1] pred
7062 /* 21859 */ // No operand predicates
7063 /* 21859 */ // MIs[1] lhs
7064 /* 21859 */ // No operand predicates
7065 /* 21859 */ // MIs[1] rhs
7066 /* 21859 */ // No operand predicates
7067 /* 21859 */ // MIs[0] true
7068 /* 21859 */ // No operand predicates
7069 /* 21859 */ // MIs[0] false
7070 /* 21859 */ // No operand predicates
7071 /* 21859 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7072 /* 21861 */ // Combiner Rule #242: fcmp_select_to_fmin_fmax_legacy
7073 /* 21861 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
7074 /* 21864 */ // Label 363: @21864
7075 /* 21864 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(21885), // Rule ID 172 //
7076 /* 21869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7077 /* 21872 */ // MIs[0] root
7078 /* 21872 */ // No operand predicates
7079 /* 21872 */ // MIs[0] tst
7080 /* 21872 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7081 /* 21876 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
7082 /* 21880 */ // MIs[1] tst1
7083 /* 21880 */ // No operand predicates
7084 /* 21880 */ // MIs[1] a
7085 /* 21880 */ // No operand predicates
7086 /* 21880 */ // MIs[1] b
7087 /* 21880 */ // No operand predicates
7088 /* 21880 */ // MIs[0] x
7089 /* 21880 */ // No operand predicates
7090 /* 21880 */ // MIs[0] y
7091 /* 21880 */ // No operand predicates
7092 /* 21880 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7093 /* 21882 */ // Combiner Rule #128: select_to_iminmax
7094 /* 21882 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
7095 /* 21885 */ // Label 364: @21885
7096 /* 21885 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(21914), // Rule ID 170 //
7097 /* 21890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
7098 /* 21893 */ // MIs[0] dst
7099 /* 21893 */ // No operand predicates
7100 /* 21893 */ // MIs[0] undef
7101 /* 21893 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7102 /* 21897 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7103 /* 21901 */ // MIs[0] x
7104 /* 21901 */ // No operand predicates
7105 /* 21901 */ // MIs[0] y
7106 /* 21901 */ // No operand predicates
7107 /* 21901 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
7108 /* 21906 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7109 /* 21908 */ // Combiner Rule #126: select_undef_cmp
7110 /* 21908 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
7111 /* 21913 */ GIR_EraseRootFromParent_Done,
7112 /* 21914 */ // Label 365: @21914
7113 /* 21914 */ GIM_Reject,
7114 /* 21915 */ // Label 45: @21915
7115 /* 21915 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(21926), // Rule ID 339 //
7116 /* 21920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7117 /* 21923 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
7118 /* 21923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7119 /* 21926 */ // Label 366: @21926
7120 /* 21926 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(21937), // Rule ID 381 //
7121 /* 21931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
7122 /* 21934 */ // Combiner Rule #231: match_addos; wip_match_opcode 'G_UADDO'
7123 /* 21934 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7124 /* 21937 */ // Label 367: @21937
7125 /* 21937 */ GIM_Reject,
7126 /* 21938 */ // Label 46: @21938
7127 /* 21938 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(21949), // Rule ID 204 //
7128 /* 21943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7129 /* 21946 */ // Combiner Rule #158: adde_to_addo; wip_match_opcode 'G_UADDE'
7130 /* 21946 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7131 /* 21949 */ // Label 368: @21949
7132 /* 21949 */ GIM_Reject,
7133 /* 21950 */ // Label 47: @21950
7134 /* 21950 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(21961), // Rule ID 383 //
7135 /* 21955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
7136 /* 21958 */ // Combiner Rule #232: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
7137 /* 21958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7138 /* 21961 */ // Label 369: @21961
7139 /* 21961 */ GIM_Reject,
7140 /* 21962 */ // Label 48: @21962
7141 /* 21962 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(21973), // Rule ID 206 //
7142 /* 21967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7143 /* 21970 */ // Combiner Rule #158: adde_to_addo; wip_match_opcode 'G_USUBE'
7144 /* 21970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7145 /* 21973 */ // Label 370: @21973
7146 /* 21973 */ GIM_Reject,
7147 /* 21974 */ // Label 49: @21974
7148 /* 21974 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(21985), // Rule ID 340 //
7149 /* 21979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7150 /* 21982 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
7151 /* 21982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7152 /* 21985 */ // Label 371: @21985
7153 /* 21985 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(21996), // Rule ID 380 //
7154 /* 21990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
7155 /* 21993 */ // Combiner Rule #231: match_addos; wip_match_opcode 'G_SADDO'
7156 /* 21993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7157 /* 21996 */ // Label 372: @21996
7158 /* 21996 */ GIM_Reject,
7159 /* 21997 */ // Label 50: @21997
7160 /* 21997 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(22008), // Rule ID 205 //
7161 /* 22002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7162 /* 22005 */ // Combiner Rule #158: adde_to_addo; wip_match_opcode 'G_SADDE'
7163 /* 22005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7164 /* 22008 */ // Label 373: @22008
7165 /* 22008 */ GIM_Reject,
7166 /* 22009 */ // Label 51: @22009
7167 /* 22009 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(22020), // Rule ID 382 //
7168 /* 22014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
7169 /* 22017 */ // Combiner Rule #232: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
7170 /* 22017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7171 /* 22020 */ // Label 374: @22020
7172 /* 22020 */ GIM_Reject,
7173 /* 22021 */ // Label 52: @22021
7174 /* 22021 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(22032), // Rule ID 207 //
7175 /* 22026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7176 /* 22029 */ // Combiner Rule #158: adde_to_addo; wip_match_opcode 'G_SSUBE'
7177 /* 22029 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7178 /* 22032 */ // Label 375: @22032
7179 /* 22032 */ GIM_Reject,
7180 /* 22033 */ // Label 53: @22033
7181 /* 22033 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(22044), // Rule ID 200 //
7182 /* 22038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7183 /* 22041 */ // Combiner Rule #156: mulo_by_2; wip_match_opcode 'G_UMULO'
7184 /* 22041 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7185 /* 22044 */ // Label 376: @22044
7186 /* 22044 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(22055), // Rule ID 202 //
7187 /* 22049 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7188 /* 22052 */ // Combiner Rule #157: mulo_by_0; wip_match_opcode 'G_UMULO'
7189 /* 22052 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7190 /* 22055 */ // Label 377: @22055
7191 /* 22055 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(22066), // Rule ID 341 //
7192 /* 22060 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7193 /* 22063 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
7194 /* 22063 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7195 /* 22066 */ // Label 378: @22066
7196 /* 22066 */ GIM_Reject,
7197 /* 22067 */ // Label 54: @22067
7198 /* 22067 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(22078), // Rule ID 201 //
7199 /* 22072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7200 /* 22075 */ // Combiner Rule #156: mulo_by_2; wip_match_opcode 'G_SMULO'
7201 /* 22075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7202 /* 22078 */ // Label 379: @22078
7203 /* 22078 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(22089), // Rule ID 203 //
7204 /* 22083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7205 /* 22086 */ // Combiner Rule #157: mulo_by_0; wip_match_opcode 'G_SMULO'
7206 /* 22086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7207 /* 22089 */ // Label 380: @22089
7208 /* 22089 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(22100), // Rule ID 342 //
7209 /* 22094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7210 /* 22097 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
7211 /* 22097 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7212 /* 22100 */ // Label 381: @22100
7213 /* 22100 */ GIM_Reject,
7214 /* 22101 */ // Label 55: @22101
7215 /* 22101 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(22112), // Rule ID 278 //
7216 /* 22106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7217 /* 22109 */ // Combiner Rule #186: mulh_to_lshr; wip_match_opcode 'G_UMULH'
7218 /* 22109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7219 /* 22112 */ // Label 382: @22112
7220 /* 22112 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(22123), // Rule ID 343 //
7221 /* 22117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7222 /* 22120 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
7223 /* 22120 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7224 /* 22123 */ // Label 383: @22123
7225 /* 22123 */ GIM_Reject,
7226 /* 22124 */ // Label 56: @22124
7227 /* 22124 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(22135), // Rule ID 344 //
7228 /* 22129 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7229 /* 22132 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
7230 /* 22132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7231 /* 22135 */ // Label 384: @22135
7232 /* 22135 */ GIM_Reject,
7233 /* 22136 */ // Label 57: @22136
7234 /* 22136 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(22147), // Rule ID 345 //
7235 /* 22141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7236 /* 22144 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
7237 /* 22144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7238 /* 22147 */ // Label 385: @22147
7239 /* 22147 */ GIM_Reject,
7240 /* 22148 */ // Label 58: @22148
7241 /* 22148 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(22159), // Rule ID 346 //
7242 /* 22153 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7243 /* 22156 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
7244 /* 22156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7245 /* 22159 */ // Label 386: @22159
7246 /* 22159 */ GIM_Reject,
7247 /* 22160 */ // Label 59: @22160
7248 /* 22160 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(22171), // Rule ID 219 //
7249 /* 22165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
7250 /* 22168 */ // Combiner Rule #163: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
7251 /* 22168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7252 /* 22171 */ // Label 387: @22171
7253 /* 22171 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(22182), // Rule ID 223 //
7254 /* 22176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
7255 /* 22179 */ // Combiner Rule #164: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
7256 /* 22179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7257 /* 22182 */ // Label 388: @22182
7258 /* 22182 */ GIM_Reject,
7259 /* 22183 */ // Label 60: @22183
7260 /* 22183 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(22194), // Rule ID 218 //
7261 /* 22188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
7262 /* 22191 */ // Combiner Rule #163: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
7263 /* 22191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7264 /* 22194 */ // Label 389: @22194
7265 /* 22194 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(22205), // Rule ID 224 //
7266 /* 22199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
7267 /* 22202 */ // Combiner Rule #164: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
7268 /* 22202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7269 /* 22205 */ // Label 390: @22205
7270 /* 22205 */ GIM_Reject,
7271 /* 22206 */ // Label 61: @22206
7272 /* 22206 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(22217), // Rule ID 347 //
7273 /* 22211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7274 /* 22214 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
7275 /* 22214 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7276 /* 22217 */ // Label 391: @22217
7277 /* 22217 */ GIM_Reject,
7278 /* 22218 */ // Label 62: @22218
7279 /* 22218 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(22229), // Rule ID 348 //
7280 /* 22223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7281 /* 22226 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
7282 /* 22226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7283 /* 22229 */ // Label 392: @22229
7284 /* 22229 */ GIM_Reject,
7285 /* 22230 */ // Label 63: @22230
7286 /* 22230 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(22241), // Rule ID 349 //
7287 /* 22235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7288 /* 22238 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
7289 /* 22238 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7290 /* 22241 */ // Label 393: @22241
7291 /* 22241 */ GIM_Reject,
7292 /* 22242 */ // Label 64: @22242
7293 /* 22242 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(22253), // Rule ID 350 //
7294 /* 22247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7295 /* 22250 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
7296 /* 22250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7297 /* 22253 */ // Label 394: @22253
7298 /* 22253 */ GIM_Reject,
7299 /* 22254 */ // Label 65: @22254
7300 /* 22254 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(22265), // Rule ID 268 //
7301 /* 22259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7302 /* 22262 */ // Combiner Rule #182: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
7303 /* 22262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7304 /* 22265 */ // Label 395: @22265
7305 /* 22265 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(22276), // Rule ID 279 //
7306 /* 22270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7307 /* 22273 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FADD'
7308 /* 22273 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7309 /* 22276 */ // Label 396: @22276
7310 /* 22276 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(22287), // Rule ID 286 //
7311 /* 22281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7312 /* 22284 */ // Combiner Rule #189: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7313 /* 22284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
7314 /* 22287 */ // Label 397: @22287
7315 /* 22287 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(22298), // Rule ID 287 //
7316 /* 22292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7317 /* 22295 */ // Combiner Rule #190: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7318 /* 22295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
7319 /* 22298 */ // Label 398: @22298
7320 /* 22298 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(22309), // Rule ID 288 //
7321 /* 22303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
7322 /* 22306 */ // Combiner Rule #191: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7323 /* 22306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7324 /* 22309 */ // Label 399: @22309
7325 /* 22309 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(22320), // Rule ID 289 //
7326 /* 22314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7327 /* 22317 */ // Combiner Rule #192: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7328 /* 22317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7329 /* 22320 */ // Label 400: @22320
7330 /* 22320 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(22331), // Rule ID 312 //
7331 /* 22325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7332 /* 22328 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FADD'
7333 /* 22328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7334 /* 22331 */ // Label 401: @22331
7335 /* 22331 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(22342), // Rule ID 351 //
7336 /* 22336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7337 /* 22339 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
7338 /* 22339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7339 /* 22342 */ // Label 402: @22342
7340 /* 22342 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(22365), // Rule ID 144 //
7341 /* 22347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7342 /* 22350 */ // MIs[0] dst
7343 /* 22350 */ // No operand predicates
7344 /* 22350 */ // MIs[0] x
7345 /* 22350 */ // No operand predicates
7346 /* 22350 */ // MIs[0] y
7347 /* 22350 */ // No operand predicates
7348 /* 22350 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7349 /* 22354 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7350 /* 22359 */ // Combiner Rule #104: right_identity_neg_zero_fp
7351 /* 22359 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7352 /* 22364 */ GIR_EraseRootFromParent_Done,
7353 /* 22365 */ // Label 403: @22365
7354 /* 22365 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(22394), // Rule ID 145 //
7355 /* 22370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
7356 /* 22373 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
7357 /* 22379 */ // MIs[0] dst
7358 /* 22379 */ // No operand predicates
7359 /* 22379 */ // MIs[0] x
7360 /* 22379 */ // No operand predicates
7361 /* 22379 */ // MIs[0] y
7362 /* 22379 */ // No operand predicates
7363 /* 22379 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
7364 /* 22383 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7365 /* 22388 */ // Combiner Rule #105: right_identity_neg_zero_fp_nsz
7366 /* 22388 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7367 /* 22393 */ GIR_EraseRootFromParent_Done,
7368 /* 22394 */ // Label 404: @22394
7369 /* 22394 */ GIM_Reject,
7370 /* 22395 */ // Label 66: @22395
7371 /* 22395 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(22406), // Rule ID 269 //
7372 /* 22400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7373 /* 22403 */ // Combiner Rule #182: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
7374 /* 22403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7375 /* 22406 */ // Label 405: @22406
7376 /* 22406 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(22417), // Rule ID 280 //
7377 /* 22411 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7378 /* 22414 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FSUB'
7379 /* 22414 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7380 /* 22417 */ // Label 406: @22417
7381 /* 22417 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(22428), // Rule ID 290 //
7382 /* 22422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
7383 /* 22425 */ // Combiner Rule #193: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7384 /* 22425 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7385 /* 22428 */ // Label 407: @22428
7386 /* 22428 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(22439), // Rule ID 291 //
7387 /* 22433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7388 /* 22436 */ // Combiner Rule #194: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7389 /* 22436 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7390 /* 22439 */ // Label 408: @22439
7391 /* 22439 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(22450), // Rule ID 292 //
7392 /* 22444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7393 /* 22447 */ // Combiner Rule #195: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7394 /* 22447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7395 /* 22450 */ // Label 409: @22450
7396 /* 22450 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(22461), // Rule ID 293 //
7397 /* 22455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
7398 /* 22458 */ // Combiner Rule #196: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7399 /* 22458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7400 /* 22461 */ // Label 410: @22461
7401 /* 22461 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(22472), // Rule ID 313 //
7402 /* 22466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7403 /* 22469 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FSUB'
7404 /* 22469 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7405 /* 22472 */ // Label 411: @22472
7406 /* 22472 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(22483), // Rule ID 329 //
7407 /* 22477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7408 /* 22480 */ // Combiner Rule #207: fsub_to_fneg; wip_match_opcode 'G_FSUB'
7409 /* 22480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7410 /* 22483 */ // Label 412: @22483
7411 /* 22483 */ GIM_Reject,
7412 /* 22484 */ // Label 67: @22484
7413 /* 22484 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(22495), // Rule ID 270 //
7414 /* 22489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7415 /* 22492 */ // Combiner Rule #182: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
7416 /* 22492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7417 /* 22495 */ // Label 413: @22495
7418 /* 22495 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(22506), // Rule ID 281 //
7419 /* 22500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7420 /* 22503 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FMUL'
7421 /* 22503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7422 /* 22506 */ // Label 414: @22506
7423 /* 22506 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(22517), // Rule ID 311 //
7424 /* 22511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7425 /* 22514 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FMUL'
7426 /* 22514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7427 /* 22517 */ // Label 415: @22517
7428 /* 22517 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(22528), // Rule ID 352 //
7429 /* 22522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7430 /* 22525 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
7431 /* 22525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7432 /* 22528 */ // Label 416: @22528
7433 /* 22528 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(22549), // Rule ID 396 //
7434 /* 22533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
7435 /* 22536 */ // MIs[0] dst
7436 /* 22536 */ // No operand predicates
7437 /* 22536 */ // MIs[0] x
7438 /* 22536 */ // No operand predicates
7439 /* 22536 */ // MIs[0] select
7440 /* 22536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7441 /* 22540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7442 /* 22544 */ // MIs[1] y
7443 /* 22544 */ // No operand predicates
7444 /* 22544 */ // MIs[1] A
7445 /* 22544 */ // No operand predicates
7446 /* 22544 */ // MIs[1] B
7447 /* 22544 */ // No operand predicates
7448 /* 22544 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7449 /* 22546 */ // Combiner Rule #244: combine_fmul_with_select_to_fldexp
7450 /* 22546 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
7451 /* 22549 */ // Label 417: @22549
7452 /* 22549 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(22572), // Rule ID 135 //
7453 /* 22554 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7454 /* 22557 */ // MIs[0] dst
7455 /* 22557 */ // No operand predicates
7456 /* 22557 */ // MIs[0] x
7457 /* 22557 */ // No operand predicates
7458 /* 22557 */ // MIs[0] y
7459 /* 22557 */ // No operand predicates
7460 /* 22557 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
7461 /* 22561 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7462 /* 22566 */ // Combiner Rule #97: right_identity_one_fp
7463 /* 22566 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7464 /* 22571 */ GIR_EraseRootFromParent_Done,
7465 /* 22572 */ // Label 418: @22572
7466 /* 22572 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(22592), // Rule ID 146 //
7467 /* 22577 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7468 /* 22580 */ // MIs[0] dst
7469 /* 22580 */ // No operand predicates
7470 /* 22580 */ // MIs[0] x
7471 /* 22580 */ // No operand predicates
7472 /* 22580 */ // MIs[0] y
7473 /* 22580 */ // No operand predicates
7474 /* 22580 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
7475 /* 22584 */ // Combiner Rule #106: right_identity_neg_one_fp
7476 /* 22584 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
7477 /* 22587 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7478 /* 22589 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7479 /* 22591 */ GIR_EraseRootFromParent_Done,
7480 /* 22592 */ // Label 419: @22592
7481 /* 22592 */ GIM_Reject,
7482 /* 22593 */ // Label 68: @22593
7483 /* 22593 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(22604), // Rule ID 273 //
7484 /* 22598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7485 /* 22601 */ // Combiner Rule #183: constant_fold_fma; wip_match_opcode 'G_FMA'
7486 /* 22601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7487 /* 22604 */ // Label 420: @22604
7488 /* 22604 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(22615), // Rule ID 284 //
7489 /* 22609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7490 /* 22612 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FMA'
7491 /* 22612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7492 /* 22615 */ // Label 421: @22615
7493 /* 22615 */ GIM_Reject,
7494 /* 22616 */ // Label 69: @22616
7495 /* 22616 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(22627), // Rule ID 272 //
7496 /* 22621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7497 /* 22624 */ // Combiner Rule #183: constant_fold_fma; wip_match_opcode 'G_FMAD'
7498 /* 22624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7499 /* 22627 */ // Label 422: @22627
7500 /* 22627 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(22638), // Rule ID 283 //
7501 /* 22632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7502 /* 22635 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FMAD'
7503 /* 22635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7504 /* 22638 */ // Label 423: @22638
7505 /* 22638 */ GIM_Reject,
7506 /* 22639 */ // Label 70: @22639
7507 /* 22639 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(22650), // Rule ID 271 //
7508 /* 22644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7509 /* 22647 */ // Combiner Rule #182: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
7510 /* 22647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7511 /* 22650 */ // Label 424: @22650
7512 /* 22650 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(22661), // Rule ID 282 //
7513 /* 22655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7514 /* 22658 */ // Combiner Rule #187: redundant_neg_operands; wip_match_opcode 'G_FDIV'
7515 /* 22658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7516 /* 22661 */ // Label 425: @22661
7517 /* 22661 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(22672), // Rule ID 314 //
7518 /* 22666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7519 /* 22669 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FDIV'
7520 /* 22669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7521 /* 22672 */ // Label 426: @22672
7522 /* 22672 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(22711), // Rule ID 407 //
7523 /* 22677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
7524 /* 22680 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
7525 /* 22683 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
7526 /* 22686 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7527 /* 22692 */ // MIs[0] y
7528 /* 22692 */ // No operand predicates
7529 /* 22692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7530 /* 22696 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
7531 /* 22700 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7532 /* 22706 */ // MIs[1] x
7533 /* 22706 */ // No operand predicates
7534 /* 22706 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7535 /* 22708 */ // Combiner Rule #250: fdiv_by_sqrt_to_rsq_f16
7536 /* 22708 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
7537 /* 22711 */ // Label 427: @22711
7538 /* 22711 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(22722), // Rule ID 326 //
7539 /* 22716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7540 /* 22719 */ // MIs[0] dst
7541 /* 22719 */ // No operand predicates
7542 /* 22719 */ // MIs[0] src1
7543 /* 22719 */ // No operand predicates
7544 /* 22719 */ // MIs[0] src2
7545 /* 22719 */ // No operand predicates
7546 /* 22719 */ // Combiner Rule #204: fdiv_repeated_divison
7547 /* 22719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7548 /* 22722 */ // Label 428: @22722
7549 /* 22722 */ GIM_Reject,
7550 /* 22723 */ // Label 71: @22723
7551 /* 22723 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(22734), // Rule ID 315 //
7552 /* 22728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7553 /* 22731 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FREM'
7554 /* 22731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7555 /* 22734 */ // Label 429: @22734
7556 /* 22734 */ GIM_Reject,
7557 /* 22735 */ // Label 72: @22735
7558 /* 22735 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(22756), // Rule ID 212 //
7559 /* 22740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7560 /* 22743 */ // MIs[0] dst
7561 /* 22743 */ // No operand predicates
7562 /* 22743 */ // MIs[0] float
7563 /* 22743 */ // No operand predicates
7564 /* 22743 */ // MIs[0] int
7565 /* 22743 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7566 /* 22747 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7567 /* 22751 */ // MIs[1] imm
7568 /* 22751 */ // No operand predicates
7569 /* 22751 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7570 /* 22753 */ // Combiner Rule #160: expand_const_fpowi
7571 /* 22753 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7572 /* 22756 */ // Label 430: @22756
7573 /* 22756 */ GIM_Reject,
7574 /* 22757 */ // Label 73: @22757
7575 /* 22757 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(22778), // Rule ID 186 //
7576 /* 22762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7577 /* 22765 */ // MIs[0] dst
7578 /* 22765 */ // No operand predicates
7579 /* 22765 */ // MIs[0] src0
7580 /* 22765 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7581 /* 22769 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7582 /* 22773 */ // MIs[1] cst
7583 /* 22773 */ // No operand predicates
7584 /* 22773 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7585 /* 22775 */ // Combiner Rule #142: constant_fold_flog2
7586 /* 22775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7587 /* 22778 */ // Label 431: @22778
7588 /* 22778 */ GIM_Reject,
7589 /* 22779 */ // Label 74: @22779
7590 /* 22779 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(22790), // Rule ID 404 //
7591 /* 22784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7592 /* 22787 */ // Combiner Rule #248: foldable_fneg; wip_match_opcode 'G_FNEG'
7593 /* 22787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
7594 /* 22790 */ // Label 432: @22790
7595 /* 22790 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(22811), // Rule ID 183 //
7596 /* 22795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
7597 /* 22798 */ // MIs[0] dst
7598 /* 22798 */ // No operand predicates
7599 /* 22798 */ // MIs[0] src0
7600 /* 22798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7601 /* 22802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7602 /* 22806 */ // MIs[1] cst
7603 /* 22806 */ // No operand predicates
7604 /* 22806 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7605 /* 22808 */ // Combiner Rule #139: constant_fold_fneg
7606 /* 22808 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7607 /* 22811 */ // Label 433: @22811
7608 /* 22811 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(22840), // Rule ID 133 //
7609 /* 22816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
7610 /* 22819 */ // MIs[0] dst
7611 /* 22819 */ // No operand predicates
7612 /* 22819 */ // MIs[0] t
7613 /* 22819 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7614 /* 22823 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7615 /* 22827 */ // MIs[1] src
7616 /* 22827 */ // No operand predicates
7617 /* 22827 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7618 /* 22832 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7619 /* 22834 */ // Combiner Rule #95: fneg_fneg_fold
7620 /* 22834 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7621 /* 22839 */ GIR_EraseRootFromParent_Done,
7622 /* 22840 */ // Label 434: @22840
7623 /* 22840 */ GIM_Reject,
7624 /* 22841 */ // Label 75: @22841
7625 /* 22841 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(22862), // Rule ID 188 //
7626 /* 22846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
7627 /* 22849 */ // MIs[0] dst
7628 /* 22849 */ // No operand predicates
7629 /* 22849 */ // MIs[0] src0
7630 /* 22849 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7631 /* 22853 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7632 /* 22857 */ // MIs[1] cst
7633 /* 22857 */ // No operand predicates
7634 /* 22857 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7635 /* 22859 */ // Combiner Rule #144: constant_fold_fpext
7636 /* 22859 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7637 /* 22862 */ // Label 435: @22862
7638 /* 22862 */ GIM_Reject,
7639 /* 22863 */ // Label 76: @22863
7640 /* 22863 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(22887), // Rule ID 395 //
7641 /* 22868 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
7642 /* 22871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
7643 /* 22874 */ // MIs[0] fptrunc_dst
7644 /* 22874 */ // No operand predicates
7645 /* 22874 */ // MIs[0] fmed3_dst
7646 /* 22874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7647 /* 22878 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
7648 /* 22882 */ // MIs[1] src0
7649 /* 22882 */ // No operand predicates
7650 /* 22882 */ // MIs[1] src1
7651 /* 22882 */ // No operand predicates
7652 /* 22882 */ // MIs[1] src2
7653 /* 22882 */ // No operand predicates
7654 /* 22882 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7655 /* 22884 */ // Combiner Rule #243: expand_promoted_fmed3
7656 /* 22884 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
7657 /* 22887 */ // Label 436: @22887
7658 /* 22887 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(22908), // Rule ID 187 //
7659 /* 22892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
7660 /* 22895 */ // MIs[0] dst
7661 /* 22895 */ // No operand predicates
7662 /* 22895 */ // MIs[0] src0
7663 /* 22895 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7664 /* 22899 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7665 /* 22903 */ // MIs[1] cst
7666 /* 22903 */ // No operand predicates
7667 /* 22903 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7668 /* 22905 */ // Combiner Rule #143: constant_fold_fptrunc
7669 /* 22905 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7670 /* 22908 */ // Label 437: @22908
7671 /* 22908 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(22929), // Rule ID 143 //
7672 /* 22913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7673 /* 22916 */ // MIs[0] dst
7674 /* 22916 */ // No operand predicates
7675 /* 22916 */ // MIs[0] src1
7676 /* 22916 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7677 /* 22920 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
7678 /* 22924 */ // MIs[1] src0
7679 /* 22924 */ // No operand predicates
7680 /* 22924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7681 /* 22926 */ // Combiner Rule #103: fptrunc_fpext_fold
7682 /* 22926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7683 /* 22929 */ // Label 438: @22929
7684 /* 22929 */ GIM_Reject,
7685 /* 22930 */ // Label 77: @22930
7686 /* 22930 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(22951), // Rule ID 95 //
7687 /* 22935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7688 /* 22938 */ // MIs[0] dst
7689 /* 22938 */ // No operand predicates
7690 /* 22938 */ // MIs[0] __unary_undef_to_undef_match_0.x
7691 /* 22938 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7692 /* 22942 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7693 /* 22946 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7694 /* 22948 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
7695 /* 22948 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7696 /* 22951 */ // Label 439: @22951
7697 /* 22951 */ GIM_Reject,
7698 /* 22952 */ // Label 78: @22952
7699 /* 22952 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(22973), // Rule ID 96 //
7700 /* 22957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7701 /* 22960 */ // MIs[0] dst
7702 /* 22960 */ // No operand predicates
7703 /* 22960 */ // MIs[0] __unary_undef_to_undef_match_0.x
7704 /* 22960 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7705 /* 22964 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7706 /* 22968 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7707 /* 22970 */ // Combiner Rule #80: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
7708 /* 22970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7709 /* 22973 */ // Label 440: @22973
7710 /* 22973 */ GIM_Reject,
7711 /* 22974 */ // Label 79: @22974
7712 /* 22974 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(22985), // Rule ID 79 //
7713 /* 22979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7714 /* 22982 */ // Combiner Rule #74: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
7715 /* 22982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7716 /* 22985 */ // Label 441: @22985
7717 /* 22985 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(22996), // Rule ID 398 //
7718 /* 22990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7719 /* 22993 */ // Combiner Rule #245: uchar_to_float; wip_match_opcode 'G_SITOFP'
7720 /* 22993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
7721 /* 22996 */ // Label 442: @22996
7722 /* 22996 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(23011), // Rule ID 196 //
7723 /* 23001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
7724 /* 23004 */ // MIs[0] dst
7725 /* 23004 */ // No operand predicates
7726 /* 23004 */ // MIs[0] Operand 1
7727 /* 23004 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7728 /* 23008 */ // Combiner Rule #152: itof_const_zero_fold_si
7729 /* 23008 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7730 /* 23011 */ // Label 443: @23011
7731 /* 23011 */ GIM_Reject,
7732 /* 23012 */ // Label 80: @23012
7733 /* 23012 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(23023), // Rule ID 78 //
7734 /* 23017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7735 /* 23020 */ // Combiner Rule #74: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
7736 /* 23020 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7737 /* 23023 */ // Label 444: @23023
7738 /* 23023 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(23034), // Rule ID 397 //
7739 /* 23028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7740 /* 23031 */ // Combiner Rule #245: uchar_to_float; wip_match_opcode 'G_UITOFP'
7741 /* 23031 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
7742 /* 23034 */ // Label 445: @23034
7743 /* 23034 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(23049), // Rule ID 197 //
7744 /* 23039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
7745 /* 23042 */ // MIs[0] dst
7746 /* 23042 */ // No operand predicates
7747 /* 23042 */ // MIs[0] Operand 1
7748 /* 23042 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7749 /* 23046 */ // Combiner Rule #153: itof_const_zero_fold_ui
7750 /* 23046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7751 /* 23049 */ // Label 446: @23049
7752 /* 23049 */ GIM_Reject,
7753 /* 23050 */ // Label 81: @23050
7754 /* 23050 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(23079), // Rule ID 22 //
7755 /* 23055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
7756 /* 23058 */ // MIs[0] dst
7757 /* 23058 */ // No operand predicates
7758 /* 23058 */ // MIs[0] src
7759 /* 23058 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7760 /* 23062 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
7761 /* 23066 */ // MIs[1] __idempotent_prop_match_0.x
7762 /* 23066 */ // No operand predicates
7763 /* 23066 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7764 /* 23071 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7765 /* 23073 */ // Combiner Rule #21: idempotent_prop @ [__idempotent_prop_match_0[1]]
7766 /* 23073 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7767 /* 23078 */ GIR_EraseRootFromParent_Done,
7768 /* 23079 */ // Label 447: @23079
7769 /* 23079 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(23100), // Rule ID 184 //
7770 /* 23084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7771 /* 23087 */ // MIs[0] dst
7772 /* 23087 */ // No operand predicates
7773 /* 23087 */ // MIs[0] src0
7774 /* 23087 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7775 /* 23091 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7776 /* 23095 */ // MIs[1] cst
7777 /* 23095 */ // No operand predicates
7778 /* 23095 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7779 /* 23097 */ // Combiner Rule #140: constant_fold_fabs
7780 /* 23097 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7781 /* 23100 */ // Label 448: @23100
7782 /* 23100 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(23128), // Rule ID 277 //
7783 /* 23105 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7784 /* 23108 */ // MIs[0] dst
7785 /* 23108 */ // No operand predicates
7786 /* 23108 */ // MIs[0] tmp
7787 /* 23108 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7788 /* 23112 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7789 /* 23116 */ // MIs[1] x
7790 /* 23116 */ // No operand predicates
7791 /* 23116 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7792 /* 23118 */ // Combiner Rule #185: fabs_fneg_fold
7793 /* 23118 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
7794 /* 23121 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7795 /* 23123 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7796 /* 23127 */ GIR_EraseRootFromParent_Done,
7797 /* 23128 */ // Label 449: @23128
7798 /* 23128 */ GIM_Reject,
7799 /* 23129 */ // Label 82: @23129
7800 /* 23129 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(23140), // Rule ID 403 //
7801 /* 23134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7802 /* 23137 */ // Combiner Rule #247: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
7803 /* 23137 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
7804 /* 23140 */ // Label 450: @23140
7805 /* 23140 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(23169), // Rule ID 23 //
7806 /* 23145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
7807 /* 23148 */ // MIs[0] dst
7808 /* 23148 */ // No operand predicates
7809 /* 23148 */ // MIs[0] src
7810 /* 23148 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7811 /* 23152 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
7812 /* 23156 */ // MIs[1] __idempotent_prop_match_0.x
7813 /* 23156 */ // No operand predicates
7814 /* 23156 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7815 /* 23161 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7816 /* 23163 */ // Combiner Rule #21: idempotent_prop @ [__idempotent_prop_match_0[2]]
7817 /* 23163 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7818 /* 23168 */ GIR_EraseRootFromParent_Done,
7819 /* 23169 */ // Label 451: @23169
7820 /* 23169 */ GIM_Reject,
7821 /* 23170 */ // Label 83: @23170
7822 /* 23170 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(23181), // Rule ID 208 //
7823 /* 23175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7824 /* 23178 */ // Combiner Rule #159: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
7825 /* 23178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7826 /* 23181 */ // Label 452: @23181
7827 /* 23181 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(23192), // Rule ID 316 //
7828 /* 23186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7829 /* 23189 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
7830 /* 23189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7831 /* 23192 */ // Label 453: @23192
7832 /* 23192 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(23203), // Rule ID 353 //
7833 /* 23197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7834 /* 23200 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
7835 /* 23200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7836 /* 23203 */ // Label 454: @23203
7837 /* 23203 */ GIM_Reject,
7838 /* 23204 */ // Label 84: @23204
7839 /* 23204 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(23215), // Rule ID 209 //
7840 /* 23209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7841 /* 23212 */ // Combiner Rule #159: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
7842 /* 23212 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7843 /* 23215 */ // Label 455: @23215
7844 /* 23215 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(23226), // Rule ID 317 //
7845 /* 23220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7846 /* 23223 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
7847 /* 23223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7848 /* 23226 */ // Label 456: @23226
7849 /* 23226 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(23237), // Rule ID 354 //
7850 /* 23231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7851 /* 23234 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
7852 /* 23234 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7853 /* 23237 */ // Label 457: @23237
7854 /* 23237 */ GIM_Reject,
7855 /* 23238 */ // Label 85: @23238
7856 /* 23238 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(23249), // Rule ID 355 //
7857 /* 23243 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7858 /* 23246 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
7859 /* 23246 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7860 /* 23249 */ // Label 458: @23249
7861 /* 23249 */ GIM_Reject,
7862 /* 23250 */ // Label 86: @23250
7863 /* 23250 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(23261), // Rule ID 356 //
7864 /* 23255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7865 /* 23258 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
7866 /* 23258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7867 /* 23261 */ // Label 459: @23261
7868 /* 23261 */ GIM_Reject,
7869 /* 23262 */ // Label 87: @23262
7870 /* 23262 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(23273), // Rule ID 210 //
7871 /* 23267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7872 /* 23270 */ // Combiner Rule #159: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
7873 /* 23270 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7874 /* 23273 */ // Label 460: @23273
7875 /* 23273 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(23284), // Rule ID 318 //
7876 /* 23278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7877 /* 23281 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
7878 /* 23281 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7879 /* 23284 */ // Label 461: @23284
7880 /* 23284 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(23295), // Rule ID 357 //
7881 /* 23289 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7882 /* 23292 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
7883 /* 23292 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7884 /* 23295 */ // Label 462: @23295
7885 /* 23295 */ GIM_Reject,
7886 /* 23296 */ // Label 88: @23296
7887 /* 23296 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(23307), // Rule ID 211 //
7888 /* 23301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7889 /* 23304 */ // Combiner Rule #159: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
7890 /* 23304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7891 /* 23307 */ // Label 463: @23307
7892 /* 23307 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(23318), // Rule ID 319 //
7893 /* 23312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7894 /* 23315 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
7895 /* 23315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7896 /* 23318 */ // Label 464: @23318
7897 /* 23318 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(23329), // Rule ID 358 //
7898 /* 23323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
7899 /* 23326 */ // Combiner Rule #209: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
7900 /* 23326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7901 /* 23329 */ // Label 465: @23329
7902 /* 23329 */ GIM_Reject,
7903 /* 23330 */ // Label 89: @23330
7904 /* 23330 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(23341), // Rule ID 155 //
7905 /* 23335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7906 /* 23338 */ // Combiner Rule #111: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
7907 /* 23338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7908 /* 23341 */ // Label 466: @23341
7909 /* 23341 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(23352), // Rule ID 157 //
7910 /* 23346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
7911 /* 23349 */ // Combiner Rule #113: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
7912 /* 23349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
7913 /* 23352 */ // Label 467: @23352
7914 /* 23352 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(23363), // Rule ID 198 //
7915 /* 23357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
7916 /* 23360 */ // Combiner Rule #154: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
7917 /* 23360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7918 /* 23363 */ // Label 468: @23363
7919 /* 23363 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(23374), // Rule ID 214 //
7920 /* 23368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7921 /* 23371 */ // Combiner Rule #162: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
7922 /* 23371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
7923 /* 23374 */ // Label 469: @23374
7924 /* 23374 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(23385), // Rule ID 251 //
7925 /* 23379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7926 /* 23382 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
7927 /* 23382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7928 /* 23385 */ // Label 470: @23385
7929 /* 23385 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(23396), // Rule ID 296 //
7930 /* 23390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7931 /* 23393 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
7932 /* 23393 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7933 /* 23396 */ // Label 471: @23396
7934 /* 23396 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(23419), // Rule ID 114 //
7935 /* 23401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
7936 /* 23404 */ // MIs[0] dst
7937 /* 23404 */ // No operand predicates
7938 /* 23404 */ // MIs[0] lhs
7939 /* 23404 */ // No operand predicates
7940 /* 23404 */ // MIs[0] Operand 2
7941 /* 23404 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7942 /* 23408 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7943 /* 23413 */ // Combiner Rule #87: right_identity_zero @ [__right_identity_zero_match_0[7]]
7944 /* 23413 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7945 /* 23418 */ GIR_EraseRootFromParent_Done,
7946 /* 23419 */ // Label 472: @23419
7947 /* 23419 */ GIM_Reject,
7948 /* 23420 */ // Label 90: @23420
7949 /* 23420 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(23431), // Rule ID 264 //
7950 /* 23425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7951 /* 23428 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SMIN'
7952 /* 23428 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7953 /* 23431 */ // Label 473: @23431
7954 /* 23431 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(23442), // Rule ID 307 //
7955 /* 23436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7956 /* 23439 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SMIN'
7957 /* 23439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7958 /* 23442 */ // Label 474: @23442
7959 /* 23442 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(23453), // Rule ID 335 //
7960 /* 23447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7961 /* 23450 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
7962 /* 23450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7963 /* 23453 */ // Label 475: @23453
7964 /* 23453 */ GIM_Reject,
7965 /* 23454 */ // Label 91: @23454
7966 /* 23454 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(23465), // Rule ID 265 //
7967 /* 23459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7968 /* 23462 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_SMAX'
7969 /* 23462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7970 /* 23465 */ // Label 476: @23465
7971 /* 23465 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(23476), // Rule ID 308 //
7972 /* 23470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7973 /* 23473 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_SMAX'
7974 /* 23473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7975 /* 23476 */ // Label 477: @23476
7976 /* 23476 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(23487), // Rule ID 336 //
7977 /* 23481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7978 /* 23484 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
7979 /* 23484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7980 /* 23487 */ // Label 478: @23487
7981 /* 23487 */ GIM_Reject,
7982 /* 23488 */ // Label 92: @23488
7983 /* 23488 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(23499), // Rule ID 266 //
7984 /* 23493 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7985 /* 23496 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_UMIN'
7986 /* 23496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7987 /* 23499 */ // Label 479: @23499
7988 /* 23499 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(23510), // Rule ID 309 //
7989 /* 23504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7990 /* 23507 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_UMIN'
7991 /* 23507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7992 /* 23510 */ // Label 480: @23510
7993 /* 23510 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(23521), // Rule ID 337 //
7994 /* 23515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7995 /* 23518 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
7996 /* 23518 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7997 /* 23521 */ // Label 481: @23521
7998 /* 23521 */ GIM_Reject,
7999 /* 23522 */ // Label 93: @23522
8000 /* 23522 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(23533), // Rule ID 267 //
8001 /* 23527 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8002 /* 23530 */ // Combiner Rule #181: constant_fold_binop; wip_match_opcode 'G_UMAX'
8003 /* 23530 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8004 /* 23533 */ // Label 482: @23533
8005 /* 23533 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(23544), // Rule ID 310 //
8006 /* 23538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8007 /* 23541 */ // Combiner Rule #197: fold_binop_into_select; wip_match_opcode 'G_UMAX'
8008 /* 23541 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8009 /* 23544 */ // Label 483: @23544
8010 /* 23544 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(23555), // Rule ID 338 //
8011 /* 23549 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8012 /* 23552 */ // Combiner Rule #208: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
8013 /* 23552 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8014 /* 23555 */ // Label 484: @23555
8015 /* 23555 */ GIM_Reject,
8016 /* 23556 */ // Label 94: @23556
8017 /* 23556 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(23567), // Rule ID 89 //
8018 /* 23561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
8019 /* 23564 */ // Combiner Rule #79: unary_undef_to_zero; wip_match_opcode 'G_ABS'
8020 /* 23564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
8021 /* 23567 */ // Label 485: @23567
8022 /* 23567 */ GIM_Reject,
8023 /* 23568 */ // Label 95: @23568
8024 /* 23568 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(23579), // Rule ID 182 //
8025 /* 23573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
8026 /* 23576 */ // Combiner Rule #138: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
8027 /* 23576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
8028 /* 23579 */ // Label 486: @23579
8029 /* 23579 */ GIM_Reject,
8030 /* 23580 */ // Label 96: @23580
8031 /* 23580 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(23591), // Rule ID 29 //
8032 /* 23585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
8033 /* 23588 */ // Combiner Rule #27: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8034 /* 23588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
8035 /* 23591 */ // Label 487: @23591
8036 /* 23591 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(23602), // Rule ID 70 //
8037 /* 23596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
8038 /* 23599 */ // Combiner Rule #68: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8039 /* 23599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8040 /* 23602 */ // Label 488: @23602
8041 /* 23602 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(23613), // Rule ID 104 //
8042 /* 23607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
8043 /* 23610 */ // Combiner Rule #85: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
8044 /* 23610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8045 /* 23613 */ // Label 489: @23613
8046 /* 23613 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(23652), // Rule ID 41 //
8047 /* 23618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
8048 /* 23621 */ // MIs[0] root
8049 /* 23621 */ // No operand predicates
8050 /* 23621 */ // MIs[0] src
8051 /* 23621 */ // No operand predicates
8052 /* 23621 */ // MIs[0] elt
8053 /* 23621 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8054 /* 23625 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
8055 /* 23629 */ // MIs[1] src
8056 /* 23629 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
8057 /* 23634 */ // MIs[1] idx
8058 /* 23634 */ // No operand predicates
8059 /* 23634 */ // MIs[0] idx
8060 /* 23634 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
8061 /* 23639 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8062 /* 23644 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8063 /* 23646 */ // Combiner Rule #39: insert_vector_element_extract_vector_element
8064 /* 23646 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8065 /* 23651 */ GIR_EraseRootFromParent_Done,
8066 /* 23652 */ // Label 490: @23652
8067 /* 23652 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(23685), // Rule ID 27 //
8068 /* 23657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
8069 /* 23660 */ // MIs[0] root
8070 /* 23660 */ // No operand predicates
8071 /* 23660 */ // MIs[0] src
8072 /* 23660 */ // No operand predicates
8073 /* 23660 */ // MIs[0] elt
8074 /* 23660 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8075 /* 23664 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8076 /* 23668 */ // MIs[0] idx
8077 /* 23668 */ // No operand predicates
8078 /* 23668 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
8079 /* 23672 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8080 /* 23677 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8081 /* 23679 */ // Combiner Rule #25: insert_vector_element_elt_undef
8082 /* 23679 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8083 /* 23684 */ GIR_EraseRootFromParent_Done,
8084 /* 23685 */ // Label 491: @23685
8085 /* 23685 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(23709), // Rule ID 26 //
8086 /* 23690 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8087 /* 23693 */ // MIs[0] root
8088 /* 23693 */ // No operand predicates
8089 /* 23693 */ // MIs[0] src
8090 /* 23693 */ // No operand predicates
8091 /* 23693 */ // MIs[0] elt
8092 /* 23693 */ // No operand predicates
8093 /* 23693 */ // MIs[0] idx
8094 /* 23693 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
8095 /* 23697 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8096 /* 23701 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8097 /* 23703 */ // Combiner Rule #24: insert_vector_element_idx_undef
8098 /* 23703 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8099 /* 23706 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8100 /* 23708 */ GIR_EraseRootFromParent_Done,
8101 /* 23709 */ // Label 492: @23709
8102 /* 23709 */ GIM_Reject,
8103 /* 23710 */ // Label 97: @23710
8104 /* 23710 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(23721), // Rule ID 28 //
8105 /* 23715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
8106 /* 23718 */ // Combiner Rule #26: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8107 /* 23718 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
8108 /* 23721 */ // Label 493: @23721
8109 /* 23721 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(23732), // Rule ID 71 //
8110 /* 23726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
8111 /* 23729 */ // Combiner Rule #69: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8112 /* 23729 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
8113 /* 23732 */ // Label 494: @23732
8114 /* 23732 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(23743), // Rule ID 77 //
8115 /* 23737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8116 /* 23740 */ // Combiner Rule #73: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8117 /* 23740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
8118 /* 23743 */ // Label 495: @23743
8119 /* 23743 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(23754), // Rule ID 105 //
8120 /* 23748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
8121 /* 23751 */ // Combiner Rule #85: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
8122 /* 23751 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8123 /* 23754 */ // Label 496: @23754
8124 /* 23754 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(23778), // Rule ID 39 //
8125 /* 23759 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
8126 /* 23762 */ // MIs[0] root
8127 /* 23762 */ // No operand predicates
8128 /* 23762 */ // MIs[0] src
8129 /* 23762 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8130 /* 23766 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8131 /* 23770 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
8132 /* 23773 */ // MIs[1] x
8133 /* 23773 */ // No operand predicates
8134 /* 23773 */ // MIs[1] y
8135 /* 23773 */ // No operand predicates
8136 /* 23773 */ // MIs[1] z
8137 /* 23773 */ // No operand predicates
8138 /* 23773 */ // MIs[1] a
8139 /* 23773 */ // No operand predicates
8140 /* 23773 */ // MIs[1] b
8141 /* 23773 */ // No operand predicates
8142 /* 23773 */ // MIs[1] c
8143 /* 23773 */ // No operand predicates
8144 /* 23773 */ // MIs[1] d
8145 /* 23773 */ // No operand predicates
8146 /* 23773 */ // MIs[1] e
8147 /* 23773 */ // No operand predicates
8148 /* 23773 */ // MIs[0] idx
8149 /* 23773 */ // No operand predicates
8150 /* 23773 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8151 /* 23775 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc8
8152 /* 23775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8153 /* 23778 */ // Label 497: @23778
8154 /* 23778 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(23802), // Rule ID 38 //
8155 /* 23783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
8156 /* 23786 */ // MIs[0] root
8157 /* 23786 */ // No operand predicates
8158 /* 23786 */ // MIs[0] src
8159 /* 23786 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8160 /* 23790 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8161 /* 23794 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
8162 /* 23797 */ // MIs[1] x
8163 /* 23797 */ // No operand predicates
8164 /* 23797 */ // MIs[1] y
8165 /* 23797 */ // No operand predicates
8166 /* 23797 */ // MIs[1] z
8167 /* 23797 */ // No operand predicates
8168 /* 23797 */ // MIs[1] a
8169 /* 23797 */ // No operand predicates
8170 /* 23797 */ // MIs[1] b
8171 /* 23797 */ // No operand predicates
8172 /* 23797 */ // MIs[1] c
8173 /* 23797 */ // No operand predicates
8174 /* 23797 */ // MIs[1] d
8175 /* 23797 */ // No operand predicates
8176 /* 23797 */ // MIs[0] idx
8177 /* 23797 */ // No operand predicates
8178 /* 23797 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8179 /* 23799 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc7
8180 /* 23799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8181 /* 23802 */ // Label 498: @23802
8182 /* 23802 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(23826), // Rule ID 37 //
8183 /* 23807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
8184 /* 23810 */ // MIs[0] root
8185 /* 23810 */ // No operand predicates
8186 /* 23810 */ // MIs[0] src
8187 /* 23810 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8188 /* 23814 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8189 /* 23818 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
8190 /* 23821 */ // MIs[1] x
8191 /* 23821 */ // No operand predicates
8192 /* 23821 */ // MIs[1] y
8193 /* 23821 */ // No operand predicates
8194 /* 23821 */ // MIs[1] z
8195 /* 23821 */ // No operand predicates
8196 /* 23821 */ // MIs[1] a
8197 /* 23821 */ // No operand predicates
8198 /* 23821 */ // MIs[1] b
8199 /* 23821 */ // No operand predicates
8200 /* 23821 */ // MIs[1] c
8201 /* 23821 */ // No operand predicates
8202 /* 23821 */ // MIs[0] idx
8203 /* 23821 */ // No operand predicates
8204 /* 23821 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8205 /* 23823 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc6
8206 /* 23823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8207 /* 23826 */ // Label 499: @23826
8208 /* 23826 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(23850), // Rule ID 36 //
8209 /* 23831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
8210 /* 23834 */ // MIs[0] root
8211 /* 23834 */ // No operand predicates
8212 /* 23834 */ // MIs[0] src
8213 /* 23834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8214 /* 23838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8215 /* 23842 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
8216 /* 23845 */ // MIs[1] x
8217 /* 23845 */ // No operand predicates
8218 /* 23845 */ // MIs[1] y
8219 /* 23845 */ // No operand predicates
8220 /* 23845 */ // MIs[1] z
8221 /* 23845 */ // No operand predicates
8222 /* 23845 */ // MIs[1] a
8223 /* 23845 */ // No operand predicates
8224 /* 23845 */ // MIs[1] b
8225 /* 23845 */ // No operand predicates
8226 /* 23845 */ // MIs[0] idx
8227 /* 23845 */ // No operand predicates
8228 /* 23845 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8229 /* 23847 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc5
8230 /* 23847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8231 /* 23850 */ // Label 500: @23850
8232 /* 23850 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(23874), // Rule ID 35 //
8233 /* 23855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
8234 /* 23858 */ // MIs[0] root
8235 /* 23858 */ // No operand predicates
8236 /* 23858 */ // MIs[0] src
8237 /* 23858 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8238 /* 23862 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8239 /* 23866 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
8240 /* 23869 */ // MIs[1] x
8241 /* 23869 */ // No operand predicates
8242 /* 23869 */ // MIs[1] y
8243 /* 23869 */ // No operand predicates
8244 /* 23869 */ // MIs[1] z
8245 /* 23869 */ // No operand predicates
8246 /* 23869 */ // MIs[1] a
8247 /* 23869 */ // No operand predicates
8248 /* 23869 */ // MIs[0] idx
8249 /* 23869 */ // No operand predicates
8250 /* 23869 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8251 /* 23871 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc4
8252 /* 23871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8253 /* 23874 */ // Label 501: @23874
8254 /* 23874 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(23898), // Rule ID 34 //
8255 /* 23879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
8256 /* 23882 */ // MIs[0] root
8257 /* 23882 */ // No operand predicates
8258 /* 23882 */ // MIs[0] src
8259 /* 23882 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8260 /* 23886 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8261 /* 23890 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
8262 /* 23893 */ // MIs[1] x
8263 /* 23893 */ // No operand predicates
8264 /* 23893 */ // MIs[1] y
8265 /* 23893 */ // No operand predicates
8266 /* 23893 */ // MIs[1] z
8267 /* 23893 */ // No operand predicates
8268 /* 23893 */ // MIs[0] idx
8269 /* 23893 */ // No operand predicates
8270 /* 23893 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8271 /* 23895 */ // Combiner Rule #32: extract_vector_element_build_vector_trunc3
8272 /* 23895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8273 /* 23898 */ // Label 502: @23898
8274 /* 23898 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(23932), // Rule ID 30 //
8275 /* 23903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
8276 /* 23906 */ // MIs[0] root
8277 /* 23906 */ // No operand predicates
8278 /* 23906 */ // MIs[0] src
8279 /* 23906 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8280 /* 23910 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8281 /* 23914 */ // MIs[1] x
8282 /* 23914 */ // No operand predicates
8283 /* 23914 */ // MIs[1] value
8284 /* 23914 */ // No operand predicates
8285 /* 23914 */ // MIs[1] idx
8286 /* 23914 */ // No operand predicates
8287 /* 23914 */ // MIs[0] idx
8288 /* 23914 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
8289 /* 23919 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8290 /* 23924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8291 /* 23926 */ // Combiner Rule #28: extract_vector_element_not_const
8292 /* 23926 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8293 /* 23931 */ GIR_EraseRootFromParent_Done,
8294 /* 23932 */ // Label 503: @23932
8295 /* 23932 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(23953), // Rule ID 31 //
8296 /* 23937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
8297 /* 23940 */ // MIs[0] root
8298 /* 23940 */ // No operand predicates
8299 /* 23940 */ // MIs[0] src
8300 /* 23940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8301 /* 23944 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8302 /* 23948 */ // MIs[1] x
8303 /* 23948 */ // No operand predicates
8304 /* 23948 */ // MIs[1] value
8305 /* 23948 */ // No operand predicates
8306 /* 23948 */ // MIs[1] idx2
8307 /* 23948 */ // No operand predicates
8308 /* 23948 */ // MIs[0] idx1
8309 /* 23948 */ // No operand predicates
8310 /* 23948 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8311 /* 23950 */ // Combiner Rule #29: extract_vector_element_different_indices
8312 /* 23950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
8313 /* 23953 */ // Label 504: @23953
8314 /* 23953 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(23982), // Rule ID 40 //
8315 /* 23958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
8316 /* 23961 */ // MIs[0] root
8317 /* 23961 */ // No operand predicates
8318 /* 23961 */ // MIs[0] src
8319 /* 23961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8320 /* 23965 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
8321 /* 23969 */ // MIs[1] src1
8322 /* 23969 */ // No operand predicates
8323 /* 23969 */ // MIs[1] src2
8324 /* 23969 */ // No operand predicates
8325 /* 23969 */ // MIs[1] mask
8326 /* 23969 */ // No operand predicates
8327 /* 23969 */ // MIs[0] idx
8328 /* 23969 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8329 /* 23973 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8330 /* 23977 */ // MIs[2] imm
8331 /* 23977 */ // No operand predicates
8332 /* 23977 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8333 /* 23979 */ // Combiner Rule #38: extract_vector_element_shuffle_vector
8334 /* 23979 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
8335 /* 23982 */ // Label 505: @23982
8336 /* 23982 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(24006), // Rule ID 33 //
8337 /* 23987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
8338 /* 23990 */ // MIs[0] root
8339 /* 23990 */ // No operand predicates
8340 /* 23990 */ // MIs[0] src
8341 /* 23990 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8342 /* 23994 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8343 /* 23998 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8344 /* 24001 */ // MIs[1] x
8345 /* 24001 */ // No operand predicates
8346 /* 24001 */ // MIs[1] y
8347 /* 24001 */ // No operand predicates
8348 /* 24001 */ // MIs[0] idx
8349 /* 24001 */ // No operand predicates
8350 /* 24001 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8351 /* 24003 */ // Combiner Rule #31: extract_vector_element_build_vector_trunc2
8352 /* 24003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8353 /* 24006 */ // Label 506: @24006
8354 /* 24006 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(24038), // Rule ID 32 //
8355 /* 24011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
8356 /* 24014 */ // MIs[0] root
8357 /* 24014 */ // No operand predicates
8358 /* 24014 */ // MIs[0] src
8359 /* 24014 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8360 /* 24018 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8361 /* 24022 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8362 /* 24025 */ // MIs[1] unused
8363 /* 24025 */ // No operand predicates
8364 /* 24025 */ // MIs[0] idx
8365 /* 24025 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8366 /* 24029 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8367 /* 24033 */ // MIs[2] imm
8368 /* 24033 */ // No operand predicates
8369 /* 24033 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8370 /* 24035 */ // Combiner Rule #30: extract_vector_element_build_vector
8371 /* 24035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
8372 /* 24038 */ // Label 507: @24038
8373 /* 24038 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(24062), // Rule ID 24 //
8374 /* 24043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
8375 /* 24046 */ // MIs[0] root
8376 /* 24046 */ // No operand predicates
8377 /* 24046 */ // MIs[0] vector
8378 /* 24046 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8379 /* 24050 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8380 /* 24054 */ // MIs[0] idx
8381 /* 24054 */ // No operand predicates
8382 /* 24054 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8383 /* 24056 */ // Combiner Rule #22: match_extract_of_element_undef_vector
8384 /* 24056 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8385 /* 24059 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8386 /* 24061 */ GIR_EraseRootFromParent_Done,
8387 /* 24062 */ // Label 508: @24062
8388 /* 24062 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(24086), // Rule ID 25 //
8389 /* 24067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
8390 /* 24070 */ // MIs[0] root
8391 /* 24070 */ // No operand predicates
8392 /* 24070 */ // MIs[0] vector
8393 /* 24070 */ // No operand predicates
8394 /* 24070 */ // MIs[0] idx
8395 /* 24070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8396 /* 24074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8397 /* 24078 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8398 /* 24080 */ // Combiner Rule #23: match_extract_of_element_undef_index
8399 /* 24080 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8400 /* 24083 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8401 /* 24085 */ GIR_EraseRootFromParent_Done,
8402 /* 24086 */ // Label 509: @24086
8403 /* 24086 */ GIM_Reject,
8404 /* 24087 */ // Label 98: @24087
8405 /* 24087 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(24098), // Rule ID 100 //
8406 /* 24092 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8407 /* 24095 */ // Combiner Rule #82: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
8408 /* 24095 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
8409 /* 24098 */ // Label 510: @24098
8410 /* 24098 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(24109), // Rule ID 102 //
8411 /* 24103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
8412 /* 24106 */ // Combiner Rule #83: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8413 /* 24106 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
8414 /* 24109 */ // Label 511: @24109
8415 /* 24109 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(24120), // Rule ID 366 //
8416 /* 24114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8417 /* 24117 */ // Combiner Rule #217: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
8418 /* 24117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
8419 /* 24120 */ // Label 512: @24120
8420 /* 24120 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(24131), // Rule ID 368 //
8421 /* 24125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
8422 /* 24128 */ // Combiner Rule #219: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8423 /* 24128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
8424 /* 24131 */ // Label 513: @24131
8425 /* 24131 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(24152), // Rule ID 367 //
8426 /* 24136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
8427 /* 24139 */ // MIs[0] root
8428 /* 24139 */ // No operand predicates
8429 /* 24139 */ // MIs[0] src1
8430 /* 24139 */ // No operand predicates
8431 /* 24139 */ // MIs[0] undef
8432 /* 24139 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8433 /* 24143 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8434 /* 24147 */ // MIs[0] mask
8435 /* 24147 */ // No operand predicates
8436 /* 24147 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8437 /* 24149 */ // Combiner Rule #218: combine_shuffle_undef_rhs
8438 /* 24149 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
8439 /* 24152 */ // Label 514: @24152
8440 /* 24152 */ GIM_Reject,
8441 /* 24153 */ // Label 99: @24153
8442 /* 24153 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(24164), // Rule ID 389 //
8443 /* 24158 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
8444 /* 24161 */ // MIs[0] dst
8445 /* 24161 */ // No operand predicates
8446 /* 24161 */ // MIs[0] src
8447 /* 24161 */ // No operand predicates
8448 /* 24161 */ // Combiner Rule #238: ctlz_to_ctls
8449 /* 24161 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8450 /* 24164 */ // Label 515: @24164
8451 /* 24164 */ GIM_Reject,
8452 /* 24165 */ // Label 100: @24165
8453 /* 24165 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(24176), // Rule ID 390 //
8454 /* 24170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
8455 /* 24173 */ // MIs[0] dst
8456 /* 24173 */ // No operand predicates
8457 /* 24173 */ // MIs[0] src
8458 /* 24173 */ // No operand predicates
8459 /* 24173 */ // Combiner Rule #239: ctlz_zero_undef_to_ctls
8460 /* 24173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8461 /* 24176 */ // Label 516: @24176
8462 /* 24176 */ GIM_Reject,
8463 /* 24177 */ // Label 101: @24177
8464 /* 24177 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(24221), // Rule ID 242 //
8465 /* 24182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8466 /* 24185 */ // MIs[0] d
8467 /* 24185 */ // No operand predicates
8468 /* 24185 */ // MIs[0] src
8469 /* 24185 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8470 /* 24189 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8471 /* 24193 */ // MIs[1] rev
8472 /* 24193 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8473 /* 24197 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8474 /* 24201 */ // MIs[2] val
8475 /* 24201 */ // No operand predicates
8476 /* 24201 */ // MIs[1] amt
8477 /* 24201 */ // No operand predicates
8478 /* 24201 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
8479 /* 24205 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8480 /* 24207 */ // Combiner Rule #175: bitreverse_lshr
8481 /* 24207 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8482 /* 24210 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8483 /* 24212 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8484 /* 24216 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8485 /* 24220 */ GIR_EraseRootFromParent_Done,
8486 /* 24221 */ // Label 517: @24221
8487 /* 24221 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(24265), // Rule ID 241 //
8488 /* 24226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
8489 /* 24229 */ // MIs[0] d
8490 /* 24229 */ // No operand predicates
8491 /* 24229 */ // MIs[0] src
8492 /* 24229 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8493 /* 24233 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
8494 /* 24237 */ // MIs[1] rev
8495 /* 24237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8496 /* 24241 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8497 /* 24245 */ // MIs[2] val
8498 /* 24245 */ // No operand predicates
8499 /* 24245 */ // MIs[1] amt
8500 /* 24245 */ // No operand predicates
8501 /* 24245 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
8502 /* 24249 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8503 /* 24251 */ // Combiner Rule #174: bitreverse_shl
8504 /* 24251 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
8505 /* 24254 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8506 /* 24256 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8507 /* 24260 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8508 /* 24264 */ GIR_EraseRootFromParent_Done,
8509 /* 24265 */ // Label 518: @24265
8510 /* 24265 */ GIM_Reject,
8511 /* 24266 */ // Label 102: @24266
8512 /* 24266 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(24287), // Rule ID 189 //
8513 /* 24271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
8514 /* 24274 */ // MIs[0] dst
8515 /* 24274 */ // No operand predicates
8516 /* 24274 */ // MIs[0] src0
8517 /* 24274 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8518 /* 24278 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8519 /* 24282 */ // MIs[1] cst
8520 /* 24282 */ // No operand predicates
8521 /* 24282 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8522 /* 24284 */ // Combiner Rule #145: constant_fold_fceil
8523 /* 24284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8524 /* 24287 */ // Label 519: @24287
8525 /* 24287 */ GIM_Reject,
8526 /* 24288 */ // Label 103: @24288
8527 /* 24288 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(24299), // Rule ID 406 //
8528 /* 24293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
8529 /* 24296 */ // Combiner Rule #249: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
8530 /* 24296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
8531 /* 24299 */ // Label 520: @24299
8532 /* 24299 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(24320), // Rule ID 185 //
8533 /* 24304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
8534 /* 24307 */ // MIs[0] dst
8535 /* 24307 */ // No operand predicates
8536 /* 24307 */ // MIs[0] src0
8537 /* 24307 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8538 /* 24311 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8539 /* 24315 */ // MIs[1] cst
8540 /* 24315 */ // No operand predicates
8541 /* 24315 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8542 /* 24317 */ // Combiner Rule #141: constant_fold_fsqrt
8543 /* 24317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8544 /* 24320 */ // Label 521: @24320
8545 /* 24320 */ GIM_Reject,
8546 /* 24321 */ // Label 104: @24321
8547 /* 24321 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(24342), // Rule ID 190 //
8548 /* 24326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8549 /* 24329 */ // MIs[0] dst
8550 /* 24329 */ // No operand predicates
8551 /* 24329 */ // MIs[0] src0
8552 /* 24329 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8553 /* 24333 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8554 /* 24337 */ // MIs[1] cst
8555 /* 24337 */ // No operand predicates
8556 /* 24337 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8557 /* 24339 */ // Combiner Rule #146: constant_fold_ffloor
8558 /* 24339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8559 /* 24342 */ // Label 522: @24342
8560 /* 24342 */ GIM_Reject,
8561 /* 24343 */ // Label 105: @24343
8562 /* 24343 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(24364), // Rule ID 194 //
8563 /* 24348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
8564 /* 24351 */ // MIs[0] dst
8565 /* 24351 */ // No operand predicates
8566 /* 24351 */ // MIs[0] src0
8567 /* 24351 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8568 /* 24355 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8569 /* 24359 */ // MIs[1] cst
8570 /* 24359 */ // No operand predicates
8571 /* 24359 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8572 /* 24361 */ // Combiner Rule #150: constant_fold_frint
8573 /* 24361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8574 /* 24364 */ // Label 523: @24364
8575 /* 24364 */ GIM_Reject,
8576 /* 24365 */ // Label 106: @24365
8577 /* 24365 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(24386), // Rule ID 195 //
8578 /* 24370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
8579 /* 24373 */ // MIs[0] dst
8580 /* 24373 */ // No operand predicates
8581 /* 24373 */ // MIs[0] src0
8582 /* 24373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8583 /* 24377 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8584 /* 24381 */ // MIs[1] cst
8585 /* 24381 */ // No operand predicates
8586 /* 24381 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8587 /* 24383 */ // Combiner Rule #151: constant_fold_fnearbyint
8588 /* 24383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8589 /* 24386 */ // Label 524: @24386
8590 /* 24386 */ GIM_Reject,
8591 /* 24387 */ // Label 107: @24387
8592 /* 24387 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(24398), // Rule ID 399 //
8593 /* 24392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
8594 /* 24395 */ // Combiner Rule #246: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
8595 /* 24395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8596 /* 24398 */ // Label 525: @24398
8597 /* 24398 */ GIM_Reject,
8598 /* 24399 */ // Label 108: @24399
8599 /* 24399 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(24410), // Rule ID 400 //
8600 /* 24404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
8601 /* 24407 */ // Combiner Rule #246: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
8602 /* 24407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8603 /* 24410 */ // Label 526: @24410
8604 /* 24410 */ GIM_Reject,
8605 /* 24411 */ // Label 109: @24411
8606 /* 24411 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(24422), // Rule ID 401 //
8607 /* 24416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
8608 /* 24419 */ // Combiner Rule #246: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
8609 /* 24419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8610 /* 24422 */ // Label 527: @24422
8611 /* 24422 */ GIM_Reject,
8612 /* 24423 */ // Label 110: @24423
8613 /* 24423 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(24434), // Rule ID 402 //
8614 /* 24428 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
8615 /* 24431 */ // Combiner Rule #246: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
8616 /* 24431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8617 /* 24434 */ // Label 528: @24434
8618 /* 24434 */ GIM_Reject,
8619 /* 24435 */ // Label 111: @24435
8620 /* 24435 */ GIM_Reject,
8621 /* 24436 */ }; // Size: 24436 bytes
8622 return MatchTable0;
8623}
8624#undef GIMT_Encode2
8625#undef GIMT_Encode4
8626#undef GIMT_Encode8
8627
8628
8629#endif // GET_GICOMBINER_IMPL
8630
8631#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8632
8633AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
8634AvailableFunctionFeatures()
8635
8636#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8637
8638#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8639
8640, State(0),
8641ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
8642
8643#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8644
8645