1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AMDGPUPostLegalizerCombinerImpl Combiner Match Table *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GICOMBINER_DEPS
10
11#include "llvm/ADT/SparseBitVector.h"
12namespace llvm {
13
14extern cl::OptionCategory GICombinerOptionCategory;
15
16} // namespace llvm
17
18#endif // GET_GICOMBINER_DEPS
19
20#ifdef GET_GICOMBINER_TYPES
21
22struct AMDGPUPostLegalizerCombinerImplRuleConfig {
23 SparseBitVector<> DisabledRules;
24
25 bool isRuleEnabled(unsigned RuleID) const;
26 bool parseCommandLineOption();
27 bool setRuleEnabled(StringRef RuleIdentifier);
28 bool setRuleDisabled(StringRef RuleIdentifier);
29};
30
31static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
32 uint64_t I;
33 // getAtInteger(...) returns false on success
34 bool Parsed = !RuleIdentifier.getAsInteger(Radix: 0, Result&: I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 7: // 1 string to match.
42 if (memcmp(RuleIdentifier.data()+0, "smulu64", 7) != 0)
43 break;
44 return 293; // "smulu64"
45 case 9: // 7 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'a': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
50 break;
51 return 267; // "add_shift"
52 case 'c': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
54 break;
55 return 19; // "copy_prop"
56 case 'm': // 3 strings to match.
57 switch (RuleIdentifier[1]) {
58 default: break;
59 case 'a': // 1 string to match.
60 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
61 break;
62 return 230; // "match_ors"
63 case 'u': // 2 strings to match.
64 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
65 break;
66 switch (RuleIdentifier[8]) {
67 default: break;
68 case '0': // 1 string to match.
69 return 169; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 168; // "mulo_by_2"
72 }
73 break;
74 }
75 break;
76 case 'n': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
78 break;
79 return 241; // "nneg_zext"
80 case 'o': // 1 string to match.
81 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
82 break;
83 return 235; // "or_xor_or"
84 }
85 break;
86 case 10: // 11 strings to match.
87 switch (RuleIdentifier[0]) {
88 default: break;
89 case 'S': // 2 strings to match.
90 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
91 break;
92 switch (RuleIdentifier[3]) {
93 default: break;
94 case 'S': // 1 string to match.
95 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
96 break;
97 return 272; // "SubSmaxSub"
98 case 'U': // 1 string to match.
99 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
100 break;
101 return 273; // "SubUmaxSub"
102 }
103 break;
104 case 'i': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
106 break;
107 return 96; // "i2p_to_p2i"
108 case 'm': // 2 strings to match.
109 switch (RuleIdentifier[1]) {
110 default: break;
111 case 'a': // 1 string to match.
112 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
113 break;
114 return 229; // "match_ands"
115 case 'u': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
117 break;
118 return 20; // "mul_to_shl"
119 }
120 break;
121 case 'o': // 1 string to match.
122 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
123 break;
124 return 236; // "or_xor_and"
125 case 'p': // 1 string to match.
126 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
127 break;
128 return 95; // "p2i_to_i2p"
129 case 's': // 3 strings to match.
130 switch (RuleIdentifier[1]) {
131 default: break;
132 case 'e': // 2 strings to match.
133 switch (RuleIdentifier[2]) {
134 default: break;
135 case 'l': // 1 string to match.
136 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
137 break;
138 return 137; // "select_not"
139 case 'x': // 1 string to match.
140 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
141 break;
142 return 239; // "sext_trunc"
143 }
144 break;
145 case 'u': // 1 string to match.
146 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
147 break;
148 return 21; // "sub_to_add"
149 }
150 break;
151 case 'z': // 1 string to match.
152 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
153 break;
154 return 240; // "zext_trunc"
155 }
156 break;
157 case 11: // 8 strings to match.
158 switch (RuleIdentifier[0]) {
159 default: break;
160 case 'a': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
162 break;
163 return 101; // "add_sub_reg"
164 case 'm': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
166 break;
167 return 256; // "match_addos"
168 case 's': // 1 string to match.
169 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
170 break;
171 return 224; // "sub_add_reg"
172 case 't': // 4 strings to match.
173 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
174 break;
175 switch (RuleIdentifier[6]) {
176 default: break;
177 case 's': // 3 strings to match.
178 switch (RuleIdentifier[7]) {
179 default: break;
180 case 'h': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
182 break;
183 return 148; // "trunc_shift"
184 case 's': // 2 strings to match.
185 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
186 break;
187 switch (RuleIdentifier[10]) {
188 default: break;
189 case 's': // 1 string to match.
190 return 258; // "trunc_ssats"
191 case 'u': // 1 string to match.
192 return 259; // "trunc_ssatu"
193 }
194 break;
195 }
196 break;
197 case 'u': // 1 string to match.
198 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
199 break;
200 return 260; // "trunc_usatu"
201 }
202 break;
203 case 'u': // 1 string to match.
204 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
205 break;
206 return 249; // "unmerge_cst"
207 }
208 break;
209 case 12: // 12 strings to match.
210 switch (RuleIdentifier[0]) {
211 default: break;
212 case 'A': // 1 string to match.
213 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
214 break;
215 return 4; // "APlusBMinusB"
216 case 'B': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
218 break;
219 return 5; // "BMinusAPlusA"
220 case 'a': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
222 break;
223 return 170; // "adde_to_addo"
224 case 'c': // 1 string to match.
225 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
226 break;
227 return 263; // "ctlz_to_ctls"
228 case 'f': // 1 string to match.
229 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
230 break;
231 return 226; // "fsub_to_fneg"
232 case 'm': // 1 string to match.
233 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
234 break;
235 return 200; // "mulh_to_lshr"
236 case 'n': // 1 string to match.
237 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
238 break;
239 return 149; // "not_cmp_fold"
240 case 'r': // 1 string to match.
241 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
242 break;
243 return 144; // "redundant_or"
244 case 's': // 2 strings to match.
245 switch (RuleIdentifier[1]) {
246 default: break;
247 case 'd': // 1 string to match.
248 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
249 break;
250 return 220; // "sdiv_by_pow2"
251 case 'e': // 1 string to match.
252 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
253 break;
254 return 53; // "sext_of_sext"
255 }
256 break;
257 case 'u': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
259 break;
260 return 219; // "udiv_by_pow2"
261 case 'z': // 1 string to match.
262 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
263 break;
264 return 51; // "zext_of_zext"
265 }
266 break;
267 case 13: // 19 strings to match.
268 switch (RuleIdentifier[0]) {
269 default: break;
270 case 'A': // 2 strings to match.
271 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
272 break;
273 switch (RuleIdentifier[12]) {
274 default: break;
275 case 'A': // 1 string to match.
276 return 12; // "AMinusBMinusA"
277 case 'C': // 1 string to match.
278 return 9; // "AMinusBMinusC"
279 }
280 break;
281 case 'a': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
283 break;
284 return 42; // "add_of_vscale"
285 case 'f': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
287 break;
288 return 285; // "foldable_fneg"
289 case 'l': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
291 break;
292 return 74; // "load_and_mask"
293 case 'm': // 3 strings to match.
294 switch (RuleIdentifier[1]) {
295 default: break;
296 case 'a': // 1 string to match.
297 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
298 break;
299 return 135; // "match_selects"
300 case 'e': // 1 string to match.
301 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
302 break;
303 return 248; // "merge_unmerge"
304 case 'u': // 1 string to match.
305 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
306 break;
307 return 43; // "mul_of_vscale"
308 }
309 break;
310 case 'r': // 1 string to match.
311 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
312 break;
313 return 143; // "redundant_and"
314 case 's': // 6 strings to match.
315 switch (RuleIdentifier[1]) {
316 default: break;
317 case 'a': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
319 break;
320 return 92; // "same_val_zero"
321 case 'd': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
323 break;
324 return 222; // "sdiv_by_const"
325 case 'h': // 1 string to match.
326 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
327 break;
328 return 44; // "shl_of_vscale"
329 case 'r': // 1 string to match.
330 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
331 break;
332 return 218; // "srem_by_const"
333 case 'u': // 2 strings to match.
334 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
335 break;
336 switch (RuleIdentifier[4]) {
337 default: break;
338 case 'm': // 1 string to match.
339 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
340 break;
341 return 270; // "sub_minus_one"
342 case 'o': // 1 string to match.
343 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
344 break;
345 return 45; // "sub_of_vscale"
346 }
347 break;
348 }
349 break;
350 case 'u': // 4 strings to match.
351 switch (RuleIdentifier[1]) {
352 default: break;
353 case 'd': // 1 string to match.
354 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
355 break;
356 return 221; // "udiv_by_const"
357 case 'n': // 2 strings to match.
358 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
359 break;
360 switch (RuleIdentifier[8]) {
361 default: break;
362 case 'm': // 1 string to match.
363 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
364 break;
365 return 247; // "unmerge_merge"
366 case 'u': // 1 string to match.
367 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
368 break;
369 return 250; // "unmerge_undef"
370 }
371 break;
372 case 'r': // 1 string to match.
373 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
374 break;
375 return 217; // "urem_by_const"
376 }
377 break;
378 }
379 break;
380 case 14: // 19 strings to match.
381 switch (RuleIdentifier[0]) {
382 default: break;
383 case 'A': // 2 strings to match.
384 switch (RuleIdentifier[1]) {
385 default: break;
386 case 'M': // 1 string to match.
387 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
388 break;
389 return 18; // "AMinusC1PlusC2"
390 case 'P': // 1 string to match.
391 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
392 break;
393 return 14; // "APlusC1MinusC2"
394 }
395 break;
396 case 'C': // 1 string to match.
397 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
398 break;
399 return 15; // "C2MinusAPlusC1"
400 case 'N': // 1 string to match.
401 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
402 break;
403 return 13; // "NotAPlusNegOne"
404 case 'a': // 2 strings to match.
405 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
406 break;
407 switch (RuleIdentifier[10]) {
408 default: break;
409 case 's': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
411 break;
412 return 57; // "anyext_of_sext"
413 case 'z': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
415 break;
416 return 56; // "anyext_of_zext"
417 }
418 break;
419 case 'b': // 3 strings to match.
420 if (RuleIdentifier[1] != 'i')
421 break;
422 switch (RuleIdentifier[2]) {
423 default: break;
424 case 'n': // 2 strings to match.
425 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
426 break;
427 switch (RuleIdentifier[6]) {
428 default: break;
429 case 's': // 1 string to match.
430 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
431 break;
432 return 91; // "binop_same_val"
433 case 'w': // 1 string to match.
434 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
435 break;
436 return 269; // "binop_with_neg"
437 }
438 break;
439 case 't': // 1 string to match.
440 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
441 break;
442 return 186; // "bitreverse_shl"
443 }
444 break;
445 case 'c': // 1 string to match.
446 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
447 break;
448 return 283; // "cvt_f32_ubyteN"
449 case 'f': // 2 strings to match.
450 switch (RuleIdentifier[1]) {
451 default: break;
452 case 'a': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
454 break;
455 return 199; // "fabs_fneg_fold"
456 case 'n': // 1 string to match.
457 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
458 break;
459 return 98; // "fneg_fneg_fold"
460 }
461 break;
462 case 'm': // 1 string to match.
463 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
464 break;
465 return 23; // "mul_by_neg_one"
466 case 'r': // 1 string to match.
467 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
468 break;
469 return 115; // "reassoc_ptradd"
470 case 's': // 3 strings to match.
471 switch (RuleIdentifier[1]) {
472 default: break;
473 case 'e': // 2 strings to match.
474 switch (RuleIdentifier[2]) {
475 default: break;
476 case 'l': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
478 break;
479 return 59; // "select_of_zext"
480 case 'x': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
482 break;
483 return 54; // "sext_of_anyext"
484 }
485 break;
486 case 'h': // 1 string to match.
487 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
488 break;
489 return 114; // "shifts_too_big"
490 }
491 break;
492 case 'u': // 1 string to match.
493 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
494 break;
495 return 282; // "uchar_to_float"
496 case 'z': // 1 string to match.
497 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
498 break;
499 return 52; // "zext_of_anyext"
500 }
501 break;
502 case 15: // 14 strings to match.
503 switch (RuleIdentifier[0]) {
504 default: break;
505 case 'A': // 2 strings to match.
506 switch (RuleIdentifier[1]) {
507 default: break;
508 case 'M': // 1 string to match.
509 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
510 break;
511 return 16; // "AMinusC1MinusC2"
512 case 'P': // 1 string to match.
513 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
514 break;
515 return 3; // "APlusZeroMinusB"
516 }
517 break;
518 case 'C': // 1 string to match.
519 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
520 break;
521 return 17; // "C1Minus2MinusC2"
522 case 'G': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
524 break;
525 return 205; // "G_FMA_fneg_fneg"
526 case 'Z': // 1 string to match.
527 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
528 break;
529 return 2; // "ZeroMinusAPlusB"
530 case 'a': // 2 strings to match.
531 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
532 break;
533 switch (RuleIdentifier[8]) {
534 default: break;
535 case 's': // 1 string to match.
536 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
537 break;
538 return 277; // "avgceil_s_match"
539 case 'u': // 1 string to match.
540 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
541 break;
542 return 276; // "avgceil_u_match"
543 }
544 break;
545 case 'b': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
547 break;
548 return 187; // "bitreverse_lshr"
549 case 'e': // 1 string to match.
550 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
551 break;
552 return 73; // "extending_loads"
553 case 'i': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
555 break;
556 return 24; // "idempotent_prop"
557 case 'l': // 1 string to match.
558 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
559 break;
560 return 177; // "load_or_combine"
561 case 'n': // 1 string to match.
562 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
563 break;
564 return 67; // "narrow_binop_or"
565 case 'o': // 1 string to match.
566 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
567 break;
568 return 167; // "overlapping_and"
569 case 'z': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
571 break;
572 return 146; // "zext_trunc_fold"
573 }
574 break;
575 case 16: // 22 strings to match.
576 switch (RuleIdentifier[0]) {
577 default: break;
578 case 'A': // 1 string to match.
579 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
580 break;
581 return 11; // "AMinusZeroMinusB"
582 case 'G': // 3 strings to match.
583 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
584 break;
585 switch (RuleIdentifier[3]) {
586 default: break;
587 case 'D': // 1 string to match.
588 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
589 break;
590 return 203; // "G_FDIV_fneg_fneg"
591 case 'M': // 2 strings to match.
592 switch (RuleIdentifier[4]) {
593 default: break;
594 case 'A': // 1 string to match.
595 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
596 break;
597 return 204; // "G_FMAD_fneg_fneg"
598 case 'U': // 1 string to match.
599 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
600 break;
601 return 202; // "G_FMUL_fneg_fneg"
602 }
603 break;
604 }
605 break;
606 case 'a': // 3 strings to match.
607 switch (RuleIdentifier[1]) {
608 default: break;
609 case 'n': // 1 string to match.
610 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
611 break;
612 return 55; // "anyext_of_anyext"
613 case 'v': // 2 strings to match.
614 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
615 break;
616 switch (RuleIdentifier[9]) {
617 default: break;
618 case 's': // 1 string to match.
619 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
620 break;
621 return 275; // "avgfloor_s_match"
622 case 'u': // 1 string to match.
623 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
624 break;
625 return 274; // "avgfloor_u_match"
626 }
627 break;
628 }
629 break;
630 case 'c': // 1 string to match.
631 if (memcmp(RuleIdentifier.data()+1, "ommute_shift_or", 15) != 0)
632 break;
633 return 189; // "commute_shift_or"
634 case 'n': // 5 strings to match.
635 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
636 break;
637 switch (RuleIdentifier[13]) {
638 default: break;
639 case 'a': // 2 strings to match.
640 switch (RuleIdentifier[14]) {
641 default: break;
642 case 'd': // 1 string to match.
643 if (RuleIdentifier[15] != 'd')
644 break;
645 return 63; // "narrow_binop_add"
646 case 'n': // 1 string to match.
647 if (RuleIdentifier[15] != 'd')
648 break;
649 return 66; // "narrow_binop_and"
650 }
651 break;
652 case 'm': // 1 string to match.
653 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
654 break;
655 return 65; // "narrow_binop_mul"
656 case 's': // 1 string to match.
657 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
658 break;
659 return 64; // "narrow_binop_sub"
660 case 'x': // 1 string to match.
661 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
662 break;
663 return 68; // "narrow_binop_xor"
664 }
665 break;
666 case 'o': // 1 string to match.
667 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
668 break;
669 return 231; // "or_and_xor_to_or"
670 case 's': // 5 strings to match.
671 switch (RuleIdentifier[1]) {
672 default: break;
673 case 'e': // 3 strings to match.
674 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
675 break;
676 switch (RuleIdentifier[7]) {
677 default: break;
678 case 'o': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
680 break;
681 return 60; // "select_of_anyext"
682 case 't': // 1 string to match.
683 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
684 break;
685 return 225; // "select_to_minmax"
686 case 'u': // 1 string to match.
687 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
688 break;
689 return 130; // "select_undef_cmp"
690 }
691 break;
692 case 'u': // 2 strings to match.
693 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
694 break;
695 switch (RuleIdentifier[5]) {
696 default: break;
697 case 'f': // 1 string to match.
698 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
699 break;
700 return 271; // "sub_of_mul_const"
701 case 'n': // 1 string to match.
702 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
703 break;
704 return 268; // "sub_one_from_sub"
705 }
706 break;
707 }
708 break;
709 case 't': // 2 strings to match.
710 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
711 break;
712 switch (RuleIdentifier[12]) {
713 default: break;
714 case 's': // 1 string to match.
715 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
716 break;
717 return 49; // "truncate_of_sext"
718 case 'z': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
720 break;
721 return 48; // "truncate_of_zext"
722 }
723 break;
724 case 'u': // 1 string to match.
725 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
726 break;
727 return 76; // "undef_to_fp_zero"
728 }
729 break;
730 case 17: // 20 strings to match.
731 switch (RuleIdentifier[0]) {
732 default: break;
733 case 'A': // 2 strings to match.
734 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
735 break;
736 switch (RuleIdentifier[11]) {
737 default: break;
738 case 'A': // 1 string to match.
739 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
740 break;
741 return 8; // "APlusBMinusAplusC"
742 case 'C': // 1 string to match.
743 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
744 break;
745 return 10; // "APlusBMinusCPlusA"
746 }
747 break;
748 case 'a': // 3 strings to match.
749 switch (RuleIdentifier[1]) {
750 default: break;
751 case 'd': // 1 string to match.
752 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
753 break;
754 return 22; // "add_p2i_to_ptradd"
755 case 'n': // 2 strings to match.
756 switch (RuleIdentifier[2]) {
757 default: break;
758 case 'd': // 1 string to match.
759 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
760 break;
761 return 233; // "and_xor_or_to_and"
762 case 'y': // 1 string to match.
763 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
764 break;
765 return 97; // "anyext_trunc_fold"
766 }
767 break;
768 }
769 break;
770 case 'c': // 5 strings to match.
771 switch (RuleIdentifier[1]) {
772 default: break;
773 case 'a': // 2 strings to match.
774 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
775 break;
776 switch (RuleIdentifier[13]) {
777 default: break;
778 case 'f': // 1 string to match.
779 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
780 break;
781 return 119; // "canonicalize_fcmp"
782 case 'i': // 1 string to match.
783 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
784 break;
785 return 118; // "canonicalize_icmp"
786 }
787 break;
788 case 'o': // 3 strings to match.
789 switch (RuleIdentifier[2]) {
790 default: break;
791 case 'm': // 2 strings to match.
792 switch (RuleIdentifier[3]) {
793 default: break;
794 case 'b': // 1 string to match.
795 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
796 break;
797 return 278; // "combine_or_of_and"
798 case 'm': // 1 string to match.
799 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
800 break;
801 return 188; // "commute_shift_add"
802 }
803 break;
804 case 'n': // 1 string to match.
805 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
806 break;
807 return 196; // "constant_fold_fma"
808 }
809 break;
810 }
811 break;
812 case 'd': // 1 string to match.
813 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
814 break;
815 return 178; // "div_rem_to_divrem"
816 case 'e': // 1 string to match.
817 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
818 break;
819 return 86; // "erase_undef_store"
820 case 'f': // 1 string to match.
821 if (memcmp(RuleIdentifier.data()+1, "old_fabs_fptrunc", 16) != 0)
822 break;
823 return 286; // "fold_fabs_fptrunc"
824 case 'p': // 1 string to match.
825 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
826 break;
827 return 174; // "ptr_add_with_zero"
828 case 's': // 4 strings to match.
829 switch (RuleIdentifier[1]) {
830 default: break;
831 case 'e': // 2 strings to match.
832 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
833 break;
834 switch (RuleIdentifier[7]) {
835 default: break;
836 case 't': // 1 string to match.
837 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
838 break;
839 return 134; // "select_to_iminmax"
840 case 'z': // 1 string to match.
841 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
842 break;
843 return 136; // "select_zero_false"
844 }
845 break;
846 case 'h': // 1 string to match.
847 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
848 break;
849 return 175; // "shift_immed_chain"
850 case 'r': // 1 string to match.
851 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
852 break;
853 return 216; // "srem_pow2_to_mask"
854 }
855 break;
856 case 'u': // 2 strings to match.
857 switch (RuleIdentifier[1]) {
858 default: break;
859 case 'n': // 1 string to match.
860 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
861 break;
862 return 77; // "undef_to_int_zero"
863 case 'r': // 1 string to match.
864 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
865 break;
866 return 145; // "urem_pow2_to_mask"
867 }
868 break;
869 }
870 break;
871 case 18: // 13 strings to match.
872 switch (RuleIdentifier[0]) {
873 default: break;
874 case 'A': // 3 strings to match.
875 switch (RuleIdentifier[1]) {
876 default: break;
877 case 'M': // 2 strings to match.
878 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
879 break;
880 switch (RuleIdentifier[11]) {
881 default: break;
882 case 'B': // 1 string to match.
883 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
884 break;
885 return 7; // "AMinusBPlusBMinusC"
886 case 'C': // 1 string to match.
887 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
888 break;
889 return 6; // "AMinusBPlusCMinusA"
890 }
891 break;
892 case 'P': // 1 string to match.
893 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
894 break;
895 return 0; // "APlusBMinusCMinusB"
896 }
897 break;
898 case 'b': // 1 string to match.
899 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
900 break;
901 return 93; // "binop_left_to_zero"
902 case 'c': // 4 strings to match.
903 if (RuleIdentifier[1] != 'o')
904 break;
905 switch (RuleIdentifier[2]) {
906 default: break;
907 case 'm': // 2 strings to match.
908 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
909 break;
910 switch (RuleIdentifier[8]) {
911 default: break;
912 case 'm': // 1 string to match.
913 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
914 break;
915 return 171; // "combine_minmax_nan"
916 case 'o': // 1 string to match.
917 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
918 break;
919 return 299; // "combine_or_s64_s32"
920 }
921 break;
922 case 'n': // 2 strings to match.
923 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
924 break;
925 switch (RuleIdentifier[15]) {
926 default: break;
927 case 'a': // 1 string to match.
928 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
929 break;
930 return 152; // "constant_fold_fabs"
931 case 'n': // 1 string to match.
932 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
933 break;
934 return 151; // "constant_fold_fneg"
935 }
936 break;
937 }
938 break;
939 case 'e': // 1 string to match.
940 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
941 break;
942 return 172; // "expand_const_fpowi"
943 case 'f': // 1 string to match.
944 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
945 break;
946 return 107; // "fptrunc_fpext_fold"
947 case 's': // 2 strings to match.
948 if (RuleIdentifier[1] != 'e')
949 break;
950 switch (RuleIdentifier[2]) {
951 default: break;
952 case 'l': // 1 string to match.
953 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
954 break;
955 return 61; // "select_of_truncate"
956 case 'x': // 1 string to match.
957 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
958 break;
959 return 127; // "sext_inreg_of_load"
960 }
961 break;
962 case 't': // 1 string to match.
963 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
964 break;
965 return 50; // "truncate_of_anyext"
966 }
967 break;
968 case 19: // 20 strings to match.
969 switch (RuleIdentifier[0]) {
970 default: break;
971 case 'A': // 1 string to match.
972 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
973 break;
974 return 1; // "AMinusBMinusCMinusC"
975 case 'b': // 1 string to match.
976 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
977 break;
978 return 94; // "binop_right_to_zero"
979 case 'c': // 7 strings to match.
980 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
981 break;
982 switch (RuleIdentifier[5]) {
983 default: break;
984 case '_': // 1 string to match.
985 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
986 break;
987 return 166; // "const_ptradd_to_i2p"
988 case 'a': // 6 strings to match.
989 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
990 break;
991 switch (RuleIdentifier[14]) {
992 default: break;
993 case 'b': // 1 string to match.
994 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
995 break;
996 return 194; // "constant_fold_binop"
997 case 'f': // 5 strings to match.
998 switch (RuleIdentifier[15]) {
999 default: break;
1000 case 'c': // 1 string to match.
1001 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
1002 break;
1003 return 157; // "constant_fold_fceil"
1004 case 'l': // 1 string to match.
1005 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
1006 break;
1007 return 154; // "constant_fold_flog2"
1008 case 'p': // 1 string to match.
1009 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
1010 break;
1011 return 156; // "constant_fold_fpext"
1012 case 'r': // 1 string to match.
1013 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
1014 break;
1015 return 162; // "constant_fold_frint"
1016 case 's': // 1 string to match.
1017 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
1018 break;
1019 return 153; // "constant_fold_fsqrt"
1020 }
1021 break;
1022 }
1023 break;
1024 }
1025 break;
1026 case 'e': // 1 string to match.
1027 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
1028 break;
1029 return 111; // "extend_through_phis"
1030 case 'f': // 1 string to match.
1031 if (memcmp(RuleIdentifier.data()+1, "sqrt_of_rcp_to_rsq", 18) != 0)
1032 break;
1033 return 289; // "fsqrt_of_rcp_to_rsq"
1034 case 'i': // 1 string to match.
1035 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1036 break;
1037 return 69; // "integer_of_truncate"
1038 case 'm': // 1 string to match.
1039 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
1040 break;
1041 return 254; // "merge_of_x_and_zero"
1042 case 'p': // 1 string to match.
1043 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1044 break;
1045 return 117; // "ptr_add_immed_chain"
1046 case 'r': // 3 strings to match.
1047 switch (RuleIdentifier[1]) {
1048 default: break;
1049 case 'c': // 1 string to match.
1050 if (memcmp(RuleIdentifier.data()+2, "p_of_fsqrt_to_rsq", 17) != 0)
1051 break;
1052 return 287; // "rcp_of_fsqrt_to_rsq"
1053 case 'e': // 1 string to match.
1054 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1055 break;
1056 return 116; // "reassoc_comm_binops"
1057 case 'i': // 1 string to match.
1058 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1059 break;
1060 return 90; // "right_identity_zero"
1061 }
1062 break;
1063 case 's': // 2 strings to match.
1064 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1065 break;
1066 switch (RuleIdentifier[9]) {
1067 default: break;
1068 case 'a': // 1 string to match.
1069 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1070 break;
1071 return 112; // "simplify_add_to_sub"
1072 case 'n': // 1 string to match.
1073 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1074 break;
1075 return 237; // "simplify_neg_minmax"
1076 }
1077 break;
1078 case 'u': // 1 string to match.
1079 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1080 break;
1081 return 81; // "unary_undef_to_zero"
1082 }
1083 break;
1084 case 20: // 10 strings to match.
1085 switch (RuleIdentifier[0]) {
1086 default: break;
1087 case 'a': // 1 string to match.
1088 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1089 break;
1090 return 206; // "and_or_disjoint_mask"
1091 case 'b': // 1 string to match.
1092 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1093 break;
1094 return 105; // "bitcast_bitcast_fold"
1095 case 'c': // 1 string to match.
1096 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1097 break;
1098 return 158; // "constant_fold_ffloor"
1099 case 'm': // 1 string to match.
1100 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1101 break;
1102 return 253; // "merge_of_x_and_undef"
1103 case 'o': // 1 string to match.
1104 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1105 break;
1106 return 232; // "or_and_xor_to_xor_or"
1107 case 'r': // 3 strings to match.
1108 if (RuleIdentifier[1] != 'e')
1109 break;
1110 switch (RuleIdentifier[2]) {
1111 default: break;
1112 case 'd': // 2 strings to match.
1113 if (RuleIdentifier[3] != 'u')
1114 break;
1115 switch (RuleIdentifier[4]) {
1116 default: break;
1117 case 'c': // 1 string to match.
1118 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1119 break;
1120 return 128; // "reduce_shl_of_extend"
1121 case 'n': // 1 string to match.
1122 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1123 break;
1124 return 138; // "redundant_sext_inreg"
1125 }
1126 break;
1127 case 'm': // 1 string to match.
1128 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
1129 break;
1130 return 284; // "remove_fcanonicalize"
1131 }
1132 break;
1133 case 'u': // 2 strings to match.
1134 if (RuleIdentifier[1] != 'n')
1135 break;
1136 switch (RuleIdentifier[2]) {
1137 default: break;
1138 case 'a': // 1 string to match.
1139 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1140 break;
1141 return 82; // "unary_undef_to_undef"
1142 case 'm': // 1 string to match.
1143 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1144 break;
1145 return 252; // "unmerge_zext_to_zext"
1146 }
1147 break;
1148 }
1149 break;
1150 case 21: // 14 strings to match.
1151 switch (RuleIdentifier[0]) {
1152 default: break;
1153 case 'a': // 1 string to match.
1154 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1155 break;
1156 return 234; // "and_xor_or_to_xor_and"
1157 case 'c': // 4 strings to match.
1158 if (RuleIdentifier[1] != 'o')
1159 break;
1160 switch (RuleIdentifier[2]) {
1161 default: break;
1162 case 'm': // 2 strings to match.
1163 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1164 break;
1165 switch (RuleIdentifier[8]) {
1166 default: break;
1167 case 'b': // 1 string to match.
1168 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1169 break;
1170 return 255; // "combine_build_unmerge"
1171 case 'c': // 1 string to match.
1172 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1173 break;
1174 return 238; // "combine_concat_vector"
1175 }
1176 break;
1177 case 'n': // 2 strings to match.
1178 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1179 break;
1180 switch (RuleIdentifier[14]) {
1181 default: break;
1182 case 'c': // 1 string to match.
1183 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1184 break;
1185 return 197; // "constant_fold_cast_op"
1186 case 'f': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1188 break;
1189 return 155; // "constant_fold_fptrunc"
1190 }
1191 break;
1192 }
1193 break;
1194 case 'e': // 1 string to match.
1195 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1196 break;
1197 return 280; // "expand_promoted_fmed3"
1198 case 'f': // 1 string to match.
1199 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1200 break;
1201 return 223; // "fdiv_repeated_divison"
1202 case 'i': // 1 string to match.
1203 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1204 break;
1205 return 29; // "insert_vector_elt_oob"
1206 case 'l': // 1 string to match.
1207 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1208 break;
1209 return 262; // "lshr_of_trunc_of_lshr"
1210 case 'r': // 1 string to match.
1211 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1212 break;
1213 return 100; // "right_identity_one_fp"
1214 case 's': // 2 strings to match.
1215 switch (RuleIdentifier[1]) {
1216 default: break;
1217 case 'e': // 1 string to match.
1218 if (memcmp(RuleIdentifier.data()+2, "lect_same_val_equiv", 19) != 0)
1219 break;
1220 return 89; // "select_same_val_equiv"
1221 case 'i': // 1 string to match.
1222 if (memcmp(RuleIdentifier.data()+2, "gn_extension_in_reg", 19) != 0)
1223 break;
1224 return 292; // "sign_extension_in_reg"
1225 }
1226 break;
1227 case 'u': // 2 strings to match.
1228 if (RuleIdentifier[1] != 'n')
1229 break;
1230 switch (RuleIdentifier[2]) {
1231 default: break;
1232 case 'd': // 1 string to match.
1233 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1234 break;
1235 return 78; // "undef_to_negative_one"
1236 case 'm': // 1 string to match.
1237 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1238 break;
1239 return 251; // "unmerge_dead_to_trunc"
1240 }
1241 break;
1242 }
1243 break;
1244 case 22: // 12 strings to match.
1245 switch (RuleIdentifier[0]) {
1246 default: break;
1247 case 'c': // 2 strings to match.
1248 if (RuleIdentifier[1] != 'o')
1249 break;
1250 switch (RuleIdentifier[2]) {
1251 default: break;
1252 case 'm': // 1 string to match.
1253 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1254 break;
1255 return 242; // "combine_shuffle_concat"
1256 case 'n': // 1 string to match.
1257 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1258 break;
1259 return 195; // "constant_fold_fp_binop"
1260 }
1261 break;
1262 case 'f': // 4 strings to match.
1263 switch (RuleIdentifier[1]) {
1264 default: break;
1265 case 'o': // 1 string to match.
1266 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1267 break;
1268 return 215; // "fold_binop_into_select"
1269 case 'u': // 3 strings to match.
1270 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1271 break;
1272 switch (RuleIdentifier[13]) {
1273 default: break;
1274 case 'l': // 1 string to match.
1275 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1276 break;
1277 return 182; // "funnel_shift_left_zero"
1278 case 'o': // 1 string to match.
1279 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1280 break;
1281 return 183; // "funnel_shift_overshift"
1282 case 't': // 1 string to match.
1283 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1284 break;
1285 return 180; // "funnel_shift_to_rotate"
1286 }
1287 break;
1288 }
1289 break;
1290 case 'i': // 1 string to match.
1291 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1292 break;
1293 return 121; // "icmp_to_lhs_known_bits"
1294 case 'm': // 1 string to match.
1295 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1296 break;
1297 return 257; // "match_subo_no_overflow"
1298 case 'p': // 1 string to match.
1299 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1300 break;
1301 return 83; // "propagate_undef_any_op"
1302 case 'r': // 1 string to match.
1303 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1304 break;
1305 return 99; // "right_identity_one_int"
1306 case 's': // 1 string to match.
1307 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1308 break;
1309 return 125; // "shl_ashr_to_sext_inreg"
1310 case 't': // 1 string to match.
1311 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1312 break;
1313 return 103; // "trunc_buildvector_fold"
1314 }
1315 break;
1316 case 23: // 8 strings to match.
1317 switch (RuleIdentifier[0]) {
1318 default: break;
1319 case 'b': // 1 string to match.
1320 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1321 break;
1322 return 62; // "buildvector_of_truncate"
1323 case 'f': // 2 strings to match.
1324 switch (RuleIdentifier[1]) {
1325 default: break;
1326 case 'd': // 1 string to match.
1327 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1328 break;
1329 return 291; // "fdiv_by_sqrt_to_rsq_f16"
1330 case 'u': // 1 string to match.
1331 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1332 break;
1333 return 181; // "funnel_shift_right_zero"
1334 }
1335 break;
1336 case 'i': // 2 strings to match.
1337 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1338 break;
1339 switch (RuleIdentifier[21]) {
1340 default: break;
1341 case 's': // 1 string to match.
1342 if (RuleIdentifier[22] != 'i')
1343 break;
1344 return 164; // "itof_const_zero_fold_si"
1345 case 'u': // 1 string to match.
1346 if (RuleIdentifier[22] != 'i')
1347 break;
1348 return 165; // "itof_const_zero_fold_ui"
1349 }
1350 break;
1351 case 'p': // 1 string to match.
1352 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1353 break;
1354 return 84; // "propagate_undef_all_ops"
1355 case 's': // 1 string to match.
1356 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1357 break;
1358 return 88; // "select_same_val_trivial"
1359 case 't': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1361 break;
1362 return 261; // "truncusatu_to_fptouisat"
1363 }
1364 break;
1365 case 24: // 13 strings to match.
1366 switch (RuleIdentifier[0]) {
1367 default: break;
1368 case 'b': // 1 string to match.
1369 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1370 break;
1371 return 79; // "binop_left_undef_to_zero"
1372 case 'c': // 4 strings to match.
1373 switch (RuleIdentifier[1]) {
1374 default: break;
1375 case 'o': // 1 string to match.
1376 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1377 break;
1378 return 163; // "constant_fold_fnearbyint"
1379 case 't': // 3 strings to match.
1380 switch (RuleIdentifier[2]) {
1381 default: break;
1382 case 'l': // 2 strings to match.
1383 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1384 break;
1385 switch (RuleIdentifier[5]) {
1386 default: break;
1387 case 't': // 1 string to match.
1388 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1389 break;
1390 return 265; // "ctlz_to_ctlz_zero_poison"
1391 case 'z': // 1 string to match.
1392 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1393 break;
1394 return 264; // "ctlz_zero_poison_to_ctls"
1395 }
1396 break;
1397 case 't': // 1 string to match.
1398 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1399 break;
1400 return 266; // "cttz_to_cttz_zero_poison"
1401 }
1402 break;
1403 }
1404 break;
1405 case 'm': // 1 string to match.
1406 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1407 break;
1408 return 28; // "match_extract_of_element"
1409 case 'n': // 1 string to match.
1410 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1411 break;
1412 return 129; // "narrow_binop_feeding_and"
1413 case 's': // 3 strings to match.
1414 if (RuleIdentifier[1] != 'e')
1415 break;
1416 switch (RuleIdentifier[2]) {
1417 default: break;
1418 case 'l': // 1 string to match.
1419 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1420 break;
1421 return 132; // "select_constant_cmp_true"
1422 case 'x': // 2 strings to match.
1423 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1424 break;
1425 switch (RuleIdentifier[11]) {
1426 default: break;
1427 case 'o': // 1 string to match.
1428 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1429 break;
1430 return 58; // "sext_inreg_of_sext_inreg"
1431 case 't': // 1 string to match.
1432 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1433 break;
1434 return 147; // "sext_inreg_to_zext_inreg"
1435 }
1436 break;
1437 }
1438 break;
1439 case 't': // 2 strings to match.
1440 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_", 20) != 0)
1441 break;
1442 switch (RuleIdentifier[21]) {
1443 default: break;
1444 case 'f': // 1 string to match.
1445 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1446 break;
1447 return 295; // "trunc_lshr16_unmerge_f16"
1448 case 'i': // 1 string to match.
1449 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1450 break;
1451 return 294; // "trunc_lshr16_unmerge_i16"
1452 }
1453 break;
1454 case 'x': // 1 string to match.
1455 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1456 break;
1457 return 173; // "xor_of_and_with_same_reg"
1458 }
1459 break;
1460 case 25: // 13 strings to match.
1461 switch (RuleIdentifier[0]) {
1462 default: break;
1463 case 'a': // 1 string to match.
1464 if (memcmp(RuleIdentifier.data()+1, "mdgcn_sqrt_of_rcp_to_rsq", 24) != 0)
1465 break;
1466 return 290; // "amdgcn_sqrt_of_rcp_to_rsq"
1467 case 'b': // 3 strings to match.
1468 switch (RuleIdentifier[1]) {
1469 default: break;
1470 case 'i': // 2 strings to match.
1471 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1472 break;
1473 switch (RuleIdentifier[22]) {
1474 default: break;
1475 case 'a': // 1 string to match.
1476 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1477 break;
1478 return 191; // "bitfield_extract_from_and"
1479 case 's': // 1 string to match.
1480 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1481 break;
1482 return 192; // "bitfield_extract_from_shr"
1483 }
1484 break;
1485 case 'u': // 1 string to match.
1486 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1487 break;
1488 return 102; // "buildvector_identity_fold"
1489 }
1490 break;
1491 case 'c': // 1 string to match.
1492 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1493 break;
1494 return 243; // "combine_shuffle_undef_rhs"
1495 case 'e': // 1 string to match.
1496 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1497 break;
1498 return 71; // "extract_vec_elt_build_vec"
1499 case 'n': // 1 string to match.
1500 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1501 break;
1502 return 126; // "neg_and_one_to_sext_inreg"
1503 case 'r': // 4 strings to match.
1504 switch (RuleIdentifier[1]) {
1505 default: break;
1506 case 'c': // 1 string to match.
1507 if (memcmp(RuleIdentifier.data()+2, "p_of_amdgcn_sqrt_to_rsq", 23) != 0)
1508 break;
1509 return 288; // "rcp_of_amdgcn_sqrt_to_rsq"
1510 case 'e': // 2 strings to match.
1511 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1512 break;
1513 switch (RuleIdentifier[10]) {
1514 default: break;
1515 case 'a': // 1 string to match.
1516 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1517 break;
1518 return 140; // "redundant_aext_sext_inreg"
1519 case 'z': // 1 string to match.
1520 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1521 break;
1522 return 139; // "redundant_zext_sext_inreg"
1523 }
1524 break;
1525 case 'i': // 1 string to match.
1526 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1527 break;
1528 return 110; // "right_identity_neg_one_fp"
1529 }
1530 break;
1531 case 's': // 1 string to match.
1532 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1533 break;
1534 return 131; // "select_constant_cmp_false"
1535 case 't': // 1 string to match.
1536 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_bf16", 24) != 0)
1537 break;
1538 return 296; // "trunc_lshr16_unmerge_bf16"
1539 }
1540 break;
1541 case 26: // 6 strings to match.
1542 switch (RuleIdentifier[0]) {
1543 default: break;
1544 case 'b': // 2 strings to match.
1545 if (RuleIdentifier[1] != 'i')
1546 break;
1547 switch (RuleIdentifier[2]) {
1548 default: break;
1549 case 'n': // 1 string to match.
1550 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1551 break;
1552 return 80; // "binop_right_undef_to_undef"
1553 case 't': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1555 break;
1556 return 106; // "bitcast_bitcast_to_bitcast"
1557 }
1558 break;
1559 case 'c': // 2 strings to match.
1560 if (RuleIdentifier[1] != 'o')
1561 break;
1562 switch (RuleIdentifier[2]) {
1563 default: break;
1564 case 'm': // 1 string to match.
1565 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1566 break;
1567 return 228; // "commute_fp_constant_to_rhs"
1568 case 'n': // 1 string to match.
1569 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1570 break;
1571 return 198; // "constant_fold_unary_int_op"
1572 }
1573 break;
1574 case 'f': // 1 string to match.
1575 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1576 break;
1577 return 179; // "funnel_shift_from_or_shift"
1578 case 'r': // 1 string to match.
1579 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1580 break;
1581 return 108; // "right_identity_neg_zero_fp"
1582 }
1583 break;
1584 case 27: // 7 strings to match.
1585 switch (RuleIdentifier[0]) {
1586 default: break;
1587 case 'c': // 2 strings to match.
1588 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1589 break;
1590 switch (RuleIdentifier[3]) {
1591 default: break;
1592 case 'b': // 1 string to match.
1593 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1594 break;
1595 return 245; // "combine_use_vector_truncate"
1596 case 'm': // 1 string to match.
1597 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1598 break;
1599 return 227; // "commute_int_constant_to_rhs"
1600 }
1601 break;
1602 case 'd': // 1 string to match.
1603 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1604 break;
1605 return 123; // "double_icmp_zero_or_combine"
1606 case 'r': // 1 string to match.
1607 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1608 break;
1609 return 124; // "redundant_binop_in_equality"
1610 case 's': // 1 string to match.
1611 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general", 26) != 0)
1612 break;
1613 return 133; // "select_constant_cmp_general"
1614 case 't': // 1 string to match.
1615 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1616 break;
1617 return 104; // "trunc_lshr_buildvector_fold"
1618 case 'u': // 1 string to match.
1619 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1620 break;
1621 return 246; // "unmerge_anyext_build_vector"
1622 }
1623 break;
1624 case 28: // 6 strings to match.
1625 switch (RuleIdentifier[0]) {
1626 default: break;
1627 case 'c': // 1 string to match.
1628 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1629 break;
1630 return 297; // "combine_or_s64_with_s32_mask"
1631 case 'd': // 1 string to match.
1632 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1633 break;
1634 return 122; // "double_icmp_zero_and_combine"
1635 case 'e': // 1 string to match.
1636 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1637 break;
1638 return 25; // "extract_vector_element_undef"
1639 case 'o': // 1 string to match.
1640 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1641 break;
1642 return 150; // "opt_brcond_by_inverting_cond"
1643 case 'p': // 1 string to match.
1644 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1645 break;
1646 return 85; // "propagate_undef_shuffle_mask"
1647 case 's': // 1 string to match.
1648 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1649 break;
1650 return 176; // "shift_of_shifted_logic_chain"
1651 }
1652 break;
1653 case 29: // 7 strings to match.
1654 switch (RuleIdentifier[0]) {
1655 default: break;
1656 case 'b': // 1 string to match.
1657 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1658 break;
1659 return 193; // "bitfield_extract_from_shr_and"
1660 case 'c': // 5 strings to match.
1661 if (RuleIdentifier[1] != 'o')
1662 break;
1663 switch (RuleIdentifier[2]) {
1664 default: break;
1665 case 'm': // 3 strings to match.
1666 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1667 break;
1668 switch (RuleIdentifier[8]) {
1669 default: break;
1670 case 'a': // 1 string to match.
1671 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1672 break;
1673 return 298; // "combine_and_s64_with_s32_mask"
1674 case 'e': // 1 string to match.
1675 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1676 break;
1677 return 75; // "combine_extracted_vector_load"
1678 case 's': // 1 string to match.
1679 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1680 break;
1681 return 244; // "combine_shuffle_disjoint_mask"
1682 }
1683 break;
1684 case 'n': // 2 strings to match.
1685 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1686 break;
1687 switch (RuleIdentifier[24]) {
1688 default: break;
1689 case 'r': // 1 string to match.
1690 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1691 break;
1692 return 160; // "constant_fold_intrinsic_round"
1693 case 't': // 1 string to match.
1694 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1695 break;
1696 return 159; // "constant_fold_intrinsic_trunc"
1697 }
1698 break;
1699 }
1700 break;
1701 case 'i': // 1 string to match.
1702 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1703 break;
1704 return 120; // "icmp_to_true_false_known_bits"
1705 }
1706 break;
1707 case 30: // 2 strings to match.
1708 switch (RuleIdentifier[0]) {
1709 default: break;
1710 case 'f': // 1 string to match.
1711 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1712 break;
1713 return 46; // "freeze_of_non_undef_non_poison"
1714 case 'r': // 1 string to match.
1715 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1716 break;
1717 return 109; // "right_identity_neg_zero_fp_nsz"
1718 }
1719 break;
1720 case 31: // 3 strings to match.
1721 switch (RuleIdentifier[0]) {
1722 default: break;
1723 case 'f': // 1 string to match.
1724 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1725 break;
1726 return 279; // "fcmp_select_to_fmin_fmax_legacy"
1727 case 'i': // 2 strings to match.
1728 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1729 break;
1730 switch (RuleIdentifier[22]) {
1731 default: break;
1732 case 'e': // 1 string to match.
1733 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1734 break;
1735 return 27; // "insert_vector_element_elt_undef"
1736 case 'i': // 1 string to match.
1737 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1738 break;
1739 return 26; // "insert_vector_element_idx_undef"
1740 }
1741 break;
1742 }
1743 break;
1744 case 32: // 5 strings to match.
1745 switch (RuleIdentifier[0]) {
1746 default: break;
1747 case 'b': // 1 string to match.
1748 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1749 break;
1750 return 190; // "bitfield_extract_from_sext_inreg"
1751 case 'c': // 2 strings to match.
1752 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1753 break;
1754 switch (RuleIdentifier[9]) {
1755 default: break;
1756 case 'a': // 1 string to match.
1757 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1758 break;
1759 return 207; // "combine_fadd_fmul_to_fmad_or_fma"
1760 case 's': // 1 string to match.
1761 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1762 break;
1763 return 211; // "combine_fsub_fmul_to_fmad_or_fma"
1764 }
1765 break;
1766 case 'e': // 1 string to match.
1767 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1768 break;
1769 return 30; // "extract_vector_element_not_const"
1770 case 'r': // 1 string to match.
1771 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_fsub", 31) != 0)
1772 break;
1773 return 201; // "redundant_neg_operands_fadd_fsub"
1774 }
1775 break;
1776 case 33: // 3 strings to match.
1777 switch (RuleIdentifier[0]) {
1778 default: break;
1779 case 'c': // 1 string to match.
1780 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
1781 break;
1782 return 161; // "constant_fold_intrinsic_roundeven"
1783 case 'r': // 2 strings to match.
1784 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1785 break;
1786 switch (RuleIdentifier[10]) {
1787 default: break;
1788 case 'a': // 1 string to match.
1789 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1790 break;
1791 return 142; // "redundant_aext_unmerge_sext_inreg"
1792 case 'z': // 1 string to match.
1793 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1794 break;
1795 return 141; // "redundant_zext_unmerge_sext_inreg"
1796 }
1797 break;
1798 }
1799 break;
1800 case 34: // 2 strings to match.
1801 switch (RuleIdentifier[0]) {
1802 default: break;
1803 case 'c': // 1 string to match.
1804 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1805 break;
1806 return 281; // "combine_fmul_with_select_to_fldexp"
1807 case 'e': // 1 string to match.
1808 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1809 break;
1810 return 72; // "extract_all_elts_from_build_vector"
1811 }
1812 break;
1813 case 35: // 1 string to match.
1814 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1815 break;
1816 return 32; // "extract_vector_element_build_vector"
1817 case 36: // 3 strings to match.
1818 switch (RuleIdentifier[0]) {
1819 default: break;
1820 case 'c': // 2 strings to match.
1821 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1822 break;
1823 switch (RuleIdentifier[8]) {
1824 default: break;
1825 case 'f': // 1 string to match.
1826 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1827 break;
1828 return 209; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1829 case 'i': // 1 string to match.
1830 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1831 break;
1832 return 70; // "combine_insert_vec_elts_build_vector"
1833 }
1834 break;
1835 case 'i': // 1 string to match.
1836 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1837 break;
1838 return 87; // "insert_extract_vec_elt_out_of_bounds"
1839 }
1840 break;
1841 case 37: // 3 strings to match.
1842 switch (RuleIdentifier[0]) {
1843 default: break;
1844 case 'c': // 1 string to match.
1845 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1846 break;
1847 return 212; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1848 case 'e': // 1 string to match.
1849 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1850 break;
1851 return 40; // "extract_vector_element_shuffle_vector"
1852 case 'h': // 1 string to match.
1853 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1854 break;
1855 return 113; // "hoist_logic_op_with_same_opcode_hands"
1856 }
1857 break;
1858 case 38: // 2 strings to match.
1859 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1860 break;
1861 switch (RuleIdentifier[9]) {
1862 default: break;
1863 case 'a': // 1 string to match.
1864 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1865 break;
1866 return 208; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1867 case 's': // 1 string to match.
1868 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1869 break;
1870 return 213; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1871 }
1872 break;
1873 case 40: // 1 string to match.
1874 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1875 break;
1876 return 31; // "extract_vector_element_different_indices"
1877 case 42: // 9 strings to match.
1878 switch (RuleIdentifier[0]) {
1879 default: break;
1880 case 'c': // 1 string to match.
1881 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1882 break;
1883 return 210; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1884 case 'e': // 7 strings to match.
1885 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1886 break;
1887 switch (RuleIdentifier[41]) {
1888 default: break;
1889 case '2': // 1 string to match.
1890 return 33; // "extract_vector_element_build_vector_trunc2"
1891 case '3': // 1 string to match.
1892 return 34; // "extract_vector_element_build_vector_trunc3"
1893 case '4': // 1 string to match.
1894 return 35; // "extract_vector_element_build_vector_trunc4"
1895 case '5': // 1 string to match.
1896 return 36; // "extract_vector_element_build_vector_trunc5"
1897 case '6': // 1 string to match.
1898 return 37; // "extract_vector_element_build_vector_trunc6"
1899 case '7': // 1 string to match.
1900 return 38; // "extract_vector_element_build_vector_trunc7"
1901 case '8': // 1 string to match.
1902 return 39; // "extract_vector_element_build_vector_trunc8"
1903 }
1904 break;
1905 case 'f': // 1 string to match.
1906 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1907 break;
1908 return 184; // "funnel_shift_or_shift_to_funnel_shift_left"
1909 }
1910 break;
1911 case 43: // 2 strings to match.
1912 switch (RuleIdentifier[0]) {
1913 default: break;
1914 case 'c': // 1 string to match.
1915 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1916 break;
1917 return 214; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1918 case 'f': // 1 string to match.
1919 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1920 break;
1921 return 185; // "funnel_shift_or_shift_to_funnel_shift_right"
1922 }
1923 break;
1924 case 44: // 1 string to match.
1925 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1926 break;
1927 return 41; // "insert_vector_element_extract_vector_element"
1928 case 46: // 1 string to match.
1929 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1930 break;
1931 return 47; // "push_freeze_to_prevent_poison_from_propagating"
1932 }
1933#endif // ifndef NDEBUG
1934
1935 return std::nullopt;
1936}
1937static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1938 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1939 if (!RangePair.second.empty()) {
1940 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1941 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1942 if (!First || !Last)
1943 return std::nullopt;
1944 if (First >= Last)
1945 report_fatal_error(reason: "Beginning of range should be before end of range");
1946 return {{*First, *Last + 1}};
1947 }
1948 if (RangePair.first == "*") {
1949 return {{0, 300}};
1950 }
1951 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1952 if (!I)
1953 return std::nullopt;
1954 return {{*I, *I + 1}};
1955}
1956
1957bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1958 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1959 if (!MaybeRange)
1960 return false;
1961 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1962 DisabledRules.reset(Idx: I);
1963 return true;
1964}
1965
1966bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1967 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1968 if (!MaybeRange)
1969 return false;
1970 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1971 DisabledRules.set(I);
1972 return true;
1973}
1974
1975static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1976static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1977 "amdgpupostlegalizercombiner-disable-rule",
1978 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1979 cl::CommaSeparated,
1980 cl::Hidden,
1981 cl::cat(GICombinerOptionCategory),
1982 cl::callback(CB: [](const std::string &Str) {
1983 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1984 }));
1985static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1986 "amdgpupostlegalizercombiner-only-enable-rule",
1987 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1988 cl::Hidden,
1989 cl::cat(GICombinerOptionCategory),
1990 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1991 StringRef Str = CommaSeparatedArg;
1992 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1993 do {
1994 auto X = Str.split(Separator: ",");
1995 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1996 Str = X.second;
1997 } while (!Str.empty());
1998 }));
1999
2000
2001bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
2002 return !DisabledRules.test(Idx: RuleID);
2003}
2004bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
2005 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
2006 bool Enabled = Identifier.consume_front(Prefix: "!");
2007 if (Enabled && !setRuleEnabled(Identifier))
2008 return false;
2009 if (!Enabled && !setRuleDisabled(Identifier))
2010 return false;
2011 }
2012 return true;
2013}
2014
2015
2016#endif // GET_GICOMBINER_TYPES
2017
2018#ifdef GET_GICOMBINER_TYPES
2019
2020const unsigned MAX_SUBTARGET_PREDICATES = 3;
2021using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
2022
2023#endif // GET_GICOMBINER_TYPES
2024
2025#ifdef GET_GICOMBINER_CLASS_MEMBERS
2026
2027 bool canMatchOpcode(unsigned Opc) const override;
2028 uint32_t getRootFlagsToDrop() const override;
2029
2030#endif // GET_GICOMBINER_CLASS_MEMBERS
2031
2032#ifdef GET_GICOMBINER_CLASS_MEMBERS
2033
2034PredicateBitset AvailableModuleFeatures;
2035mutable PredicateBitset AvailableFunctionFeatures;
2036PredicateBitset getAvailableFeatures() const {
2037 return AvailableModuleFeatures | AvailableFunctionFeatures;
2038}
2039PredicateBitset
2040computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
2041PredicateBitset
2042computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
2043 const MachineFunction *MF) const;
2044void setupGeneratedPerFunctionState(MachineFunction &MF) override;
2045
2046#endif // GET_GICOMBINER_CLASS_MEMBERS
2047
2048#ifdef GET_GICOMBINER_CLASS_MEMBERS
2049
2050 mutable MatcherState State;
2051 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
2052 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
2053 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
2054 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
2055 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
2056 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
2057 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
2058 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
2059 const uint8_t *getMatchTable() const override;
2060 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
2061 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
2062 bool testSimplePredicate(unsigned PredicateID) const override;
2063 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
2064
2065#endif // GET_GICOMBINER_CLASS_MEMBERS
2066
2067#ifdef GET_GICOMBINER_IMPL
2068
2069// LLT Objects.
2070enum {
2071 GILLT_i16,
2072 GILLT_i32,
2073 GILLT_i64,
2074 GILLT_f16,
2075 GILLT_bf16,
2076 GILLT_f32,
2077};
2078const static size_t NumTypeObjects = 6;
2079const static LLT TypeObjects[] = {
2080 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 16),
2081 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 32),
2082 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 64),
2083 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_IEEEhalf),
2084 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_BFloat),
2085 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 32, LLT::FpSemantics::S_IEEEsingle),
2086};
2087
2088// Bits for subtarget features that participate in instruction matching.
2089enum SubtargetFeatureBits : uint8_t {
2090 Feature_Has16BitInstsBit = 1,
2091 Feature_NotHasMed3_16Bit = 2,
2092 Feature_HasFminFmaxLegacyBit = 0,
2093};
2094
2095PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2096computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
2097 PredicateBitset Features{};
2098 if (Subtarget->has16BitInsts())
2099 Features.set(Feature_Has16BitInstsBit);
2100 if (!Subtarget->hasMed3_16())
2101 Features.set(Feature_NotHasMed3_16Bit);
2102 if (Subtarget->hasFminFmaxLegacy())
2103 Features.set(Feature_HasFminFmaxLegacyBit);
2104 return Features;
2105}
2106
2107void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2108 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
2109}
2110PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2111computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
2112 PredicateBitset Features{};
2113 return Features;
2114}
2115
2116// Feature bitsets.
2117enum {
2118 GIFBS_Invalid,
2119 GIFBS_HasFminFmaxLegacy,
2120 GIFBS_Has16BitInsts_NotHasMed3_16,
2121};
2122constexpr static PredicateBitset FeatureBitsets[] {
2123 {}, // GIFBS_Invalid
2124 {Feature_HasFminFmaxLegacyBit, },
2125 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
2126};
2127
2128// ComplexPattern predicates.
2129enum {
2130 GICP_Invalid,
2131};
2132// See constructor for table contents
2133
2134AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
2135AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
2136 nullptr, // GICP_Invalid
2137};
2138
2139enum {
2140 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2141 GICXXPred_MI_Predicate_GICombiner1,
2142 GICXXPred_MI_Predicate_GICombiner2,
2143 GICXXPred_MI_Predicate_GICombiner3,
2144 GICXXPred_MI_Predicate_GICombiner4,
2145 GICXXPred_MI_Predicate_GICombiner5,
2146 GICXXPred_MI_Predicate_GICombiner6,
2147 GICXXPred_MI_Predicate_GICombiner7,
2148 GICXXPred_MI_Predicate_GICombiner8,
2149 GICXXPred_MI_Predicate_GICombiner9,
2150 GICXXPred_MI_Predicate_GICombiner10,
2151 GICXXPred_MI_Predicate_GICombiner11,
2152 GICXXPred_MI_Predicate_GICombiner12,
2153 GICXXPred_MI_Predicate_GICombiner13,
2154 GICXXPred_MI_Predicate_GICombiner14,
2155 GICXXPred_MI_Predicate_GICombiner15,
2156 GICXXPred_MI_Predicate_GICombiner16,
2157 GICXXPred_MI_Predicate_GICombiner17,
2158 GICXXPred_MI_Predicate_GICombiner18,
2159 GICXXPred_MI_Predicate_GICombiner19,
2160 GICXXPred_MI_Predicate_GICombiner20,
2161 GICXXPred_MI_Predicate_GICombiner21,
2162 GICXXPred_MI_Predicate_GICombiner22,
2163 GICXXPred_MI_Predicate_GICombiner23,
2164 GICXXPred_MI_Predicate_GICombiner24,
2165 GICXXPred_MI_Predicate_GICombiner25,
2166 GICXXPred_MI_Predicate_GICombiner26,
2167 GICXXPred_MI_Predicate_GICombiner27,
2168 GICXXPred_MI_Predicate_GICombiner28,
2169 GICXXPred_MI_Predicate_GICombiner29,
2170 GICXXPred_MI_Predicate_GICombiner30,
2171 GICXXPred_MI_Predicate_GICombiner31,
2172 GICXXPred_MI_Predicate_GICombiner32,
2173 GICXXPred_MI_Predicate_GICombiner33,
2174 GICXXPred_MI_Predicate_GICombiner34,
2175};
2176bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2177 switch (PredicateID) {
2178 case GICXXPred_MI_Predicate_GICombiner0: {
2179 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2180 }
2181 case GICXXPred_MI_Predicate_GICombiner1: {
2182 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2183 }
2184 case GICXXPred_MI_Predicate_GICombiner2: {
2185 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2186 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2187 }
2188 case GICXXPred_MI_Predicate_GICombiner3: {
2189 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2190 }
2191 case GICXXPred_MI_Predicate_GICombiner4: {
2192 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2193 }
2194 case GICXXPred_MI_Predicate_GICombiner5: {
2195 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2196 }
2197 case GICXXPred_MI_Predicate_GICombiner6: {
2198 return Helper.matchSelectSameVal(*State.MIs[0]);
2199 }
2200 case GICXXPred_MI_Predicate_GICombiner7: {
2201 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2202 }
2203 case GICXXPred_MI_Predicate_GICombiner8: {
2204 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2205 }
2206 case GICXXPred_MI_Predicate_GICombiner9: {
2207 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2208 }
2209 case GICXXPred_MI_Predicate_GICombiner10: {
2210 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2211 }
2212 case GICXXPred_MI_Predicate_GICombiner11: {
2213 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2214 }
2215 case GICXXPred_MI_Predicate_GICombiner12: {
2216 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2217 }
2218 case GICXXPred_MI_Predicate_GICombiner13: {
2219 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2220 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2221 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2222 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2223 }
2224 case GICXXPred_MI_Predicate_GICombiner14: {
2225 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2226 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2227 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2228 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2229 }
2230 case GICXXPred_MI_Predicate_GICombiner15: {
2231 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2232 Helper.isLegalOrBeforeLegalizer({
2233 TargetOpcode::G_SEXT_INREG,
2234 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2235 {},
2236 {1}
2237 });
2238 }
2239 case GICXXPred_MI_Predicate_GICombiner16: {
2240 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2241 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2242 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2243 }
2244 case GICXXPred_MI_Predicate_GICombiner17: {
2245 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2246 }
2247 case GICXXPred_MI_Predicate_GICombiner18: {
2248 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2249 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2250 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2251 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2252 llvm_unreachable("GICombiner18 should have returned");
2253 }
2254 case GICXXPred_MI_Predicate_GICombiner19: {
2255 return Helper.matchPtrAddZero(*State.MIs[0]);
2256 }
2257 case GICXXPred_MI_Predicate_GICombiner20: {
2258 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2259 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2260 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2261 }
2262 case GICXXPred_MI_Predicate_GICombiner21: {
2263 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2264 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2265 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2266 }
2267 case GICXXPred_MI_Predicate_GICombiner22: {
2268 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2269 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2270 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2271 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2272 }
2273 case GICXXPred_MI_Predicate_GICombiner23: {
2274 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2275 }
2276 case GICXXPred_MI_Predicate_GICombiner24: {
2277 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2278 }
2279 case GICXXPred_MI_Predicate_GICombiner25: {
2280 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2281 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2282 }
2283 case GICXXPred_MI_Predicate_GICombiner26: {
2284 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2285 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2286 }
2287 case GICXXPred_MI_Predicate_GICombiner27: {
2288 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2289 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2290 }
2291 case GICXXPred_MI_Predicate_GICombiner28: {
2292 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2293 }
2294 case GICXXPred_MI_Predicate_GICombiner29: {
2295 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2296 }
2297 case GICXXPred_MI_Predicate_GICombiner30: {
2298 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2299 }
2300 case GICXXPred_MI_Predicate_GICombiner31: {
2301 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2302 }
2303 case GICXXPred_MI_Predicate_GICombiner32: {
2304 return matchRemoveFcanonicalize(*State.MIs[0]);
2305 }
2306 case GICXXPred_MI_Predicate_GICombiner33: {
2307 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2308 Helper.isLegalOrBeforeLegalizer(
2309 {TargetOpcode::G_UNMERGE_VALUES,
2310 {LLT::integer(16), LLT::integer(32)}});
2311 }
2312 case GICXXPred_MI_Predicate_GICombiner34: {
2313 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
2314 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
2315 }
2316 }
2317 llvm_unreachable("Unknown predicate");
2318 return false;
2319}
2320bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2321 llvm_unreachable("Unknown predicate");
2322 return false;
2323}
2324bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2325 llvm_unreachable("Unknown predicate");
2326 return false;
2327}
2328bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2329 llvm_unreachable("Unknown predicate");
2330 return false;
2331}
2332bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2333 llvm_unreachable("Unknown predicate");
2334 return false;
2335}
2336enum {
2337 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2338 GICXXPred_Simple_IsRule1Enabled,
2339 GICXXPred_Simple_IsRule2Enabled,
2340 GICXXPred_Simple_IsRule3Enabled,
2341 GICXXPred_Simple_IsRule4Enabled,
2342 GICXXPred_Simple_IsRule5Enabled,
2343 GICXXPred_Simple_IsRule6Enabled,
2344 GICXXPred_Simple_IsRule7Enabled,
2345 GICXXPred_Simple_IsRule8Enabled,
2346 GICXXPred_Simple_IsRule9Enabled,
2347 GICXXPred_Simple_IsRule10Enabled,
2348 GICXXPred_Simple_IsRule11Enabled,
2349 GICXXPred_Simple_IsRule12Enabled,
2350 GICXXPred_Simple_IsRule13Enabled,
2351 GICXXPred_Simple_IsRule14Enabled,
2352 GICXXPred_Simple_IsRule15Enabled,
2353 GICXXPred_Simple_IsRule16Enabled,
2354 GICXXPred_Simple_IsRule17Enabled,
2355 GICXXPred_Simple_IsRule18Enabled,
2356 GICXXPred_Simple_IsRule19Enabled,
2357 GICXXPred_Simple_IsRule20Enabled,
2358 GICXXPred_Simple_IsRule21Enabled,
2359 GICXXPred_Simple_IsRule22Enabled,
2360 GICXXPred_Simple_IsRule23Enabled,
2361 GICXXPred_Simple_IsRule24Enabled,
2362 GICXXPred_Simple_IsRule25Enabled,
2363 GICXXPred_Simple_IsRule26Enabled,
2364 GICXXPred_Simple_IsRule27Enabled,
2365 GICXXPred_Simple_IsRule28Enabled,
2366 GICXXPred_Simple_IsRule29Enabled,
2367 GICXXPred_Simple_IsRule30Enabled,
2368 GICXXPred_Simple_IsRule31Enabled,
2369 GICXXPred_Simple_IsRule32Enabled,
2370 GICXXPred_Simple_IsRule33Enabled,
2371 GICXXPred_Simple_IsRule34Enabled,
2372 GICXXPred_Simple_IsRule35Enabled,
2373 GICXXPred_Simple_IsRule36Enabled,
2374 GICXXPred_Simple_IsRule37Enabled,
2375 GICXXPred_Simple_IsRule38Enabled,
2376 GICXXPred_Simple_IsRule39Enabled,
2377 GICXXPred_Simple_IsRule40Enabled,
2378 GICXXPred_Simple_IsRule41Enabled,
2379 GICXXPred_Simple_IsRule42Enabled,
2380 GICXXPred_Simple_IsRule43Enabled,
2381 GICXXPred_Simple_IsRule44Enabled,
2382 GICXXPred_Simple_IsRule45Enabled,
2383 GICXXPred_Simple_IsRule46Enabled,
2384 GICXXPred_Simple_IsRule47Enabled,
2385 GICXXPred_Simple_IsRule48Enabled,
2386 GICXXPred_Simple_IsRule49Enabled,
2387 GICXXPred_Simple_IsRule50Enabled,
2388 GICXXPred_Simple_IsRule51Enabled,
2389 GICXXPred_Simple_IsRule52Enabled,
2390 GICXXPred_Simple_IsRule53Enabled,
2391 GICXXPred_Simple_IsRule54Enabled,
2392 GICXXPred_Simple_IsRule55Enabled,
2393 GICXXPred_Simple_IsRule56Enabled,
2394 GICXXPred_Simple_IsRule57Enabled,
2395 GICXXPred_Simple_IsRule58Enabled,
2396 GICXXPred_Simple_IsRule59Enabled,
2397 GICXXPred_Simple_IsRule60Enabled,
2398 GICXXPred_Simple_IsRule61Enabled,
2399 GICXXPred_Simple_IsRule62Enabled,
2400 GICXXPred_Simple_IsRule63Enabled,
2401 GICXXPred_Simple_IsRule64Enabled,
2402 GICXXPred_Simple_IsRule65Enabled,
2403 GICXXPred_Simple_IsRule66Enabled,
2404 GICXXPred_Simple_IsRule67Enabled,
2405 GICXXPred_Simple_IsRule68Enabled,
2406 GICXXPred_Simple_IsRule69Enabled,
2407 GICXXPred_Simple_IsRule70Enabled,
2408 GICXXPred_Simple_IsRule71Enabled,
2409 GICXXPred_Simple_IsRule72Enabled,
2410 GICXXPred_Simple_IsRule73Enabled,
2411 GICXXPred_Simple_IsRule74Enabled,
2412 GICXXPred_Simple_IsRule75Enabled,
2413 GICXXPred_Simple_IsRule76Enabled,
2414 GICXXPred_Simple_IsRule77Enabled,
2415 GICXXPred_Simple_IsRule78Enabled,
2416 GICXXPred_Simple_IsRule79Enabled,
2417 GICXXPred_Simple_IsRule80Enabled,
2418 GICXXPred_Simple_IsRule81Enabled,
2419 GICXXPred_Simple_IsRule82Enabled,
2420 GICXXPred_Simple_IsRule83Enabled,
2421 GICXXPred_Simple_IsRule84Enabled,
2422 GICXXPred_Simple_IsRule85Enabled,
2423 GICXXPred_Simple_IsRule86Enabled,
2424 GICXXPred_Simple_IsRule87Enabled,
2425 GICXXPred_Simple_IsRule88Enabled,
2426 GICXXPred_Simple_IsRule89Enabled,
2427 GICXXPred_Simple_IsRule90Enabled,
2428 GICXXPred_Simple_IsRule91Enabled,
2429 GICXXPred_Simple_IsRule92Enabled,
2430 GICXXPred_Simple_IsRule93Enabled,
2431 GICXXPred_Simple_IsRule94Enabled,
2432 GICXXPred_Simple_IsRule95Enabled,
2433 GICXXPred_Simple_IsRule96Enabled,
2434 GICXXPred_Simple_IsRule97Enabled,
2435 GICXXPred_Simple_IsRule98Enabled,
2436 GICXXPred_Simple_IsRule99Enabled,
2437 GICXXPred_Simple_IsRule100Enabled,
2438 GICXXPred_Simple_IsRule101Enabled,
2439 GICXXPred_Simple_IsRule102Enabled,
2440 GICXXPred_Simple_IsRule103Enabled,
2441 GICXXPred_Simple_IsRule104Enabled,
2442 GICXXPred_Simple_IsRule105Enabled,
2443 GICXXPred_Simple_IsRule106Enabled,
2444 GICXXPred_Simple_IsRule107Enabled,
2445 GICXXPred_Simple_IsRule108Enabled,
2446 GICXXPred_Simple_IsRule109Enabled,
2447 GICXXPred_Simple_IsRule110Enabled,
2448 GICXXPred_Simple_IsRule111Enabled,
2449 GICXXPred_Simple_IsRule112Enabled,
2450 GICXXPred_Simple_IsRule113Enabled,
2451 GICXXPred_Simple_IsRule114Enabled,
2452 GICXXPred_Simple_IsRule115Enabled,
2453 GICXXPred_Simple_IsRule116Enabled,
2454 GICXXPred_Simple_IsRule117Enabled,
2455 GICXXPred_Simple_IsRule118Enabled,
2456 GICXXPred_Simple_IsRule119Enabled,
2457 GICXXPred_Simple_IsRule120Enabled,
2458 GICXXPred_Simple_IsRule121Enabled,
2459 GICXXPred_Simple_IsRule122Enabled,
2460 GICXXPred_Simple_IsRule123Enabled,
2461 GICXXPred_Simple_IsRule124Enabled,
2462 GICXXPred_Simple_IsRule125Enabled,
2463 GICXXPred_Simple_IsRule126Enabled,
2464 GICXXPred_Simple_IsRule127Enabled,
2465 GICXXPred_Simple_IsRule128Enabled,
2466 GICXXPred_Simple_IsRule129Enabled,
2467 GICXXPred_Simple_IsRule130Enabled,
2468 GICXXPred_Simple_IsRule131Enabled,
2469 GICXXPred_Simple_IsRule132Enabled,
2470 GICXXPred_Simple_IsRule133Enabled,
2471 GICXXPred_Simple_IsRule134Enabled,
2472 GICXXPred_Simple_IsRule135Enabled,
2473 GICXXPred_Simple_IsRule136Enabled,
2474 GICXXPred_Simple_IsRule137Enabled,
2475 GICXXPred_Simple_IsRule138Enabled,
2476 GICXXPred_Simple_IsRule139Enabled,
2477 GICXXPred_Simple_IsRule140Enabled,
2478 GICXXPred_Simple_IsRule141Enabled,
2479 GICXXPred_Simple_IsRule142Enabled,
2480 GICXXPred_Simple_IsRule143Enabled,
2481 GICXXPred_Simple_IsRule144Enabled,
2482 GICXXPred_Simple_IsRule145Enabled,
2483 GICXXPred_Simple_IsRule146Enabled,
2484 GICXXPred_Simple_IsRule147Enabled,
2485 GICXXPred_Simple_IsRule148Enabled,
2486 GICXXPred_Simple_IsRule149Enabled,
2487 GICXXPred_Simple_IsRule150Enabled,
2488 GICXXPred_Simple_IsRule151Enabled,
2489 GICXXPred_Simple_IsRule152Enabled,
2490 GICXXPred_Simple_IsRule153Enabled,
2491 GICXXPred_Simple_IsRule154Enabled,
2492 GICXXPred_Simple_IsRule155Enabled,
2493 GICXXPred_Simple_IsRule156Enabled,
2494 GICXXPred_Simple_IsRule157Enabled,
2495 GICXXPred_Simple_IsRule158Enabled,
2496 GICXXPred_Simple_IsRule159Enabled,
2497 GICXXPred_Simple_IsRule160Enabled,
2498 GICXXPred_Simple_IsRule161Enabled,
2499 GICXXPred_Simple_IsRule162Enabled,
2500 GICXXPred_Simple_IsRule163Enabled,
2501 GICXXPred_Simple_IsRule164Enabled,
2502 GICXXPred_Simple_IsRule165Enabled,
2503 GICXXPred_Simple_IsRule166Enabled,
2504 GICXXPred_Simple_IsRule167Enabled,
2505 GICXXPred_Simple_IsRule168Enabled,
2506 GICXXPred_Simple_IsRule169Enabled,
2507 GICXXPred_Simple_IsRule170Enabled,
2508 GICXXPred_Simple_IsRule171Enabled,
2509 GICXXPred_Simple_IsRule172Enabled,
2510 GICXXPred_Simple_IsRule173Enabled,
2511 GICXXPred_Simple_IsRule174Enabled,
2512 GICXXPred_Simple_IsRule175Enabled,
2513 GICXXPred_Simple_IsRule176Enabled,
2514 GICXXPred_Simple_IsRule177Enabled,
2515 GICXXPred_Simple_IsRule178Enabled,
2516 GICXXPred_Simple_IsRule179Enabled,
2517 GICXXPred_Simple_IsRule180Enabled,
2518 GICXXPred_Simple_IsRule181Enabled,
2519 GICXXPred_Simple_IsRule182Enabled,
2520 GICXXPred_Simple_IsRule183Enabled,
2521 GICXXPred_Simple_IsRule184Enabled,
2522 GICXXPred_Simple_IsRule185Enabled,
2523 GICXXPred_Simple_IsRule186Enabled,
2524 GICXXPred_Simple_IsRule187Enabled,
2525 GICXXPred_Simple_IsRule188Enabled,
2526 GICXXPred_Simple_IsRule189Enabled,
2527 GICXXPred_Simple_IsRule190Enabled,
2528 GICXXPred_Simple_IsRule191Enabled,
2529 GICXXPred_Simple_IsRule192Enabled,
2530 GICXXPred_Simple_IsRule193Enabled,
2531 GICXXPred_Simple_IsRule194Enabled,
2532 GICXXPred_Simple_IsRule195Enabled,
2533 GICXXPred_Simple_IsRule196Enabled,
2534 GICXXPred_Simple_IsRule197Enabled,
2535 GICXXPred_Simple_IsRule198Enabled,
2536 GICXXPred_Simple_IsRule199Enabled,
2537 GICXXPred_Simple_IsRule200Enabled,
2538 GICXXPred_Simple_IsRule201Enabled,
2539 GICXXPred_Simple_IsRule202Enabled,
2540 GICXXPred_Simple_IsRule203Enabled,
2541 GICXXPred_Simple_IsRule204Enabled,
2542 GICXXPred_Simple_IsRule205Enabled,
2543 GICXXPred_Simple_IsRule206Enabled,
2544 GICXXPred_Simple_IsRule207Enabled,
2545 GICXXPred_Simple_IsRule208Enabled,
2546 GICXXPred_Simple_IsRule209Enabled,
2547 GICXXPred_Simple_IsRule210Enabled,
2548 GICXXPred_Simple_IsRule211Enabled,
2549 GICXXPred_Simple_IsRule212Enabled,
2550 GICXXPred_Simple_IsRule213Enabled,
2551 GICXXPred_Simple_IsRule214Enabled,
2552 GICXXPred_Simple_IsRule215Enabled,
2553 GICXXPred_Simple_IsRule216Enabled,
2554 GICXXPred_Simple_IsRule217Enabled,
2555 GICXXPred_Simple_IsRule218Enabled,
2556 GICXXPred_Simple_IsRule219Enabled,
2557 GICXXPred_Simple_IsRule220Enabled,
2558 GICXXPred_Simple_IsRule221Enabled,
2559 GICXXPred_Simple_IsRule222Enabled,
2560 GICXXPred_Simple_IsRule223Enabled,
2561 GICXXPred_Simple_IsRule224Enabled,
2562 GICXXPred_Simple_IsRule225Enabled,
2563 GICXXPred_Simple_IsRule226Enabled,
2564 GICXXPred_Simple_IsRule227Enabled,
2565 GICXXPred_Simple_IsRule228Enabled,
2566 GICXXPred_Simple_IsRule229Enabled,
2567 GICXXPred_Simple_IsRule230Enabled,
2568 GICXXPred_Simple_IsRule231Enabled,
2569 GICXXPred_Simple_IsRule232Enabled,
2570 GICXXPred_Simple_IsRule233Enabled,
2571 GICXXPred_Simple_IsRule234Enabled,
2572 GICXXPred_Simple_IsRule235Enabled,
2573 GICXXPred_Simple_IsRule236Enabled,
2574 GICXXPred_Simple_IsRule237Enabled,
2575 GICXXPred_Simple_IsRule238Enabled,
2576 GICXXPred_Simple_IsRule239Enabled,
2577 GICXXPred_Simple_IsRule240Enabled,
2578 GICXXPred_Simple_IsRule241Enabled,
2579 GICXXPred_Simple_IsRule242Enabled,
2580 GICXXPred_Simple_IsRule243Enabled,
2581 GICXXPred_Simple_IsRule244Enabled,
2582 GICXXPred_Simple_IsRule245Enabled,
2583 GICXXPred_Simple_IsRule246Enabled,
2584 GICXXPred_Simple_IsRule247Enabled,
2585 GICXXPred_Simple_IsRule248Enabled,
2586 GICXXPred_Simple_IsRule249Enabled,
2587 GICXXPred_Simple_IsRule250Enabled,
2588 GICXXPred_Simple_IsRule251Enabled,
2589 GICXXPred_Simple_IsRule252Enabled,
2590 GICXXPred_Simple_IsRule253Enabled,
2591 GICXXPred_Simple_IsRule254Enabled,
2592 GICXXPred_Simple_IsRule255Enabled,
2593 GICXXPred_Simple_IsRule256Enabled,
2594 GICXXPred_Simple_IsRule257Enabled,
2595 GICXXPred_Simple_IsRule258Enabled,
2596 GICXXPred_Simple_IsRule259Enabled,
2597 GICXXPred_Simple_IsRule260Enabled,
2598 GICXXPred_Simple_IsRule261Enabled,
2599 GICXXPred_Simple_IsRule262Enabled,
2600 GICXXPred_Simple_IsRule263Enabled,
2601 GICXXPred_Simple_IsRule264Enabled,
2602 GICXXPred_Simple_IsRule265Enabled,
2603 GICXXPred_Simple_IsRule266Enabled,
2604 GICXXPred_Simple_IsRule267Enabled,
2605 GICXXPred_Simple_IsRule268Enabled,
2606 GICXXPred_Simple_IsRule269Enabled,
2607 GICXXPred_Simple_IsRule270Enabled,
2608 GICXXPred_Simple_IsRule271Enabled,
2609 GICXXPred_Simple_IsRule272Enabled,
2610 GICXXPred_Simple_IsRule273Enabled,
2611 GICXXPred_Simple_IsRule274Enabled,
2612 GICXXPred_Simple_IsRule275Enabled,
2613 GICXXPred_Simple_IsRule276Enabled,
2614 GICXXPred_Simple_IsRule277Enabled,
2615 GICXXPred_Simple_IsRule278Enabled,
2616 GICXXPred_Simple_IsRule279Enabled,
2617 GICXXPred_Simple_IsRule280Enabled,
2618 GICXXPred_Simple_IsRule281Enabled,
2619 GICXXPred_Simple_IsRule282Enabled,
2620 GICXXPred_Simple_IsRule283Enabled,
2621 GICXXPred_Simple_IsRule284Enabled,
2622 GICXXPred_Simple_IsRule285Enabled,
2623 GICXXPred_Simple_IsRule286Enabled,
2624 GICXXPred_Simple_IsRule287Enabled,
2625 GICXXPred_Simple_IsRule288Enabled,
2626 GICXXPred_Simple_IsRule289Enabled,
2627 GICXXPred_Simple_IsRule290Enabled,
2628 GICXXPred_Simple_IsRule291Enabled,
2629 GICXXPred_Simple_IsRule292Enabled,
2630 GICXXPred_Simple_IsRule293Enabled,
2631 GICXXPred_Simple_IsRule294Enabled,
2632 GICXXPred_Simple_IsRule295Enabled,
2633 GICXXPred_Simple_IsRule296Enabled,
2634 GICXXPred_Simple_IsRule297Enabled,
2635 GICXXPred_Simple_IsRule298Enabled,
2636 GICXXPred_Simple_IsRule299Enabled,
2637};
2638
2639bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2640 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2641}
2642// Custom renderers.
2643enum {
2644 GICR_Invalid,
2645};
2646AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2647AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2648 nullptr, // GICR_Invalid
2649};
2650
2651bool AMDGPUPostLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
2652 switch (Opc) {
2653 case TargetOpcode::G_FCMP:
2654 case TargetOpcode::G_FMA:
2655 case TargetOpcode::G_FMAD:
2656 case TargetOpcode::G_FSHL:
2657 case TargetOpcode::G_FSHR:
2658 case TargetOpcode::G_ICMP:
2659 case TargetOpcode::G_INSERT_VECTOR_ELT:
2660 case TargetOpcode::G_SELECT:
2661 case TargetOpcode::G_SHUFFLE_VECTOR:
2662 case TargetOpcode::G_ADD:
2663 case TargetOpcode::G_AND:
2664 case TargetOpcode::G_ASHR:
2665 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2666 case TargetOpcode::G_FADD:
2667 case TargetOpcode::G_FCOPYSIGN:
2668 case TargetOpcode::G_FDIV:
2669 case TargetOpcode::G_FMAXIMUM:
2670 case TargetOpcode::G_FMAXIMUMNUM:
2671 case TargetOpcode::G_FMAXNUM:
2672 case TargetOpcode::G_FMINIMUM:
2673 case TargetOpcode::G_FMINIMUMNUM:
2674 case TargetOpcode::G_FMINNUM:
2675 case TargetOpcode::G_FMUL:
2676 case TargetOpcode::G_FPOWI:
2677 case TargetOpcode::G_FREM:
2678 case TargetOpcode::G_FSUB:
2679 case TargetOpcode::G_INTRINSIC:
2680 case TargetOpcode::G_LSHR:
2681 case TargetOpcode::G_MERGE_VALUES:
2682 case TargetOpcode::G_MUL:
2683 case TargetOpcode::G_OR:
2684 case TargetOpcode::G_PTR_ADD:
2685 case TargetOpcode::G_ROTL:
2686 case TargetOpcode::G_ROTR:
2687 case TargetOpcode::G_SDIV:
2688 case TargetOpcode::G_SEXT_INREG:
2689 case TargetOpcode::G_SHL:
2690 case TargetOpcode::G_SREM:
2691 case TargetOpcode::G_SUB:
2692 case TargetOpcode::G_UDIV:
2693 case TargetOpcode::G_UMULH:
2694 case TargetOpcode::G_UREM:
2695 case TargetOpcode::G_XOR:
2696 case TargetOpcode::COPY:
2697 case TargetOpcode::G_ABS:
2698 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE0:
2699 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE1:
2700 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE2:
2701 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE3:
2702 case TargetOpcode::G_ANYEXT:
2703 case TargetOpcode::G_BITCAST:
2704 case TargetOpcode::G_BITREVERSE:
2705 case TargetOpcode::G_BSWAP:
2706 case TargetOpcode::G_BUILD_VECTOR:
2707 case TargetOpcode::G_CONCAT_VECTORS:
2708 case TargetOpcode::G_CTLZ:
2709 case TargetOpcode::G_CTLZ_ZERO_POISON:
2710 case TargetOpcode::G_CTPOP:
2711 case TargetOpcode::G_CTTZ:
2712 case TargetOpcode::G_CTTZ_ZERO_POISON:
2713 case TargetOpcode::G_FABS:
2714 case TargetOpcode::G_FCANONICALIZE:
2715 case TargetOpcode::G_FCEIL:
2716 case TargetOpcode::G_FFLOOR:
2717 case TargetOpcode::G_FLOG2:
2718 case TargetOpcode::G_FNEARBYINT:
2719 case TargetOpcode::G_FNEG:
2720 case TargetOpcode::G_FPEXT:
2721 case TargetOpcode::G_FPTOSI:
2722 case TargetOpcode::G_FPTOUI:
2723 case TargetOpcode::G_FPTRUNC:
2724 case TargetOpcode::G_FREEZE:
2725 case TargetOpcode::G_FRINT:
2726 case TargetOpcode::G_FSQRT:
2727 case TargetOpcode::G_INTRINSIC_ROUND:
2728 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2729 case TargetOpcode::G_INTRINSIC_TRUNC:
2730 case TargetOpcode::G_INTTOPTR:
2731 case TargetOpcode::G_PHI:
2732 case TargetOpcode::G_PTRTOINT:
2733 case TargetOpcode::G_SEXT:
2734 case TargetOpcode::G_SITOFP:
2735 case TargetOpcode::G_TRUNC:
2736 case TargetOpcode::G_TRUNC_USAT_U:
2737 case TargetOpcode::G_UITOFP:
2738 case TargetOpcode::G_ZEXT:
2739 case TargetOpcode::G_BR:
2740 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2741 case TargetOpcode::G_FMAXNUM_IEEE:
2742 case TargetOpcode::G_FMINNUM_IEEE:
2743 case TargetOpcode::G_LOAD:
2744 case TargetOpcode::G_SADDE:
2745 case TargetOpcode::G_SADDO:
2746 case TargetOpcode::G_SADDSAT:
2747 case TargetOpcode::G_SEXTLOAD:
2748 case TargetOpcode::G_SMAX:
2749 case TargetOpcode::G_SMIN:
2750 case TargetOpcode::G_SMULFIX:
2751 case TargetOpcode::G_SMULFIXSAT:
2752 case TargetOpcode::G_SMULH:
2753 case TargetOpcode::G_SMULO:
2754 case TargetOpcode::G_SSHLSAT:
2755 case TargetOpcode::G_SSUBE:
2756 case TargetOpcode::G_SSUBO:
2757 case TargetOpcode::G_STORE:
2758 case TargetOpcode::G_UADDE:
2759 case TargetOpcode::G_UADDO:
2760 case TargetOpcode::G_UADDSAT:
2761 case TargetOpcode::G_UMAX:
2762 case TargetOpcode::G_UMIN:
2763 case TargetOpcode::G_UMULFIX:
2764 case TargetOpcode::G_UMULFIXSAT:
2765 case TargetOpcode::G_UMULO:
2766 case TargetOpcode::G_UNMERGE_VALUES:
2767 case TargetOpcode::G_USHLSAT:
2768 case TargetOpcode::G_USUBE:
2769 case TargetOpcode::G_USUBO:
2770 case TargetOpcode::G_ZEXTLOAD:
2771 return true;
2772 default:
2773 return false;
2774 }
2775}
2776
2777uint32_t AMDGPUPostLegalizerCombinerImpl::getRootFlagsToDrop() const {
2778 return MachineInstr::getPoisonGeneratingFlags();
2779}
2780
2781bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2782 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2783 State.MIs.clear();
2784 State.MIs.push_back(&I);
2785 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2786 return true;
2787 }
2788
2789 return false;
2790}
2791
2792enum {
2793 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2794 GICXXCustomAction_GICombiner1,
2795 GICXXCustomAction_GICombiner2,
2796 GICXXCustomAction_GICombiner3,
2797 GICXXCustomAction_GICombiner4,
2798 GICXXCustomAction_GICombiner5,
2799 GICXXCustomAction_GICombiner6,
2800 GICXXCustomAction_GICombiner7,
2801 GICXXCustomAction_GICombiner8,
2802 GICXXCustomAction_GICombiner9,
2803 GICXXCustomAction_GICombiner10,
2804 GICXXCustomAction_GICombiner11,
2805 GICXXCustomAction_GICombiner12,
2806 GICXXCustomAction_GICombiner13,
2807 GICXXCustomAction_GICombiner14,
2808 GICXXCustomAction_GICombiner15,
2809 GICXXCustomAction_GICombiner16,
2810 GICXXCustomAction_GICombiner17,
2811 GICXXCustomAction_GICombiner18,
2812 GICXXCustomAction_GICombiner19,
2813 GICXXCustomAction_GICombiner20,
2814 GICXXCustomAction_GICombiner21,
2815 GICXXCustomAction_GICombiner22,
2816 GICXXCustomAction_GICombiner23,
2817 GICXXCustomAction_GICombiner24,
2818 GICXXCustomAction_GICombiner25,
2819 GICXXCustomAction_GICombiner26,
2820 GICXXCustomAction_GICombiner27,
2821 GICXXCustomAction_GICombiner28,
2822 GICXXCustomAction_GICombiner29,
2823 GICXXCustomAction_GICombiner30,
2824 GICXXCustomAction_GICombiner31,
2825 GICXXCustomAction_GICombiner32,
2826 GICXXCustomAction_GICombiner33,
2827 GICXXCustomAction_GICombiner34,
2828 GICXXCustomAction_GICombiner35,
2829 GICXXCustomAction_GICombiner36,
2830 GICXXCustomAction_GICombiner37,
2831 GICXXCustomAction_GICombiner38,
2832 GICXXCustomAction_GICombiner39,
2833 GICXXCustomAction_GICombiner40,
2834 GICXXCustomAction_GICombiner41,
2835 GICXXCustomAction_GICombiner42,
2836 GICXXCustomAction_GICombiner43,
2837 GICXXCustomAction_GICombiner44,
2838 GICXXCustomAction_GICombiner45,
2839 GICXXCustomAction_GICombiner46,
2840 GICXXCustomAction_GICombiner47,
2841 GICXXCustomAction_GICombiner48,
2842 GICXXCustomAction_GICombiner49,
2843 GICXXCustomAction_GICombiner50,
2844 GICXXCustomAction_GICombiner51,
2845 GICXXCustomAction_GICombiner52,
2846 GICXXCustomAction_GICombiner53,
2847 GICXXCustomAction_GICombiner54,
2848 GICXXCustomAction_GICombiner55,
2849 GICXXCustomAction_GICombiner56,
2850 GICXXCustomAction_GICombiner57,
2851 GICXXCustomAction_GICombiner58,
2852 GICXXCustomAction_GICombiner59,
2853 GICXXCustomAction_GICombiner60,
2854 GICXXCustomAction_GICombiner61,
2855 GICXXCustomAction_GICombiner62,
2856 GICXXCustomAction_GICombiner63,
2857 GICXXCustomAction_GICombiner64,
2858 GICXXCustomAction_GICombiner65,
2859 GICXXCustomAction_GICombiner66,
2860 GICXXCustomAction_GICombiner67,
2861 GICXXCustomAction_GICombiner68,
2862 GICXXCustomAction_GICombiner69,
2863 GICXXCustomAction_GICombiner70,
2864 GICXXCustomAction_GICombiner71,
2865 GICXXCustomAction_GICombiner72,
2866 GICXXCustomAction_GICombiner73,
2867 GICXXCustomAction_GICombiner74,
2868 GICXXCustomAction_GICombiner75,
2869 GICXXCustomAction_GICombiner76,
2870 GICXXCustomAction_GICombiner77,
2871 GICXXCustomAction_GICombiner78,
2872 GICXXCustomAction_GICombiner79,
2873 GICXXCustomAction_GICombiner80,
2874 GICXXCustomAction_GICombiner81,
2875 GICXXCustomAction_GICombiner82,
2876 GICXXCustomAction_GICombiner83,
2877 GICXXCustomAction_GICombiner84,
2878 GICXXCustomAction_GICombiner85,
2879 GICXXCustomAction_GICombiner86,
2880 GICXXCustomAction_GICombiner87,
2881 GICXXCustomAction_GICombiner88,
2882 GICXXCustomAction_GICombiner89,
2883 GICXXCustomAction_GICombiner90,
2884 GICXXCustomAction_GICombiner91,
2885 GICXXCustomAction_GICombiner92,
2886 GICXXCustomAction_GICombiner93,
2887 GICXXCustomAction_GICombiner94,
2888 GICXXCustomAction_GICombiner95,
2889 GICXXCustomAction_GICombiner96,
2890 GICXXCustomAction_GICombiner97,
2891 GICXXCustomAction_GICombiner98,
2892 GICXXCustomAction_GICombiner99,
2893 GICXXCustomAction_GICombiner100,
2894 GICXXCustomAction_GICombiner101,
2895 GICXXCustomAction_GICombiner102,
2896 GICXXCustomAction_GICombiner103,
2897 GICXXCustomAction_GICombiner104,
2898 GICXXCustomAction_GICombiner105,
2899 GICXXCustomAction_GICombiner106,
2900 GICXXCustomAction_GICombiner107,
2901 GICXXCustomAction_GICombiner108,
2902 GICXXCustomAction_GICombiner109,
2903 GICXXCustomAction_GICombiner110,
2904 GICXXCustomAction_GICombiner111,
2905 GICXXCustomAction_GICombiner112,
2906 GICXXCustomAction_GICombiner113,
2907 GICXXCustomAction_GICombiner114,
2908 GICXXCustomAction_GICombiner115,
2909 GICXXCustomAction_GICombiner116,
2910 GICXXCustomAction_GICombiner117,
2911 GICXXCustomAction_GICombiner118,
2912 GICXXCustomAction_GICombiner119,
2913 GICXXCustomAction_GICombiner120,
2914 GICXXCustomAction_GICombiner121,
2915 GICXXCustomAction_GICombiner122,
2916 GICXXCustomAction_GICombiner123,
2917 GICXXCustomAction_GICombiner124,
2918 GICXXCustomAction_GICombiner125,
2919 GICXXCustomAction_GICombiner126,
2920 GICXXCustomAction_GICombiner127,
2921 GICXXCustomAction_GICombiner128,
2922 GICXXCustomAction_GICombiner129,
2923 GICXXCustomAction_GICombiner130,
2924 GICXXCustomAction_GICombiner131,
2925 GICXXCustomAction_GICombiner132,
2926 GICXXCustomAction_GICombiner133,
2927 GICXXCustomAction_GICombiner134,
2928 GICXXCustomAction_GICombiner135,
2929 GICXXCustomAction_GICombiner136,
2930 GICXXCustomAction_GICombiner137,
2931 GICXXCustomAction_GICombiner138,
2932 GICXXCustomAction_GICombiner139,
2933 GICXXCustomAction_GICombiner140,
2934 GICXXCustomAction_GICombiner141,
2935 GICXXCustomAction_GICombiner142,
2936 GICXXCustomAction_GICombiner143,
2937 GICXXCustomAction_GICombiner144,
2938 GICXXCustomAction_GICombiner145,
2939 GICXXCustomAction_GICombiner146,
2940 GICXXCustomAction_GICombiner147,
2941 GICXXCustomAction_GICombiner148,
2942 GICXXCustomAction_GICombiner149,
2943 GICXXCustomAction_GICombiner150,
2944 GICXXCustomAction_GICombiner151,
2945 GICXXCustomAction_GICombiner152,
2946 GICXXCustomAction_GICombiner153,
2947 GICXXCustomAction_GICombiner154,
2948 GICXXCustomAction_GICombiner155,
2949 GICXXCustomAction_GICombiner156,
2950 GICXXCustomAction_GICombiner157,
2951 GICXXCustomAction_GICombiner158,
2952};
2953bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2954 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2955 switch(ApplyID) {
2956 case GICXXCustomAction_GICombiner0:{
2957 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2958 // Match Patterns
2959 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2960 return false;
2961 }
2962 // Apply Patterns
2963 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2964 return true;
2965 }
2966 case GICXXCustomAction_GICombiner1:{
2967 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2968 // Match Patterns
2969 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2970 return false;
2971 }
2972 // Apply Patterns
2973 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2974 return true;
2975 }
2976 case GICXXCustomAction_GICombiner2:{
2977 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2978 // Match Patterns
2979 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2980 return false;
2981 }
2982 // Apply Patterns
2983 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2984 return true;
2985 }
2986 case GICXXCustomAction_GICombiner3:{
2987 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2988 // Match Patterns
2989 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2990 return false;
2991 }
2992 // Apply Patterns
2993 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2994 return true;
2995 }
2996 case GICXXCustomAction_GICombiner4:{
2997 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2998 // Match Patterns
2999 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3000 return false;
3001 }
3002 // Apply Patterns
3003 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3004 return true;
3005 }
3006 case GICXXCustomAction_GICombiner5:{
3007 // Match Patterns
3008 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
3009 return false;
3010 }
3011 // Apply Patterns
3012 Helper.applyCombineCopy(*State.MIs[0]);
3013 return true;
3014 }
3015 case GICXXCustomAction_GICombiner6:{
3016 unsigned GIMatchData_matchinfo;
3017 // Match Patterns
3018 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
3019 return false;
3020 }
3021 // Apply Patterns
3022 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
3023 return true;
3024 }
3025 case GICXXCustomAction_GICombiner7:{
3026 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3027 // Match Patterns
3028 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3029 return false;
3030 }
3031 // Apply Patterns
3032 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3033 return true;
3034 }
3035 case GICXXCustomAction_GICombiner8:{
3036 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3037 // Match Patterns
3038 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
3039 return false;
3040 }
3041 // Apply Patterns
3042 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3043 return true;
3044 }
3045 case GICXXCustomAction_GICombiner9:{
3046 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3047 // Match Patterns
3048 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
3049 return false;
3050 }
3051 // Apply Patterns
3052 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3053 return true;
3054 }
3055 case GICXXCustomAction_GICombiner10:{
3056 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3057 // Match Patterns
3058 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3059 return false;
3060 }
3061 // Apply Patterns
3062 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3063 return true;
3064 }
3065 case GICXXCustomAction_GICombiner11:{
3066 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3067 // Match Patterns
3068 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
3069 GIMatchData_matchinfo);}()) {
3070 return false;
3071 }
3072 // Apply Patterns
3073 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3074 return true;
3075 }
3076 case GICXXCustomAction_GICombiner12:{
3077 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3078 // Match Patterns
3079 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3080 return false;
3081 }
3082 // Apply Patterns
3083 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3084 return true;
3085 }
3086 case GICXXCustomAction_GICombiner13:{
3087 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3088 // Match Patterns
3089 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
3090 GIMatchData_matchinfo);}()) {
3091 return false;
3092 }
3093 // Apply Patterns
3094 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3095 return true;
3096 }
3097 case GICXXCustomAction_GICombiner14:{
3098 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3099 // Match Patterns
3100 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3101 return false;
3102 }
3103 // Apply Patterns
3104 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3105 return true;
3106 }
3107 case GICXXCustomAction_GICombiner15:{
3108 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3109 // Match Patterns
3110 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3111 return false;
3112 }
3113 // Apply Patterns
3114 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3115 return true;
3116 }
3117 case GICXXCustomAction_GICombiner16:{
3118 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3119 // Match Patterns
3120 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3121 return false;
3122 }
3123 // Apply Patterns
3124 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3125 return true;
3126 }
3127 case GICXXCustomAction_GICombiner17:{
3128 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3129 // Match Patterns
3130 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3131 return false;
3132 }
3133 // Apply Patterns
3134 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3135 return true;
3136 }
3137 case GICXXCustomAction_GICombiner18:{
3138 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3139 // Match Patterns
3140 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3141 return false;
3142 }
3143 // Apply Patterns
3144 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3145 return true;
3146 }
3147 case GICXXCustomAction_GICombiner19:{
3148 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3149 // Match Patterns
3150 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3151 return false;
3152 }
3153 // Apply Patterns
3154 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3155 return true;
3156 }
3157 case GICXXCustomAction_GICombiner20:{
3158 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3159 // Match Patterns
3160 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3161 return false;
3162 }
3163 // Apply Patterns
3164 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3165 return true;
3166 }
3167 case GICXXCustomAction_GICombiner21:{
3168 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3169 // Match Patterns
3170 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3171 return false;
3172 }
3173 // Apply Patterns
3174 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3175 return true;
3176 }
3177 case GICXXCustomAction_GICombiner22:{
3178 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3179 // Match Patterns
3180 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3181 return false;
3182 }
3183 // Apply Patterns
3184 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3185 return true;
3186 }
3187 case GICXXCustomAction_GICombiner23:{
3188 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3189 // Match Patterns
3190 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3191 return false;
3192 }
3193 // Apply Patterns
3194 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3195 return true;
3196 }
3197 case GICXXCustomAction_GICombiner24:{
3198 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3199 // Match Patterns
3200 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3201 return false;
3202 }
3203 // Apply Patterns
3204 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3205 return true;
3206 }
3207 case GICXXCustomAction_GICombiner25:{
3208 APInt GIMatchData_matchinfo;
3209 // Match Patterns
3210 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3211 return false;
3212 }
3213 // Apply Patterns
3214 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3215 return true;
3216 }
3217 case GICXXCustomAction_GICombiner26:{
3218 SmallVector<Register> GIMatchData_info;
3219 // Match Patterns
3220 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3221 return false;
3222 }
3223 // Apply Patterns
3224 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3225 return true;
3226 }
3227 case GICXXCustomAction_GICombiner27:{
3228 Register GIMatchData_matchinfo;
3229 // Match Patterns
3230 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3231 return false;
3232 }
3233 // Apply Patterns
3234 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3235 return true;
3236 }
3237 case GICXXCustomAction_GICombiner28:{
3238 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3239 // Match Patterns
3240 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3241 return false;
3242 }
3243 // Apply Patterns
3244 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3245 return true;
3246 }
3247 case GICXXCustomAction_GICombiner29:{
3248 PreferredTuple GIMatchData_matchinfo;
3249 // Match Patterns
3250 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3251 return false;
3252 }
3253 // Apply Patterns
3254 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3255 return true;
3256 }
3257 case GICXXCustomAction_GICombiner30:{
3258 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3259 // Match Patterns
3260 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3261 return false;
3262 }
3263 // Apply Patterns
3264 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3265 return true;
3266 }
3267 case GICXXCustomAction_GICombiner31:{
3268 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3269 // Match Patterns
3270 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3271 return false;
3272 }
3273 // Apply Patterns
3274 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3275 return true;
3276 }
3277 case GICXXCustomAction_GICombiner32:{
3278 // Apply Patterns
3279 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3280 return true;
3281 }
3282 case GICXXCustomAction_GICombiner33:{
3283 // Apply Patterns
3284 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3285 return true;
3286 }
3287 case GICXXCustomAction_GICombiner34:{
3288 // Apply Patterns
3289 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3290 return true;
3291 }
3292 case GICXXCustomAction_GICombiner35:{
3293 // Apply Patterns
3294 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3295 return true;
3296 }
3297 case GICXXCustomAction_GICombiner36:{
3298 // Match Patterns
3299 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3300 return false;
3301 }
3302 // Apply Patterns
3303 Helper.replaceInstWithUndef(*State.MIs[0]);
3304 return true;
3305 }
3306 case GICXXCustomAction_GICombiner37:{
3307 // Match Patterns
3308 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3309 return false;
3310 }
3311 // Apply Patterns
3312 Helper.eraseInst(*State.MIs[0]);
3313 return true;
3314 }
3315 case GICXXCustomAction_GICombiner38:{
3316 // Match Patterns
3317 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3318 return false;
3319 }
3320 // Apply Patterns
3321 Helper.replaceInstWithUndef(*State.MIs[0]);
3322 return true;
3323 }
3324 case GICXXCustomAction_GICombiner39:{
3325 Register GIMatchData_info;
3326 // Match Patterns
3327 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3328 return false;
3329 }
3330 // Apply Patterns
3331 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3332 return true;
3333 }
3334 case GICXXCustomAction_GICombiner40:{
3335 Register GIMatchData_matchinfo;
3336 // Match Patterns
3337 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3338 return false;
3339 }
3340 // Apply Patterns
3341 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3342 return true;
3343 }
3344 case GICXXCustomAction_GICombiner41:{
3345 Register GIMatchData_matchinfo;
3346 // Match Patterns
3347 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3348 return false;
3349 }
3350 // Apply Patterns
3351 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3352 return true;
3353 }
3354 case GICXXCustomAction_GICombiner42:{
3355 Register GIMatchData_matchinfo;
3356 // Match Patterns
3357 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3358 return false;
3359 }
3360 // Apply Patterns
3361 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3362 return true;
3363 }
3364 case GICXXCustomAction_GICombiner43:{
3365 Register GIMatchData_matchinfo;
3366 // Match Patterns
3367 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3368 return false;
3369 }
3370 // Apply Patterns
3371 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3372 return true;
3373 }
3374 case GICXXCustomAction_GICombiner44:{
3375 // Match Patterns
3376 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3377 return false;
3378 }
3379 // Apply Patterns
3380 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3381 return true;
3382 }
3383 case GICXXCustomAction_GICombiner45:{
3384 MachineInstr* GIMatchData_matchinfo;
3385 // Match Patterns
3386 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3387 return false;
3388 }
3389 // Apply Patterns
3390 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3391 return true;
3392 }
3393 case GICXXCustomAction_GICombiner46:{
3394 InstructionStepsMatchInfo GIMatchData_info;
3395 // Match Patterns
3396 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3397 return false;
3398 }
3399 // Apply Patterns
3400 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3401 return true;
3402 }
3403 case GICXXCustomAction_GICombiner47:{
3404 std::optional<int64_t> GIMatchData_matchinfo;
3405 // Match Patterns
3406 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3407 return false;
3408 }
3409 // Apply Patterns
3410 if (GIMatchData_matchinfo) {
3411 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3412 } else {
3413 Helper.replaceInstWithUndef(*State.MIs[0]);
3414 }
3415 return true;
3416 }
3417 case GICXXCustomAction_GICombiner48:{
3418 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3419 // Match Patterns
3420 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3421 return false;
3422 }
3423 // Apply Patterns
3424 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3425 return true;
3426 }
3427 case GICXXCustomAction_GICombiner49:{
3428 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3429 // Match Patterns
3430 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3431 return false;
3432 }
3433 // Apply Patterns
3434 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3435 return true;
3436 }
3437 case GICXXCustomAction_GICombiner50:{
3438 PtrAddChain GIMatchData_matchinfo;
3439 // Match Patterns
3440 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3441 return false;
3442 }
3443 // Apply Patterns
3444 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3445 return true;
3446 }
3447 case GICXXCustomAction_GICombiner51:{
3448 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3449 // Match Patterns
3450 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3451 return false;
3452 }
3453 // Apply Patterns
3454 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3455 return true;
3456 }
3457 case GICXXCustomAction_GICombiner52:{
3458 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3459 // Match Patterns
3460 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3461 return false;
3462 }
3463 // Apply Patterns
3464 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3465 return true;
3466 }
3467 case GICXXCustomAction_GICombiner53:{
3468 int64_t GIMatchData_matchinfo;
3469 // Match Patterns
3470 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3471 return false;
3472 }
3473 // Apply Patterns
3474 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3475 return true;
3476 }
3477 case GICXXCustomAction_GICombiner54:{
3478 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3479 // Match Patterns
3480 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3481 return false;
3482 }
3483 // Apply Patterns
3484 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3485 return true;
3486 }
3487 case GICXXCustomAction_GICombiner55:{
3488 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3489 // Match Patterns
3490 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3491 return false;
3492 }
3493 // Apply Patterns
3494 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3495 return true;
3496 }
3497 case GICXXCustomAction_GICombiner56:{
3498 std::tuple<Register, int64_t> GIMatchData_info;
3499 // Match Patterns
3500 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3501 return false;
3502 }
3503 // Apply Patterns
3504 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3505 return true;
3506 }
3507 case GICXXCustomAction_GICombiner57:{
3508 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3509 // Match Patterns
3510 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3511 return false;
3512 }
3513 // Apply Patterns
3514 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3515 return true;
3516 }
3517 case GICXXCustomAction_GICombiner58:{
3518 RegisterImmPair GIMatchData_matchinfo;
3519 // Match Patterns
3520 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3521 return false;
3522 }
3523 // Apply Patterns
3524 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3525 return true;
3526 }
3527 case GICXXCustomAction_GICombiner59:{
3528 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3529 // Match Patterns
3530 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3531 return false;
3532 }
3533 // Apply Patterns
3534 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3535 return true;
3536 }
3537 case GICXXCustomAction_GICombiner60:{
3538 unsigned GIMatchData_matchinfo;
3539 // Match Patterns
3540 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3541 return false;
3542 }
3543 // Apply Patterns
3544 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3545 return true;
3546 }
3547 case GICXXCustomAction_GICombiner61:{
3548 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3549 // Match Patterns
3550 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3551 return false;
3552 }
3553 // Apply Patterns
3554 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3555 return true;
3556 }
3557 case GICXXCustomAction_GICombiner62:{
3558 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3559 // Match Patterns
3560 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3561 return false;
3562 }
3563 // Apply Patterns
3564 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3565 return true;
3566 }
3567 case GICXXCustomAction_GICombiner63:{
3568 // Match Patterns
3569 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
3570 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
3571 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
3572 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
3573 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
3574 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
3575 return false;
3576 }
3577 // Apply Patterns
3578 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
3579 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
3580 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
3581 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
3582 State.MIs[0]->eraseFromParent();
3583 return true;
3584 }
3585 case GICXXCustomAction_GICombiner64:{
3586 Register GIMatchData_matchinfo;
3587 // Match Patterns
3588 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3589 return false;
3590 }
3591 // Apply Patterns
3592 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3593 return true;
3594 }
3595 case GICXXCustomAction_GICombiner65:{
3596 Register GIMatchData_matchinfo;
3597 // Match Patterns
3598 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3599 return false;
3600 }
3601 // Apply Patterns
3602 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3603 return true;
3604 }
3605 case GICXXCustomAction_GICombiner66:{
3606 // Match Patterns
3607 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3608 return false;
3609 }
3610 // Apply Patterns
3611 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3612 return true;
3613 }
3614 case GICXXCustomAction_GICombiner67:{
3615 Register GIMatchData_matchinfo;
3616 // Match Patterns
3617 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3618 return false;
3619 }
3620 // Apply Patterns
3621 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3622 return true;
3623 }
3624 case GICXXCustomAction_GICombiner68:{
3625 // Match Patterns
3626 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3627 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3628 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3629 return false;
3630 }
3631 // Apply Patterns
3632 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3633 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3634 State.MIs[0]->eraseFromParent();
3635 return true;
3636 }
3637 case GICXXCustomAction_GICombiner69:{
3638 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3639 // Match Patterns
3640 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3641 return false;
3642 }
3643 // Apply Patterns
3644 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3645 return true;
3646 }
3647 case GICXXCustomAction_GICombiner70:{
3648 SmallVector<Register> GIMatchData_info;
3649 // Match Patterns
3650 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3651 return false;
3652 }
3653 // Apply Patterns
3654 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3655 return true;
3656 }
3657 case GICXXCustomAction_GICombiner71:{
3658 MachineInstr * GIMatchData_matchinfo;
3659 // Match Patterns
3660 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3661 return false;
3662 }
3663 // Apply Patterns
3664 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3665 return true;
3666 }
3667 case GICXXCustomAction_GICombiner72:{
3668 // Apply Patterns
3669 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3670 return true;
3671 }
3672 case GICXXCustomAction_GICombiner73:{
3673 APInt GIMatchData_info;
3674 // Match Patterns
3675 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3676 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
3677 DstTy.getSizeInBits());
3678 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
3679 DstTy.getSizeInBits());
3680 GIMatchData_info = NewCst;
3681 return true;}()) {
3682 return false;
3683 }
3684 // Apply Patterns
3685 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3686 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
3687 State.MIs[0]->eraseFromParent();
3688 return true;
3689 }
3690 case GICXXCustomAction_GICombiner74:{
3691 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3692 // Match Patterns
3693 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3694 return false;
3695 }
3696 // Apply Patterns
3697 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3698 return true;
3699 }
3700 case GICXXCustomAction_GICombiner75:{
3701 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3702 // Match Patterns
3703 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3704 return false;
3705 }
3706 // Apply Patterns
3707 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3708 return true;
3709 }
3710 case GICXXCustomAction_GICombiner76:{
3711 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3712 // Match Patterns
3713 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3714 return false;
3715 }
3716 // Apply Patterns
3717 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3718 return true;
3719 }
3720 case GICXXCustomAction_GICombiner77:{
3721 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3722 // Match Patterns
3723 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3724 return false;
3725 }
3726 // Apply Patterns
3727 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3728 return true;
3729 }
3730 case GICXXCustomAction_GICombiner78:{
3731 unsigned GIMatchData_info;
3732 // Match Patterns
3733 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3734 return false;
3735 }
3736 // Apply Patterns
3737 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3738 return true;
3739 }
3740 case GICXXCustomAction_GICombiner79:{
3741 // Match Patterns
3742 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3743 return false;
3744 }
3745 // Apply Patterns
3746 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3747 return true;
3748 }
3749 case GICXXCustomAction_GICombiner80:{
3750 std::pair<Register, Register> GIMatchData_matchinfo;
3751 // Match Patterns
3752 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3753 return false;
3754 }
3755 // Apply Patterns
3756 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3757 return true;
3758 }
3759 case GICXXCustomAction_GICombiner81:{
3760 RegisterImmPair GIMatchData_matchinfo;
3761 // Match Patterns
3762 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3763 return false;
3764 }
3765 // Apply Patterns
3766 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3767 return true;
3768 }
3769 case GICXXCustomAction_GICombiner82:{
3770 ShiftOfShiftedLogic GIMatchData_matchinfo;
3771 // Match Patterns
3772 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3773 return false;
3774 }
3775 // Apply Patterns
3776 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3777 return true;
3778 }
3779 case GICXXCustomAction_GICombiner83:{
3780 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3781 // Match Patterns
3782 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3783 return false;
3784 }
3785 // Apply Patterns
3786 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3787 return true;
3788 }
3789 case GICXXCustomAction_GICombiner84:{
3790 MachineInstr * GIMatchData_matchinfo;
3791 // Match Patterns
3792 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3793 return false;
3794 }
3795 // Apply Patterns
3796 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3797 return true;
3798 }
3799 case GICXXCustomAction_GICombiner85:{
3800 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3801 // Match Patterns
3802 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3803 return false;
3804 }
3805 // Apply Patterns
3806 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3807 return true;
3808 }
3809 case GICXXCustomAction_GICombiner86:{
3810 // Match Patterns
3811 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3812 return false;
3813 }
3814 // Apply Patterns
3815 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3816 return true;
3817 }
3818 case GICXXCustomAction_GICombiner87:{
3819 // Match Patterns
3820 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3821 return false;
3822 }
3823 // Apply Patterns
3824 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3825 return true;
3826 }
3827 case GICXXCustomAction_GICombiner88:{
3828 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3829 // Match Patterns
3830 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3831 return false;
3832 }
3833 // Apply Patterns
3834 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3835 return true;
3836 }
3837 case GICXXCustomAction_GICombiner89:{
3838 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3839 // Match Patterns
3840 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3841 return false;
3842 }
3843 // Apply Patterns
3844 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3845 return true;
3846 }
3847 case GICXXCustomAction_GICombiner90:{
3848 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3849 // Match Patterns
3850 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3851 return false;
3852 }
3853 // Apply Patterns
3854 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3855 return true;
3856 }
3857 case GICXXCustomAction_GICombiner91:{
3858 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3859 // Match Patterns
3860 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3861 return false;
3862 }
3863 // Apply Patterns
3864 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3865 return true;
3866 }
3867 case GICXXCustomAction_GICombiner92:{
3868 APInt GIMatchData_matchinfo;
3869 // Match Patterns
3870 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3871 return false;
3872 }
3873 // Apply Patterns
3874 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3875 return true;
3876 }
3877 case GICXXCustomAction_GICombiner93:{
3878 ConstantFP* GIMatchData_matchinfo;
3879 // Match Patterns
3880 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3881 return false;
3882 }
3883 // Apply Patterns
3884 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3885 return true;
3886 }
3887 case GICXXCustomAction_GICombiner94:{
3888 ConstantFP* GIMatchData_matchinfo;
3889 // Match Patterns
3890 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3891 return false;
3892 }
3893 // Apply Patterns
3894 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3895 return true;
3896 }
3897 case GICXXCustomAction_GICombiner95:{
3898 APInt GIMatchData_matchinfo;
3899 // Match Patterns
3900 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3901 return false;
3902 }
3903 // Apply Patterns
3904 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3905 return true;
3906 }
3907 case GICXXCustomAction_GICombiner96:{
3908 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3909 // Match Patterns
3910 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3911 return false;
3912 }
3913 // Apply Patterns
3914 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3915 return true;
3916 }
3917 case GICXXCustomAction_GICombiner97:{
3918 // Match Patterns
3919 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3920 return false;
3921 }
3922 // Apply Patterns
3923 Helper.applyUMulHToLShr(*State.MIs[0]);
3924 return true;
3925 }
3926 case GICXXCustomAction_GICombiner98:{
3927 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3928 // Match Patterns
3929 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3930 return false;
3931 }
3932 // Apply Patterns
3933 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3934 return true;
3935 }
3936 case GICXXCustomAction_GICombiner99:{
3937 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3938 // Match Patterns
3939 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3940 return false;
3941 }
3942 // Apply Patterns
3943 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3944 return true;
3945 }
3946 case GICXXCustomAction_GICombiner100:{
3947 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3948 // Match Patterns
3949 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3950 GIMatchData_info);}()) {
3951 return false;
3952 }
3953 // Apply Patterns
3954 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3955 return true;
3956 }
3957 case GICXXCustomAction_GICombiner101:{
3958 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3959 // Match Patterns
3960 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3961 GIMatchData_info);}()) {
3962 return false;
3963 }
3964 // Apply Patterns
3965 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3966 return true;
3967 }
3968 case GICXXCustomAction_GICombiner102:{
3969 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3970 // Match Patterns
3971 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3972 GIMatchData_info);}()) {
3973 return false;
3974 }
3975 // Apply Patterns
3976 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3977 return true;
3978 }
3979 case GICXXCustomAction_GICombiner103:{
3980 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3981 // Match Patterns
3982 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3983 *State.MIs[0], GIMatchData_info);}()) {
3984 return false;
3985 }
3986 // Apply Patterns
3987 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3988 return true;
3989 }
3990 case GICXXCustomAction_GICombiner104:{
3991 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3992 // Match Patterns
3993 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3994 GIMatchData_info);}()) {
3995 return false;
3996 }
3997 // Apply Patterns
3998 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3999 return true;
4000 }
4001 case GICXXCustomAction_GICombiner105:{
4002 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4003 // Match Patterns
4004 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
4005 GIMatchData_info);}()) {
4006 return false;
4007 }
4008 // Apply Patterns
4009 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4010 return true;
4011 }
4012 case GICXXCustomAction_GICombiner106:{
4013 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4014 // Match Patterns
4015 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
4016 GIMatchData_info);}()) {
4017 return false;
4018 }
4019 // Apply Patterns
4020 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4021 return true;
4022 }
4023 case GICXXCustomAction_GICombiner107:{
4024 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4025 // Match Patterns
4026 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4027 *State.MIs[0], GIMatchData_info);}()) {
4028 return false;
4029 }
4030 // Apply Patterns
4031 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4032 return true;
4033 }
4034 case GICXXCustomAction_GICombiner108:{
4035 unsigned GIMatchData_select_op_no;
4036 // Match Patterns
4037 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4038 return false;
4039 }
4040 // Apply Patterns
4041 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4042 return true;
4043 }
4044 case GICXXCustomAction_GICombiner109:{
4045 // Match Patterns
4046 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4047 /*OrNegative=*/true);}()) {
4048 return false;
4049 }
4050 // Apply Patterns
4051 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4052 return true;
4053 }
4054 case GICXXCustomAction_GICombiner110:{
4055 // Match Patterns
4056 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4057 return false;
4058 }
4059 // Apply Patterns
4060 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4061 return true;
4062 }
4063 case GICXXCustomAction_GICombiner111:{
4064 // Match Patterns
4065 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4066 return false;
4067 }
4068 // Apply Patterns
4069 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4070 return true;
4071 }
4072 case GICXXCustomAction_GICombiner112:{
4073 // Match Patterns
4074 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4075 return false;
4076 }
4077 // Apply Patterns
4078 Helper.applyUDivByPow2(*State.MIs[0]);
4079 return true;
4080 }
4081 case GICXXCustomAction_GICombiner113:{
4082 // Match Patterns
4083 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4084 return false;
4085 }
4086 // Apply Patterns
4087 Helper.applySDivByPow2(*State.MIs[0]);
4088 return true;
4089 }
4090 case GICXXCustomAction_GICombiner114:{
4091 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4092 // Match Patterns
4093 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4094 return false;
4095 }
4096 // Apply Patterns
4097 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4098 return true;
4099 }
4100 case GICXXCustomAction_GICombiner115:{
4101 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4102 // Match Patterns
4103 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4104 return false;
4105 }
4106 // Apply Patterns
4107 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4108 return true;
4109 }
4110 case GICXXCustomAction_GICombiner116:{
4111 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4112 // Match Patterns
4113 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4114 return false;
4115 }
4116 // Apply Patterns
4117 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4118 return true;
4119 }
4120 case GICXXCustomAction_GICombiner117:{
4121 Register GIMatchData_matchinfo;
4122 // Match Patterns
4123 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4124 return false;
4125 }
4126 // Apply Patterns
4127 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
4128 return true;
4129 }
4130 case GICXXCustomAction_GICombiner118:{
4131 // Match Patterns
4132 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
4133 return false;
4134 }
4135 // Apply Patterns
4136 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4137 return true;
4138 }
4139 case GICXXCustomAction_GICombiner119:{
4140 // Match Patterns
4141 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
4142 return false;
4143 }
4144 // Apply Patterns
4145 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4146 return true;
4147 }
4148 case GICXXCustomAction_GICombiner120:{
4149 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4150 // Match Patterns
4151 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4152 return false;
4153 }
4154 // Apply Patterns
4155 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4156 return true;
4157 }
4158 case GICXXCustomAction_GICombiner121:{
4159 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4160 // Match Patterns
4161 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4162 return false;
4163 }
4164 // Apply Patterns
4165 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4166 return true;
4167 }
4168 case GICXXCustomAction_GICombiner122:{
4169 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4170 // Match Patterns
4171 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4172 return false;
4173 }
4174 // Apply Patterns
4175 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4176 return true;
4177 }
4178 case GICXXCustomAction_GICombiner123:{
4179 SmallVector<Register> GIMatchData_matchinfo;
4180 // Match Patterns
4181 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4182 return false;
4183 }
4184 // Apply Patterns
4185 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4186 return true;
4187 }
4188 case GICXXCustomAction_GICombiner124:{
4189 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4190 // Match Patterns
4191 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4192 return false;
4193 }
4194 // Apply Patterns
4195 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4196 return true;
4197 }
4198 case GICXXCustomAction_GICombiner125:{
4199 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4200 // Match Patterns
4201 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4202 return false;
4203 }
4204 // Apply Patterns
4205 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4206 return true;
4207 }
4208 case GICXXCustomAction_GICombiner126:{
4209 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4210 // Match Patterns
4211 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4212 return false;
4213 }
4214 // Apply Patterns
4215 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4216 return true;
4217 }
4218 case GICXXCustomAction_GICombiner127:{
4219 SmallVector<Register> GIMatchData_matchinfo;
4220 // Match Patterns
4221 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4222 return false;
4223 }
4224 // Apply Patterns
4225 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4226 return true;
4227 }
4228 case GICXXCustomAction_GICombiner128:{
4229 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4230 // Match Patterns
4231 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4232 return false;
4233 }
4234 // Apply Patterns
4235 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4236 return true;
4237 }
4238 case GICXXCustomAction_GICombiner129:{
4239 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4240 // Match Patterns
4241 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4242 return false;
4243 }
4244 // Apply Patterns
4245 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4246 return true;
4247 }
4248 case GICXXCustomAction_GICombiner130:{
4249 Register GIMatchData_matchinfo;
4250 // Match Patterns
4251 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4252 return false;
4253 }
4254 // Apply Patterns
4255 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4256 return true;
4257 }
4258 case GICXXCustomAction_GICombiner131:{
4259 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4260 // Match Patterns
4261 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4262 return false;
4263 }
4264 // Apply Patterns
4265 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4266 return true;
4267 }
4268 case GICXXCustomAction_GICombiner132:{
4269 SmallVector<Register> GIMatchData_info;
4270 // Match Patterns
4271 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4272 return false;
4273 }
4274 // Apply Patterns
4275 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4276 return true;
4277 }
4278 case GICXXCustomAction_GICombiner133:{
4279 Register GIMatchData_src;
4280 // Match Patterns
4281 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4282 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4283 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4284 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4285 return false;
4286
4287 // Check counts match.
4288 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4289 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4290 if (NumMergeSrcs != NumUnmergeDefs)
4291 return false;
4292
4293 // Verify all merge sources match unmerge defs in order.
4294 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4295 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4296 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4297
4298 if (MergeSrc != UnmergeDef)
4299 return false;
4300
4301 if (!MRI.hasOneNonDBGUse(MergeSrc))
4302 return false;
4303 }
4304
4305 // Check size compatibility.
4306 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4307 LLT SrcTy = MRI.getType(GIMatchData_src);
4308 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4309 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4310 return false;
4311
4312 // Check bitcast legality.
4313 if (SrcTy != DstTy) {
4314 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4315 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4316 if (!Helper.isLegalOrBeforeLegalizer(Query))
4317 return false;
4318 }
4319
4320 return true;}()) {
4321 return false;
4322 }
4323 // Apply Patterns
4324 LLT SrcTy = MRI.getType(GIMatchData_src);
4325 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4326
4327 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4328
4329 if (SrcTy == DstTy) {
4330 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4331 } else {
4332 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4333 }
4334
4335 State.MIs[0]->eraseFromParent();
4336 return true;
4337 }
4338 case GICXXCustomAction_GICombiner134:{
4339 SmallVector<APInt, 8> GIMatchData_info;
4340 // Match Patterns
4341 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4342 return false;
4343 }
4344 // Apply Patterns
4345 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4346 return true;
4347 }
4348 case GICXXCustomAction_GICombiner135:{
4349 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4350 // Match Patterns
4351 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4352 return false;
4353 }
4354 // Apply Patterns
4355 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4356 return true;
4357 }
4358 case GICXXCustomAction_GICombiner136:{
4359 // Match Patterns
4360 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4361 return false;
4362 }
4363 // Apply Patterns
4364 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4365 return true;
4366 }
4367 case GICXXCustomAction_GICombiner137:{
4368 // Match Patterns
4369 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4370 return false;
4371 }
4372 // Apply Patterns
4373 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4374 return true;
4375 }
4376 case GICXXCustomAction_GICombiner138:{
4377 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4378 // Match Patterns
4379 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4380 return false;
4381 }
4382 // Apply Patterns
4383 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4384 return true;
4385 }
4386 case GICXXCustomAction_GICombiner139:{
4387 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4388 // Match Patterns
4389 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4390 return false;
4391 }
4392 // Apply Patterns
4393 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4394 return true;
4395 }
4396 case GICXXCustomAction_GICombiner140:{
4397 Register GIMatchData_unmergeSrc;
4398 // Match Patterns
4399 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4400 return false;
4401 }
4402 // Apply Patterns
4403 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4404 return true;
4405 }
4406 case GICXXCustomAction_GICombiner141:{
4407 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4408 // Match Patterns
4409 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4410 return false;
4411 }
4412 // Apply Patterns
4413 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4414 return true;
4415 }
4416 case GICXXCustomAction_GICombiner142:{
4417 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4418 // Match Patterns
4419 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4420 return false;
4421 }
4422 // Apply Patterns
4423 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4424 return true;
4425 }
4426 case GICXXCustomAction_GICombiner143:{
4427 Register GIMatchData_matchinfo;
4428 // Match Patterns
4429 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4430 return false;
4431 }
4432 // Apply Patterns
4433 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4434 return true;
4435 }
4436 case GICXXCustomAction_GICombiner144:{
4437 Register GIMatchData_matchinfo;
4438 // Match Patterns
4439 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4440 return false;
4441 }
4442 // Apply Patterns
4443 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4444 return true;
4445 }
4446 case GICXXCustomAction_GICombiner145:{
4447 LshrOfTruncOfLshr GIMatchData_matchinfo;
4448 // Match Patterns
4449 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4450 return false;
4451 }
4452 // Apply Patterns
4453 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4454 return true;
4455 }
4456 case GICXXCustomAction_GICombiner146:{
4457 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4458 // Match Patterns
4459 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4460 return false;
4461 }
4462 // Apply Patterns
4463 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4464 return true;
4465 }
4466 case GICXXCustomAction_GICombiner147:{
4467 // Match Patterns
4468 if(![&](){return Helper.matchCountZeroToZeroPoison(*State.MIs[0]);}()) {
4469 return false;
4470 }
4471 // Apply Patterns
4472 Helper.applyCountZeroToZeroPoison(*State.MIs[0]);
4473 return true;
4474 }
4475 case GICXXCustomAction_GICombiner148:{
4476 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4477 // Match Patterns
4478 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4479 return false;
4480 }
4481 // Apply Patterns
4482 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4483 return true;
4484 }
4485 case GICXXCustomAction_GICombiner149:{
4486 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4487 // Match Patterns
4488 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4489 return false;
4490 }
4491 // Apply Patterns
4492 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4493 return true;
4494 }
4495 case GICXXCustomAction_GICombiner150:{
4496 // Match Patterns
4497 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());}()) {
4498 return false;
4499 }
4500 // Apply Patterns
4501 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4502 return true;
4503 }
4504 case GICXXCustomAction_GICombiner151:{
4505 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4506 // Match Patterns
4507 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4508 return false;
4509 }
4510 // Apply Patterns
4511 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4512 return true;
4513 }
4514 case GICXXCustomAction_GICombiner152:{
4515 // Match Patterns
4516 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4517 return false;
4518 }
4519 // Apply Patterns
4520 applyUCharToFloat(*State.MIs[0]);
4521 return true;
4522 }
4523 case GICXXCustomAction_GICombiner153:{
4524 CvtF32UByteMatchInfo GIMatchData_matchinfo;
4525 // Match Patterns
4526 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
4527 return false;
4528 }
4529 // Apply Patterns
4530 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
4531 return true;
4532 }
4533 case GICXXCustomAction_GICombiner154:{
4534 MachineInstr * GIMatchData_matchinfo;
4535 // Match Patterns
4536 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4537 return false;
4538 }
4539 // Apply Patterns
4540 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4541 return true;
4542 }
4543 case GICXXCustomAction_GICombiner155:{
4544 // Match Patterns
4545 if(![&](){return Helper.matchFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);}()) {
4546 return false;
4547 }
4548 // Apply Patterns
4549 Helper.applyFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);
4550 return true;
4551 }
4552 case GICXXCustomAction_GICombiner156:{
4553 // Match Patterns
4554 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4555 return false;
4556 }
4557 // Apply Patterns
4558 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4559 return true;
4560 }
4561 case GICXXCustomAction_GICombiner157:{
4562 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4563 // Match Patterns
4564 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4565 return false;
4566 }
4567 // Apply Patterns
4568 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4569 return true;
4570 }
4571 case GICXXCustomAction_GICombiner158:{
4572 unsigned GIMatchData_matchinfo;
4573 // Match Patterns
4574 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4575 return false;
4576 }
4577 // Apply Patterns
4578 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4579 return true;
4580 }
4581 }
4582 llvm_unreachable("Unknown Apply Action");
4583}
4584#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4585#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4586#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4587#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)
4588#else
4589#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4590#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4591#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)
4592#endif
4593const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4594 constexpr static uint8_t MatchTable0[] = {
4595 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(5511), /*)*//*default:*//*Label 118*/ GIMT_Encode4(33225),
4596 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(21974), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4597 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(21986),
4598 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(22936),
4599 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(23948),
4600 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(24196),
4601 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(24298),
4602 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(24421),
4603 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(24517), GIMT_Encode4(0), GIMT_Encode4(0),
4604 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(24634),
4605 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(25206),
4606 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(26340), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4607 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(26582), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4608 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(26597), GIMT_Encode4(0),
4609 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(26664),
4610 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(26741),
4611 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(26806),
4612 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(26818),
4613 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(26833),
4614 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(26876),
4615 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(26931),
4616 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(27006), GIMT_Encode4(0), GIMT_Encode4(0),
4617 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(27070),
4618 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(27092), GIMT_Encode4(0), GIMT_Encode4(0),
4619 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(27114), GIMT_Encode4(0), GIMT_Encode4(0),
4620 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(27136),
4621 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(27148),
4622 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(27160), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4623 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(27172), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4624 /* 486 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(27184), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4625 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(27366),
4626 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(27494), GIMT_Encode4(0), GIMT_Encode4(0),
4627 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(28172), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4628 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(28205),
4629 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(28280),
4630 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(28513),
4631 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(28643),
4632 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(29006),
4633 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(29363),
4634 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(29702),
4635 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(29745),
4636 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(29788),
4637 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(29812),
4638 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(29836),
4639 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(29881), GIMT_Encode4(0), GIMT_Encode4(0),
4640 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(29893),
4641 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(30215),
4642 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(30238),
4643 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(30250),
4644 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(30262),
4645 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(30274),
4646 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(30297),
4647 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(30309),
4648 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(30321),
4649 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(30333),
4650 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(30367),
4651 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(30401),
4652 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(30424),
4653 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(30436),
4654 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(30448), GIMT_Encode4(0), GIMT_Encode4(0),
4655 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(30460),
4656 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(30483),
4657 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(30506),
4658 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(30518),
4659 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(30530),
4660 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(30542), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4661 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(30554),
4662 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(30695),
4663 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(30784),
4664 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(30925),
4665 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(30982),
4666 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(31039),
4667 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(31155), GIMT_Encode4(0), GIMT_Encode4(0),
4668 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(31178), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4669 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(31200), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4670 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(31222),
4671 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(31284),
4672 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(31306),
4673 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(31372),
4674 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(31394),
4675 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(31416),
4676 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(31464), GIMT_Encode4(0), GIMT_Encode4(0),
4677 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(31512),
4678 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(31612), GIMT_Encode4(0),
4679 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(31624),
4680 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(31677),
4681 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(31722),
4682 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(31767),
4683 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(31779),
4684 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(31791),
4685 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(31836),
4686 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(31881),
4687 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(31893), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4688 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(31905), GIMT_Encode4(0),
4689 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(32030),
4690 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(32064),
4691 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(32098),
4692 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(32132),
4693 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(32166), GIMT_Encode4(0), GIMT_Encode4(0),
4694 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(32199), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4695 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(32211),
4696 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(32341),
4697 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(32718), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4698 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(32791),
4699 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(32814),
4700 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(32826),
4701 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(32860), GIMT_Encode4(0),
4702 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(32883),
4703 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(32895),
4704 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(32907), GIMT_Encode4(0), GIMT_Encode4(0),
4705 /* 1010 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(33007), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4706 /* 1058 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(33029),
4707 /* 1062 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(33111),
4708 /* 1066 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(33133),
4709 /* 1070 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(33155), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4710 /* 21958 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 114*/ GIMT_Encode4(33177),
4711 /* 21962 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 115*/ GIMT_Encode4(33189),
4712 /* 21966 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 116*/ GIMT_Encode4(33201),
4713 /* 21970 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 117*/ GIMT_Encode4(33213),
4714 /* 21974 */ // Label 0: @21974
4715 /* 21974 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(21985), // Rule ID 19 //
4716 /* 21979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4717 /* 21982 */ // MIs[0] d
4718 /* 21982 */ // No operand predicates
4719 /* 21982 */ // MIs[0] s
4720 /* 21982 */ // No operand predicates
4721 /* 21982 */ // Combiner Rule #19: copy_prop
4722 /* 21982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4723 /* 21985 */ // Label 119: @21985
4724 /* 21985 */ GIM_Reject,
4725 /* 21986 */ // Label 1: @21986
4726 /* 21986 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(21997), // Rule ID 272 //
4727 /* 21991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4728 /* 21994 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ADD'
4729 /* 21994 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
4730 /* 21997 */ // Label 120: @21997
4731 /* 21997 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(22008), // Rule ID 332 //
4732 /* 22002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4733 /* 22005 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ADD'
4734 /* 22005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4735 /* 22008 */ // Label 121: @22008
4736 /* 22008 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(22019), // Rule ID 369 //
4737 /* 22013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
4738 /* 22016 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4739 /* 22016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4740 /* 22019 */ // Label 122: @22019
4741 /* 22019 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(22107), // Rule ID 439 //
4742 /* 22024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4743 /* 22027 */ // MIs[0] dst
4744 /* 22027 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4745 /* 22031 */ // MIs[0] __add_shift_match_0.shl_neg
4746 /* 22031 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4747 /* 22035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4748 /* 22039 */ // MIs[1] __add_shift_match_0.neg_y
4749 /* 22039 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4750 /* 22043 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4751 /* 22047 */ // MIs[2] __add_shift_match_0.zero
4752 /* 22047 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4753 /* 22051 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4754 /* 22055 */ // MIs[3] Operand 1
4755 /* 22055 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4756 /* 22066 */ // MIs[2] y
4757 /* 22066 */ // No operand predicates
4758 /* 22066 */ // MIs[1] n
4759 /* 22066 */ // No operand predicates
4760 /* 22066 */ // MIs[0] x
4761 /* 22066 */ // No operand predicates
4762 /* 22066 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
4763 /* 22070 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4764 /* 22072 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4765 /* 22075 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[1]]
4766 /* 22075 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4767 /* 22078 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4768 /* 22083 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4769 /* 22087 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4770 /* 22091 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4771 /* 22095 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4772 /* 22099 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4773 /* 22103 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4774 /* 22106 */ GIR_EraseRootFromParent_Done,
4775 /* 22107 */ // Label 123: @22107
4776 /* 22107 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(22195), // Rule ID 438 //
4777 /* 22112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4778 /* 22115 */ // MIs[0] dst
4779 /* 22115 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4780 /* 22119 */ // MIs[0] x
4781 /* 22119 */ // No operand predicates
4782 /* 22119 */ // MIs[0] __add_shift_match_0.shl_neg
4783 /* 22119 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4784 /* 22123 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4785 /* 22127 */ // MIs[1] __add_shift_match_0.neg_y
4786 /* 22127 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4787 /* 22131 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4788 /* 22135 */ // MIs[2] __add_shift_match_0.zero
4789 /* 22135 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4790 /* 22139 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4791 /* 22143 */ // MIs[3] Operand 1
4792 /* 22143 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4793 /* 22154 */ // MIs[2] y
4794 /* 22154 */ // No operand predicates
4795 /* 22154 */ // MIs[1] n
4796 /* 22154 */ // No operand predicates
4797 /* 22154 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
4798 /* 22158 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4799 /* 22160 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4800 /* 22163 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[0]]
4801 /* 22163 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4802 /* 22166 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4803 /* 22171 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4804 /* 22175 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4805 /* 22179 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4806 /* 22183 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4807 /* 22187 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4808 /* 22191 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4809 /* 22194 */ GIR_EraseRootFromParent_Done,
4810 /* 22195 */ // Label 124: @22195
4811 /* 22195 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(22229), // Rule ID 2 //
4812 /* 22200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4813 /* 22203 */ // MIs[0] root
4814 /* 22203 */ // No operand predicates
4815 /* 22203 */ // MIs[0] sub
4816 /* 22203 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4817 /* 22207 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4818 /* 22211 */ // MIs[1] Operand 1
4819 /* 22211 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4820 /* 22215 */ // MIs[1] A
4821 /* 22215 */ // No operand predicates
4822 /* 22215 */ // MIs[0] B
4823 /* 22215 */ // No operand predicates
4824 /* 22215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4825 /* 22217 */ // Combiner Rule #2: ZeroMinusAPlusB
4826 /* 22217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4827 /* 22220 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4828 /* 22222 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4829 /* 22224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4830 /* 22228 */ GIR_EraseRootFromParent_Done,
4831 /* 22229 */ // Label 125: @22229
4832 /* 22229 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(22278), // Rule ID 160 //
4833 /* 22234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4834 /* 22237 */ // MIs[0] dst
4835 /* 22237 */ // No operand predicates
4836 /* 22237 */ // MIs[0] __simplify_add_to_sub_match_0.neg
4837 /* 22237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4838 /* 22241 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4839 /* 22245 */ // MIs[1] __simplify_add_to_sub_match_0.zero
4840 /* 22245 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4841 /* 22249 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4842 /* 22253 */ // MIs[2] Operand 1
4843 /* 22253 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
4844 /* 22264 */ // MIs[1] newrhs
4845 /* 22264 */ // No operand predicates
4846 /* 22264 */ // MIs[0] newlhs
4847 /* 22264 */ // No operand predicates
4848 /* 22264 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4849 /* 22266 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
4850 /* 22266 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4851 /* 22269 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4852 /* 22271 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
4853 /* 22273 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
4854 /* 22277 */ GIR_EraseRootFromParent_Done,
4855 /* 22278 */ // Label 126: @22278
4856 /* 22278 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(22315), // Rule ID 18 //
4857 /* 22283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4858 /* 22286 */ // MIs[0] root
4859 /* 22286 */ // No operand predicates
4860 /* 22286 */ // MIs[0] sub
4861 /* 22286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4862 /* 22290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4863 /* 22294 */ // MIs[1] A
4864 /* 22294 */ // No operand predicates
4865 /* 22294 */ // MIs[1] c1
4866 /* 22294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4867 /* 22298 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4868 /* 22302 */ // MIs[2] imm1
4869 /* 22302 */ // No operand predicates
4870 /* 22302 */ // MIs[0] c2
4871 /* 22302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4872 /* 22306 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4873 /* 22310 */ // MIs[3] imm2
4874 /* 22310 */ // No operand predicates
4875 /* 22310 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4876 /* 22312 */ // Combiner Rule #18: AMinusC1PlusC2
4877 /* 22312 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4878 /* 22315 */ // Label 127: @22315
4879 /* 22315 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(22349), // Rule ID 5 //
4880 /* 22320 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4881 /* 22323 */ // MIs[0] root
4882 /* 22323 */ // No operand predicates
4883 /* 22323 */ // MIs[0] sub
4884 /* 22323 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4885 /* 22327 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4886 /* 22331 */ // MIs[1] B
4887 /* 22331 */ // No operand predicates
4888 /* 22331 */ // MIs[1] A
4889 /* 22331 */ // No operand predicates
4890 /* 22331 */ // MIs[0] A
4891 /* 22331 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4892 /* 22336 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4893 /* 22341 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4894 /* 22343 */ // Combiner Rule #5: BMinusAPlusA
4895 /* 22343 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4896 /* 22348 */ GIR_EraseRootFromParent_Done,
4897 /* 22349 */ // Label 128: @22349
4898 /* 22349 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(22383), // Rule ID 148 //
4899 /* 22354 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4900 /* 22357 */ // MIs[0] dst
4901 /* 22357 */ // No operand predicates
4902 /* 22357 */ // MIs[0] __add_sub_reg_match_0.tmp
4903 /* 22357 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4904 /* 22361 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4905 /* 22365 */ // MIs[1] src
4906 /* 22365 */ // No operand predicates
4907 /* 22365 */ // MIs[1] __add_sub_reg_match_0.x
4908 /* 22365 */ // No operand predicates
4909 /* 22365 */ // MIs[0] __add_sub_reg_match_0.x
4910 /* 22365 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4911 /* 22370 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4912 /* 22375 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4913 /* 22377 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4914 /* 22377 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4915 /* 22382 */ GIR_EraseRootFromParent_Done,
4916 /* 22383 */ // Label 129: @22383
4917 /* 22383 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(22428), // Rule ID 7 //
4918 /* 22388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4919 /* 22391 */ // MIs[0] root
4920 /* 22391 */ // No operand predicates
4921 /* 22391 */ // MIs[0] sub1
4922 /* 22391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4923 /* 22395 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4924 /* 22399 */ // MIs[1] A
4925 /* 22399 */ // No operand predicates
4926 /* 22399 */ // MIs[1] B
4927 /* 22399 */ // No operand predicates
4928 /* 22399 */ // MIs[0] sub2
4929 /* 22399 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4930 /* 22403 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4931 /* 22407 */ // MIs[2] B
4932 /* 22407 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4933 /* 22412 */ // MIs[2] C
4934 /* 22412 */ // No operand predicates
4935 /* 22412 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4936 /* 22414 */ // Combiner Rule #7: AMinusBPlusBMinusC
4937 /* 22414 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4938 /* 22417 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4939 /* 22419 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4940 /* 22423 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4941 /* 22427 */ GIR_EraseRootFromParent_Done,
4942 /* 22428 */ // Label 130: @22428
4943 /* 22428 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(22473), // Rule ID 6 //
4944 /* 22433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4945 /* 22436 */ // MIs[0] root
4946 /* 22436 */ // No operand predicates
4947 /* 22436 */ // MIs[0] sub1
4948 /* 22436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4949 /* 22440 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4950 /* 22444 */ // MIs[1] A
4951 /* 22444 */ // No operand predicates
4952 /* 22444 */ // MIs[1] B
4953 /* 22444 */ // No operand predicates
4954 /* 22444 */ // MIs[0] sub2
4955 /* 22444 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4956 /* 22448 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4957 /* 22452 */ // MIs[2] C
4958 /* 22452 */ // No operand predicates
4959 /* 22452 */ // MIs[2] A
4960 /* 22452 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4961 /* 22457 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4962 /* 22459 */ // Combiner Rule #6: AMinusBPlusCMinusA
4963 /* 22459 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4964 /* 22462 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4965 /* 22464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4966 /* 22468 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4967 /* 22472 */ GIR_EraseRootFromParent_Done,
4968 /* 22473 */ // Label 131: @22473
4969 /* 22473 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(22528), // Rule ID 22 //
4970 /* 22478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4971 /* 22481 */ // MIs[0] dst
4972 /* 22481 */ // No operand predicates
4973 /* 22481 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
4974 /* 22481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4975 /* 22485 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4976 /* 22489 */ // MIs[1] ptr
4977 /* 22489 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
4978 /* 22493 */ // MIs[0] other
4979 /* 22493 */ // No operand predicates
4980 /* 22493 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
4981 /* 22497 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4982 /* 22499 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4983 /* 22502 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
4984 /* 22502 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
4985 /* 22505 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4986 /* 22510 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
4987 /* 22514 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
4988 /* 22516 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4989 /* 22520 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4990 /* 22524 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4991 /* 22527 */ GIR_EraseRootFromParent_Done,
4992 /* 22528 */ // Label 132: @22528
4993 /* 22528 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(22563), // Rule ID 46 //
4994 /* 22533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
4995 /* 22536 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4996 /* 22542 */ // MIs[0] root
4997 /* 22542 */ // No operand predicates
4998 /* 22542 */ // MIs[0] left
4999 /* 22542 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5000 /* 22546 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5001 /* 22550 */ // MIs[1] imm1
5002 /* 22550 */ // No operand predicates
5003 /* 22550 */ // MIs[0] right
5004 /* 22550 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5005 /* 22554 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
5006 /* 22558 */ // MIs[2] imm2
5007 /* 22558 */ // No operand predicates
5008 /* 22558 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5009 /* 22560 */ // Combiner Rule #42: add_of_vscale
5010 /* 22560 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
5011 /* 22563 */ // Label 133: @22563
5012 /* 22563 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(22584), // Rule ID 104 //
5013 /* 22568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5014 /* 22571 */ // MIs[0] dst
5015 /* 22571 */ // No operand predicates
5016 /* 22571 */ // MIs[0] __propagate_undef_any_op_match_0.x
5017 /* 22571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5018 /* 22575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5019 /* 22579 */ // MIs[0] __propagate_undef_any_op_match_0.y
5020 /* 22579 */ // No operand predicates
5021 /* 22579 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5022 /* 22581 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
5023 /* 22581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5024 /* 22584 */ // Label 134: @22584
5025 /* 22584 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(22618), // Rule ID 3 //
5026 /* 22589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
5027 /* 22592 */ // MIs[0] root
5028 /* 22592 */ // No operand predicates
5029 /* 22592 */ // MIs[0] A
5030 /* 22592 */ // No operand predicates
5031 /* 22592 */ // MIs[0] sub
5032 /* 22592 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5033 /* 22596 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5034 /* 22600 */ // MIs[1] Operand 1
5035 /* 22600 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5036 /* 22604 */ // MIs[1] B
5037 /* 22604 */ // No operand predicates
5038 /* 22604 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5039 /* 22606 */ // Combiner Rule #3: APlusZeroMinusB
5040 /* 22606 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5041 /* 22609 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5042 /* 22611 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5043 /* 22613 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5044 /* 22617 */ GIR_EraseRootFromParent_Done,
5045 /* 22618 */ // Label 135: @22618
5046 /* 22618 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(22667), // Rule ID 161 //
5047 /* 22623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5048 /* 22626 */ // MIs[0] dst
5049 /* 22626 */ // No operand predicates
5050 /* 22626 */ // MIs[0] newlhs
5051 /* 22626 */ // No operand predicates
5052 /* 22626 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5053 /* 22626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5054 /* 22630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5055 /* 22634 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5056 /* 22634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5057 /* 22638 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5058 /* 22642 */ // MIs[2] Operand 1
5059 /* 22642 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5060 /* 22653 */ // MIs[1] newrhs
5061 /* 22653 */ // No operand predicates
5062 /* 22653 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5063 /* 22655 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
5064 /* 22655 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5065 /* 22658 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5066 /* 22660 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
5067 /* 22662 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5068 /* 22666 */ GIR_EraseRootFromParent_Done,
5069 /* 22667 */ // Label 136: @22667
5070 /* 22667 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(22701), // Rule ID 4 //
5071 /* 22672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5072 /* 22675 */ // MIs[0] root
5073 /* 22675 */ // No operand predicates
5074 /* 22675 */ // MIs[0] A
5075 /* 22675 */ // No operand predicates
5076 /* 22675 */ // MIs[0] sub
5077 /* 22675 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5078 /* 22679 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5079 /* 22683 */ // MIs[1] B
5080 /* 22683 */ // No operand predicates
5081 /* 22683 */ // MIs[1] A
5082 /* 22683 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5083 /* 22688 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5084 /* 22693 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5085 /* 22695 */ // Combiner Rule #4: APlusBMinusB
5086 /* 22695 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5087 /* 22700 */ GIR_EraseRootFromParent_Done,
5088 /* 22701 */ // Label 137: @22701
5089 /* 22701 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(22735), // Rule ID 147 //
5090 /* 22706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
5091 /* 22709 */ // MIs[0] dst
5092 /* 22709 */ // No operand predicates
5093 /* 22709 */ // MIs[0] __add_sub_reg_match_0.x
5094 /* 22709 */ // No operand predicates
5095 /* 22709 */ // MIs[0] __add_sub_reg_match_0.tmp
5096 /* 22709 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5097 /* 22713 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5098 /* 22717 */ // MIs[1] src
5099 /* 22717 */ // No operand predicates
5100 /* 22717 */ // MIs[1] __add_sub_reg_match_0.x
5101 /* 22717 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5102 /* 22722 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5103 /* 22727 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5104 /* 22729 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
5105 /* 22729 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5106 /* 22734 */ GIR_EraseRootFromParent_Done,
5107 /* 22735 */ // Label 138: @22735
5108 /* 22735 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(22780), // Rule ID 8 //
5109 /* 22740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5110 /* 22743 */ // MIs[0] root
5111 /* 22743 */ // No operand predicates
5112 /* 22743 */ // MIs[0] A
5113 /* 22743 */ // No operand predicates
5114 /* 22743 */ // MIs[0] sub1
5115 /* 22743 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5116 /* 22747 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5117 /* 22751 */ // MIs[1] B
5118 /* 22751 */ // No operand predicates
5119 /* 22751 */ // MIs[1] add1
5120 /* 22751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5121 /* 22755 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5122 /* 22759 */ // MIs[2] A
5123 /* 22759 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5124 /* 22764 */ // MIs[2] C
5125 /* 22764 */ // No operand predicates
5126 /* 22764 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5127 /* 22766 */ // Combiner Rule #8: APlusBMinusAplusC
5128 /* 22766 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5129 /* 22769 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5130 /* 22771 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5131 /* 22775 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5132 /* 22779 */ GIR_EraseRootFromParent_Done,
5133 /* 22780 */ // Label 139: @22780
5134 /* 22780 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(22825), // Rule ID 10 //
5135 /* 22785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5136 /* 22788 */ // MIs[0] root
5137 /* 22788 */ // No operand predicates
5138 /* 22788 */ // MIs[0] A
5139 /* 22788 */ // No operand predicates
5140 /* 22788 */ // MIs[0] sub1
5141 /* 22788 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5142 /* 22792 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5143 /* 22796 */ // MIs[1] B
5144 /* 22796 */ // No operand predicates
5145 /* 22796 */ // MIs[1] add1
5146 /* 22796 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5147 /* 22800 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5148 /* 22804 */ // MIs[2] C
5149 /* 22804 */ // No operand predicates
5150 /* 22804 */ // MIs[2] A
5151 /* 22804 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5152 /* 22809 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5153 /* 22811 */ // Combiner Rule #10: APlusBMinusCPlusA
5154 /* 22811 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5155 /* 22814 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5156 /* 22816 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5157 /* 22820 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5158 /* 22824 */ GIR_EraseRootFromParent_Done,
5159 /* 22825 */ // Label 140: @22825
5160 /* 22825 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(22880), // Rule ID 23 //
5161 /* 22830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5162 /* 22833 */ // MIs[0] dst
5163 /* 22833 */ // No operand predicates
5164 /* 22833 */ // MIs[0] other
5165 /* 22833 */ // No operand predicates
5166 /* 22833 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5167 /* 22833 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5168 /* 22837 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5169 /* 22841 */ // MIs[1] ptr
5170 /* 22841 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5171 /* 22845 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5172 /* 22849 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5173 /* 22851 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5174 /* 22854 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
5175 /* 22854 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5176 /* 22857 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5177 /* 22862 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5178 /* 22866 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
5179 /* 22868 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5180 /* 22872 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5181 /* 22876 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5182 /* 22879 */ GIR_EraseRootFromParent_Done,
5183 /* 22880 */ // Label 141: @22880
5184 /* 22880 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(22901), // Rule ID 107 //
5185 /* 22885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5186 /* 22888 */ // MIs[0] dst
5187 /* 22888 */ // No operand predicates
5188 /* 22888 */ // MIs[0] __propagate_undef_any_op_match_0.x
5189 /* 22888 */ // No operand predicates
5190 /* 22888 */ // MIs[0] __propagate_undef_any_op_match_0.y
5191 /* 22888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5192 /* 22892 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5193 /* 22896 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5194 /* 22898 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
5195 /* 22898 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5196 /* 22901 */ // Label 142: @22901
5197 /* 22901 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(22924), // Rule ID 119 //
5198 /* 22906 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5199 /* 22909 */ // MIs[0] dst
5200 /* 22909 */ // No operand predicates
5201 /* 22909 */ // MIs[0] lhs
5202 /* 22909 */ // No operand predicates
5203 /* 22909 */ // MIs[0] Operand 2
5204 /* 22909 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5205 /* 22913 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5206 /* 22918 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
5207 /* 22918 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5208 /* 22923 */ GIR_EraseRootFromParent_Done,
5209 /* 22924 */ // Label 143: @22924
5210 /* 22924 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(22935), // Rule ID 169 //
5211 /* 22929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5212 /* 22932 */ // MIs[0] root
5213 /* 22932 */ // No operand predicates
5214 /* 22932 */ // MIs[0] src1
5215 /* 22932 */ // No operand predicates
5216 /* 22932 */ // MIs[0] src2
5217 /* 22932 */ // No operand predicates
5218 /* 22932 */ // Combiner Rule #116: reassoc_comm_binops
5219 /* 22932 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
5220 /* 22935 */ // Label 144: @22935
5221 /* 22935 */ GIM_Reject,
5222 /* 22936 */ // Label 2: @22936
5223 /* 22936 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(22947), // Rule ID 280 //
5224 /* 22941 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5225 /* 22944 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SUB'
5226 /* 22944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5227 /* 22947 */ // Label 145: @22947
5228 /* 22947 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(22958), // Rule ID 333 //
5229 /* 22952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5230 /* 22955 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SUB'
5231 /* 22955 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5232 /* 22958 */ // Label 146: @22958
5233 /* 22958 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(23035), // Rule ID 440 //
5234 /* 22963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
5235 /* 22966 */ // MIs[0] dst
5236 /* 22966 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5237 /* 22970 */ // MIs[0] sub1
5238 /* 22970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5239 /* 22974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5240 /* 22978 */ // MIs[1] a
5241 /* 22978 */ // No operand predicates
5242 /* 22978 */ // MIs[1] b
5243 /* 22978 */ // No operand predicates
5244 /* 22978 */ // MIs[0] Operand 2
5245 /* 22978 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5246 /* 22982 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5247 /* 22986 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5248 /* 22988 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5249 /* 22991 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5250 /* 23001 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5251 /* 23004 */ // Combiner Rule #268: sub_one_from_sub
5252 /* 23004 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5253 /* 23007 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5254 /* 23012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5255 /* 23016 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5256 /* 23019 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5257 /* 23023 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5258 /* 23027 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5259 /* 23030 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5260 /* 23034 */ GIR_EraseRootFromParent_Done,
5261 /* 23035 */ // Label 147: @23035
5262 /* 23035 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(23129), // Rule ID 446 //
5263 /* 23040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
5264 /* 23043 */ // MIs[0] root
5265 /* 23043 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5266 /* 23047 */ // MIs[0] Operand 1
5267 /* 23047 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5268 /* 23051 */ // MIs[0] max
5269 /* 23051 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5270 /* 23055 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5271 /* 23059 */ // MIs[1] A
5272 /* 23059 */ // No operand predicates
5273 /* 23059 */ // MIs[1] sub
5274 /* 23059 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5275 /* 23063 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5276 /* 23067 */ // MIs[2] Operand 1
5277 /* 23067 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5278 /* 23071 */ // MIs[2] A
5279 /* 23071 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5280 /* 23076 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
5281 /* 23080 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5282 /* 23082 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5283 /* 23085 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5284 /* 23095 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5285 /* 23098 */ // Combiner Rule #272: SubSmaxSub
5286 /* 23098 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5287 /* 23101 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5288 /* 23106 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5289 /* 23109 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5290 /* 23113 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5291 /* 23117 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5292 /* 23121 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5293 /* 23125 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5294 /* 23128 */ GIR_EraseRootFromParent_Done,
5295 /* 23129 */ // Label 148: @23129
5296 /* 23129 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(23223), // Rule ID 447 //
5297 /* 23134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
5298 /* 23137 */ // MIs[0] root
5299 /* 23137 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5300 /* 23141 */ // MIs[0] Operand 1
5301 /* 23141 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5302 /* 23145 */ // MIs[0] max
5303 /* 23145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5304 /* 23149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5305 /* 23153 */ // MIs[1] A
5306 /* 23153 */ // No operand predicates
5307 /* 23153 */ // MIs[1] sub
5308 /* 23153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5309 /* 23157 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5310 /* 23161 */ // MIs[2] Operand 1
5311 /* 23161 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5312 /* 23165 */ // MIs[2] A
5313 /* 23165 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5314 /* 23170 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
5315 /* 23174 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5316 /* 23176 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5317 /* 23179 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5318 /* 23189 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5319 /* 23192 */ // Combiner Rule #273: SubUmaxSub
5320 /* 23192 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5321 /* 23195 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5322 /* 23200 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5323 /* 23203 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5324 /* 23207 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5325 /* 23211 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5326 /* 23215 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5327 /* 23219 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5328 /* 23222 */ GIR_EraseRootFromParent_Done,
5329 /* 23223 */ // Label 149: @23223
5330 /* 23223 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(23263), // Rule ID 444 //
5331 /* 23228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
5332 /* 23231 */ // MIs[0] root
5333 /* 23231 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5334 /* 23235 */ // MIs[0] Operand 1
5335 /* 23235 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5336 /* 23239 */ // MIs[0] op1
5337 /* 23239 */ // No operand predicates
5338 /* 23239 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5339 /* 23242 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5340 /* 23252 */ // Combiner Rule #270: sub_minus_one
5341 /* 23252 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5342 /* 23255 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5343 /* 23257 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5344 /* 23259 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5345 /* 23262 */ GIR_EraseRootFromParent_Done,
5346 /* 23263 */ // Label 150: @23263
5347 /* 23263 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(23363), // Rule ID 445 //
5348 /* 23268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
5349 /* 23271 */ // MIs[0] d
5350 /* 23271 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5351 /* 23275 */ // MIs[0] a
5352 /* 23275 */ // No operand predicates
5353 /* 23275 */ // MIs[0] mul
5354 /* 23275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5355 /* 23279 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5356 /* 23283 */ // MIs[1] x
5357 /* 23283 */ // No operand predicates
5358 /* 23283 */ // MIs[1] c
5359 /* 23283 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5360 /* 23287 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5361 /* 23291 */ // MIs[2] imm
5362 /* 23291 */ // No operand predicates
5363 /* 23291 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5364 /* 23295 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5365 /* 23297 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5366 /* 23300 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5367 /* 23303 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5368 /* 23313 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5369 /* 23316 */ // Combiner Rule #271: sub_of_mul_const
5370 /* 23316 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5371 /* 23319 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5372 /* 23324 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5373 /* 23327 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5374 /* 23331 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5375 /* 23335 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5376 /* 23340 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5377 /* 23344 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5378 /* 23347 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5379 /* 23351 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5380 /* 23355 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5381 /* 23359 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5382 /* 23362 */ GIR_EraseRootFromParent_Done,
5383 /* 23363 */ // Label 151: @23363
5384 /* 23363 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(23424), // Rule ID 9 //
5385 /* 23368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5386 /* 23371 */ // MIs[0] root
5387 /* 23371 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5388 /* 23375 */ // MIs[0] A
5389 /* 23375 */ // No operand predicates
5390 /* 23375 */ // MIs[0] sub1
5391 /* 23375 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5392 /* 23379 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5393 /* 23383 */ // MIs[1] B
5394 /* 23383 */ // No operand predicates
5395 /* 23383 */ // MIs[1] C
5396 /* 23383 */ // No operand predicates
5397 /* 23383 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5398 /* 23387 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5399 /* 23389 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5400 /* 23392 */ // Combiner Rule #9: AMinusBMinusC
5401 /* 23392 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5402 /* 23395 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5403 /* 23400 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5404 /* 23404 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5405 /* 23408 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5406 /* 23412 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5407 /* 23416 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5408 /* 23420 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5409 /* 23423 */ GIR_EraseRootFromParent_Done,
5410 /* 23424 */ // Label 152: @23424
5411 /* 23424 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(23469), // Rule ID 0 //
5412 /* 23429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5413 /* 23432 */ // MIs[0] root
5414 /* 23432 */ // No operand predicates
5415 /* 23432 */ // MIs[0] add1
5416 /* 23432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5417 /* 23436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5418 /* 23440 */ // MIs[1] A
5419 /* 23440 */ // No operand predicates
5420 /* 23440 */ // MIs[1] sub1
5421 /* 23440 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5422 /* 23444 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5423 /* 23448 */ // MIs[2] B
5424 /* 23448 */ // No operand predicates
5425 /* 23448 */ // MIs[2] C
5426 /* 23448 */ // No operand predicates
5427 /* 23448 */ // MIs[0] B
5428 /* 23448 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5429 /* 23453 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5430 /* 23455 */ // Combiner Rule #0: APlusBMinusCMinusB
5431 /* 23455 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5432 /* 23458 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5433 /* 23460 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5434 /* 23464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5435 /* 23468 */ GIR_EraseRootFromParent_Done,
5436 /* 23469 */ // Label 153: @23469
5437 /* 23469 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(23506), // Rule ID 14 //
5438 /* 23474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5439 /* 23477 */ // MIs[0] root
5440 /* 23477 */ // No operand predicates
5441 /* 23477 */ // MIs[0] add
5442 /* 23477 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5443 /* 23481 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5444 /* 23485 */ // MIs[1] A
5445 /* 23485 */ // No operand predicates
5446 /* 23485 */ // MIs[1] c1
5447 /* 23485 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5448 /* 23489 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5449 /* 23493 */ // MIs[2] imm1
5450 /* 23493 */ // No operand predicates
5451 /* 23493 */ // MIs[0] c2
5452 /* 23493 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5453 /* 23497 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5454 /* 23501 */ // MIs[3] imm2
5455 /* 23501 */ // No operand predicates
5456 /* 23501 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5457 /* 23503 */ // Combiner Rule #14: APlusC1MinusC2
5458 /* 23503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5459 /* 23506 */ // Label 154: @23506
5460 /* 23506 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(23543), // Rule ID 17 //
5461 /* 23511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5462 /* 23514 */ // MIs[0] root
5463 /* 23514 */ // No operand predicates
5464 /* 23514 */ // MIs[0] sub1
5465 /* 23514 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5466 /* 23518 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5467 /* 23522 */ // MIs[1] c1
5468 /* 23522 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5469 /* 23526 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5470 /* 23530 */ // MIs[2] imm1
5471 /* 23530 */ // No operand predicates
5472 /* 23530 */ // MIs[1] A
5473 /* 23530 */ // No operand predicates
5474 /* 23530 */ // MIs[0] c2
5475 /* 23530 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5476 /* 23534 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5477 /* 23538 */ // MIs[3] imm2
5478 /* 23538 */ // No operand predicates
5479 /* 23538 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5480 /* 23540 */ // Combiner Rule #17: C1Minus2MinusC2
5481 /* 23540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5482 /* 23543 */ // Label 155: @23543
5483 /* 23543 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(23588), // Rule ID 1 //
5484 /* 23548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5485 /* 23551 */ // MIs[0] root
5486 /* 23551 */ // No operand predicates
5487 /* 23551 */ // MIs[0] sub2
5488 /* 23551 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5489 /* 23555 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5490 /* 23559 */ // MIs[1] A
5491 /* 23559 */ // No operand predicates
5492 /* 23559 */ // MIs[1] sub1
5493 /* 23559 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5494 /* 23563 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5495 /* 23567 */ // MIs[2] B
5496 /* 23567 */ // No operand predicates
5497 /* 23567 */ // MIs[2] C
5498 /* 23567 */ // No operand predicates
5499 /* 23567 */ // MIs[0] C
5500 /* 23567 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5501 /* 23572 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5502 /* 23574 */ // Combiner Rule #1: AMinusBMinusCMinusC
5503 /* 23574 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5504 /* 23577 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5505 /* 23579 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5506 /* 23583 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5507 /* 23587 */ GIR_EraseRootFromParent_Done,
5508 /* 23588 */ // Label 156: @23588
5509 /* 23588 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(23625), // Rule ID 16 //
5510 /* 23593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5511 /* 23596 */ // MIs[0] root
5512 /* 23596 */ // No operand predicates
5513 /* 23596 */ // MIs[0] sub1
5514 /* 23596 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5515 /* 23600 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5516 /* 23604 */ // MIs[1] A
5517 /* 23604 */ // No operand predicates
5518 /* 23604 */ // MIs[1] c1
5519 /* 23604 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5520 /* 23608 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5521 /* 23612 */ // MIs[2] imm1
5522 /* 23612 */ // No operand predicates
5523 /* 23612 */ // MIs[0] c2
5524 /* 23612 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5525 /* 23616 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5526 /* 23620 */ // MIs[3] imm2
5527 /* 23620 */ // No operand predicates
5528 /* 23620 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5529 /* 23622 */ // Combiner Rule #16: AMinusC1MinusC2
5530 /* 23622 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5531 /* 23625 */ // Label 157: @23625
5532 /* 23625 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(23646), // Rule ID 105 //
5533 /* 23630 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5534 /* 23633 */ // MIs[0] dst
5535 /* 23633 */ // No operand predicates
5536 /* 23633 */ // MIs[0] __propagate_undef_any_op_match_0.x
5537 /* 23633 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5538 /* 23637 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5539 /* 23641 */ // MIs[0] __propagate_undef_any_op_match_0.y
5540 /* 23641 */ // No operand predicates
5541 /* 23641 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5542 /* 23643 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
5543 /* 23643 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5544 /* 23646 */ // Label 158: @23646
5545 /* 23646 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(23689), // Rule ID 179 //
5546 /* 23651 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5547 /* 23654 */ // MIs[0] dst
5548 /* 23654 */ // No operand predicates
5549 /* 23654 */ // MIs[0] Operand 1
5550 /* 23654 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5551 /* 23658 */ // MIs[0] and
5552 /* 23658 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5553 /* 23662 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5554 /* 23666 */ // MIs[1] x
5555 /* 23666 */ // No operand predicates
5556 /* 23666 */ // MIs[1] Operand 2
5557 /* 23666 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5558 /* 23670 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5559 /* 23674 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5560 /* 23676 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5561 /* 23676 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5562 /* 23679 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5563 /* 23681 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5564 /* 23685 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5565 /* 23688 */ GIR_EraseRootFromParent_Done,
5566 /* 23689 */ // Label 159: @23689
5567 /* 23689 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(23726), // Rule ID 15 //
5568 /* 23694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5569 /* 23697 */ // MIs[0] root
5570 /* 23697 */ // No operand predicates
5571 /* 23697 */ // MIs[0] c2
5572 /* 23697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5573 /* 23701 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5574 /* 23705 */ // MIs[1] imm2
5575 /* 23705 */ // No operand predicates
5576 /* 23705 */ // MIs[0] add
5577 /* 23705 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5578 /* 23709 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5579 /* 23713 */ // MIs[2] A
5580 /* 23713 */ // No operand predicates
5581 /* 23713 */ // MIs[2] c1
5582 /* 23713 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5583 /* 23717 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5584 /* 23721 */ // MIs[3] imm1
5585 /* 23721 */ // No operand predicates
5586 /* 23721 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5587 /* 23723 */ // Combiner Rule #15: C2MinusAPlusC1
5588 /* 23723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5589 /* 23726 */ // Label 160: @23726
5590 /* 23726 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(23765), // Rule ID 130 //
5591 /* 23731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5592 /* 23734 */ // MIs[0] dst
5593 /* 23734 */ // No operand predicates
5594 /* 23734 */ // MIs[0] x
5595 /* 23734 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5596 /* 23738 */ // MIs[0] x
5597 /* 23738 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5598 /* 23743 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5599 /* 23746 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5600 /* 23756 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5601 /* 23756 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5602 /* 23759 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5603 /* 23761 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5604 /* 23764 */ GIR_EraseRootFromParent_Done,
5605 /* 23765 */ // Label 161: @23765
5606 /* 23765 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(23799), // Rule ID 12 //
5607 /* 23770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5608 /* 23773 */ // MIs[0] root
5609 /* 23773 */ // No operand predicates
5610 /* 23773 */ // MIs[0] A
5611 /* 23773 */ // No operand predicates
5612 /* 23773 */ // MIs[0] add
5613 /* 23773 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5614 /* 23777 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5615 /* 23781 */ // MIs[1] A
5616 /* 23781 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5617 /* 23786 */ // MIs[1] B
5618 /* 23786 */ // No operand predicates
5619 /* 23786 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5620 /* 23791 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5621 /* 23793 */ // Combiner Rule #12: AMinusBMinusA
5622 /* 23793 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5623 /* 23798 */ GIR_EraseRootFromParent_Done,
5624 /* 23799 */ // Label 162: @23799
5625 /* 23799 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(23833), // Rule ID 11 //
5626 /* 23804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5627 /* 23807 */ // MIs[0] root
5628 /* 23807 */ // No operand predicates
5629 /* 23807 */ // MIs[0] A
5630 /* 23807 */ // No operand predicates
5631 /* 23807 */ // MIs[0] sub1
5632 /* 23807 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5633 /* 23811 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5634 /* 23815 */ // MIs[1] Operand 1
5635 /* 23815 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5636 /* 23819 */ // MIs[1] B
5637 /* 23819 */ // No operand predicates
5638 /* 23819 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5639 /* 23821 */ // Combiner Rule #11: AMinusZeroMinusB
5640 /* 23821 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5641 /* 23824 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5642 /* 23826 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5643 /* 23828 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5644 /* 23832 */ GIR_EraseRootFromParent_Done,
5645 /* 23833 */ // Label 163: @23833
5646 /* 23833 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(23860), // Rule ID 49 //
5647 /* 23838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5648 /* 23841 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5649 /* 23847 */ // MIs[0] root
5650 /* 23847 */ // No operand predicates
5651 /* 23847 */ // MIs[0] x
5652 /* 23847 */ // No operand predicates
5653 /* 23847 */ // MIs[0] right
5654 /* 23847 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5655 /* 23851 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5656 /* 23855 */ // MIs[1] imm
5657 /* 23855 */ // No operand predicates
5658 /* 23855 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5659 /* 23857 */ // Combiner Rule #45: sub_of_vscale
5660 /* 23857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
5661 /* 23860 */ // Label 164: @23860
5662 /* 23860 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(23881), // Rule ID 108 //
5663 /* 23865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5664 /* 23868 */ // MIs[0] dst
5665 /* 23868 */ // No operand predicates
5666 /* 23868 */ // MIs[0] __propagate_undef_any_op_match_0.x
5667 /* 23868 */ // No operand predicates
5668 /* 23868 */ // MIs[0] __propagate_undef_any_op_match_0.y
5669 /* 23868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5670 /* 23872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5671 /* 23876 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5672 /* 23878 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
5673 /* 23878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5674 /* 23881 */ // Label 165: @23881
5675 /* 23881 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(23904), // Rule ID 118 //
5676 /* 23886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5677 /* 23889 */ // MIs[0] dst
5678 /* 23889 */ // No operand predicates
5679 /* 23889 */ // MIs[0] lhs
5680 /* 23889 */ // No operand predicates
5681 /* 23889 */ // MIs[0] Operand 2
5682 /* 23889 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5683 /* 23893 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5684 /* 23898 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5685 /* 23898 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5686 /* 23903 */ GIR_EraseRootFromParent_Done,
5687 /* 23904 */ // Label 166: @23904
5688 /* 23904 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(23925), // Rule ID 21 //
5689 /* 23909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5690 /* 23912 */ // MIs[0] d
5691 /* 23912 */ // No operand predicates
5692 /* 23912 */ // MIs[0] op1
5693 /* 23912 */ // No operand predicates
5694 /* 23912 */ // MIs[0] c
5695 /* 23912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5696 /* 23916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5697 /* 23920 */ // MIs[1] imm
5698 /* 23920 */ // No operand predicates
5699 /* 23920 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5700 /* 23922 */ // Combiner Rule #21: sub_to_add
5701 /* 23922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5702 /* 23925 */ // Label 167: @23925
5703 /* 23925 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(23936), // Rule ID 366 //
5704 /* 23930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5705 /* 23933 */ // MIs[0] dst
5706 /* 23933 */ // No operand predicates
5707 /* 23933 */ // MIs[0] src1
5708 /* 23933 */ // No operand predicates
5709 /* 23933 */ // MIs[0] src2
5710 /* 23933 */ // No operand predicates
5711 /* 23933 */ // Combiner Rule #224: sub_add_reg
5712 /* 23933 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
5713 /* 23936 */ // Label 168: @23936
5714 /* 23936 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(23947), // Rule ID 406 //
5715 /* 23941 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
5716 /* 23944 */ // MIs[0] dst
5717 /* 23944 */ // No operand predicates
5718 /* 23944 */ // MIs[0] src1
5719 /* 23944 */ // No operand predicates
5720 /* 23944 */ // MIs[0] src2
5721 /* 23944 */ // No operand predicates
5722 /* 23944 */ // Combiner Rule #237: simplify_neg_minmax
5723 /* 23944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5724 /* 23947 */ // Label 169: @23947
5725 /* 23947 */ GIM_Reject,
5726 /* 23948 */ // Label 3: @23948
5727 /* 23948 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(23959), // Rule ID 277 //
5728 /* 23953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5729 /* 23956 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_MUL'
5730 /* 23956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5731 /* 23959 */ // Label 170: @23959
5732 /* 23959 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(23970), // Rule ID 370 //
5733 /* 23964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5734 /* 23967 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5735 /* 23967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5736 /* 23970 */ // Label 171: @23970
5737 /* 23970 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(24010), // Rule ID 24 //
5738 /* 23975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5739 /* 23978 */ // MIs[0] dst
5740 /* 23978 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5741 /* 23982 */ // MIs[0] x
5742 /* 23982 */ // No operand predicates
5743 /* 23982 */ // MIs[0] Operand 2
5744 /* 23982 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5745 /* 23986 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5746 /* 23989 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5747 /* 23999 */ // Combiner Rule #23: mul_by_neg_one
5748 /* 23999 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5749 /* 24002 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5750 /* 24004 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5751 /* 24007 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5752 /* 24009 */ GIR_EraseRootFromParent_Done,
5753 /* 24010 */ // Label 172: @24010
5754 /* 24010 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(24045), // Rule ID 47 //
5755 /* 24015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5756 /* 24018 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5757 /* 24024 */ // MIs[0] root
5758 /* 24024 */ // No operand predicates
5759 /* 24024 */ // MIs[0] left
5760 /* 24024 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5761 /* 24028 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5762 /* 24032 */ // MIs[1] scale
5763 /* 24032 */ // No operand predicates
5764 /* 24032 */ // MIs[0] x
5765 /* 24032 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5766 /* 24036 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5767 /* 24040 */ // MIs[2] imm1
5768 /* 24040 */ // No operand predicates
5769 /* 24040 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5770 /* 24042 */ // Combiner Rule #43: mul_of_vscale
5771 /* 24042 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
5772 /* 24045 */ // Label 173: @24045
5773 /* 24045 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(24066), // Rule ID 85 //
5774 /* 24050 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5775 /* 24053 */ // MIs[0] dst
5776 /* 24053 */ // No operand predicates
5777 /* 24053 */ // MIs[0] __undef_to_int_zero_match_0.x
5778 /* 24053 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5779 /* 24057 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5780 /* 24061 */ // MIs[0] __undef_to_int_zero_match_0.y
5781 /* 24061 */ // No operand predicates
5782 /* 24061 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5783 /* 24063 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
5784 /* 24063 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5785 /* 24066 */ // Label 174: @24066
5786 /* 24066 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(24106), // Rule ID 139 //
5787 /* 24071 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5788 /* 24074 */ // MIs[0] dst
5789 /* 24074 */ // No operand predicates
5790 /* 24074 */ // MIs[0] zero
5791 /* 24074 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5792 /* 24078 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5793 /* 24082 */ // MIs[1] Operand 1
5794 /* 24082 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5795 /* 24093 */ // MIs[0] rhs
5796 /* 24093 */ // No operand predicates
5797 /* 24093 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5798 /* 24098 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5799 /* 24100 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5800 /* 24100 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5801 /* 24105 */ GIR_EraseRootFromParent_Done,
5802 /* 24106 */ // Label 175: @24106
5803 /* 24106 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(24127), // Rule ID 87 //
5804 /* 24111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5805 /* 24114 */ // MIs[0] dst
5806 /* 24114 */ // No operand predicates
5807 /* 24114 */ // MIs[0] __undef_to_int_zero_match_0.x
5808 /* 24114 */ // No operand predicates
5809 /* 24114 */ // MIs[0] __undef_to_int_zero_match_0.y
5810 /* 24114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5811 /* 24118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5812 /* 24122 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5813 /* 24124 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
5814 /* 24124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5815 /* 24127 */ // Label 176: @24127
5816 /* 24127 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(24150), // Rule ID 140 //
5817 /* 24132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5818 /* 24135 */ // MIs[0] dst
5819 /* 24135 */ // No operand predicates
5820 /* 24135 */ // MIs[0] lhs
5821 /* 24135 */ // No operand predicates
5822 /* 24135 */ // MIs[0] zero
5823 /* 24135 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5824 /* 24139 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5825 /* 24144 */ // Combiner Rule #94: binop_right_to_zero
5826 /* 24144 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5827 /* 24149 */ GIR_EraseRootFromParent_Done,
5828 /* 24150 */ // Label 177: @24150
5829 /* 24150 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(24173), // Rule ID 145 //
5830 /* 24155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5831 /* 24158 */ // MIs[0] dst
5832 /* 24158 */ // No operand predicates
5833 /* 24158 */ // MIs[0] x
5834 /* 24158 */ // No operand predicates
5835 /* 24158 */ // MIs[0] Operand 2
5836 /* 24158 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5837 /* 24162 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5838 /* 24167 */ // Combiner Rule #99: right_identity_one_int
5839 /* 24167 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5840 /* 24172 */ GIR_EraseRootFromParent_Done,
5841 /* 24173 */ // Label 178: @24173
5842 /* 24173 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(24184), // Rule ID 20 //
5843 /* 24178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5844 /* 24181 */ // MIs[0] d
5845 /* 24181 */ // No operand predicates
5846 /* 24181 */ // MIs[0] op1
5847 /* 24181 */ // No operand predicates
5848 /* 24181 */ // MIs[0] op2
5849 /* 24181 */ // No operand predicates
5850 /* 24181 */ // Combiner Rule #20: mul_to_shl
5851 /* 24181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5852 /* 24184 */ // Label 179: @24184
5853 /* 24184 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(24195), // Rule ID 474 //
5854 /* 24189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule293Enabled),
5855 /* 24192 */ // MIs[0] dst
5856 /* 24192 */ // No operand predicates
5857 /* 24192 */ // MIs[0] src0
5858 /* 24192 */ // No operand predicates
5859 /* 24192 */ // MIs[0] src1
5860 /* 24192 */ // No operand predicates
5861 /* 24192 */ // Combiner Rule #293: smulu64
5862 /* 24192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
5863 /* 24195 */ // Label 180: @24195
5864 /* 24195 */ GIM_Reject,
5865 /* 24196 */ // Label 4: @24196
5866 /* 24196 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(24207), // Rule ID 247 //
5867 /* 24201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5868 /* 24204 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5869 /* 24204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5870 /* 24207 */ // Label 181: @24207
5871 /* 24207 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(24218), // Rule ID 283 //
5872 /* 24212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5873 /* 24215 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SDIV'
5874 /* 24215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5875 /* 24218 */ // Label 182: @24218
5876 /* 24218 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(24229), // Rule ID 338 //
5877 /* 24223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5878 /* 24226 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5879 /* 24226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5880 /* 24229 */ // Label 183: @24229
5881 /* 24229 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(24269), // Rule ID 135 //
5882 /* 24234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5883 /* 24237 */ // MIs[0] dst
5884 /* 24237 */ // No operand predicates
5885 /* 24237 */ // MIs[0] zero
5886 /* 24237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5887 /* 24241 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5888 /* 24245 */ // MIs[1] Operand 1
5889 /* 24245 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5890 /* 24256 */ // MIs[0] rhs
5891 /* 24256 */ // No operand predicates
5892 /* 24256 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5893 /* 24261 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5894 /* 24263 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5895 /* 24263 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5896 /* 24268 */ GIR_EraseRootFromParent_Done,
5897 /* 24269 */ // Label 184: @24269
5898 /* 24269 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(24286), // Rule ID 362 //
5899 /* 24274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5900 /* 24277 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5901 /* 24283 */ // MIs[0] dst
5902 /* 24283 */ // No operand predicates
5903 /* 24283 */ // MIs[0] x
5904 /* 24283 */ // No operand predicates
5905 /* 24283 */ // MIs[0] y
5906 /* 24283 */ // No operand predicates
5907 /* 24283 */ // Combiner Rule #220: sdiv_by_pow2
5908 /* 24283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
5909 /* 24286 */ // Label 185: @24286
5910 /* 24286 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(24297), // Rule ID 364 //
5911 /* 24291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5912 /* 24294 */ // MIs[0] dst
5913 /* 24294 */ // No operand predicates
5914 /* 24294 */ // MIs[0] x
5915 /* 24294 */ // No operand predicates
5916 /* 24294 */ // MIs[0] y
5917 /* 24294 */ // No operand predicates
5918 /* 24294 */ // Combiner Rule #222: sdiv_by_const
5919 /* 24294 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
5920 /* 24297 */ // Label 186: @24297
5921 /* 24297 */ GIM_Reject,
5922 /* 24298 */ // Label 5: @24298
5923 /* 24298 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(24309), // Rule ID 248 //
5924 /* 24303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5925 /* 24306 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5926 /* 24306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5927 /* 24309 */ // Label 187: @24309
5928 /* 24309 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(24320), // Rule ID 282 //
5929 /* 24314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5930 /* 24317 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UDIV'
5931 /* 24317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5932 /* 24320 */ // Label 188: @24320
5933 /* 24320 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(24331), // Rule ID 340 //
5934 /* 24325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5935 /* 24328 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5936 /* 24328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5937 /* 24331 */ // Label 189: @24331
5938 /* 24331 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(24352), // Rule ID 91 //
5939 /* 24336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5940 /* 24339 */ // MIs[0] dst
5941 /* 24339 */ // No operand predicates
5942 /* 24339 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
5943 /* 24339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5944 /* 24343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5945 /* 24347 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
5946 /* 24347 */ // No operand predicates
5947 /* 24347 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5948 /* 24349 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
5949 /* 24349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5950 /* 24352 */ // Label 190: @24352
5951 /* 24352 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(24392), // Rule ID 136 //
5952 /* 24357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5953 /* 24360 */ // MIs[0] dst
5954 /* 24360 */ // No operand predicates
5955 /* 24360 */ // MIs[0] zero
5956 /* 24360 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5957 /* 24364 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5958 /* 24368 */ // MIs[1] Operand 1
5959 /* 24368 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5960 /* 24379 */ // MIs[0] rhs
5961 /* 24379 */ // No operand predicates
5962 /* 24379 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5963 /* 24384 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5964 /* 24386 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5965 /* 24386 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5966 /* 24391 */ GIR_EraseRootFromParent_Done,
5967 /* 24392 */ // Label 191: @24392
5968 /* 24392 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(24409), // Rule ID 361 //
5969 /* 24397 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
5970 /* 24400 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5971 /* 24406 */ // MIs[0] dst
5972 /* 24406 */ // No operand predicates
5973 /* 24406 */ // MIs[0] x
5974 /* 24406 */ // No operand predicates
5975 /* 24406 */ // MIs[0] y
5976 /* 24406 */ // No operand predicates
5977 /* 24406 */ // Combiner Rule #219: udiv_by_pow2
5978 /* 24406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
5979 /* 24409 */ // Label 192: @24409
5980 /* 24409 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(24420), // Rule ID 363 //
5981 /* 24414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
5982 /* 24417 */ // MIs[0] dst
5983 /* 24417 */ // No operand predicates
5984 /* 24417 */ // MIs[0] x
5985 /* 24417 */ // No operand predicates
5986 /* 24417 */ // MIs[0] y
5987 /* 24417 */ // No operand predicates
5988 /* 24417 */ // Combiner Rule #221: udiv_by_const
5989 /* 24417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
5990 /* 24420 */ // Label 193: @24420
5991 /* 24420 */ GIM_Reject,
5992 /* 24421 */ // Label 6: @24421
5993 /* 24421 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(24432), // Rule ID 249 //
5994 /* 24426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5995 /* 24429 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5996 /* 24429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5997 /* 24432 */ // Label 194: @24432
5998 /* 24432 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(24443), // Rule ID 285 //
5999 /* 24437 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6000 /* 24440 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SREM'
6001 /* 24440 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6002 /* 24443 */ // Label 195: @24443
6003 /* 24443 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(24454), // Rule ID 339 //
6004 /* 24448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6005 /* 24451 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SREM'
6006 /* 24451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6007 /* 24454 */ // Label 196: @24454
6008 /* 24454 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(24494), // Rule ID 137 //
6009 /* 24459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6010 /* 24462 */ // MIs[0] dst
6011 /* 24462 */ // No operand predicates
6012 /* 24462 */ // MIs[0] zero
6013 /* 24462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6014 /* 24466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6015 /* 24470 */ // MIs[1] Operand 1
6016 /* 24470 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6017 /* 24481 */ // MIs[0] rhs
6018 /* 24481 */ // No operand predicates
6019 /* 24481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6020 /* 24486 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6021 /* 24488 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
6022 /* 24488 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6023 /* 24493 */ GIR_EraseRootFromParent_Done,
6024 /* 24494 */ // Label 197: @24494
6025 /* 24494 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(24505), // Rule ID 358 //
6026 /* 24499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6027 /* 24502 */ // MIs[0] dst
6028 /* 24502 */ // No operand predicates
6029 /* 24502 */ // MIs[0] x
6030 /* 24502 */ // No operand predicates
6031 /* 24502 */ // MIs[0] y
6032 /* 24502 */ // No operand predicates
6033 /* 24502 */ // Combiner Rule #216: srem_pow2_to_mask
6034 /* 24502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
6035 /* 24505 */ // Label 198: @24505
6036 /* 24505 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(24516), // Rule ID 360 //
6037 /* 24510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6038 /* 24513 */ // MIs[0] dst
6039 /* 24513 */ // No operand predicates
6040 /* 24513 */ // MIs[0] x
6041 /* 24513 */ // No operand predicates
6042 /* 24513 */ // MIs[0] y
6043 /* 24513 */ // No operand predicates
6044 /* 24513 */ // Combiner Rule #218: srem_by_const
6045 /* 24513 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
6046 /* 24516 */ // Label 199: @24516
6047 /* 24516 */ GIM_Reject,
6048 /* 24517 */ // Label 7: @24517
6049 /* 24517 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(24528), // Rule ID 250 //
6050 /* 24522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6051 /* 24525 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UREM'
6052 /* 24525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6053 /* 24528 */ // Label 200: @24528
6054 /* 24528 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(24539), // Rule ID 284 //
6055 /* 24533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6056 /* 24536 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UREM'
6057 /* 24536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6058 /* 24539 */ // Label 201: @24539
6059 /* 24539 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(24550), // Rule ID 341 //
6060 /* 24544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6061 /* 24547 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UREM'
6062 /* 24547 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6063 /* 24550 */ // Label 202: @24550
6064 /* 24550 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(24571), // Rule ID 92 //
6065 /* 24555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6066 /* 24558 */ // MIs[0] dst
6067 /* 24558 */ // No operand predicates
6068 /* 24558 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6069 /* 24558 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6070 /* 24562 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6071 /* 24566 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6072 /* 24566 */ // No operand predicates
6073 /* 24566 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6074 /* 24568 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
6075 /* 24568 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6076 /* 24571 */ // Label 203: @24571
6077 /* 24571 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(24611), // Rule ID 138 //
6078 /* 24576 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6079 /* 24579 */ // MIs[0] dst
6080 /* 24579 */ // No operand predicates
6081 /* 24579 */ // MIs[0] zero
6082 /* 24579 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6083 /* 24583 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6084 /* 24587 */ // MIs[1] Operand 1
6085 /* 24587 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6086 /* 24598 */ // MIs[0] rhs
6087 /* 24598 */ // No operand predicates
6088 /* 24598 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6089 /* 24603 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6090 /* 24605 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
6091 /* 24605 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6092 /* 24610 */ GIR_EraseRootFromParent_Done,
6093 /* 24611 */ // Label 204: @24611
6094 /* 24611 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(24622), // Rule ID 198 //
6095 /* 24616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6096 /* 24619 */ // MIs[0] dst
6097 /* 24619 */ // No operand predicates
6098 /* 24619 */ // MIs[0] x
6099 /* 24619 */ // No operand predicates
6100 /* 24619 */ // MIs[0] y
6101 /* 24619 */ // No operand predicates
6102 /* 24619 */ // Combiner Rule #145: urem_pow2_to_mask
6103 /* 24619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6104 /* 24622 */ // Label 205: @24622
6105 /* 24622 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(24633), // Rule ID 359 //
6106 /* 24627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6107 /* 24630 */ // MIs[0] dst
6108 /* 24630 */ // No operand predicates
6109 /* 24630 */ // MIs[0] x
6110 /* 24630 */ // No operand predicates
6111 /* 24630 */ // MIs[0] y
6112 /* 24630 */ // No operand predicates
6113 /* 24630 */ // Combiner Rule #217: urem_by_const
6114 /* 24630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
6115 /* 24633 */ // Label 206: @24633
6116 /* 24633 */ GIM_Reject,
6117 /* 24634 */ // Label 8: @24634
6118 /* 24634 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(24645), // Rule ID 162 //
6119 /* 24639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6120 /* 24642 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
6121 /* 24642 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6122 /* 24645 */ // Label 207: @24645
6123 /* 24645 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(24656), // Rule ID 220 //
6124 /* 24650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6125 /* 24653 */ // Combiner Rule #167: overlapping_and; wip_match_opcode 'G_AND'
6126 /* 24653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
6127 /* 24656 */ // Label 208: @24656
6128 /* 24656 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(24667), // Rule ID 274 //
6129 /* 24661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6130 /* 24664 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_AND'
6131 /* 24664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6132 /* 24667 */ // Label 209: @24667
6133 /* 24667 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(24678), // Rule ID 335 //
6134 /* 24672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6135 /* 24675 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_AND'
6136 /* 24675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6137 /* 24678 */ // Label 210: @24678
6138 /* 24678 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(24689), // Rule ID 371 //
6139 /* 24683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6140 /* 24686 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
6141 /* 24686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6142 /* 24689 */ // Label 211: @24689
6143 /* 24689 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(24700), // Rule ID 441 //
6144 /* 24694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6145 /* 24697 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_AND'
6146 /* 24697 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6147 /* 24700 */ // Label 212: @24700
6148 /* 24700 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(24786), // Rule ID 403 //
6149 /* 24705 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6150 /* 24708 */ // MIs[0] root
6151 /* 24708 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6152 /* 24712 */ // MIs[0] or
6153 /* 24712 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6154 /* 24716 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6155 /* 24720 */ // MIs[1] x
6156 /* 24720 */ // No operand predicates
6157 /* 24720 */ // MIs[1] y
6158 /* 24720 */ // No operand predicates
6159 /* 24720 */ // MIs[0] not
6160 /* 24720 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6161 /* 24724 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6162 /* 24728 */ // MIs[2] y
6163 /* 24728 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6164 /* 24733 */ // MIs[2] Operand 2
6165 /* 24733 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6166 /* 24737 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6167 /* 24739 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6168 /* 24742 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6169 /* 24752 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6170 /* 24755 */ // Combiner Rule #234: and_xor_or_to_xor_and
6171 /* 24755 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6172 /* 24758 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6173 /* 24763 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6174 /* 24767 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6175 /* 24770 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6176 /* 24774 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6177 /* 24778 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6178 /* 24782 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6179 /* 24785 */ GIR_EraseRootFromParent_Done,
6180 /* 24786 */ // Label 213: @24786
6181 /* 24786 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(24884), // Rule ID 175 //
6182 /* 24791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6183 /* 24794 */ // MIs[0] root
6184 /* 24794 */ // No operand predicates
6185 /* 24794 */ // MIs[0] d1
6186 /* 24794 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6187 /* 24798 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6188 /* 24802 */ // MIs[1] p
6189 /* 24802 */ // No operand predicates
6190 /* 24802 */ // MIs[1] s1
6191 /* 24802 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6192 /* 24806 */ // MIs[1] Operand 3
6193 /* 24806 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6194 /* 24810 */ // MIs[0] d2
6195 /* 24810 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6196 /* 24814 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6197 /* 24818 */ // MIs[2] p
6198 /* 24818 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6199 /* 24823 */ // MIs[2] s2
6200 /* 24823 */ // No operand predicates
6201 /* 24823 */ // MIs[2] Operand 3
6202 /* 24823 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6203 /* 24827 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
6204 /* 24831 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6205 /* 24833 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6206 /* 24836 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6207 /* 24846 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6208 /* 24849 */ // Combiner Rule #122: double_icmp_zero_and_combine
6209 /* 24849 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6210 /* 24852 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6211 /* 24857 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6212 /* 24861 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6213 /* 24865 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6214 /* 24869 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6215 /* 24873 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6216 /* 24877 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6217 /* 24880 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6218 /* 24883 */ GIR_EraseRootFromParent_Done,
6219 /* 24884 */ // Label 214: @24884
6220 /* 24884 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(24921), // Rule ID 267 //
6221 /* 24889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6222 /* 24892 */ // MIs[0] root
6223 /* 24892 */ // No operand predicates
6224 /* 24892 */ // MIs[0] shift
6225 /* 24892 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6226 /* 24896 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6227 /* 24900 */ // MIs[1] x
6228 /* 24900 */ // No operand predicates
6229 /* 24900 */ // MIs[1] lsb
6230 /* 24900 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6231 /* 24904 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6232 /* 24908 */ // MIs[2] imm1
6233 /* 24908 */ // No operand predicates
6234 /* 24908 */ // MIs[0] mask
6235 /* 24908 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6236 /* 24912 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6237 /* 24916 */ // MIs[3] imm2
6238 /* 24916 */ // No operand predicates
6239 /* 24916 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6240 /* 24918 */ // Combiner Rule #191: bitfield_extract_from_and
6241 /* 24918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6242 /* 24921 */ // Label 215: @24921
6243 /* 24921 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(24970), // Rule ID 402 //
6244 /* 24926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6245 /* 24929 */ // MIs[0] root
6246 /* 24929 */ // No operand predicates
6247 /* 24929 */ // MIs[0] or
6248 /* 24929 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6249 /* 24933 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6250 /* 24937 */ // MIs[1] x
6251 /* 24937 */ // No operand predicates
6252 /* 24937 */ // MIs[1] not
6253 /* 24937 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6254 /* 24941 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6255 /* 24945 */ // MIs[2] y
6256 /* 24945 */ // No operand predicates
6257 /* 24945 */ // MIs[2] Operand 2
6258 /* 24945 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6259 /* 24949 */ // MIs[0] y
6260 /* 24949 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6261 /* 24954 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6262 /* 24956 */ // Combiner Rule #233: and_xor_or_to_and
6263 /* 24956 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6264 /* 24959 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6265 /* 24961 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6266 /* 24965 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6267 /* 24969 */ GIR_EraseRootFromParent_Done,
6268 /* 24970 */ // Label 216: @24970
6269 /* 24970 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(24991), // Rule ID 84 //
6270 /* 24975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6271 /* 24978 */ // MIs[0] dst
6272 /* 24978 */ // No operand predicates
6273 /* 24978 */ // MIs[0] __undef_to_int_zero_match_0.x
6274 /* 24978 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6275 /* 24982 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6276 /* 24986 */ // MIs[0] __undef_to_int_zero_match_0.y
6277 /* 24986 */ // No operand predicates
6278 /* 24986 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6279 /* 24988 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
6280 /* 24988 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6281 /* 24991 */ // Label 217: @24991
6282 /* 24991 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(25105), // Rule ID 479 //
6283 /* 24996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule298Enabled),
6284 /* 24999 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6285 /* 25002 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6286 /* 25005 */ // MIs[0] dst
6287 /* 25005 */ // No operand predicates
6288 /* 25005 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
6289 /* 25009 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6290 /* 25012 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6291 /* 25015 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6292 /* 25018 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6293 /* 25021 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6294 /* 25024 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6295 /* 25027 */ // Combiner Rule #298: combine_and_s64_with_s32_mask
6296 /* 25027 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6297 /* 25030 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6298 /* 25035 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6299 /* 25040 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6300 /* 25042 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6301 /* 25046 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6302 /* 25051 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6303 /* 25056 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6304 /* 25060 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6305 /* 25064 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6306 /* 25069 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6307 /* 25072 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6308 /* 25075 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6309 /* 25079 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6310 /* 25084 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6311 /* 25087 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6312 /* 25090 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6313 /* 25094 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6314 /* 25098 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6315 /* 25101 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6316 /* 25104 */ GIR_EraseRootFromParent_Done,
6317 /* 25105 */ // Label 218: @25105
6318 /* 25105 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(25129), // Rule ID 128 //
6319 /* 25110 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6320 /* 25113 */ // MIs[0] dst
6321 /* 25113 */ // No operand predicates
6322 /* 25113 */ // MIs[0] src
6323 /* 25113 */ // No operand predicates
6324 /* 25113 */ // MIs[0] src
6325 /* 25113 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6326 /* 25118 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6327 /* 25123 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
6328 /* 25123 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6329 /* 25128 */ GIR_EraseRootFromParent_Done,
6330 /* 25129 */ // Label 219: @25129
6331 /* 25129 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(25150), // Rule ID 86 //
6332 /* 25134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6333 /* 25137 */ // MIs[0] dst
6334 /* 25137 */ // No operand predicates
6335 /* 25137 */ // MIs[0] __undef_to_int_zero_match_0.x
6336 /* 25137 */ // No operand predicates
6337 /* 25137 */ // MIs[0] __undef_to_int_zero_match_0.y
6338 /* 25137 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6339 /* 25141 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6340 /* 25145 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6341 /* 25147 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
6342 /* 25147 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6343 /* 25150 */ // Label 220: @25150
6344 /* 25150 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(25161), // Rule ID 80 //
6345 /* 25155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6346 /* 25158 */ // MIs[0] dst
6347 /* 25158 */ // No operand predicates
6348 /* 25158 */ // MIs[0] src1
6349 /* 25158 */ // No operand predicates
6350 /* 25158 */ // MIs[0] src2
6351 /* 25158 */ // No operand predicates
6352 /* 25158 */ // Combiner Rule #74: load_and_mask
6353 /* 25158 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6354 /* 25161 */ // Label 221: @25161
6355 /* 25161 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(25172), // Rule ID 182 //
6356 /* 25166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6357 /* 25169 */ // MIs[0] dst
6358 /* 25169 */ // No operand predicates
6359 /* 25169 */ // MIs[0] src1
6360 /* 25169 */ // No operand predicates
6361 /* 25169 */ // MIs[0] src2
6362 /* 25169 */ // No operand predicates
6363 /* 25169 */ // Combiner Rule #129: narrow_binop_feeding_and
6364 /* 25169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6365 /* 25172 */ // Label 222: @25172
6366 /* 25172 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(25183), // Rule ID 196 //
6367 /* 25177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6368 /* 25180 */ // MIs[0] dst
6369 /* 25180 */ // No operand predicates
6370 /* 25180 */ // MIs[0] src1
6371 /* 25180 */ // No operand predicates
6372 /* 25180 */ // MIs[0] src2
6373 /* 25180 */ // No operand predicates
6374 /* 25180 */ // Combiner Rule #143: redundant_and
6375 /* 25180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6376 /* 25183 */ // Label 223: @25183
6377 /* 25183 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(25194), // Rule ID 323 //
6378 /* 25188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6379 /* 25191 */ // MIs[0] dst
6380 /* 25191 */ // No operand predicates
6381 /* 25191 */ // MIs[0] src1
6382 /* 25191 */ // No operand predicates
6383 /* 25191 */ // MIs[0] src2
6384 /* 25191 */ // No operand predicates
6385 /* 25191 */ // Combiner Rule #206: and_or_disjoint_mask
6386 /* 25191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6387 /* 25194 */ // Label 224: @25194
6388 /* 25194 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(25205), // Rule ID 398 //
6389 /* 25199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6390 /* 25202 */ // MIs[0] dst
6391 /* 25202 */ // No operand predicates
6392 /* 25202 */ // MIs[0] src1
6393 /* 25202 */ // No operand predicates
6394 /* 25202 */ // MIs[0] src2
6395 /* 25202 */ // No operand predicates
6396 /* 25202 */ // Combiner Rule #229: match_ands
6397 /* 25202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6398 /* 25205 */ // Label 225: @25205
6399 /* 25205 */ GIM_Reject,
6400 /* 25206 */ // Label 9: @25206
6401 /* 25206 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(25217), // Rule ID 163 //
6402 /* 25211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6403 /* 25214 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6404 /* 25214 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6405 /* 25217 */ // Label 226: @25217
6406 /* 25217 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(25228), // Rule ID 278 //
6407 /* 25222 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6408 /* 25225 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_OR'
6409 /* 25225 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6410 /* 25228 */ // Label 227: @25228
6411 /* 25228 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(25239), // Rule ID 336 //
6412 /* 25233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6413 /* 25236 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_OR'
6414 /* 25236 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6415 /* 25239 */ // Label 228: @25239
6416 /* 25239 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(25250), // Rule ID 372 //
6417 /* 25244 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6418 /* 25247 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6419 /* 25247 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6420 /* 25250 */ // Label 229: @25250
6421 /* 25250 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(25261), // Rule ID 442 //
6422 /* 25255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6423 /* 25258 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_OR'
6424 /* 25258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6425 /* 25261 */ // Label 230: @25261
6426 /* 25261 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(25347), // Rule ID 401 //
6427 /* 25266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6428 /* 25269 */ // MIs[0] root
6429 /* 25269 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6430 /* 25273 */ // MIs[0] and
6431 /* 25273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6432 /* 25277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6433 /* 25281 */ // MIs[1] x
6434 /* 25281 */ // No operand predicates
6435 /* 25281 */ // MIs[1] y
6436 /* 25281 */ // No operand predicates
6437 /* 25281 */ // MIs[0] not
6438 /* 25281 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6439 /* 25285 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6440 /* 25289 */ // MIs[2] y
6441 /* 25289 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6442 /* 25294 */ // MIs[2] Operand 2
6443 /* 25294 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6444 /* 25298 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6445 /* 25300 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6446 /* 25303 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6447 /* 25313 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6448 /* 25316 */ // Combiner Rule #232: or_and_xor_to_xor_or
6449 /* 25316 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6450 /* 25319 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6451 /* 25324 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6452 /* 25328 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6453 /* 25331 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6454 /* 25335 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6455 /* 25339 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6456 /* 25343 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6457 /* 25346 */ GIR_EraseRootFromParent_Done,
6458 /* 25347 */ // Label 231: @25347
6459 /* 25347 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(25434), // Rule ID 481 //
6460 /* 25352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
6461 /* 25355 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6462 /* 25358 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6463 /* 25361 */ // MIs[0] dst
6464 /* 25361 */ // No operand predicates
6465 /* 25361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6466 /* 25365 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6467 /* 25369 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6468 /* 25373 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6469 /* 25377 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6470 /* 25379 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6471 /* 25382 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6472 /* 25385 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6473 /* 25388 */ // Combiner Rule #299: combine_or_s64_s32 @ [dst[1]]
6474 /* 25388 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6475 /* 25391 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6476 /* 25396 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6477 /* 25401 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
6478 /* 25403 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6479 /* 25407 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6480 /* 25412 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6481 /* 25415 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6482 /* 25419 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6483 /* 25423 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6484 /* 25427 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6485 /* 25430 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6486 /* 25433 */ GIR_EraseRootFromParent_Done,
6487 /* 25434 */ // Label 232: @25434
6488 /* 25434 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(25481), // Rule ID 258 //
6489 /* 25439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6490 /* 25442 */ // MIs[0] root
6491 /* 25442 */ // No operand predicates
6492 /* 25442 */ // MIs[0] out1
6493 /* 25442 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6494 /* 25446 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6495 /* 25450 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6496 /* 25450 */ // No operand predicates
6497 /* 25450 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6498 /* 25450 */ // No operand predicates
6499 /* 25450 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6500 /* 25450 */ // No operand predicates
6501 /* 25450 */ // MIs[0] out2
6502 /* 25450 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6503 /* 25454 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6504 /* 25458 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6505 /* 25458 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6506 /* 25463 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6507 /* 25463 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6508 /* 25468 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6509 /* 25473 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6510 /* 25475 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6511 /* 25475 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6512 /* 25480 */ GIR_EraseRootFromParent_Done,
6513 /* 25481 */ // Label 233: @25481
6514 /* 25481 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(25528), // Rule ID 260 //
6515 /* 25486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6516 /* 25489 */ // MIs[0] root
6517 /* 25489 */ // No operand predicates
6518 /* 25489 */ // MIs[0] out1
6519 /* 25489 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6520 /* 25493 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6521 /* 25497 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6522 /* 25497 */ // No operand predicates
6523 /* 25497 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6524 /* 25497 */ // No operand predicates
6525 /* 25497 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6526 /* 25497 */ // No operand predicates
6527 /* 25497 */ // MIs[0] out2
6528 /* 25497 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6529 /* 25501 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6530 /* 25505 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6531 /* 25505 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6532 /* 25510 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6533 /* 25510 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6534 /* 25515 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6535 /* 25520 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6536 /* 25522 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6537 /* 25522 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6538 /* 25527 */ GIR_EraseRootFromParent_Done,
6539 /* 25528 */ // Label 234: @25528
6540 /* 25528 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(25626), // Rule ID 176 //
6541 /* 25533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6542 /* 25536 */ // MIs[0] root
6543 /* 25536 */ // No operand predicates
6544 /* 25536 */ // MIs[0] d1
6545 /* 25536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6546 /* 25540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6547 /* 25544 */ // MIs[1] p
6548 /* 25544 */ // No operand predicates
6549 /* 25544 */ // MIs[1] s1
6550 /* 25544 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6551 /* 25548 */ // MIs[1] Operand 3
6552 /* 25548 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6553 /* 25552 */ // MIs[0] d2
6554 /* 25552 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6555 /* 25556 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6556 /* 25560 */ // MIs[2] p
6557 /* 25560 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6558 /* 25565 */ // MIs[2] s2
6559 /* 25565 */ // No operand predicates
6560 /* 25565 */ // MIs[2] Operand 3
6561 /* 25565 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6562 /* 25569 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
6563 /* 25573 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6564 /* 25575 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6565 /* 25578 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6566 /* 25588 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6567 /* 25591 */ // Combiner Rule #123: double_icmp_zero_or_combine
6568 /* 25591 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6569 /* 25594 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6570 /* 25599 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6571 /* 25603 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6572 /* 25607 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6573 /* 25611 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6574 /* 25615 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6575 /* 25619 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6576 /* 25622 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6577 /* 25625 */ GIR_EraseRootFromParent_Done,
6578 /* 25626 */ // Label 235: @25626
6579 /* 25626 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(25675), // Rule ID 400 //
6580 /* 25631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6581 /* 25634 */ // MIs[0] root
6582 /* 25634 */ // No operand predicates
6583 /* 25634 */ // MIs[0] and
6584 /* 25634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6585 /* 25638 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6586 /* 25642 */ // MIs[1] x
6587 /* 25642 */ // No operand predicates
6588 /* 25642 */ // MIs[1] not
6589 /* 25642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6590 /* 25646 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6591 /* 25650 */ // MIs[2] y
6592 /* 25650 */ // No operand predicates
6593 /* 25650 */ // MIs[2] Operand 2
6594 /* 25650 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6595 /* 25654 */ // MIs[0] y
6596 /* 25654 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6597 /* 25659 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6598 /* 25661 */ // Combiner Rule #231: or_and_xor_to_or
6599 /* 25661 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6600 /* 25664 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6601 /* 25666 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6602 /* 25670 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6603 /* 25674 */ GIR_EraseRootFromParent_Done,
6604 /* 25675 */ // Label 236: @25675
6605 /* 25675 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(25709), // Rule ID 452 //
6606 /* 25680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6607 /* 25683 */ // MIs[0] dst
6608 /* 25683 */ // No operand predicates
6609 /* 25683 */ // MIs[0] __combine_or_of_and_match_0.and
6610 /* 25683 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6611 /* 25687 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6612 /* 25691 */ // MIs[1] x
6613 /* 25691 */ // No operand predicates
6614 /* 25691 */ // MIs[1] y
6615 /* 25691 */ // No operand predicates
6616 /* 25691 */ // MIs[0] x
6617 /* 25691 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6618 /* 25696 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6619 /* 25701 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6620 /* 25703 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6621 /* 25703 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6622 /* 25708 */ GIR_EraseRootFromParent_Done,
6623 /* 25709 */ // Label 237: @25709
6624 /* 25709 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(25743), // Rule ID 453 //
6625 /* 25714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6626 /* 25717 */ // MIs[0] dst
6627 /* 25717 */ // No operand predicates
6628 /* 25717 */ // MIs[0] __combine_or_of_and_match_0.and
6629 /* 25717 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6630 /* 25721 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6631 /* 25725 */ // MIs[1] y
6632 /* 25725 */ // No operand predicates
6633 /* 25725 */ // MIs[1] x
6634 /* 25725 */ // No operand predicates
6635 /* 25725 */ // MIs[0] x
6636 /* 25725 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6637 /* 25730 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6638 /* 25735 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6639 /* 25737 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6640 /* 25737 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6641 /* 25742 */ GIR_EraseRootFromParent_Done,
6642 /* 25743 */ // Label 238: @25743
6643 /* 25743 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(25790), // Rule ID 261 //
6644 /* 25748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6645 /* 25751 */ // MIs[0] root
6646 /* 25751 */ // No operand predicates
6647 /* 25751 */ // MIs[0] out2
6648 /* 25751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6649 /* 25755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6650 /* 25759 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6651 /* 25759 */ // No operand predicates
6652 /* 25759 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6653 /* 25759 */ // No operand predicates
6654 /* 25759 */ // MIs[0] out1
6655 /* 25759 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6656 /* 25763 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6657 /* 25767 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6658 /* 25767 */ // No operand predicates
6659 /* 25767 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6660 /* 25767 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6661 /* 25772 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6662 /* 25772 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6663 /* 25777 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6664 /* 25782 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6665 /* 25784 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6666 /* 25784 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6667 /* 25789 */ GIR_EraseRootFromParent_Done,
6668 /* 25790 */ // Label 239: @25790
6669 /* 25790 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(25837), // Rule ID 259 //
6670 /* 25795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6671 /* 25798 */ // MIs[0] root
6672 /* 25798 */ // No operand predicates
6673 /* 25798 */ // MIs[0] out2
6674 /* 25798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6675 /* 25802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6676 /* 25806 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6677 /* 25806 */ // No operand predicates
6678 /* 25806 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6679 /* 25806 */ // No operand predicates
6680 /* 25806 */ // MIs[0] out1
6681 /* 25806 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6682 /* 25810 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6683 /* 25814 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6684 /* 25814 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6685 /* 25819 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6686 /* 25819 */ // No operand predicates
6687 /* 25819 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6688 /* 25819 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6689 /* 25824 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6690 /* 25829 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6691 /* 25831 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6692 /* 25831 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6693 /* 25836 */ GIR_EraseRootFromParent_Done,
6694 /* 25837 */ // Label 240: @25837
6695 /* 25837 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(25887), // Rule ID 405 //
6696 /* 25842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6697 /* 25845 */ // MIs[0] root
6698 /* 25845 */ // No operand predicates
6699 /* 25845 */ // MIs[0] xor
6700 /* 25845 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6701 /* 25849 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6702 /* 25853 */ // MIs[1] x
6703 /* 25853 */ // No operand predicates
6704 /* 25853 */ // MIs[1] y
6705 /* 25853 */ // No operand predicates
6706 /* 25853 */ // MIs[0] and
6707 /* 25853 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6708 /* 25857 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6709 /* 25861 */ // MIs[2] x
6710 /* 25861 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6711 /* 25866 */ // MIs[2] y
6712 /* 25866 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6713 /* 25871 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6714 /* 25873 */ // Combiner Rule #236: or_xor_and
6715 /* 25873 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6716 /* 25876 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6717 /* 25878 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6718 /* 25882 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6719 /* 25886 */ GIR_EraseRootFromParent_Done,
6720 /* 25887 */ // Label 241: @25887
6721 /* 25887 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(25937), // Rule ID 404 //
6722 /* 25892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6723 /* 25895 */ // MIs[0] root
6724 /* 25895 */ // No operand predicates
6725 /* 25895 */ // MIs[0] xor
6726 /* 25895 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6727 /* 25899 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6728 /* 25903 */ // MIs[1] x
6729 /* 25903 */ // No operand predicates
6730 /* 25903 */ // MIs[1] y
6731 /* 25903 */ // No operand predicates
6732 /* 25903 */ // MIs[0] or
6733 /* 25903 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6734 /* 25907 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
6735 /* 25911 */ // MIs[2] x
6736 /* 25911 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6737 /* 25916 */ // MIs[2] y
6738 /* 25916 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6739 /* 25921 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6740 /* 25923 */ // Combiner Rule #235: or_xor_or
6741 /* 25923 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6742 /* 25926 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6743 /* 25928 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6744 /* 25932 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6745 /* 25936 */ GIR_EraseRootFromParent_Done,
6746 /* 25937 */ // Label 242: @25937
6747 /* 25937 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(25958), // Rule ID 88 //
6748 /* 25942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6749 /* 25945 */ // MIs[0] dst
6750 /* 25945 */ // No operand predicates
6751 /* 25945 */ // MIs[0] __undef_to_negative_one_match_0.x
6752 /* 25945 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6753 /* 25949 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6754 /* 25953 */ // MIs[0] __undef_to_negative_one_match_0.y
6755 /* 25953 */ // No operand predicates
6756 /* 25953 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6757 /* 25955 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
6758 /* 25955 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6759 /* 25958 */ // Label 243: @25958
6760 /* 25958 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(26159),
6761 /* 25963 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6762 /* 25966 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6763 /* 25969 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(26050), // Rule ID 480 //
6764 /* 25974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
6765 /* 25977 */ // MIs[0] dst
6766 /* 25977 */ // No operand predicates
6767 /* 25977 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6768 /* 25981 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6769 /* 25985 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6770 /* 25989 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6771 /* 25993 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6772 /* 25995 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6773 /* 25998 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6774 /* 26001 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6775 /* 26004 */ // Combiner Rule #299: combine_or_s64_s32 @ [dst[0]]
6776 /* 26004 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6777 /* 26007 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6778 /* 26012 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6779 /* 26017 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6780 /* 26019 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6781 /* 26023 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6782 /* 26028 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6783 /* 26031 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6784 /* 26035 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6785 /* 26039 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6786 /* 26043 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6787 /* 26046 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6788 /* 26049 */ GIR_EraseRootFromParent_Done,
6789 /* 26050 */ // Label 245: @26050
6790 /* 26050 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(26158), // Rule ID 478 //
6791 /* 26055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule297Enabled),
6792 /* 26058 */ // MIs[0] dst
6793 /* 26058 */ // No operand predicates
6794 /* 26058 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
6795 /* 26062 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6796 /* 26065 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6797 /* 26068 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6798 /* 26071 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6799 /* 26074 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6800 /* 26077 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6801 /* 26080 */ // Combiner Rule #297: combine_or_s64_with_s32_mask
6802 /* 26080 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6803 /* 26083 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6804 /* 26088 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6805 /* 26093 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6806 /* 26095 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6807 /* 26099 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6808 /* 26104 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6809 /* 26109 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6810 /* 26113 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6811 /* 26117 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6812 /* 26122 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6813 /* 26125 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6814 /* 26128 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6815 /* 26132 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6816 /* 26137 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6817 /* 26140 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6818 /* 26143 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6819 /* 26147 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6820 /* 26151 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6821 /* 26154 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6822 /* 26157 */ GIR_EraseRootFromParent_Done,
6823 /* 26158 */ // Label 246: @26158
6824 /* 26158 */ GIM_Reject,
6825 /* 26159 */ // Label 244: @26159
6826 /* 26159 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(26183), // Rule ID 129 //
6827 /* 26164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6828 /* 26167 */ // MIs[0] dst
6829 /* 26167 */ // No operand predicates
6830 /* 26167 */ // MIs[0] src
6831 /* 26167 */ // No operand predicates
6832 /* 26167 */ // MIs[0] src
6833 /* 26167 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6834 /* 26172 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6835 /* 26177 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6836 /* 26177 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6837 /* 26182 */ GIR_EraseRootFromParent_Done,
6838 /* 26183 */ // Label 247: @26183
6839 /* 26183 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(26217), // Rule ID 454 //
6840 /* 26188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6841 /* 26191 */ // MIs[0] dst
6842 /* 26191 */ // No operand predicates
6843 /* 26191 */ // MIs[0] x
6844 /* 26191 */ // No operand predicates
6845 /* 26191 */ // MIs[0] __combine_or_of_and_match_0.and
6846 /* 26191 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6847 /* 26195 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6848 /* 26199 */ // MIs[1] x
6849 /* 26199 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6850 /* 26204 */ // MIs[1] y
6851 /* 26204 */ // No operand predicates
6852 /* 26204 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6853 /* 26209 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6854 /* 26211 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6855 /* 26211 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6856 /* 26216 */ GIR_EraseRootFromParent_Done,
6857 /* 26217 */ // Label 248: @26217
6858 /* 26217 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(26251), // Rule ID 455 //
6859 /* 26222 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6860 /* 26225 */ // MIs[0] dst
6861 /* 26225 */ // No operand predicates
6862 /* 26225 */ // MIs[0] x
6863 /* 26225 */ // No operand predicates
6864 /* 26225 */ // MIs[0] __combine_or_of_and_match_0.and
6865 /* 26225 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6866 /* 26229 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6867 /* 26233 */ // MIs[1] y
6868 /* 26233 */ // No operand predicates
6869 /* 26233 */ // MIs[1] x
6870 /* 26233 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6871 /* 26238 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6872 /* 26243 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6873 /* 26245 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6874 /* 26245 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6875 /* 26250 */ GIR_EraseRootFromParent_Done,
6876 /* 26251 */ // Label 249: @26251
6877 /* 26251 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(26272), // Rule ID 89 //
6878 /* 26256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6879 /* 26259 */ // MIs[0] dst
6880 /* 26259 */ // No operand predicates
6881 /* 26259 */ // MIs[0] __undef_to_negative_one_match_0.x
6882 /* 26259 */ // No operand predicates
6883 /* 26259 */ // MIs[0] __undef_to_negative_one_match_0.y
6884 /* 26259 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6885 /* 26263 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6886 /* 26267 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6887 /* 26269 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
6888 /* 26269 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6889 /* 26272 */ // Label 250: @26272
6890 /* 26272 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(26295), // Rule ID 120 //
6891 /* 26277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6892 /* 26280 */ // MIs[0] dst
6893 /* 26280 */ // No operand predicates
6894 /* 26280 */ // MIs[0] lhs
6895 /* 26280 */ // No operand predicates
6896 /* 26280 */ // MIs[0] Operand 2
6897 /* 26280 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6898 /* 26284 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6899 /* 26289 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
6900 /* 26289 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6901 /* 26294 */ GIR_EraseRootFromParent_Done,
6902 /* 26295 */ // Label 251: @26295
6903 /* 26295 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(26306), // Rule ID 197 //
6904 /* 26300 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
6905 /* 26303 */ // MIs[0] dst
6906 /* 26303 */ // No operand predicates
6907 /* 26303 */ // MIs[0] src1
6908 /* 26303 */ // No operand predicates
6909 /* 26303 */ // MIs[0] src2
6910 /* 26303 */ // No operand predicates
6911 /* 26303 */ // Combiner Rule #144: redundant_or
6912 /* 26303 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6913 /* 26306 */ // Label 252: @26306
6914 /* 26306 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(26317), // Rule ID 246 //
6915 /* 26311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6916 /* 26314 */ // MIs[0] dst
6917 /* 26314 */ // No operand predicates
6918 /* 26314 */ // MIs[0] src1
6919 /* 26314 */ // No operand predicates
6920 /* 26314 */ // MIs[0] src2
6921 /* 26314 */ // No operand predicates
6922 /* 26314 */ // Combiner Rule #177: load_or_combine
6923 /* 26314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
6924 /* 26317 */ // Label 253: @26317
6925 /* 26317 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(26328), // Rule ID 251 //
6926 /* 26322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6927 /* 26325 */ // MIs[0] dst
6928 /* 26325 */ // No operand predicates
6929 /* 26325 */ // MIs[0] src1
6930 /* 26325 */ // No operand predicates
6931 /* 26325 */ // MIs[0] src2
6932 /* 26325 */ // No operand predicates
6933 /* 26325 */ // Combiner Rule #179: funnel_shift_from_or_shift
6934 /* 26325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6935 /* 26328 */ // Label 254: @26328
6936 /* 26328 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(26339), // Rule ID 399 //
6937 /* 26333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
6938 /* 26336 */ // MIs[0] dst
6939 /* 26336 */ // No operand predicates
6940 /* 26336 */ // MIs[0] src1
6941 /* 26336 */ // No operand predicates
6942 /* 26336 */ // MIs[0] src2
6943 /* 26336 */ // No operand predicates
6944 /* 26336 */ // Combiner Rule #230: match_ors
6945 /* 26336 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
6946 /* 26339 */ // Label 255: @26339
6947 /* 26339 */ GIM_Reject,
6948 /* 26340 */ // Label 10: @26340
6949 /* 26340 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(26351), // Rule ID 164 //
6950 /* 26345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6951 /* 26348 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
6952 /* 26348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6953 /* 26351 */ // Label 256: @26351
6954 /* 26351 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(26362), // Rule ID 281 //
6955 /* 26356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6956 /* 26359 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_XOR'
6957 /* 26359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6958 /* 26362 */ // Label 257: @26362
6959 /* 26362 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(26373), // Rule ID 337 //
6960 /* 26367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6961 /* 26370 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_XOR'
6962 /* 26370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6963 /* 26373 */ // Label 258: @26373
6964 /* 26373 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(26384), // Rule ID 373 //
6965 /* 26378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6966 /* 26381 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
6967 /* 26381 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6968 /* 26384 */ // Label 259: @26384
6969 /* 26384 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(26395), // Rule ID 443 //
6970 /* 26389 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6971 /* 26392 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_XOR'
6972 /* 26392 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6973 /* 26395 */ // Label 260: @26395
6974 /* 26395 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(26455), // Rule ID 13 //
6975 /* 26400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
6976 /* 26403 */ // MIs[0] root
6977 /* 26403 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6978 /* 26407 */ // MIs[0] add
6979 /* 26407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6980 /* 26411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6981 /* 26415 */ // MIs[1] A
6982 /* 26415 */ // No operand predicates
6983 /* 26415 */ // MIs[1] Operand 2
6984 /* 26415 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
6985 /* 26419 */ // MIs[0] Operand 2
6986 /* 26419 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6987 /* 26423 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
6988 /* 26427 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6989 /* 26429 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6990 /* 26432 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6991 /* 26442 */ // Combiner Rule #13: NotAPlusNegOne
6992 /* 26442 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6993 /* 26445 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6994 /* 26447 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6995 /* 26450 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6996 /* 26454 */ GIR_EraseRootFromParent_Done,
6997 /* 26455 */ // Label 261: @26455
6998 /* 26455 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(26476), // Rule ID 106 //
6999 /* 26460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7000 /* 26463 */ // MIs[0] dst
7001 /* 26463 */ // No operand predicates
7002 /* 26463 */ // MIs[0] __propagate_undef_any_op_match_0.x
7003 /* 26463 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7004 /* 26467 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7005 /* 26471 */ // MIs[0] __propagate_undef_any_op_match_0.y
7006 /* 26471 */ // No operand predicates
7007 /* 26471 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7008 /* 26473 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
7009 /* 26473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7010 /* 26476 */ // Label 262: @26476
7011 /* 26476 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(26515), // Rule ID 131 //
7012 /* 26481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7013 /* 26484 */ // MIs[0] dst
7014 /* 26484 */ // No operand predicates
7015 /* 26484 */ // MIs[0] x
7016 /* 26484 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
7017 /* 26488 */ // MIs[0] x
7018 /* 26488 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7019 /* 26493 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7020 /* 26496 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7021 /* 26506 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
7022 /* 26506 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7023 /* 26509 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7024 /* 26511 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7025 /* 26514 */ GIR_EraseRootFromParent_Done,
7026 /* 26515 */ // Label 263: @26515
7027 /* 26515 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(26536), // Rule ID 109 //
7028 /* 26520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7029 /* 26523 */ // MIs[0] dst
7030 /* 26523 */ // No operand predicates
7031 /* 26523 */ // MIs[0] __propagate_undef_any_op_match_0.x
7032 /* 26523 */ // No operand predicates
7033 /* 26523 */ // MIs[0] __propagate_undef_any_op_match_0.y
7034 /* 26523 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7035 /* 26527 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7036 /* 26531 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7037 /* 26533 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
7038 /* 26533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7039 /* 26536 */ // Label 264: @26536
7040 /* 26536 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(26559), // Rule ID 121 //
7041 /* 26541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7042 /* 26544 */ // MIs[0] dst
7043 /* 26544 */ // No operand predicates
7044 /* 26544 */ // MIs[0] lhs
7045 /* 26544 */ // No operand predicates
7046 /* 26544 */ // MIs[0] Operand 2
7047 /* 26544 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7048 /* 26548 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7049 /* 26553 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
7050 /* 26553 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7051 /* 26558 */ GIR_EraseRootFromParent_Done,
7052 /* 26559 */ // Label 265: @26559
7053 /* 26559 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(26570), // Rule ID 202 //
7054 /* 26564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
7055 /* 26567 */ // MIs[0] dst
7056 /* 26567 */ // No operand predicates
7057 /* 26567 */ // MIs[0] src1
7058 /* 26567 */ // No operand predicates
7059 /* 26567 */ // MIs[0] src2
7060 /* 26567 */ // No operand predicates
7061 /* 26567 */ // Combiner Rule #149: not_cmp_fold
7062 /* 26567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
7063 /* 26570 */ // Label 266: @26570
7064 /* 26570 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(26581), // Rule ID 234 //
7065 /* 26575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7066 /* 26578 */ // MIs[0] dst
7067 /* 26578 */ // No operand predicates
7068 /* 26578 */ // MIs[0] src1
7069 /* 26578 */ // No operand predicates
7070 /* 26578 */ // MIs[0] src2
7071 /* 26578 */ // No operand predicates
7072 /* 26578 */ // Combiner Rule #173: xor_of_and_with_same_reg
7073 /* 26578 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7074 /* 26581 */ // Label 267: @26581
7075 /* 26581 */ GIM_Reject,
7076 /* 26582 */ // Label 11: @26582
7077 /* 26582 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(26596), // Rule ID 159 //
7078 /* 26587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7079 /* 26590 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7080 /* 26593 */ // MIs[0] dst
7081 /* 26593 */ // No operand predicates
7082 /* 26593 */ // MIs[0] srcs
7083 /* 26593 */ // No operand predicates
7084 /* 26593 */ // Combiner Rule #111: extend_through_phis
7085 /* 26593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
7086 /* 26596 */ // Label 268: @26596
7087 /* 26596 */ GIM_Reject,
7088 /* 26597 */ // Label 12: @26597
7089 /* 26597 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(26608), // Rule ID 415 //
7090 /* 26602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
7091 /* 26605 */ // Combiner Rule #246: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
7092 /* 26605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
7093 /* 26608 */ // Label 269: @26608
7094 /* 26608 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(26619), // Rule ID 416 //
7095 /* 26613 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7096 /* 26616 */ // Combiner Rule #247: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
7097 /* 26616 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
7098 /* 26619 */ // Label 270: @26619
7099 /* 26619 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(26630), // Rule ID 418 //
7100 /* 26624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
7101 /* 26627 */ // Combiner Rule #249: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
7102 /* 26627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
7103 /* 26630 */ // Label 271: @26630
7104 /* 26630 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(26641), // Rule ID 419 //
7105 /* 26635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
7106 /* 26638 */ // Combiner Rule #250: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
7107 /* 26638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
7108 /* 26641 */ // Label 272: @26641
7109 /* 26641 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(26652), // Rule ID 420 //
7110 /* 26646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
7111 /* 26649 */ // Combiner Rule #251: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
7112 /* 26649 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7113 /* 26652 */ // Label 273: @26652
7114 /* 26652 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(26663), // Rule ID 421 //
7115 /* 26657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7116 /* 26660 */ // Combiner Rule #252: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
7117 /* 26660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7118 /* 26663 */ // Label 274: @26663
7119 /* 26663 */ GIM_Reject,
7120 /* 26664 */ // Label 13: @26664
7121 /* 26664 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(26678), // Rule ID 417 //
7122 /* 26669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7123 /* 26672 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7124 /* 26675 */ // MIs[0] dst
7125 /* 26675 */ // No operand predicates
7126 /* 26675 */ // MIs[0] merge_srcs
7127 /* 26675 */ // No operand predicates
7128 /* 26675 */ // Combiner Rule #248: merge_unmerge
7129 /* 26675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
7130 /* 26678 */ // Label 275: @26678
7131 /* 26678 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(26740),
7132 /* 26683 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7133 /* 26686 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(26707), // Rule ID 422 //
7134 /* 26691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7135 /* 26694 */ // MIs[0] root
7136 /* 26694 */ // No operand predicates
7137 /* 26694 */ // MIs[0] x
7138 /* 26694 */ // No operand predicates
7139 /* 26694 */ // MIs[0] undef
7140 /* 26694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7141 /* 26698 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7142 /* 26702 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7143 /* 26704 */ // Combiner Rule #253: merge_of_x_and_undef
7144 /* 26704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
7145 /* 26707 */ // Label 277: @26707
7146 /* 26707 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(26739), // Rule ID 423 //
7147 /* 26712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
7148 /* 26715 */ // MIs[0] root
7149 /* 26715 */ // No operand predicates
7150 /* 26715 */ // MIs[0] x
7151 /* 26715 */ // No operand predicates
7152 /* 26715 */ // MIs[0] zero
7153 /* 26715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7154 /* 26719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7155 /* 26723 */ // MIs[1] Operand 1
7156 /* 26723 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7157 /* 26734 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7158 /* 26736 */ // Combiner Rule #254: merge_of_x_and_zero
7159 /* 26736 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
7160 /* 26739 */ // Label 278: @26739
7161 /* 26739 */ GIM_Reject,
7162 /* 26740 */ // Label 276: @26740
7163 /* 26740 */ GIM_Reject,
7164 /* 26741 */ // Label 14: @26741
7165 /* 26741 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(26752), // Rule ID 111 //
7166 /* 26746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7167 /* 26749 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
7168 /* 26749 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7169 /* 26752 */ // Label 279: @26752
7170 /* 26752 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(26763), // Rule ID 150 //
7171 /* 26757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7172 /* 26760 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
7173 /* 26760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7174 /* 26763 */ // Label 280: @26763
7175 /* 26763 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(26805),
7176 /* 26768 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7177 /* 26771 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(26782), // Rule ID 76 //
7178 /* 26776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7179 /* 26779 */ // MIs[0] dst
7180 /* 26779 */ // No operand predicates
7181 /* 26779 */ // MIs[0] srcs
7182 /* 26779 */ // No operand predicates
7183 /* 26779 */ // Combiner Rule #72: extract_all_elts_from_build_vector
7184 /* 26779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7185 /* 26782 */ // Label 282: @26782
7186 /* 26782 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(26793), // Rule ID 414 //
7187 /* 26787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7188 /* 26790 */ // MIs[0] dst
7189 /* 26790 */ // No operand predicates
7190 /* 26790 */ // MIs[0] unused
7191 /* 26790 */ // No operand predicates
7192 /* 26790 */ // Combiner Rule #245: combine_use_vector_truncate
7193 /* 26790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
7194 /* 26793 */ // Label 283: @26793
7195 /* 26793 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(26804), // Rule ID 424 //
7196 /* 26798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
7197 /* 26801 */ // MIs[0] dst
7198 /* 26801 */ // No operand predicates
7199 /* 26801 */ // MIs[0] unused
7200 /* 26801 */ // No operand predicates
7201 /* 26801 */ // Combiner Rule #255: combine_build_unmerge
7202 /* 26801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
7203 /* 26804 */ // Label 284: @26804
7204 /* 26804 */ GIM_Reject,
7205 /* 26805 */ // Label 281: @26805
7206 /* 26805 */ GIM_Reject,
7207 /* 26806 */ // Label 15: @26806
7208 /* 26806 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(26817), // Rule ID 149 //
7209 /* 26811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7210 /* 26814 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
7211 /* 26814 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7212 /* 26817 */ // Label 285: @26817
7213 /* 26817 */ GIM_Reject,
7214 /* 26818 */ // Label 16: @26818
7215 /* 26818 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(26832), // Rule ID 407 //
7216 /* 26823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
7217 /* 26826 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7218 /* 26829 */ // MIs[0] dst
7219 /* 26829 */ // No operand predicates
7220 /* 26829 */ // MIs[0] srcs
7221 /* 26829 */ // No operand predicates
7222 /* 26829 */ // Combiner Rule #238: combine_concat_vector
7223 /* 26829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7224 /* 26832 */ // Label 286: @26832
7225 /* 26832 */ GIM_Reject,
7226 /* 26833 */ // Label 17: @26833
7227 /* 26833 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(26854), // Rule ID 142 //
7228 /* 26838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
7229 /* 26841 */ // MIs[0] dst
7230 /* 26841 */ // No operand predicates
7231 /* 26841 */ // MIs[0] t
7232 /* 26841 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7233 /* 26845 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7234 /* 26849 */ // MIs[1] ptr
7235 /* 26849 */ // No operand predicates
7236 /* 26849 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7237 /* 26851 */ // Combiner Rule #96: i2p_to_p2i
7238 /* 26851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
7239 /* 26854 */ // Label 287: @26854
7240 /* 26854 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(26875), // Rule ID 100 //
7241 /* 26859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7242 /* 26862 */ // MIs[0] dst
7243 /* 26862 */ // No operand predicates
7244 /* 26862 */ // MIs[0] __unary_undef_to_undef_match_0.x
7245 /* 26862 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7246 /* 26866 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7247 /* 26870 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7248 /* 26872 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
7249 /* 26872 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7250 /* 26875 */ // Label 288: @26875
7251 /* 26875 */ GIM_Reject,
7252 /* 26876 */ // Label 18: @26876
7253 /* 26876 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(26909), // Rule ID 141 //
7254 /* 26881 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
7255 /* 26884 */ // MIs[0] dst
7256 /* 26884 */ // No operand predicates
7257 /* 26884 */ // MIs[0] mid
7258 /* 26884 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7259 /* 26888 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
7260 /* 26892 */ // MIs[1] x
7261 /* 26892 */ // No operand predicates
7262 /* 26892 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7263 /* 26896 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7264 /* 26901 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7265 /* 26903 */ // Combiner Rule #95: p2i_to_i2p
7266 /* 26903 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7267 /* 26908 */ GIR_EraseRootFromParent_Done,
7268 /* 26909 */ // Label 289: @26909
7269 /* 26909 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(26930), // Rule ID 101 //
7270 /* 26914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7271 /* 26917 */ // MIs[0] dst
7272 /* 26917 */ // No operand predicates
7273 /* 26917 */ // MIs[0] __unary_undef_to_undef_match_0.x
7274 /* 26917 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7275 /* 26921 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7276 /* 26925 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7277 /* 26927 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
7278 /* 26927 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7279 /* 26930 */ // Label 290: @26930
7280 /* 26930 */ GIM_Reject,
7281 /* 26931 */ // Label 19: @26931
7282 /* 26931 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(26963), // Rule ID 154 //
7283 /* 26936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7284 /* 26939 */ // MIs[0] dst
7285 /* 26939 */ // No operand predicates
7286 /* 26939 */ // MIs[0] src1
7287 /* 26939 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7288 /* 26943 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7289 /* 26947 */ // MIs[1] src0
7290 /* 26947 */ // No operand predicates
7291 /* 26947 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
7292 /* 26951 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7293 /* 26953 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
7294 /* 26953 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7295 /* 26956 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7296 /* 26958 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
7297 /* 26962 */ GIR_EraseRootFromParent_Done,
7298 /* 26963 */ // Label 291: @26963
7299 /* 26963 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(26984), // Rule ID 153 //
7300 /* 26968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
7301 /* 26971 */ // MIs[0] dst
7302 /* 26971 */ // No operand predicates
7303 /* 26971 */ // MIs[0] src1
7304 /* 26971 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7305 /* 26975 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7306 /* 26979 */ // MIs[1] src0
7307 /* 26979 */ // No operand predicates
7308 /* 26979 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7309 /* 26981 */ // Combiner Rule #105: bitcast_bitcast_fold
7310 /* 26981 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
7311 /* 26984 */ // Label 292: @26984
7312 /* 26984 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(27005), // Rule ID 98 //
7313 /* 26989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7314 /* 26992 */ // MIs[0] dst
7315 /* 26992 */ // No operand predicates
7316 /* 26992 */ // MIs[0] __unary_undef_to_undef_match_0.x
7317 /* 26992 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7318 /* 26996 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7319 /* 27000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7320 /* 27002 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
7321 /* 27002 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7322 /* 27005 */ // Label 293: @27005
7323 /* 27005 */ GIM_Reject,
7324 /* 27006 */ // Label 20: @27006
7325 /* 27006 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(27035), // Rule ID 25 //
7326 /* 27011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7327 /* 27014 */ // MIs[0] dst
7328 /* 27014 */ // No operand predicates
7329 /* 27014 */ // MIs[0] src
7330 /* 27014 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7331 /* 27018 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
7332 /* 27022 */ // MIs[1] __idempotent_prop_match_0.x
7333 /* 27022 */ // No operand predicates
7334 /* 27022 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7335 /* 27027 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7336 /* 27029 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
7337 /* 27029 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7338 /* 27034 */ GIR_EraseRootFromParent_Done,
7339 /* 27035 */ // Label 294: @27035
7340 /* 27035 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(27058), // Rule ID 50 //
7341 /* 27040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
7342 /* 27043 */ // MIs[0] root
7343 /* 27043 */ // No operand predicates
7344 /* 27043 */ // MIs[0] src
7345 /* 27043 */ // No operand predicates
7346 /* 27043 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7347 /* 27047 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7348 /* 27052 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
7349 /* 27052 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7350 /* 27057 */ GIR_EraseRootFromParent_Done,
7351 /* 27058 */ // Label 295: @27058
7352 /* 27058 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(27069), // Rule ID 51 //
7353 /* 27063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
7354 /* 27066 */ // MIs[0] dst
7355 /* 27066 */ // No operand predicates
7356 /* 27066 */ // MIs[0] src
7357 /* 27066 */ // No operand predicates
7358 /* 27066 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
7359 /* 27066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
7360 /* 27069 */ // Label 296: @27069
7361 /* 27069 */ GIM_Reject,
7362 /* 27070 */ // Label 21: @27070
7363 /* 27070 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(27091), // Rule ID 212 //
7364 /* 27075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7365 /* 27078 */ // MIs[0] dst
7366 /* 27078 */ // No operand predicates
7367 /* 27078 */ // MIs[0] src0
7368 /* 27078 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7369 /* 27082 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7370 /* 27086 */ // MIs[1] cst
7371 /* 27086 */ // No operand predicates
7372 /* 27086 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7373 /* 27088 */ // Combiner Rule #159: constant_fold_intrinsic_trunc
7374 /* 27088 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7375 /* 27091 */ // Label 297: @27091
7376 /* 27091 */ GIM_Reject,
7377 /* 27092 */ // Label 22: @27092
7378 /* 27092 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(27113), // Rule ID 213 //
7379 /* 27097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7380 /* 27100 */ // MIs[0] dst
7381 /* 27100 */ // No operand predicates
7382 /* 27100 */ // MIs[0] src0
7383 /* 27100 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7384 /* 27104 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7385 /* 27108 */ // MIs[1] cst
7386 /* 27108 */ // No operand predicates
7387 /* 27108 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7388 /* 27110 */ // Combiner Rule #160: constant_fold_intrinsic_round
7389 /* 27110 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7390 /* 27113 */ // Label 298: @27113
7391 /* 27113 */ GIM_Reject,
7392 /* 27114 */ // Label 23: @27114
7393 /* 27114 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(27135), // Rule ID 214 //
7394 /* 27119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7395 /* 27122 */ // MIs[0] dst
7396 /* 27122 */ // No operand predicates
7397 /* 27122 */ // MIs[0] src0
7398 /* 27122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7399 /* 27126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7400 /* 27130 */ // MIs[1] cst
7401 /* 27130 */ // No operand predicates
7402 /* 27130 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7403 /* 27132 */ // Combiner Rule #161: constant_fold_intrinsic_roundeven
7404 /* 27132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7405 /* 27135 */ // Label 299: @27135
7406 /* 27135 */ GIM_Reject,
7407 /* 27136 */ // Label 24: @27136
7408 /* 27136 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(27147), // Rule ID 77 //
7409 /* 27141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7410 /* 27144 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_LOAD'
7411 /* 27144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7412 /* 27147 */ // Label 300: @27147
7413 /* 27147 */ GIM_Reject,
7414 /* 27148 */ // Label 25: @27148
7415 /* 27148 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(27159), // Rule ID 78 //
7416 /* 27153 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7417 /* 27156 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_SEXTLOAD'
7418 /* 27156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7419 /* 27159 */ // Label 301: @27159
7420 /* 27159 */ GIM_Reject,
7421 /* 27160 */ // Label 26: @27160
7422 /* 27160 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(27171), // Rule ID 79 //
7423 /* 27165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7424 /* 27168 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
7425 /* 27168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7426 /* 27171 */ // Label 302: @27171
7427 /* 27171 */ GIM_Reject,
7428 /* 27172 */ // Label 27: @27172
7429 /* 27172 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(27183), // Rule ID 113 //
7430 /* 27177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
7431 /* 27180 */ // Combiner Rule #86: erase_undef_store; wip_match_opcode 'G_STORE'
7432 /* 27180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7433 /* 27183 */ // Label 303: @27183
7434 /* 27183 */ GIM_Reject,
7435 /* 27184 */ // Label 28: @27184
7436 /* 27184 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(27365),
7437 /* 27189 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7438 /* 27192 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(27252), // Rule ID 469 //
7439 /* 27197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule288Enabled),
7440 /* 27200 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
7441 /* 27205 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7442 /* 27211 */ // MIs[0] dst
7443 /* 27211 */ // No operand predicates
7444 /* 27211 */ // MIs[0] sqrt
7445 /* 27211 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7446 /* 27215 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7447 /* 27219 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7448 /* 27222 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7449 /* 27228 */ // MIs[1] sqrt
7450 /* 27228 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
7451 /* 27233 */ // MIs[1] x
7452 /* 27233 */ // No operand predicates
7453 /* 27233 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7454 /* 27235 */ // Combiner Rule #288: rcp_of_amdgcn_sqrt_to_rsq
7455 /* 27235 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7456 /* 27238 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7457 /* 27240 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7458 /* 27244 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
7459 /* 27248 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7460 /* 27251 */ GIR_EraseRootFromParent_Done,
7461 /* 27252 */ // Label 305: @27252
7462 /* 27252 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(27312), // Rule ID 471 //
7463 /* 27257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule290Enabled),
7464 /* 27260 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_sqrt),
7465 /* 27265 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7466 /* 27271 */ // MIs[0] dst
7467 /* 27271 */ // No operand predicates
7468 /* 27271 */ // MIs[0] rcp
7469 /* 27271 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7470 /* 27275 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7471 /* 27279 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7472 /* 27282 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7473 /* 27288 */ // MIs[1] rcp
7474 /* 27288 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
7475 /* 27293 */ // MIs[1] x
7476 /* 27293 */ // No operand predicates
7477 /* 27293 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7478 /* 27295 */ // Combiner Rule #290: amdgcn_sqrt_of_rcp_to_rsq
7479 /* 27295 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7480 /* 27298 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7481 /* 27300 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7482 /* 27304 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
7483 /* 27308 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7484 /* 27311 */ GIR_EraseRootFromParent_Done,
7485 /* 27312 */ // Label 306: @27312
7486 /* 27312 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(27364), // Rule ID 468 //
7487 /* 27317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule287Enabled),
7488 /* 27320 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
7489 /* 27325 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7490 /* 27331 */ // MIs[0] dst
7491 /* 27331 */ // No operand predicates
7492 /* 27331 */ // MIs[0] sqrt
7493 /* 27331 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7494 /* 27335 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
7495 /* 27339 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7496 /* 27345 */ // MIs[1] x
7497 /* 27345 */ // No operand predicates
7498 /* 27345 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7499 /* 27347 */ // Combiner Rule #287: rcp_of_fsqrt_to_rsq
7500 /* 27347 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7501 /* 27350 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7502 /* 27352 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7503 /* 27356 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7504 /* 27360 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7505 /* 27363 */ GIR_EraseRootFromParent_Done,
7506 /* 27364 */ // Label 307: @27364
7507 /* 27364 */ GIM_Reject,
7508 /* 27365 */ // Label 304: @27365
7509 /* 27365 */ GIM_Reject,
7510 /* 27366 */ // Label 29: @27366
7511 /* 27366 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(27387), // Rule ID 64 //
7512 /* 27371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
7513 /* 27374 */ // MIs[0] root
7514 /* 27374 */ // No operand predicates
7515 /* 27374 */ // MIs[0] select
7516 /* 27374 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7517 /* 27378 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7518 /* 27382 */ // MIs[1] cond
7519 /* 27382 */ // No operand predicates
7520 /* 27382 */ // MIs[1] true
7521 /* 27382 */ // No operand predicates
7522 /* 27382 */ // MIs[1] false
7523 /* 27382 */ // No operand predicates
7524 /* 27382 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7525 /* 27384 */ // Combiner Rule #60: select_of_anyext
7526 /* 27384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7527 /* 27387 */ // Label 308: @27387
7528 /* 27387 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(27408), // Rule ID 59 //
7529 /* 27392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7530 /* 27395 */ // MIs[0] root
7531 /* 27395 */ // No operand predicates
7532 /* 27395 */ // MIs[0] second
7533 /* 27395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7534 /* 27399 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7535 /* 27403 */ // MIs[1] src
7536 /* 27403 */ // No operand predicates
7537 /* 27403 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7538 /* 27405 */ // Combiner Rule #55: anyext_of_anyext
7539 /* 27405 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7540 /* 27408 */ // Label 309: @27408
7541 /* 27408 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(27429), // Rule ID 61 //
7542 /* 27413 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
7543 /* 27416 */ // MIs[0] root
7544 /* 27416 */ // No operand predicates
7545 /* 27416 */ // MIs[0] second
7546 /* 27416 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7547 /* 27420 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7548 /* 27424 */ // MIs[1] src
7549 /* 27424 */ // No operand predicates
7550 /* 27424 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7551 /* 27426 */ // Combiner Rule #57: anyext_of_sext
7552 /* 27426 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7553 /* 27429 */ // Label 310: @27429
7554 /* 27429 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(27450), // Rule ID 60 //
7555 /* 27434 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
7556 /* 27437 */ // MIs[0] root
7557 /* 27437 */ // No operand predicates
7558 /* 27437 */ // MIs[0] second
7559 /* 27437 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7560 /* 27441 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7561 /* 27445 */ // MIs[1] src
7562 /* 27445 */ // No operand predicates
7563 /* 27445 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7564 /* 27447 */ // Combiner Rule #56: anyext_of_zext
7565 /* 27447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7566 /* 27450 */ // Label 311: @27450
7567 /* 27450 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(27471), // Rule ID 99 //
7568 /* 27455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7569 /* 27458 */ // MIs[0] dst
7570 /* 27458 */ // No operand predicates
7571 /* 27458 */ // MIs[0] __unary_undef_to_undef_match_0.x
7572 /* 27458 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7573 /* 27462 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7574 /* 27466 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7575 /* 27468 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
7576 /* 27468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7577 /* 27471 */ // Label 312: @27471
7578 /* 27471 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(27482), // Rule ID 143 //
7579 /* 27476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7580 /* 27479 */ // MIs[0] dst
7581 /* 27479 */ // No operand predicates
7582 /* 27479 */ // MIs[0] src
7583 /* 27479 */ // No operand predicates
7584 /* 27479 */ // Combiner Rule #97: anyext_trunc_fold
7585 /* 27479 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
7586 /* 27482 */ // Label 313: @27482
7587 /* 27482 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(27493), // Rule ID 306 //
7588 /* 27487 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7589 /* 27490 */ // MIs[0] dst
7590 /* 27490 */ // No operand predicates
7591 /* 27490 */ // MIs[0] d.src
7592 /* 27490 */ // No operand predicates
7593 /* 27490 */ // Combiner Rule #197: constant_fold_cast_op @ [d[2]]
7594 /* 27490 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
7595 /* 27493 */ // Label 314: @27493
7596 /* 27493 */ GIM_Reject,
7597 /* 27494 */ // Label 30: @27494
7598 /* 27494 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(5), /*)*//*default:*//*Label 318*/ GIMT_Encode4(27760),
7599 /* 27505 */ /*GILLT_i16*//*Label 315*/ GIMT_Encode4(27525), GIMT_Encode4(0), GIMT_Encode4(0),
7600 /* 27517 */ /*GILLT_f16*//*Label 316*/ GIMT_Encode4(27592),
7601 /* 27521 */ /*GILLT_bf16*//*Label 317*/ GIMT_Encode4(27676),
7602 /* 27525 */ // Label 315: @27525
7603 /* 27525 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(27591), // Rule ID 475 //
7604 /* 27530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule294Enabled),
7605 /* 27533 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7606 /* 27536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7607 /* 27540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7608 /* 27544 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7609 /* 27548 */ // MIs[1] src
7610 /* 27548 */ // No operand predicates
7611 /* 27548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7612 /* 27552 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7613 /* 27556 */ // MIs[2] Operand 1
7614 /* 27556 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7615 /* 27567 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7616 /* 27571 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7617 /* 27573 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7618 /* 27576 */ // Combiner Rule #294: trunc_lshr16_unmerge_i16
7619 /* 27576 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7620 /* 27579 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7621 /* 27584 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7622 /* 27586 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7623 /* 27590 */ GIR_EraseRootFromParent_Done,
7624 /* 27591 */ // Label 319: @27591
7625 /* 27591 */ GIM_Reject,
7626 /* 27592 */ // Label 316: @27592
7627 /* 27592 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(27675), // Rule ID 476 //
7628 /* 27597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule295Enabled),
7629 /* 27600 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7630 /* 27603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7631 /* 27607 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7632 /* 27611 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7633 /* 27615 */ // MIs[1] src
7634 /* 27615 */ // No operand predicates
7635 /* 27615 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7636 /* 27619 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7637 /* 27623 */ // MIs[2] Operand 1
7638 /* 27623 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7639 /* 27634 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7640 /* 27638 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7641 /* 27640 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
7642 /* 27643 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7643 /* 27646 */ // Combiner Rule #295: trunc_lshr16_unmerge_f16
7644 /* 27646 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7645 /* 27649 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7646 /* 27654 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7647 /* 27659 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7648 /* 27663 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7649 /* 27667 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7650 /* 27671 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7651 /* 27674 */ GIR_EraseRootFromParent_Done,
7652 /* 27675 */ // Label 320: @27675
7653 /* 27675 */ GIM_Reject,
7654 /* 27676 */ // Label 317: @27676
7655 /* 27676 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(27759), // Rule ID 477 //
7656 /* 27681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule296Enabled),
7657 /* 27684 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7658 /* 27687 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7659 /* 27691 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7660 /* 27695 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7661 /* 27699 */ // MIs[1] src
7662 /* 27699 */ // No operand predicates
7663 /* 27699 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7664 /* 27703 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7665 /* 27707 */ // MIs[2] Operand 1
7666 /* 27707 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7667 /* 27718 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7668 /* 27722 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7669 /* 27724 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
7670 /* 27727 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7671 /* 27730 */ // Combiner Rule #296: trunc_lshr16_unmerge_bf16
7672 /* 27730 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7673 /* 27733 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7674 /* 27738 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7675 /* 27743 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7676 /* 27747 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7677 /* 27751 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7678 /* 27755 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7679 /* 27758 */ GIR_EraseRootFromParent_Done,
7680 /* 27759 */ // Label 321: @27759
7681 /* 27759 */ GIM_Reject,
7682 /* 27760 */ // Label 318: @27760
7683 /* 27760 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(27781), // Rule ID 65 //
7684 /* 27765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
7685 /* 27768 */ // MIs[0] root
7686 /* 27768 */ // No operand predicates
7687 /* 27768 */ // MIs[0] select
7688 /* 27768 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7689 /* 27772 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7690 /* 27776 */ // MIs[1] cond
7691 /* 27776 */ // No operand predicates
7692 /* 27776 */ // MIs[1] true
7693 /* 27776 */ // No operand predicates
7694 /* 27776 */ // MIs[1] false
7695 /* 27776 */ // No operand predicates
7696 /* 27776 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7697 /* 27778 */ // Combiner Rule #61: select_of_truncate
7698 /* 27778 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7699 /* 27781 */ // Label 322: @27781
7700 /* 27781 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(27810), // Rule ID 67 //
7701 /* 27786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7702 /* 27789 */ // MIs[0] root
7703 /* 27789 */ // No operand predicates
7704 /* 27789 */ // MIs[0] binop
7705 /* 27789 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7706 /* 27793 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7707 /* 27797 */ // MIs[1] x
7708 /* 27797 */ // No operand predicates
7709 /* 27797 */ // MIs[1] const
7710 /* 27797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7711 /* 27801 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7712 /* 27805 */ // MIs[2] imm
7713 /* 27805 */ // No operand predicates
7714 /* 27805 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7715 /* 27807 */ // Combiner Rule #63: narrow_binop_add
7716 /* 27807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7717 /* 27810 */ // Label 323: @27810
7718 /* 27810 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(27839), // Rule ID 70 //
7719 /* 27815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7720 /* 27818 */ // MIs[0] root
7721 /* 27818 */ // No operand predicates
7722 /* 27818 */ // MIs[0] binop
7723 /* 27818 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7724 /* 27822 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7725 /* 27826 */ // MIs[1] x
7726 /* 27826 */ // No operand predicates
7727 /* 27826 */ // MIs[1] const
7728 /* 27826 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7729 /* 27830 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7730 /* 27834 */ // MIs[2] imm
7731 /* 27834 */ // No operand predicates
7732 /* 27834 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7733 /* 27836 */ // Combiner Rule #66: narrow_binop_and
7734 /* 27836 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7735 /* 27839 */ // Label 324: @27839
7736 /* 27839 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(27868), // Rule ID 69 //
7737 /* 27844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7738 /* 27847 */ // MIs[0] root
7739 /* 27847 */ // No operand predicates
7740 /* 27847 */ // MIs[0] binop
7741 /* 27847 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7742 /* 27851 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7743 /* 27855 */ // MIs[1] x
7744 /* 27855 */ // No operand predicates
7745 /* 27855 */ // MIs[1] const
7746 /* 27855 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7747 /* 27859 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7748 /* 27863 */ // MIs[2] imm
7749 /* 27863 */ // No operand predicates
7750 /* 27863 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7751 /* 27865 */ // Combiner Rule #65: narrow_binop_mul
7752 /* 27865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7753 /* 27868 */ // Label 325: @27868
7754 /* 27868 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(27897), // Rule ID 71 //
7755 /* 27873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7756 /* 27876 */ // MIs[0] root
7757 /* 27876 */ // No operand predicates
7758 /* 27876 */ // MIs[0] binop
7759 /* 27876 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7760 /* 27880 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7761 /* 27884 */ // MIs[1] x
7762 /* 27884 */ // No operand predicates
7763 /* 27884 */ // MIs[1] const
7764 /* 27884 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7765 /* 27888 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7766 /* 27892 */ // MIs[2] imm
7767 /* 27892 */ // No operand predicates
7768 /* 27892 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7769 /* 27894 */ // Combiner Rule #67: narrow_binop_or
7770 /* 27894 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7771 /* 27897 */ // Label 326: @27897
7772 /* 27897 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(27926), // Rule ID 68 //
7773 /* 27902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7774 /* 27905 */ // MIs[0] root
7775 /* 27905 */ // No operand predicates
7776 /* 27905 */ // MIs[0] binop
7777 /* 27905 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7778 /* 27909 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7779 /* 27913 */ // MIs[1] x
7780 /* 27913 */ // No operand predicates
7781 /* 27913 */ // MIs[1] const
7782 /* 27913 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7783 /* 27917 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7784 /* 27921 */ // MIs[2] imm
7785 /* 27921 */ // No operand predicates
7786 /* 27921 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7787 /* 27923 */ // Combiner Rule #64: narrow_binop_sub
7788 /* 27923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7789 /* 27926 */ // Label 327: @27926
7790 /* 27926 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(27958), // Rule ID 431 //
7791 /* 27931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
7792 /* 27934 */ // MIs[0] dst
7793 /* 27934 */ // No operand predicates
7794 /* 27934 */ // MIs[0] min
7795 /* 27934 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7796 /* 27938 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7797 /* 27942 */ // MIs[1] x
7798 /* 27942 */ // No operand predicates
7799 /* 27942 */ // MIs[1] y
7800 /* 27942 */ // No operand predicates
7801 /* 27942 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7802 /* 27946 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7803 /* 27948 */ // Combiner Rule #260: trunc_usatu
7804 /* 27948 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7805 /* 27951 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7806 /* 27953 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7807 /* 27957 */ GIR_EraseRootFromParent_Done,
7808 /* 27958 */ // Label 328: @27958
7809 /* 27958 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(27987), // Rule ID 72 //
7810 /* 27963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7811 /* 27966 */ // MIs[0] root
7812 /* 27966 */ // No operand predicates
7813 /* 27966 */ // MIs[0] binop
7814 /* 27966 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7815 /* 27970 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7816 /* 27974 */ // MIs[1] x
7817 /* 27974 */ // No operand predicates
7818 /* 27974 */ // MIs[1] const
7819 /* 27974 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7820 /* 27978 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7821 /* 27982 */ // MIs[2] imm
7822 /* 27982 */ // No operand predicates
7823 /* 27982 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7824 /* 27984 */ // Combiner Rule #68: narrow_binop_xor
7825 /* 27984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7826 /* 27987 */ // Label 329: @27987
7827 /* 27987 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(28008), // Rule ID 54 //
7828 /* 27992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7829 /* 27995 */ // MIs[0] root
7830 /* 27995 */ // No operand predicates
7831 /* 27995 */ // MIs[0] ext
7832 /* 27995 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7833 /* 27999 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7834 /* 28003 */ // MIs[1] src
7835 /* 28003 */ // No operand predicates
7836 /* 28003 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7837 /* 28005 */ // Combiner Rule #50: truncate_of_anyext
7838 /* 28005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7839 /* 28008 */ // Label 330: @28008
7840 /* 28008 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(28032), // Rule ID 66 //
7841 /* 28013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7842 /* 28016 */ // MIs[0] root
7843 /* 28016 */ // No operand predicates
7844 /* 28016 */ // MIs[0] bv
7845 /* 28016 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7846 /* 28020 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7847 /* 28024 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7848 /* 28027 */ // MIs[1] unused
7849 /* 28027 */ // No operand predicates
7850 /* 28027 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7851 /* 28029 */ // Combiner Rule #62: buildvector_of_truncate
7852 /* 28029 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7853 /* 28032 */ // Label 331: @28032
7854 /* 28032 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(28053), // Rule ID 53 //
7855 /* 28037 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7856 /* 28040 */ // MIs[0] root
7857 /* 28040 */ // No operand predicates
7858 /* 28040 */ // MIs[0] ext
7859 /* 28040 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7860 /* 28044 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7861 /* 28048 */ // MIs[1] src
7862 /* 28048 */ // No operand predicates
7863 /* 28048 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7864 /* 28050 */ // Combiner Rule #49: truncate_of_sext
7865 /* 28050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7866 /* 28053 */ // Label 332: @28053
7867 /* 28053 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(28074), // Rule ID 52 //
7868 /* 28058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
7869 /* 28061 */ // MIs[0] root
7870 /* 28061 */ // No operand predicates
7871 /* 28061 */ // MIs[0] ext
7872 /* 28061 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7873 /* 28065 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7874 /* 28069 */ // MIs[1] src
7875 /* 28069 */ // No operand predicates
7876 /* 28069 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7877 /* 28071 */ // Combiner Rule #48: truncate_of_zext
7878 /* 28071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7879 /* 28074 */ // Label 333: @28074
7880 /* 28074 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(28095), // Rule ID 97 //
7881 /* 28079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7882 /* 28082 */ // MIs[0] dst
7883 /* 28082 */ // No operand predicates
7884 /* 28082 */ // MIs[0] __unary_undef_to_undef_match_0.x
7885 /* 28082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7886 /* 28086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7887 /* 28090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7888 /* 28092 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7889 /* 28092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7890 /* 28095 */ // Label 334: @28095
7891 /* 28095 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(28116), // Rule ID 73 //
7892 /* 28100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7893 /* 28103 */ // MIs[0] root
7894 /* 28103 */ // No operand predicates
7895 /* 28103 */ // MIs[0] int
7896 /* 28103 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7897 /* 28107 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7898 /* 28111 */ // MIs[1] imm
7899 /* 28111 */ // No operand predicates
7900 /* 28111 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7901 /* 28113 */ // Combiner Rule #69: integer_of_truncate
7902 /* 28113 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7903 /* 28116 */ // Label 335: @28116
7904 /* 28116 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(28127), // Rule ID 151 //
7905 /* 28121 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7906 /* 28124 */ // MIs[0] dst
7907 /* 28124 */ // No operand predicates
7908 /* 28124 */ // MIs[0] src
7909 /* 28124 */ // No operand predicates
7910 /* 28124 */ // Combiner Rule #103: trunc_buildvector_fold
7911 /* 28124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
7912 /* 28127 */ // Label 336: @28127
7913 /* 28127 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(28138), // Rule ID 152 //
7914 /* 28132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7915 /* 28135 */ // MIs[0] dst
7916 /* 28135 */ // No operand predicates
7917 /* 28135 */ // MIs[0] src
7918 /* 28135 */ // No operand predicates
7919 /* 28135 */ // Combiner Rule #104: trunc_lshr_buildvector_fold
7920 /* 28135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7921 /* 28138 */ // Label 337: @28138
7922 /* 28138 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(28149), // Rule ID 201 //
7923 /* 28143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
7924 /* 28146 */ // MIs[0] dst
7925 /* 28146 */ // No operand predicates
7926 /* 28146 */ // MIs[0] src
7927 /* 28146 */ // No operand predicates
7928 /* 28146 */ // Combiner Rule #148: trunc_shift
7929 /* 28146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
7930 /* 28149 */ // Label 338: @28149
7931 /* 28149 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(28160), // Rule ID 429 //
7932 /* 28154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
7933 /* 28157 */ // MIs[0] dst
7934 /* 28157 */ // No operand predicates
7935 /* 28157 */ // MIs[0] src
7936 /* 28157 */ // No operand predicates
7937 /* 28157 */ // Combiner Rule #258: trunc_ssats
7938 /* 28157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
7939 /* 28160 */ // Label 339: @28160
7940 /* 28160 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(28171), // Rule ID 430 //
7941 /* 28165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
7942 /* 28168 */ // MIs[0] dst
7943 /* 28168 */ // No operand predicates
7944 /* 28168 */ // MIs[0] src
7945 /* 28168 */ // No operand predicates
7946 /* 28168 */ // Combiner Rule #259: trunc_ssatu
7947 /* 28168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
7948 /* 28171 */ // Label 340: @28171
7949 /* 28171 */ GIM_Reject,
7950 /* 28172 */ // Label 31: @28172
7951 /* 28172 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(28204), // Rule ID 432 //
7952 /* 28177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
7953 /* 28180 */ // MIs[0] dst
7954 /* 28180 */ // No operand predicates
7955 /* 28180 */ // MIs[0] src
7956 /* 28180 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7957 /* 28184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
7958 /* 28188 */ // MIs[1] x
7959 /* 28188 */ // No operand predicates
7960 /* 28188 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
7961 /* 28192 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7962 /* 28194 */ // Combiner Rule #261: truncusatu_to_fptouisat
7963 /* 28194 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
7964 /* 28197 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7965 /* 28199 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7966 /* 28203 */ GIR_EraseRootFromParent_Done,
7967 /* 28204 */ // Label 341: @28204
7968 /* 28204 */ GIM_Reject,
7969 /* 28205 */ // Label 32: @28205
7970 /* 28205 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(28226), // Rule ID 58 //
7971 /* 28210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
7972 /* 28213 */ // MIs[0] root
7973 /* 28213 */ // No operand predicates
7974 /* 28213 */ // MIs[0] second
7975 /* 28213 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7976 /* 28217 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7977 /* 28221 */ // MIs[1] src
7978 /* 28221 */ // No operand predicates
7979 /* 28221 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7980 /* 28223 */ // Combiner Rule #54: sext_of_anyext
7981 /* 28223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7982 /* 28226 */ // Label 342: @28226
7983 /* 28226 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(28247), // Rule ID 57 //
7984 /* 28231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
7985 /* 28234 */ // MIs[0] root
7986 /* 28234 */ // No operand predicates
7987 /* 28234 */ // MIs[0] second
7988 /* 28234 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7989 /* 28238 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7990 /* 28242 */ // MIs[1] src
7991 /* 28242 */ // No operand predicates
7992 /* 28242 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7993 /* 28244 */ // Combiner Rule #53: sext_of_sext
7994 /* 28244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7995 /* 28247 */ // Label 343: @28247
7996 /* 28247 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(28268), // Rule ID 408 //
7997 /* 28252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
7998 /* 28255 */ // MIs[0] root
7999 /* 28255 */ // No operand predicates
8000 /* 28255 */ // MIs[0] src
8001 /* 28255 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8002 /* 28259 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8003 /* 28263 */ // MIs[1] x
8004 /* 28263 */ // No operand predicates
8005 /* 28263 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8006 /* 28265 */ // Combiner Rule #239: sext_trunc
8007 /* 28265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
8008 /* 28268 */ // Label 344: @28268
8009 /* 28268 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(28279), // Rule ID 305 //
8010 /* 28273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8011 /* 28276 */ // MIs[0] dst
8012 /* 28276 */ // No operand predicates
8013 /* 28276 */ // MIs[0] d.src
8014 /* 28276 */ // No operand predicates
8015 /* 28276 */ // Combiner Rule #197: constant_fold_cast_op @ [d[1]]
8016 /* 28276 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
8017 /* 28279 */ // Label 345: @28279
8018 /* 28279 */ GIM_Reject,
8019 /* 28280 */ // Label 33: @28280
8020 /* 28280 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(28301), // Rule ID 62 //
8021 /* 28285 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
8022 /* 28288 */ // MIs[0] dst
8023 /* 28288 */ // No operand predicates
8024 /* 28288 */ // MIs[0] x
8025 /* 28288 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8026 /* 28292 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
8027 /* 28296 */ // MIs[1] src
8028 /* 28296 */ // No operand predicates
8029 /* 28296 */ // MIs[1] a
8030 /* 28296 */ // No operand predicates
8031 /* 28296 */ // MIs[0] b
8032 /* 28296 */ // No operand predicates
8033 /* 28296 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8034 /* 28298 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
8035 /* 28298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
8036 /* 28301 */ // Label 346: @28301
8037 /* 28301 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(28341), // Rule ID 195 //
8038 /* 28306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
8039 /* 28309 */ // MIs[0] dst
8040 /* 28309 */ // No operand predicates
8041 /* 28309 */ // MIs[0] tmp4
8042 /* 28309 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8043 /* 28313 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8044 /* 28317 */ // MIs[1] tmp2
8045 /* 28317 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8046 /* 28321 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8047 /* 28325 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8048 /* 28328 */ // MIs[2] tmp3
8049 /* 28328 */ // No operand predicates
8050 /* 28328 */ // MIs[2] tmp1
8051 /* 28328 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8052 /* 28332 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8053 /* 28336 */ // MIs[3] src
8054 /* 28336 */ // No operand predicates
8055 /* 28336 */ // MIs[0] amt
8056 /* 28336 */ // No operand predicates
8057 /* 28336 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8058 /* 28338 */ // Combiner Rule #142: redundant_aext_unmerge_sext_inreg
8059 /* 28338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8060 /* 28341 */ // Label 347: @28341
8061 /* 28341 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(28373), // Rule ID 193 //
8062 /* 28346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
8063 /* 28349 */ // MIs[0] dst
8064 /* 28349 */ // No operand predicates
8065 /* 28349 */ // MIs[0] tmp
8066 /* 28349 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8067 /* 28353 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8068 /* 28357 */ // MIs[1] src
8069 /* 28357 */ // No operand predicates
8070 /* 28357 */ // MIs[0] amt
8071 /* 28357 */ // No operand predicates
8072 /* 28357 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8073 /* 28361 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8074 /* 28363 */ // Combiner Rule #140: redundant_aext_sext_inreg
8075 /* 28363 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8076 /* 28366 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8077 /* 28368 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8078 /* 28372 */ GIR_EraseRootFromParent_Done,
8079 /* 28373 */ // Label 348: @28373
8080 /* 28373 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(28413), // Rule ID 194 //
8081 /* 28378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
8082 /* 28381 */ // MIs[0] dst
8083 /* 28381 */ // No operand predicates
8084 /* 28381 */ // MIs[0] tmp4
8085 /* 28381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8086 /* 28385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8087 /* 28389 */ // MIs[1] tmp2
8088 /* 28389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8089 /* 28393 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8090 /* 28397 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8091 /* 28400 */ // MIs[2] tmp3
8092 /* 28400 */ // No operand predicates
8093 /* 28400 */ // MIs[2] tmp1
8094 /* 28400 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8095 /* 28404 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8096 /* 28408 */ // MIs[3] src
8097 /* 28408 */ // No operand predicates
8098 /* 28408 */ // MIs[0] amt
8099 /* 28408 */ // No operand predicates
8100 /* 28408 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8101 /* 28410 */ // Combiner Rule #141: redundant_zext_unmerge_sext_inreg
8102 /* 28410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8103 /* 28413 */ // Label 349: @28413
8104 /* 28413 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(28445), // Rule ID 192 //
8105 /* 28418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
8106 /* 28421 */ // MIs[0] dst
8107 /* 28421 */ // No operand predicates
8108 /* 28421 */ // MIs[0] tmp
8109 /* 28421 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8110 /* 28425 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8111 /* 28429 */ // MIs[1] src
8112 /* 28429 */ // No operand predicates
8113 /* 28429 */ // MIs[0] amt
8114 /* 28429 */ // No operand predicates
8115 /* 28429 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8116 /* 28433 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8117 /* 28435 */ // Combiner Rule #139: redundant_zext_sext_inreg
8118 /* 28435 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8119 /* 28438 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8120 /* 28440 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8121 /* 28444 */ GIR_EraseRootFromParent_Done,
8122 /* 28445 */ // Label 350: @28445
8123 /* 28445 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(28468), // Rule ID 191 //
8124 /* 28450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
8125 /* 28453 */ // MIs[0] dst
8126 /* 28453 */ // No operand predicates
8127 /* 28453 */ // MIs[0] src
8128 /* 28453 */ // No operand predicates
8129 /* 28453 */ // MIs[0] sz
8130 /* 28453 */ // No operand predicates
8131 /* 28453 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
8132 /* 28457 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8133 /* 28462 */ // Combiner Rule #138: redundant_sext_inreg
8134 /* 28462 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8135 /* 28467 */ GIR_EraseRootFromParent_Done,
8136 /* 28468 */ // Label 351: @28468
8137 /* 28468 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(28479), // Rule ID 180 //
8138 /* 28473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
8139 /* 28476 */ // MIs[0] dst
8140 /* 28476 */ // No operand predicates
8141 /* 28476 */ // MIs[0] src
8142 /* 28476 */ // No operand predicates
8143 /* 28476 */ // MIs[0] sz
8144 /* 28476 */ // No operand predicates
8145 /* 28476 */ // Combiner Rule #127: sext_inreg_of_load
8146 /* 28476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
8147 /* 28479 */ // Label 352: @28479
8148 /* 28479 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(28490), // Rule ID 200 //
8149 /* 28484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
8150 /* 28487 */ // MIs[0] dst
8151 /* 28487 */ // No operand predicates
8152 /* 28487 */ // MIs[0] src
8153 /* 28487 */ // No operand predicates
8154 /* 28487 */ // MIs[0] imm
8155 /* 28487 */ // No operand predicates
8156 /* 28487 */ // Combiner Rule #147: sext_inreg_to_zext_inreg
8157 /* 28487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
8158 /* 28490 */ // Label 353: @28490
8159 /* 28490 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(28501), // Rule ID 266 //
8160 /* 28495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
8161 /* 28498 */ // MIs[0] dst
8162 /* 28498 */ // No operand predicates
8163 /* 28498 */ // MIs[0] src
8164 /* 28498 */ // No operand predicates
8165 /* 28498 */ // MIs[0] sz
8166 /* 28498 */ // No operand predicates
8167 /* 28498 */ // Combiner Rule #190: bitfield_extract_from_sext_inreg
8168 /* 28498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
8169 /* 28501 */ // Label 354: @28501
8170 /* 28501 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(28512), // Rule ID 473 //
8171 /* 28506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule292Enabled),
8172 /* 28509 */ // MIs[0] dst
8173 /* 28509 */ // No operand predicates
8174 /* 28509 */ // MIs[0] src
8175 /* 28509 */ // No operand predicates
8176 /* 28509 */ // MIs[0] width
8177 /* 28509 */ // No operand predicates
8178 /* 28509 */ // Combiner Rule #292: sign_extension_in_reg
8179 /* 28509 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
8180 /* 28512 */ // Label 355: @28512
8181 /* 28512 */ GIM_Reject,
8182 /* 28513 */ // Label 34: @28513
8183 /* 28513 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(28534), // Rule ID 63 //
8184 /* 28518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
8185 /* 28521 */ // MIs[0] root
8186 /* 28521 */ // No operand predicates
8187 /* 28521 */ // MIs[0] select
8188 /* 28521 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8189 /* 28525 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8190 /* 28529 */ // MIs[1] cond
8191 /* 28529 */ // No operand predicates
8192 /* 28529 */ // MIs[1] true
8193 /* 28529 */ // No operand predicates
8194 /* 28529 */ // MIs[1] false
8195 /* 28529 */ // No operand predicates
8196 /* 28529 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8197 /* 28531 */ // Combiner Rule #59: select_of_zext
8198 /* 28531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8199 /* 28534 */ // Label 356: @28534
8200 /* 28534 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(28555), // Rule ID 56 //
8201 /* 28539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
8202 /* 28542 */ // MIs[0] root
8203 /* 28542 */ // No operand predicates
8204 /* 28542 */ // MIs[0] second
8205 /* 28542 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8206 /* 28546 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8207 /* 28550 */ // MIs[1] src
8208 /* 28550 */ // No operand predicates
8209 /* 28550 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8210 /* 28552 */ // Combiner Rule #52: zext_of_anyext
8211 /* 28552 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8212 /* 28555 */ // Label 357: @28555
8213 /* 28555 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(28582), // Rule ID 409 //
8214 /* 28560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
8215 /* 28563 */ // MIs[0] root
8216 /* 28563 */ // No operand predicates
8217 /* 28563 */ // MIs[0] src
8218 /* 28563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8219 /* 28567 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8220 /* 28571 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
8221 /* 28577 */ // MIs[1] x
8222 /* 28577 */ // No operand predicates
8223 /* 28577 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8224 /* 28579 */ // Combiner Rule #240: zext_trunc
8225 /* 28579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
8226 /* 28582 */ // Label 358: @28582
8227 /* 28582 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(28603), // Rule ID 55 //
8228 /* 28587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
8229 /* 28590 */ // MIs[0] root
8230 /* 28590 */ // No operand predicates
8231 /* 28590 */ // MIs[0] second
8232 /* 28590 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8233 /* 28594 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8234 /* 28598 */ // MIs[1] src
8235 /* 28598 */ // No operand predicates
8236 /* 28598 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8237 /* 28600 */ // Combiner Rule #51: zext_of_zext
8238 /* 28600 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8239 /* 28603 */ // Label 359: @28603
8240 /* 28603 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(28620), // Rule ID 410 //
8241 /* 28608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
8242 /* 28611 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
8243 /* 28617 */ // MIs[0] root
8244 /* 28617 */ // No operand predicates
8245 /* 28617 */ // MIs[0] x
8246 /* 28617 */ // No operand predicates
8247 /* 28617 */ // Combiner Rule #241: nneg_zext
8248 /* 28617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
8249 /* 28620 */ // Label 360: @28620
8250 /* 28620 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(28631), // Rule ID 199 //
8251 /* 28625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8252 /* 28628 */ // MIs[0] dst
8253 /* 28628 */ // No operand predicates
8254 /* 28628 */ // MIs[0] src
8255 /* 28628 */ // No operand predicates
8256 /* 28628 */ // Combiner Rule #146: zext_trunc_fold
8257 /* 28628 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
8258 /* 28631 */ // Label 361: @28631
8259 /* 28631 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(28642), // Rule ID 304 //
8260 /* 28636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8261 /* 28639 */ // MIs[0] dst
8262 /* 28639 */ // No operand predicates
8263 /* 28639 */ // MIs[0] d.src
8264 /* 28639 */ // No operand predicates
8265 /* 28639 */ // Combiner Rule #197: constant_fold_cast_op @ [d[0]]
8266 /* 28639 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
8267 /* 28642 */ // Label 362: @28642
8268 /* 28642 */ GIM_Reject,
8269 /* 28643 */ // Label 35: @28643
8270 /* 28643 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(28654), // Rule ID 236 //
8271 /* 28648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8272 /* 28651 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SHL'
8273 /* 28651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8274 /* 28654 */ // Label 363: @28654
8275 /* 28654 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(28665), // Rule ID 241 //
8276 /* 28659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8277 /* 28662 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
8278 /* 28662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8279 /* 28665 */ // Label 364: @28665
8280 /* 28665 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(28676), // Rule ID 279 //
8281 /* 28670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8282 /* 28673 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SHL'
8283 /* 28673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8284 /* 28676 */ // Label 365: @28676
8285 /* 28676 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(28687), // Rule ID 344 //
8286 /* 28681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8287 /* 28684 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SHL'
8288 /* 28684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8289 /* 28687 */ // Label 366: @28687
8290 /* 28687 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(28765), // Rule ID 264 //
8291 /* 28692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8292 /* 28695 */ // MIs[0] dst
8293 /* 28695 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8294 /* 28699 */ // MIs[0] binop_dst
8295 /* 28699 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8296 /* 28703 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8297 /* 28707 */ // MIs[1] x
8298 /* 28707 */ // No operand predicates
8299 /* 28707 */ // MIs[1] c1
8300 /* 28707 */ // No operand predicates
8301 /* 28707 */ // MIs[0] c2
8302 /* 28707 */ // No operand predicates
8303 /* 28707 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
8304 /* 28711 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8305 /* 28713 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8306 /* 28716 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8307 /* 28719 */ // Combiner Rule #188: commute_shift_add
8308 /* 28719 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8309 /* 28722 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8310 /* 28727 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8311 /* 28731 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8312 /* 28733 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8313 /* 28737 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8314 /* 28742 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8315 /* 28746 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8316 /* 28750 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
8317 /* 28754 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8318 /* 28758 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8319 /* 28761 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8320 /* 28764 */ GIR_EraseRootFromParent_Done,
8321 /* 28765 */ // Label 367: @28765
8322 /* 28765 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(28843), // Rule ID 265 //
8323 /* 28770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8324 /* 28773 */ // MIs[0] dst
8325 /* 28773 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8326 /* 28777 */ // MIs[0] binop_dst
8327 /* 28777 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8328 /* 28781 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8329 /* 28785 */ // MIs[1] x
8330 /* 28785 */ // No operand predicates
8331 /* 28785 */ // MIs[1] c1
8332 /* 28785 */ // No operand predicates
8333 /* 28785 */ // MIs[0] c2
8334 /* 28785 */ // No operand predicates
8335 /* 28785 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
8336 /* 28789 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8337 /* 28791 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8338 /* 28794 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8339 /* 28797 */ // Combiner Rule #189: commute_shift_or
8340 /* 28797 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8341 /* 28800 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8342 /* 28805 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8343 /* 28809 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8344 /* 28811 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8345 /* 28815 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8346 /* 28820 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8347 /* 28824 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8348 /* 28828 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
8349 /* 28832 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8350 /* 28836 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8351 /* 28839 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8352 /* 28842 */ GIR_EraseRootFromParent_Done,
8353 /* 28843 */ // Label 368: @28843
8354 /* 28843 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(28878), // Rule ID 48 //
8355 /* 28848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
8356 /* 28851 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
8357 /* 28857 */ // MIs[0] root
8358 /* 28857 */ // No operand predicates
8359 /* 28857 */ // MIs[0] left
8360 /* 28857 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8361 /* 28861 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
8362 /* 28865 */ // MIs[1] imm
8363 /* 28865 */ // No operand predicates
8364 /* 28865 */ // MIs[0] x
8365 /* 28865 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8366 /* 28869 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8367 /* 28873 */ // MIs[2] imm1
8368 /* 28873 */ // No operand predicates
8369 /* 28873 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8370 /* 28875 */ // Combiner Rule #44: shl_of_vscale
8371 /* 28875 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
8372 /* 28878 */ // Label 369: @28878
8373 /* 28878 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(28899), // Rule ID 90 //
8374 /* 28883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
8375 /* 28886 */ // MIs[0] dst
8376 /* 28886 */ // No operand predicates
8377 /* 28886 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
8378 /* 28886 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8379 /* 28890 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8380 /* 28894 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
8381 /* 28894 */ // No operand predicates
8382 /* 28894 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8383 /* 28896 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
8384 /* 28896 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8385 /* 28899 */ // Label 370: @28899
8386 /* 28899 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(28939), // Rule ID 132 //
8387 /* 28904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8388 /* 28907 */ // MIs[0] dst
8389 /* 28907 */ // No operand predicates
8390 /* 28907 */ // MIs[0] zero
8391 /* 28907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8392 /* 28911 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8393 /* 28915 */ // MIs[1] Operand 1
8394 /* 28915 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8395 /* 28926 */ // MIs[0] rhs
8396 /* 28926 */ // No operand predicates
8397 /* 28926 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8398 /* 28931 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8399 /* 28933 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
8400 /* 28933 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8401 /* 28938 */ GIR_EraseRootFromParent_Done,
8402 /* 28939 */ // Label 371: @28939
8403 /* 28939 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(28960), // Rule ID 93 //
8404 /* 28944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8405 /* 28947 */ // MIs[0] dst
8406 /* 28947 */ // No operand predicates
8407 /* 28947 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8408 /* 28947 */ // No operand predicates
8409 /* 28947 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8410 /* 28947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8411 /* 28951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8412 /* 28955 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8413 /* 28957 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
8414 /* 28957 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8415 /* 28960 */ // Label 372: @28960
8416 /* 28960 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(28983), // Rule ID 122 //
8417 /* 28965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8418 /* 28968 */ // MIs[0] dst
8419 /* 28968 */ // No operand predicates
8420 /* 28968 */ // MIs[0] lhs
8421 /* 28968 */ // No operand predicates
8422 /* 28968 */ // MIs[0] Operand 2
8423 /* 28968 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8424 /* 28972 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8425 /* 28977 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
8426 /* 28977 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8427 /* 28982 */ GIR_EraseRootFromParent_Done,
8428 /* 28983 */ // Label 373: @28983
8429 /* 28983 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(28994), // Rule ID 165 //
8430 /* 28988 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8431 /* 28991 */ // MIs[0] root
8432 /* 28991 */ // No operand predicates
8433 /* 28991 */ // MIs[0] mi.shifted
8434 /* 28991 */ // No operand predicates
8435 /* 28991 */ // MIs[0] mi.amt
8436 /* 28991 */ // No operand predicates
8437 /* 28991 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
8438 /* 28991 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8439 /* 28994 */ // Label 374: @28994
8440 /* 28994 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(29005), // Rule ID 181 //
8441 /* 28999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
8442 /* 29002 */ // MIs[0] dst
8443 /* 29002 */ // No operand predicates
8444 /* 29002 */ // MIs[0] src0
8445 /* 29002 */ // No operand predicates
8446 /* 29002 */ // MIs[0] src1
8447 /* 29002 */ // No operand predicates
8448 /* 29002 */ // Combiner Rule #128: reduce_shl_of_extend
8449 /* 29002 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
8450 /* 29005 */ // Label 375: @29005
8451 /* 29005 */ GIM_Reject,
8452 /* 29006 */ // Label 36: @29006
8453 /* 29006 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(29017), // Rule ID 238 //
8454 /* 29011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8455 /* 29014 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_LSHR'
8456 /* 29014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8457 /* 29017 */ // Label 376: @29017
8458 /* 29017 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(29028), // Rule ID 243 //
8459 /* 29022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8460 /* 29025 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
8461 /* 29025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8462 /* 29028 */ // Label 377: @29028
8463 /* 29028 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(29039), // Rule ID 276 //
8464 /* 29033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8465 /* 29036 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_LSHR'
8466 /* 29036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8467 /* 29039 */ // Label 378: @29039
8468 /* 29039 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(29050), // Rule ID 342 //
8469 /* 29044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8470 /* 29047 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_LSHR'
8471 /* 29047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8472 /* 29050 */ // Label 379: @29050
8473 /* 29050 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(29139), // Rule ID 450 //
8474 /* 29055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
8475 /* 29058 */ // MIs[0] dst
8476 /* 29058 */ // No operand predicates
8477 /* 29058 */ // MIs[0] sum
8478 /* 29058 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8479 /* 29062 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8480 /* 29066 */ // MIs[1] inner
8481 /* 29066 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8482 /* 29070 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8483 /* 29074 */ // MIs[2] ext1
8484 /* 29074 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8485 /* 29078 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8486 /* 29082 */ // MIs[3] x
8487 /* 29082 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8488 /* 29086 */ // MIs[2] ext2
8489 /* 29086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8490 /* 29090 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
8491 /* 29094 */ // MIs[4] y
8492 /* 29094 */ // No operand predicates
8493 /* 29094 */ // MIs[1] Operand 2
8494 /* 29094 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8495 /* 29098 */ // MIs[0] Operand 2
8496 /* 29098 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8497 /* 29102 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
8498 /* 29106 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8499 /* 29108 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8500 /* 29111 */ // Combiner Rule #276: avgceil_u_match
8501 /* 29111 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
8502 /* 29114 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8503 /* 29119 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8504 /* 29123 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8505 /* 29127 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8506 /* 29131 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8507 /* 29135 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8508 /* 29138 */ GIR_EraseRootFromParent_Done,
8509 /* 29139 */ // Label 380: @29139
8510 /* 29139 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(29216), // Rule ID 448 //
8511 /* 29144 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
8512 /* 29147 */ // MIs[0] dst
8513 /* 29147 */ // No operand predicates
8514 /* 29147 */ // MIs[0] sum
8515 /* 29147 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8516 /* 29151 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8517 /* 29155 */ // MIs[1] ext1
8518 /* 29155 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8519 /* 29159 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
8520 /* 29163 */ // MIs[2] x
8521 /* 29163 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8522 /* 29167 */ // MIs[1] ext2
8523 /* 29167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8524 /* 29171 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8525 /* 29175 */ // MIs[3] y
8526 /* 29175 */ // No operand predicates
8527 /* 29175 */ // MIs[0] Operand 2
8528 /* 29175 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8529 /* 29179 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
8530 /* 29183 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8531 /* 29185 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8532 /* 29188 */ // Combiner Rule #274: avgfloor_u_match
8533 /* 29188 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
8534 /* 29191 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8535 /* 29196 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8536 /* 29200 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8537 /* 29204 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8538 /* 29208 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8539 /* 29212 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8540 /* 29215 */ GIR_EraseRootFromParent_Done,
8541 /* 29216 */ // Label 381: @29216
8542 /* 29216 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(29245), // Rule ID 433 //
8543 /* 29221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
8544 /* 29224 */ // MIs[0] dst
8545 /* 29224 */ // No operand predicates
8546 /* 29224 */ // MIs[0] d2
8547 /* 29224 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8548 /* 29228 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8549 /* 29232 */ // MIs[1] d1
8550 /* 29232 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8551 /* 29236 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
8552 /* 29240 */ // MIs[2] x
8553 /* 29240 */ // No operand predicates
8554 /* 29240 */ // MIs[2] y
8555 /* 29240 */ // No operand predicates
8556 /* 29240 */ // MIs[0] z
8557 /* 29240 */ // No operand predicates
8558 /* 29240 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8559 /* 29242 */ // Combiner Rule #262: lshr_of_trunc_of_lshr
8560 /* 29242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
8561 /* 29245 */ // Label 382: @29245
8562 /* 29245 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(29285), // Rule ID 133 //
8563 /* 29250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8564 /* 29253 */ // MIs[0] dst
8565 /* 29253 */ // No operand predicates
8566 /* 29253 */ // MIs[0] zero
8567 /* 29253 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8568 /* 29257 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8569 /* 29261 */ // MIs[1] Operand 1
8570 /* 29261 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8571 /* 29272 */ // MIs[0] rhs
8572 /* 29272 */ // No operand predicates
8573 /* 29272 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8574 /* 29277 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8575 /* 29279 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
8576 /* 29279 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8577 /* 29284 */ GIR_EraseRootFromParent_Done,
8578 /* 29285 */ // Label 383: @29285
8579 /* 29285 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(29306), // Rule ID 95 //
8580 /* 29290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8581 /* 29293 */ // MIs[0] dst
8582 /* 29293 */ // No operand predicates
8583 /* 29293 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8584 /* 29293 */ // No operand predicates
8585 /* 29293 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8586 /* 29293 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8587 /* 29297 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8588 /* 29301 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8589 /* 29303 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
8590 /* 29303 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8591 /* 29306 */ // Label 384: @29306
8592 /* 29306 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(29329), // Rule ID 124 //
8593 /* 29311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8594 /* 29314 */ // MIs[0] dst
8595 /* 29314 */ // No operand predicates
8596 /* 29314 */ // MIs[0] lhs
8597 /* 29314 */ // No operand predicates
8598 /* 29314 */ // MIs[0] Operand 2
8599 /* 29314 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8600 /* 29318 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8601 /* 29323 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
8602 /* 29323 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8603 /* 29328 */ GIR_EraseRootFromParent_Done,
8604 /* 29329 */ // Label 385: @29329
8605 /* 29329 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(29340), // Rule ID 167 //
8606 /* 29334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8607 /* 29337 */ // MIs[0] root
8608 /* 29337 */ // No operand predicates
8609 /* 29337 */ // MIs[0] mi.shifted
8610 /* 29337 */ // No operand predicates
8611 /* 29337 */ // MIs[0] mi.amt
8612 /* 29337 */ // No operand predicates
8613 /* 29337 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
8614 /* 29337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8615 /* 29340 */ // Label 386: @29340
8616 /* 29340 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(29351), // Rule ID 269 //
8617 /* 29345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8618 /* 29348 */ // MIs[0] dst
8619 /* 29348 */ // No operand predicates
8620 /* 29348 */ // MIs[0] root.src
8621 /* 29348 */ // No operand predicates
8622 /* 29348 */ // MIs[0] root.amt
8623 /* 29348 */ // No operand predicates
8624 /* 29348 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[1]]
8625 /* 29348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8626 /* 29351 */ // Label 387: @29351
8627 /* 29351 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(29362), // Rule ID 271 //
8628 /* 29356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8629 /* 29359 */ // MIs[0] dst
8630 /* 29359 */ // No operand predicates
8631 /* 29359 */ // MIs[0] root.src
8632 /* 29359 */ // No operand predicates
8633 /* 29359 */ // MIs[0] root.amt
8634 /* 29359 */ // No operand predicates
8635 /* 29359 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[1]]
8636 /* 29359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8637 /* 29362 */ // Label 388: @29362
8638 /* 29362 */ GIM_Reject,
8639 /* 29363 */ // Label 37: @29363
8640 /* 29363 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(29374), // Rule ID 237 //
8641 /* 29368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8642 /* 29371 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_ASHR'
8643 /* 29371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8644 /* 29374 */ // Label 389: @29374
8645 /* 29374 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(29385), // Rule ID 242 //
8646 /* 29379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8647 /* 29382 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
8648 /* 29382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8649 /* 29385 */ // Label 390: @29385
8650 /* 29385 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(29396), // Rule ID 275 //
8651 /* 29390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8652 /* 29393 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ASHR'
8653 /* 29393 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8654 /* 29396 */ // Label 391: @29396
8655 /* 29396 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(29407), // Rule ID 343 //
8656 /* 29401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8657 /* 29404 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ASHR'
8658 /* 29404 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8659 /* 29407 */ // Label 392: @29407
8660 /* 29407 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(29496), // Rule ID 451 //
8661 /* 29412 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
8662 /* 29415 */ // MIs[0] dst
8663 /* 29415 */ // No operand predicates
8664 /* 29415 */ // MIs[0] sum
8665 /* 29415 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8666 /* 29419 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8667 /* 29423 */ // MIs[1] inner
8668 /* 29423 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8669 /* 29427 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8670 /* 29431 */ // MIs[2] ext1
8671 /* 29431 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8672 /* 29435 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8673 /* 29439 */ // MIs[3] x
8674 /* 29439 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8675 /* 29443 */ // MIs[2] ext2
8676 /* 29443 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8677 /* 29447 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
8678 /* 29451 */ // MIs[4] y
8679 /* 29451 */ // No operand predicates
8680 /* 29451 */ // MIs[1] Operand 2
8681 /* 29451 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8682 /* 29455 */ // MIs[0] Operand 2
8683 /* 29455 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8684 /* 29459 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
8685 /* 29463 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8686 /* 29465 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8687 /* 29468 */ // Combiner Rule #277: avgceil_s_match
8688 /* 29468 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
8689 /* 29471 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8690 /* 29476 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8691 /* 29480 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8692 /* 29484 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8693 /* 29488 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8694 /* 29492 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8695 /* 29495 */ GIR_EraseRootFromParent_Done,
8696 /* 29496 */ // Label 393: @29496
8697 /* 29496 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(29573), // Rule ID 449 //
8698 /* 29501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
8699 /* 29504 */ // MIs[0] dst
8700 /* 29504 */ // No operand predicates
8701 /* 29504 */ // MIs[0] sum
8702 /* 29504 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8703 /* 29508 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8704 /* 29512 */ // MIs[1] ext1
8705 /* 29512 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8706 /* 29516 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
8707 /* 29520 */ // MIs[2] x
8708 /* 29520 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8709 /* 29524 */ // MIs[1] ext2
8710 /* 29524 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8711 /* 29528 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8712 /* 29532 */ // MIs[3] y
8713 /* 29532 */ // No operand predicates
8714 /* 29532 */ // MIs[0] Operand 2
8715 /* 29532 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8716 /* 29536 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8717 /* 29540 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8718 /* 29542 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8719 /* 29545 */ // Combiner Rule #275: avgfloor_s_match
8720 /* 29545 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
8721 /* 29548 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8722 /* 29553 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8723 /* 29557 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8724 /* 29561 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8725 /* 29565 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8726 /* 29569 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8727 /* 29572 */ GIR_EraseRootFromParent_Done,
8728 /* 29573 */ // Label 394: @29573
8729 /* 29573 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(29613), // Rule ID 134 //
8730 /* 29578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8731 /* 29581 */ // MIs[0] dst
8732 /* 29581 */ // No operand predicates
8733 /* 29581 */ // MIs[0] zero
8734 /* 29581 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8735 /* 29585 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8736 /* 29589 */ // MIs[1] Operand 1
8737 /* 29589 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8738 /* 29600 */ // MIs[0] rhs
8739 /* 29600 */ // No operand predicates
8740 /* 29600 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8741 /* 29605 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8742 /* 29607 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
8743 /* 29607 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8744 /* 29612 */ GIR_EraseRootFromParent_Done,
8745 /* 29613 */ // Label 395: @29613
8746 /* 29613 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(29634), // Rule ID 94 //
8747 /* 29618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8748 /* 29621 */ // MIs[0] dst
8749 /* 29621 */ // No operand predicates
8750 /* 29621 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8751 /* 29621 */ // No operand predicates
8752 /* 29621 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8753 /* 29621 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8754 /* 29625 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8755 /* 29629 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8756 /* 29631 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
8757 /* 29631 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8758 /* 29634 */ // Label 396: @29634
8759 /* 29634 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(29657), // Rule ID 123 //
8760 /* 29639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8761 /* 29642 */ // MIs[0] dst
8762 /* 29642 */ // No operand predicates
8763 /* 29642 */ // MIs[0] lhs
8764 /* 29642 */ // No operand predicates
8765 /* 29642 */ // MIs[0] Operand 2
8766 /* 29642 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8767 /* 29646 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8768 /* 29651 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
8769 /* 29651 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8770 /* 29656 */ GIR_EraseRootFromParent_Done,
8771 /* 29657 */ // Label 397: @29657
8772 /* 29657 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(29668), // Rule ID 166 //
8773 /* 29662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8774 /* 29665 */ // MIs[0] root
8775 /* 29665 */ // No operand predicates
8776 /* 29665 */ // MIs[0] mi.shifted
8777 /* 29665 */ // No operand predicates
8778 /* 29665 */ // MIs[0] mi.amt
8779 /* 29665 */ // No operand predicates
8780 /* 29665 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
8781 /* 29665 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8782 /* 29668 */ // Label 398: @29668
8783 /* 29668 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(29679), // Rule ID 178 //
8784 /* 29673 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
8785 /* 29676 */ // MIs[0] dst
8786 /* 29676 */ // No operand predicates
8787 /* 29676 */ // MIs[0] src1
8788 /* 29676 */ // No operand predicates
8789 /* 29676 */ // MIs[0] src2
8790 /* 29676 */ // No operand predicates
8791 /* 29676 */ // Combiner Rule #125: shl_ashr_to_sext_inreg
8792 /* 29676 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
8793 /* 29679 */ // Label 399: @29679
8794 /* 29679 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(29690), // Rule ID 268 //
8795 /* 29684 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8796 /* 29687 */ // MIs[0] dst
8797 /* 29687 */ // No operand predicates
8798 /* 29687 */ // MIs[0] root.src
8799 /* 29687 */ // No operand predicates
8800 /* 29687 */ // MIs[0] root.amt
8801 /* 29687 */ // No operand predicates
8802 /* 29687 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[0]]
8803 /* 29687 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8804 /* 29690 */ // Label 400: @29690
8805 /* 29690 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(29701), // Rule ID 270 //
8806 /* 29695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8807 /* 29698 */ // MIs[0] dst
8808 /* 29698 */ // No operand predicates
8809 /* 29698 */ // MIs[0] root.src
8810 /* 29698 */ // No operand predicates
8811 /* 29698 */ // MIs[0] root.amt
8812 /* 29698 */ // No operand predicates
8813 /* 29698 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[0]]
8814 /* 29698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8815 /* 29701 */ // Label 401: @29701
8816 /* 29701 */ GIM_Reject,
8817 /* 29702 */ // Label 38: @29702
8818 /* 29702 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(29722), // Rule ID 255 //
8819 /* 29707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
8820 /* 29710 */ // MIs[0] x
8821 /* 29710 */ // No operand predicates
8822 /* 29710 */ // MIs[0] y
8823 /* 29710 */ // No operand predicates
8824 /* 29710 */ // MIs[0] z
8825 /* 29710 */ // No operand predicates
8826 /* 29710 */ // MIs[0] Operand 3
8827 /* 29710 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8828 /* 29714 */ // Combiner Rule #182: funnel_shift_left_zero
8829 /* 29714 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8830 /* 29717 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8831 /* 29719 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
8832 /* 29721 */ GIR_EraseRootFromParent_Done,
8833 /* 29722 */ // Label 402: @29722
8834 /* 29722 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(29733), // Rule ID 252 //
8835 /* 29727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8836 /* 29730 */ // MIs[0] dst
8837 /* 29730 */ // No operand predicates
8838 /* 29730 */ // MIs[0] root.x
8839 /* 29730 */ // No operand predicates
8840 /* 29730 */ // MIs[0] root.y
8841 /* 29730 */ // No operand predicates
8842 /* 29730 */ // MIs[0] root.amt
8843 /* 29730 */ // No operand predicates
8844 /* 29730 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[0]]
8845 /* 29730 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8846 /* 29733 */ // Label 403: @29733
8847 /* 29733 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(29744), // Rule ID 256 //
8848 /* 29738 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8849 /* 29741 */ // MIs[0] dst
8850 /* 29741 */ // No operand predicates
8851 /* 29741 */ // MIs[0] root.x
8852 /* 29741 */ // No operand predicates
8853 /* 29741 */ // MIs[0] root.y
8854 /* 29741 */ // No operand predicates
8855 /* 29741 */ // MIs[0] root.amt
8856 /* 29741 */ // No operand predicates
8857 /* 29741 */ // Combiner Rule #183: funnel_shift_overshift @ [root[0]]
8858 /* 29741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8859 /* 29744 */ // Label 404: @29744
8860 /* 29744 */ GIM_Reject,
8861 /* 29745 */ // Label 39: @29745
8862 /* 29745 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(29765), // Rule ID 254 //
8863 /* 29750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8864 /* 29753 */ // MIs[0] x
8865 /* 29753 */ // No operand predicates
8866 /* 29753 */ // MIs[0] y
8867 /* 29753 */ // No operand predicates
8868 /* 29753 */ // MIs[0] z
8869 /* 29753 */ // No operand predicates
8870 /* 29753 */ // MIs[0] Operand 3
8871 /* 29753 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8872 /* 29757 */ // Combiner Rule #181: funnel_shift_right_zero
8873 /* 29757 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8874 /* 29760 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8875 /* 29762 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
8876 /* 29764 */ GIR_EraseRootFromParent_Done,
8877 /* 29765 */ // Label 405: @29765
8878 /* 29765 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(29776), // Rule ID 253 //
8879 /* 29770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8880 /* 29773 */ // MIs[0] dst
8881 /* 29773 */ // No operand predicates
8882 /* 29773 */ // MIs[0] root.x
8883 /* 29773 */ // No operand predicates
8884 /* 29773 */ // MIs[0] root.y
8885 /* 29773 */ // No operand predicates
8886 /* 29773 */ // MIs[0] root.amt
8887 /* 29773 */ // No operand predicates
8888 /* 29773 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[1]]
8889 /* 29773 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8890 /* 29776 */ // Label 406: @29776
8891 /* 29776 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(29787), // Rule ID 257 //
8892 /* 29781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8893 /* 29784 */ // MIs[0] dst
8894 /* 29784 */ // No operand predicates
8895 /* 29784 */ // MIs[0] root.x
8896 /* 29784 */ // No operand predicates
8897 /* 29784 */ // MIs[0] root.y
8898 /* 29784 */ // No operand predicates
8899 /* 29784 */ // MIs[0] root.amt
8900 /* 29784 */ // No operand predicates
8901 /* 29784 */ // Combiner Rule #183: funnel_shift_overshift @ [root[1]]
8902 /* 29784 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8903 /* 29787 */ // Label 407: @29787
8904 /* 29787 */ GIM_Reject,
8905 /* 29788 */ // Label 40: @29788
8906 /* 29788 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(29811), // Rule ID 127 //
8907 /* 29793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8908 /* 29796 */ // MIs[0] dst
8909 /* 29796 */ // No operand predicates
8910 /* 29796 */ // MIs[0] lhs
8911 /* 29796 */ // No operand predicates
8912 /* 29796 */ // MIs[0] Operand 2
8913 /* 29796 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8914 /* 29800 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8915 /* 29805 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
8916 /* 29805 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8917 /* 29810 */ GIR_EraseRootFromParent_Done,
8918 /* 29811 */ // Label 408: @29811
8919 /* 29811 */ GIM_Reject,
8920 /* 29812 */ // Label 41: @29812
8921 /* 29812 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(29835), // Rule ID 126 //
8922 /* 29817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8923 /* 29820 */ // MIs[0] dst
8924 /* 29820 */ // No operand predicates
8925 /* 29820 */ // MIs[0] lhs
8926 /* 29820 */ // No operand predicates
8927 /* 29820 */ // MIs[0] Operand 2
8928 /* 29820 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8929 /* 29824 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8930 /* 29829 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
8931 /* 29829 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8932 /* 29834 */ GIR_EraseRootFromParent_Done,
8933 /* 29835 */ // Label 409: @29835
8934 /* 29835 */ GIM_Reject,
8935 /* 29836 */ // Label 42: @29836
8936 /* 29836 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(29847), // Rule ID 171 //
8937 /* 29841 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
8938 /* 29844 */ // MIs[0] root
8939 /* 29844 */ // No operand predicates
8940 /* 29844 */ // MIs[0] pred
8941 /* 29844 */ // No operand predicates
8942 /* 29844 */ // MIs[0] lhs
8943 /* 29844 */ // No operand predicates
8944 /* 29844 */ // MIs[0] rhs
8945 /* 29844 */ // No operand predicates
8946 /* 29844 */ // Combiner Rule #118: canonicalize_icmp
8947 /* 29844 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
8948 /* 29847 */ // Label 410: @29847
8949 /* 29847 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(29858), // Rule ID 173 //
8950 /* 29852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
8951 /* 29855 */ // MIs[0] dst
8952 /* 29855 */ // No operand predicates
8953 /* 29855 */ // MIs[0] pred
8954 /* 29855 */ // No operand predicates
8955 /* 29855 */ // MIs[0] src1
8956 /* 29855 */ // No operand predicates
8957 /* 29855 */ // MIs[0] src2
8958 /* 29855 */ // No operand predicates
8959 /* 29855 */ // Combiner Rule #120: icmp_to_true_false_known_bits
8960 /* 29855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
8961 /* 29858 */ // Label 411: @29858
8962 /* 29858 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(29869), // Rule ID 174 //
8963 /* 29863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
8964 /* 29866 */ // MIs[0] dst
8965 /* 29866 */ // No operand predicates
8966 /* 29866 */ // MIs[0] pred
8967 /* 29866 */ // No operand predicates
8968 /* 29866 */ // MIs[0] src1
8969 /* 29866 */ // No operand predicates
8970 /* 29866 */ // MIs[0] src2
8971 /* 29866 */ // No operand predicates
8972 /* 29866 */ // Combiner Rule #121: icmp_to_lhs_known_bits
8973 /* 29866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8974 /* 29869 */ // Label 412: @29869
8975 /* 29869 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(29880), // Rule ID 177 //
8976 /* 29874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
8977 /* 29877 */ // MIs[0] dst
8978 /* 29877 */ // No operand predicates
8979 /* 29877 */ // MIs[0] pred
8980 /* 29877 */ // No operand predicates
8981 /* 29877 */ // MIs[0] src1
8982 /* 29877 */ // No operand predicates
8983 /* 29877 */ // MIs[0] src2
8984 /* 29877 */ // No operand predicates
8985 /* 29877 */ // Combiner Rule #124: redundant_binop_in_equality
8986 /* 29877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
8987 /* 29880 */ // Label 413: @29880
8988 /* 29880 */ GIM_Reject,
8989 /* 29881 */ // Label 43: @29881
8990 /* 29881 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(29892), // Rule ID 172 //
8991 /* 29886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
8992 /* 29889 */ // MIs[0] root
8993 /* 29889 */ // No operand predicates
8994 /* 29889 */ // MIs[0] pred
8995 /* 29889 */ // No operand predicates
8996 /* 29889 */ // MIs[0] lhs
8997 /* 29889 */ // No operand predicates
8998 /* 29889 */ // MIs[0] rhs
8999 /* 29889 */ // No operand predicates
9000 /* 29889 */ // Combiner Rule #119: canonicalize_fcmp
9001 /* 29889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
9002 /* 29892 */ // Label 414: @29892
9003 /* 29892 */ GIM_Reject,
9004 /* 29893 */ // Label 44: @29893
9005 /* 29893 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 415*/ GIMT_Encode4(29919), GIMT_Encode2(GIFBS_HasFminFmaxLegacy), // Rule ID 456 //
9006 /* 29900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
9007 /* 29903 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f32,
9008 /* 29906 */ // MIs[0] cond
9009 /* 29906 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9010 /* 29910 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
9011 /* 29914 */ // MIs[1] pred
9012 /* 29914 */ // No operand predicates
9013 /* 29914 */ // MIs[1] lhs
9014 /* 29914 */ // No operand predicates
9015 /* 29914 */ // MIs[1] rhs
9016 /* 29914 */ // No operand predicates
9017 /* 29914 */ // MIs[0] true
9018 /* 29914 */ // No operand predicates
9019 /* 29914 */ // MIs[0] false
9020 /* 29914 */ // No operand predicates
9021 /* 29914 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9022 /* 29916 */ // Combiner Rule #279: fcmp_select_to_fmin_fmax_legacy
9023 /* 29916 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
9024 /* 29919 */ // Label 415: @29919
9025 /* 29919 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(29968), // Rule ID 189 //
9026 /* 29924 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
9027 /* 29927 */ // MIs[0] dst
9028 /* 29927 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9029 /* 29931 */ // MIs[0] c
9030 /* 29931 */ // No operand predicates
9031 /* 29931 */ // MIs[0] x
9032 /* 29931 */ // No operand predicates
9033 /* 29931 */ // MIs[0] Operand 3
9034 /* 29931 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9035 /* 29935 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
9036 /* 29939 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9037 /* 29942 */ // Combiner Rule #136: select_zero_false
9038 /* 29942 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
9039 /* 29945 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9040 /* 29950 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9041 /* 29952 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
9042 /* 29956 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9043 /* 29960 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
9044 /* 29964 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9045 /* 29967 */ GIR_EraseRootFromParent_Done,
9046 /* 29968 */ // Label 416: @29968
9047 /* 29968 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(29989), // Rule ID 187 //
9048 /* 29973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
9049 /* 29976 */ // MIs[0] root
9050 /* 29976 */ // No operand predicates
9051 /* 29976 */ // MIs[0] tst
9052 /* 29976 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9053 /* 29980 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
9054 /* 29984 */ // MIs[1] tst1
9055 /* 29984 */ // No operand predicates
9056 /* 29984 */ // MIs[1] a
9057 /* 29984 */ // No operand predicates
9058 /* 29984 */ // MIs[1] b
9059 /* 29984 */ // No operand predicates
9060 /* 29984 */ // MIs[0] x
9061 /* 29984 */ // No operand predicates
9062 /* 29984 */ // MIs[0] y
9063 /* 29984 */ // No operand predicates
9064 /* 29984 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9065 /* 29986 */ // Combiner Rule #134: select_to_iminmax
9066 /* 29986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
9067 /* 29989 */ // Label 417: @29989
9068 /* 29989 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(30025), // Rule ID 190 //
9069 /* 29994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
9070 /* 29997 */ // MIs[0] dst
9071 /* 29997 */ // No operand predicates
9072 /* 29997 */ // MIs[0] c
9073 /* 29997 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9074 /* 30001 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
9075 /* 30005 */ // MIs[1] src
9076 /* 30005 */ // No operand predicates
9077 /* 30005 */ // MIs[1] Operand 2
9078 /* 30005 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
9079 /* 30009 */ // MIs[0] x
9080 /* 30009 */ // No operand predicates
9081 /* 30009 */ // MIs[0] y
9082 /* 30009 */ // No operand predicates
9083 /* 30009 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9084 /* 30011 */ // Combiner Rule #137: select_not
9085 /* 30011 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
9086 /* 30014 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9087 /* 30016 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9088 /* 30020 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
9089 /* 30022 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9090 /* 30024 */ GIR_EraseRootFromParent_Done,
9091 /* 30025 */ // Label 418: @30025
9092 /* 30025 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(30054), // Rule ID 183 //
9093 /* 30030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
9094 /* 30033 */ // MIs[0] dst
9095 /* 30033 */ // No operand predicates
9096 /* 30033 */ // MIs[0] undef
9097 /* 30033 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9098 /* 30037 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9099 /* 30041 */ // MIs[0] x
9100 /* 30041 */ // No operand predicates
9101 /* 30041 */ // MIs[0] y
9102 /* 30041 */ // No operand predicates
9103 /* 30041 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9104 /* 30046 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9105 /* 30048 */ // Combiner Rule #130: select_undef_cmp
9106 /* 30048 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9107 /* 30053 */ GIR_EraseRootFromParent_Done,
9108 /* 30054 */ // Label 419: @30054
9109 /* 30054 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(30094), // Rule ID 184 //
9110 /* 30059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
9111 /* 30062 */ // MIs[0] dst
9112 /* 30062 */ // No operand predicates
9113 /* 30062 */ // MIs[0] cond
9114 /* 30062 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9115 /* 30066 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9116 /* 30070 */ // MIs[1] Operand 1
9117 /* 30070 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
9118 /* 30081 */ // MIs[0] tval
9119 /* 30081 */ // No operand predicates
9120 /* 30081 */ // MIs[0] fval
9121 /* 30081 */ // No operand predicates
9122 /* 30081 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9123 /* 30086 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9124 /* 30088 */ // Combiner Rule #131: select_constant_cmp_false
9125 /* 30088 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9126 /* 30093 */ GIR_EraseRootFromParent_Done,
9127 /* 30094 */ // Label 420: @30094
9128 /* 30094 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(30134), // Rule ID 185 //
9129 /* 30099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
9130 /* 30102 */ // MIs[0] dst
9131 /* 30102 */ // No operand predicates
9132 /* 30102 */ // MIs[0] cond
9133 /* 30102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9134 /* 30106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9135 /* 30110 */ // MIs[1] Operand 1
9136 /* 30110 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
9137 /* 30121 */ // MIs[0] tval
9138 /* 30121 */ // No operand predicates
9139 /* 30121 */ // MIs[0] fval
9140 /* 30121 */ // No operand predicates
9141 /* 30121 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9142 /* 30126 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9143 /* 30128 */ // Combiner Rule #132: select_constant_cmp_true
9144 /* 30128 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9145 /* 30133 */ GIR_EraseRootFromParent_Done,
9146 /* 30134 */ // Label 421: @30134
9147 /* 30134 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(30158), // Rule ID 116 //
9148 /* 30139 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9149 /* 30142 */ // MIs[0] dst
9150 /* 30142 */ // No operand predicates
9151 /* 30142 */ // MIs[0] cond
9152 /* 30142 */ // No operand predicates
9153 /* 30142 */ // MIs[0] x
9154 /* 30142 */ // No operand predicates
9155 /* 30142 */ // MIs[0] x
9156 /* 30142 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
9157 /* 30147 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9158 /* 30152 */ // Combiner Rule #88: select_same_val_trivial
9159 /* 30152 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9160 /* 30157 */ GIR_EraseRootFromParent_Done,
9161 /* 30158 */ // Label 422: @30158
9162 /* 30158 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(30181), // Rule ID 117 //
9163 /* 30163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
9164 /* 30166 */ // MIs[0] dst
9165 /* 30166 */ // No operand predicates
9166 /* 30166 */ // MIs[0] cond
9167 /* 30166 */ // No operand predicates
9168 /* 30166 */ // MIs[0] tval
9169 /* 30166 */ // No operand predicates
9170 /* 30166 */ // MIs[0] fval
9171 /* 30166 */ // No operand predicates
9172 /* 30166 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
9173 /* 30170 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9174 /* 30175 */ // Combiner Rule #89: select_same_val_equiv
9175 /* 30175 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9176 /* 30180 */ GIR_EraseRootFromParent_Done,
9177 /* 30181 */ // Label 423: @30181
9178 /* 30181 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(30192), // Rule ID 186 //
9179 /* 30186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
9180 /* 30189 */ // MIs[0] dst
9181 /* 30189 */ // No operand predicates
9182 /* 30189 */ // MIs[0] cond
9183 /* 30189 */ // No operand predicates
9184 /* 30189 */ // MIs[0] tval
9185 /* 30189 */ // No operand predicates
9186 /* 30189 */ // MIs[0] fval
9187 /* 30189 */ // No operand predicates
9188 /* 30189 */ // Combiner Rule #133: select_constant_cmp_general
9189 /* 30189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
9190 /* 30192 */ // Label 424: @30192
9191 /* 30192 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(30203), // Rule ID 188 //
9192 /* 30197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
9193 /* 30200 */ // MIs[0] dst
9194 /* 30200 */ // No operand predicates
9195 /* 30200 */ // MIs[0] cond
9196 /* 30200 */ // No operand predicates
9197 /* 30200 */ // MIs[0] tval
9198 /* 30200 */ // No operand predicates
9199 /* 30200 */ // MIs[0] fval
9200 /* 30200 */ // No operand predicates
9201 /* 30200 */ // Combiner Rule #135: match_selects
9202 /* 30200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
9203 /* 30203 */ // Label 425: @30203
9204 /* 30203 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(30214), // Rule ID 367 //
9205 /* 30208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
9206 /* 30211 */ // MIs[0] dst
9207 /* 30211 */ // No operand predicates
9208 /* 30211 */ // MIs[0] cond
9209 /* 30211 */ // No operand predicates
9210 /* 30211 */ // MIs[0] tval
9211 /* 30211 */ // No operand predicates
9212 /* 30211 */ // MIs[0] fval
9213 /* 30211 */ // No operand predicates
9214 /* 30211 */ // Combiner Rule #225: select_to_minmax
9215 /* 30211 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
9216 /* 30214 */ // Label 426: @30214
9217 /* 30214 */ GIM_Reject,
9218 /* 30215 */ // Label 45: @30215
9219 /* 30215 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(30226), // Rule ID 378 //
9220 /* 30220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9221 /* 30223 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
9222 /* 30223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9223 /* 30226 */ // Label 427: @30226
9224 /* 30226 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(30237), // Rule ID 426 //
9225 /* 30231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
9226 /* 30234 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_UADDO'
9227 /* 30234 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
9228 /* 30237 */ // Label 428: @30237
9229 /* 30237 */ GIM_Reject,
9230 /* 30238 */ // Label 46: @30238
9231 /* 30238 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(30249), // Rule ID 225 //
9232 /* 30243 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9233 /* 30246 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_UADDE'
9234 /* 30246 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9235 /* 30249 */ // Label 429: @30249
9236 /* 30249 */ GIM_Reject,
9237 /* 30250 */ // Label 47: @30250
9238 /* 30250 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(30261), // Rule ID 428 //
9239 /* 30255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
9240 /* 30258 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
9241 /* 30258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
9242 /* 30261 */ // Label 430: @30261
9243 /* 30261 */ GIM_Reject,
9244 /* 30262 */ // Label 48: @30262
9245 /* 30262 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(30273), // Rule ID 227 //
9246 /* 30267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9247 /* 30270 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_USUBE'
9248 /* 30270 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9249 /* 30273 */ // Label 431: @30273
9250 /* 30273 */ GIM_Reject,
9251 /* 30274 */ // Label 49: @30274
9252 /* 30274 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(30285), // Rule ID 379 //
9253 /* 30279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9254 /* 30282 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
9255 /* 30282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9256 /* 30285 */ // Label 432: @30285
9257 /* 30285 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(30296), // Rule ID 425 //
9258 /* 30290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
9259 /* 30293 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_SADDO'
9260 /* 30293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
9261 /* 30296 */ // Label 433: @30296
9262 /* 30296 */ GIM_Reject,
9263 /* 30297 */ // Label 50: @30297
9264 /* 30297 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(30308), // Rule ID 226 //
9265 /* 30302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9266 /* 30305 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SADDE'
9267 /* 30305 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9268 /* 30308 */ // Label 434: @30308
9269 /* 30308 */ GIM_Reject,
9270 /* 30309 */ // Label 51: @30309
9271 /* 30309 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(30320), // Rule ID 427 //
9272 /* 30314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
9273 /* 30317 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
9274 /* 30317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
9275 /* 30320 */ // Label 435: @30320
9276 /* 30320 */ GIM_Reject,
9277 /* 30321 */ // Label 52: @30321
9278 /* 30321 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(30332), // Rule ID 228 //
9279 /* 30326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9280 /* 30329 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SSUBE'
9281 /* 30329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9282 /* 30332 */ // Label 436: @30332
9283 /* 30332 */ GIM_Reject,
9284 /* 30333 */ // Label 53: @30333
9285 /* 30333 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(30344), // Rule ID 221 //
9286 /* 30338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9287 /* 30341 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_UMULO'
9288 /* 30341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
9289 /* 30344 */ // Label 437: @30344
9290 /* 30344 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(30355), // Rule ID 223 //
9291 /* 30349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9292 /* 30352 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_UMULO'
9293 /* 30352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
9294 /* 30355 */ // Label 438: @30355
9295 /* 30355 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(30366), // Rule ID 380 //
9296 /* 30360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9297 /* 30363 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
9298 /* 30363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9299 /* 30366 */ // Label 439: @30366
9300 /* 30366 */ GIM_Reject,
9301 /* 30367 */ // Label 54: @30367
9302 /* 30367 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(30378), // Rule ID 222 //
9303 /* 30372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9304 /* 30375 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_SMULO'
9305 /* 30375 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
9306 /* 30378 */ // Label 440: @30378
9307 /* 30378 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(30389), // Rule ID 224 //
9308 /* 30383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9309 /* 30386 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_SMULO'
9310 /* 30386 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
9311 /* 30389 */ // Label 441: @30389
9312 /* 30389 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(30400), // Rule ID 381 //
9313 /* 30394 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9314 /* 30397 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
9315 /* 30397 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9316 /* 30400 */ // Label 442: @30400
9317 /* 30400 */ GIM_Reject,
9318 /* 30401 */ // Label 55: @30401
9319 /* 30401 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(30412), // Rule ID 382 //
9320 /* 30406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9321 /* 30409 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
9322 /* 30409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9323 /* 30412 */ // Label 443: @30412
9324 /* 30412 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(30423), // Rule ID 316 //
9325 /* 30417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
9326 /* 30420 */ // MIs[0] dst
9327 /* 30420 */ // No operand predicates
9328 /* 30420 */ // MIs[0] src1
9329 /* 30420 */ // No operand predicates
9330 /* 30420 */ // MIs[0] src2
9331 /* 30420 */ // No operand predicates
9332 /* 30420 */ // Combiner Rule #200: mulh_to_lshr
9333 /* 30420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
9334 /* 30423 */ // Label 444: @30423
9335 /* 30423 */ GIM_Reject,
9336 /* 30424 */ // Label 56: @30424
9337 /* 30424 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(30435), // Rule ID 383 //
9338 /* 30429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9339 /* 30432 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
9340 /* 30432 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9341 /* 30435 */ // Label 445: @30435
9342 /* 30435 */ GIM_Reject,
9343 /* 30436 */ // Label 57: @30436
9344 /* 30436 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(30447), // Rule ID 384 //
9345 /* 30441 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9346 /* 30444 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
9347 /* 30444 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9348 /* 30447 */ // Label 446: @30447
9349 /* 30447 */ GIM_Reject,
9350 /* 30448 */ // Label 58: @30448
9351 /* 30448 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(30459), // Rule ID 385 //
9352 /* 30453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9353 /* 30456 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
9354 /* 30456 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9355 /* 30459 */ // Label 447: @30459
9356 /* 30459 */ GIM_Reject,
9357 /* 30460 */ // Label 59: @30460
9358 /* 30460 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(30471), // Rule ID 240 //
9359 /* 30465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
9360 /* 30468 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
9361 /* 30468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
9362 /* 30471 */ // Label 448: @30471
9363 /* 30471 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(30482), // Rule ID 244 //
9364 /* 30476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
9365 /* 30479 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
9366 /* 30479 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9367 /* 30482 */ // Label 449: @30482
9368 /* 30482 */ GIM_Reject,
9369 /* 30483 */ // Label 60: @30483
9370 /* 30483 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(30494), // Rule ID 239 //
9371 /* 30488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
9372 /* 30491 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
9373 /* 30491 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
9374 /* 30494 */ // Label 450: @30494
9375 /* 30494 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(30505), // Rule ID 245 //
9376 /* 30499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
9377 /* 30502 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
9378 /* 30502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9379 /* 30505 */ // Label 451: @30505
9380 /* 30505 */ GIM_Reject,
9381 /* 30506 */ // Label 61: @30506
9382 /* 30506 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(30517), // Rule ID 386 //
9383 /* 30511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9384 /* 30514 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
9385 /* 30514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9386 /* 30517 */ // Label 452: @30517
9387 /* 30517 */ GIM_Reject,
9388 /* 30518 */ // Label 62: @30518
9389 /* 30518 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(30529), // Rule ID 387 //
9390 /* 30523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9391 /* 30526 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
9392 /* 30526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9393 /* 30529 */ // Label 453: @30529
9394 /* 30529 */ GIM_Reject,
9395 /* 30530 */ // Label 63: @30530
9396 /* 30530 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(30541), // Rule ID 388 //
9397 /* 30535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9398 /* 30538 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
9399 /* 30538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9400 /* 30541 */ // Label 454: @30541
9401 /* 30541 */ GIM_Reject,
9402 /* 30542 */ // Label 64: @30542
9403 /* 30542 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(30553), // Rule ID 389 //
9404 /* 30547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9405 /* 30550 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
9406 /* 30550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9407 /* 30553 */ // Label 455: @30553
9408 /* 30553 */ GIM_Reject,
9409 /* 30554 */ // Label 65: @30554
9410 /* 30554 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(30565), // Rule ID 317 //
9411 /* 30559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
9412 /* 30562 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FADD'
9413 /* 30562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
9414 /* 30565 */ // Label 456: @30565
9415 /* 30565 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(30576), // Rule ID 350 //
9416 /* 30570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9417 /* 30573 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FADD'
9418 /* 30573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9419 /* 30576 */ // Label 457: @30576
9420 /* 30576 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(30587), // Rule ID 390 //
9421 /* 30581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9422 /* 30584 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
9423 /* 30584 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9424 /* 30587 */ // Label 458: @30587
9425 /* 30587 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(30610), // Rule ID 156 //
9426 /* 30592 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
9427 /* 30595 */ // MIs[0] dst
9428 /* 30595 */ // No operand predicates
9429 /* 30595 */ // MIs[0] x
9430 /* 30595 */ // No operand predicates
9431 /* 30595 */ // MIs[0] y
9432 /* 30595 */ // No operand predicates
9433 /* 30595 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
9434 /* 30599 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9435 /* 30604 */ // Combiner Rule #108: right_identity_neg_zero_fp
9436 /* 30604 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9437 /* 30609 */ GIR_EraseRootFromParent_Done,
9438 /* 30610 */ // Label 459: @30610
9439 /* 30610 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(30639), // Rule ID 157 //
9440 /* 30615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
9441 /* 30618 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
9442 /* 30624 */ // MIs[0] dst
9443 /* 30624 */ // No operand predicates
9444 /* 30624 */ // MIs[0] x
9445 /* 30624 */ // No operand predicates
9446 /* 30624 */ // MIs[0] y
9447 /* 30624 */ // No operand predicates
9448 /* 30624 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
9449 /* 30628 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9450 /* 30633 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
9451 /* 30633 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9452 /* 30638 */ GIR_EraseRootFromParent_Done,
9453 /* 30639 */ // Label 460: @30639
9454 /* 30639 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(30650), // Rule ID 290 //
9455 /* 30644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9456 /* 30647 */ // MIs[0] d
9457 /* 30647 */ // No operand predicates
9458 /* 30647 */ // MIs[0] mi.src0
9459 /* 30647 */ // No operand predicates
9460 /* 30647 */ // MIs[0] mi.src1
9461 /* 30647 */ // No operand predicates
9462 /* 30647 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[0]]
9463 /* 30647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9464 /* 30650 */ // Label 461: @30650
9465 /* 30650 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(30661), // Rule ID 324 //
9466 /* 30655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
9467 /* 30658 */ // MIs[0] dst
9468 /* 30658 */ // No operand predicates
9469 /* 30658 */ // MIs[0] src1
9470 /* 30658 */ // No operand predicates
9471 /* 30658 */ // MIs[0] src2
9472 /* 30658 */ // No operand predicates
9473 /* 30658 */ // Combiner Rule #207: combine_fadd_fmul_to_fmad_or_fma
9474 /* 30658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
9475 /* 30661 */ // Label 462: @30661
9476 /* 30661 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(30672), // Rule ID 325 //
9477 /* 30666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9478 /* 30669 */ // MIs[0] dst
9479 /* 30669 */ // No operand predicates
9480 /* 30669 */ // MIs[0] src1
9481 /* 30669 */ // No operand predicates
9482 /* 30669 */ // MIs[0] src2
9483 /* 30669 */ // No operand predicates
9484 /* 30669 */ // Combiner Rule #208: combine_fadd_fpext_fmul_to_fmad_or_fma
9485 /* 30669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
9486 /* 30672 */ // Label 463: @30672
9487 /* 30672 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(30683), // Rule ID 326 //
9488 /* 30677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9489 /* 30680 */ // MIs[0] dst
9490 /* 30680 */ // No operand predicates
9491 /* 30680 */ // MIs[0] src1
9492 /* 30680 */ // No operand predicates
9493 /* 30680 */ // MIs[0] src2
9494 /* 30680 */ // No operand predicates
9495 /* 30680 */ // Combiner Rule #209: combine_fadd_fma_fmul_to_fmad_or_fma
9496 /* 30680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
9497 /* 30683 */ // Label 464: @30683
9498 /* 30683 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(30694), // Rule ID 327 //
9499 /* 30688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9500 /* 30691 */ // MIs[0] dst
9501 /* 30691 */ // No operand predicates
9502 /* 30691 */ // MIs[0] src1
9503 /* 30691 */ // No operand predicates
9504 /* 30691 */ // MIs[0] src2
9505 /* 30691 */ // No operand predicates
9506 /* 30691 */ // Combiner Rule #210: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
9507 /* 30691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9508 /* 30694 */ // Label 465: @30694
9509 /* 30694 */ GIM_Reject,
9510 /* 30695 */ // Label 66: @30695
9511 /* 30695 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(30706), // Rule ID 318 //
9512 /* 30700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
9513 /* 30703 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FSUB'
9514 /* 30703 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
9515 /* 30706 */ // Label 466: @30706
9516 /* 30706 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(30717), // Rule ID 351 //
9517 /* 30711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9518 /* 30714 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FSUB'
9519 /* 30714 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9520 /* 30717 */ // Label 467: @30717
9521 /* 30717 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(30728), // Rule ID 291 //
9522 /* 30722 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9523 /* 30725 */ // MIs[0] d
9524 /* 30725 */ // No operand predicates
9525 /* 30725 */ // MIs[0] mi.src0
9526 /* 30725 */ // No operand predicates
9527 /* 30725 */ // MIs[0] mi.src1
9528 /* 30725 */ // No operand predicates
9529 /* 30725 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[1]]
9530 /* 30725 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9531 /* 30728 */ // Label 468: @30728
9532 /* 30728 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(30739), // Rule ID 328 //
9533 /* 30733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
9534 /* 30736 */ // MIs[0] dst
9535 /* 30736 */ // No operand predicates
9536 /* 30736 */ // MIs[0] src1
9537 /* 30736 */ // No operand predicates
9538 /* 30736 */ // MIs[0] src2
9539 /* 30736 */ // No operand predicates
9540 /* 30736 */ // Combiner Rule #211: combine_fsub_fmul_to_fmad_or_fma
9541 /* 30736 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9542 /* 30739 */ // Label 469: @30739
9543 /* 30739 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(30750), // Rule ID 329 //
9544 /* 30744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
9545 /* 30747 */ // MIs[0] dst
9546 /* 30747 */ // No operand predicates
9547 /* 30747 */ // MIs[0] src1
9548 /* 30747 */ // No operand predicates
9549 /* 30747 */ // MIs[0] src2
9550 /* 30747 */ // No operand predicates
9551 /* 30747 */ // Combiner Rule #212: combine_fsub_fneg_fmul_to_fmad_or_fma
9552 /* 30747 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9553 /* 30750 */ // Label 470: @30750
9554 /* 30750 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(30761), // Rule ID 330 //
9555 /* 30755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
9556 /* 30758 */ // MIs[0] dst
9557 /* 30758 */ // No operand predicates
9558 /* 30758 */ // MIs[0] src1
9559 /* 30758 */ // No operand predicates
9560 /* 30758 */ // MIs[0] src2
9561 /* 30758 */ // No operand predicates
9562 /* 30758 */ // Combiner Rule #213: combine_fsub_fpext_fmul_to_fmad_or_fma
9563 /* 30758 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
9564 /* 30761 */ // Label 471: @30761
9565 /* 30761 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(30772), // Rule ID 331 //
9566 /* 30766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
9567 /* 30769 */ // MIs[0] dst
9568 /* 30769 */ // No operand predicates
9569 /* 30769 */ // MIs[0] src1
9570 /* 30769 */ // No operand predicates
9571 /* 30769 */ // MIs[0] src2
9572 /* 30769 */ // No operand predicates
9573 /* 30769 */ // Combiner Rule #214: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
9574 /* 30769 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9575 /* 30772 */ // Label 472: @30772
9576 /* 30772 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(30783), // Rule ID 368 //
9577 /* 30777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
9578 /* 30780 */ // MIs[0] dst
9579 /* 30780 */ // No operand predicates
9580 /* 30780 */ // MIs[0] src1
9581 /* 30780 */ // No operand predicates
9582 /* 30780 */ // MIs[0] src2
9583 /* 30780 */ // No operand predicates
9584 /* 30780 */ // Combiner Rule #226: fsub_to_fneg
9585 /* 30780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
9586 /* 30783 */ // Label 473: @30783
9587 /* 30783 */ GIM_Reject,
9588 /* 30784 */ // Label 67: @30784
9589 /* 30784 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(30795), // Rule ID 349 //
9590 /* 30789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9591 /* 30792 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMUL'
9592 /* 30792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9593 /* 30795 */ // Label 474: @30795
9594 /* 30795 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(30806), // Rule ID 391 //
9595 /* 30800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9596 /* 30803 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
9597 /* 30803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9598 /* 30806 */ // Label 475: @30806
9599 /* 30806 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(30849), // Rule ID 319 //
9600 /* 30811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
9601 /* 30814 */ // MIs[0] dst
9602 /* 30814 */ // No operand predicates
9603 /* 30814 */ // MIs[0] nx
9604 /* 30814 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9605 /* 30818 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9606 /* 30822 */ // MIs[1] x
9607 /* 30822 */ // No operand predicates
9608 /* 30822 */ // MIs[0] ny
9609 /* 30822 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9610 /* 30826 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9611 /* 30830 */ // MIs[2] y
9612 /* 30830 */ // No operand predicates
9613 /* 30830 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9614 /* 30832 */ // Combiner Rule #202: G_FMUL_fneg_fneg
9615 /* 30832 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
9616 /* 30835 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9617 /* 30837 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9618 /* 30841 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9619 /* 30845 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9620 /* 30848 */ GIR_EraseRootFromParent_Done,
9621 /* 30849 */ // Label 476: @30849
9622 /* 30849 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(30870), // Rule ID 458 //
9623 /* 30854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
9624 /* 30857 */ // MIs[0] dst
9625 /* 30857 */ // No operand predicates
9626 /* 30857 */ // MIs[0] x
9627 /* 30857 */ // No operand predicates
9628 /* 30857 */ // MIs[0] select
9629 /* 30857 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9630 /* 30861 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
9631 /* 30865 */ // MIs[1] y
9632 /* 30865 */ // No operand predicates
9633 /* 30865 */ // MIs[1] A
9634 /* 30865 */ // No operand predicates
9635 /* 30865 */ // MIs[1] B
9636 /* 30865 */ // No operand predicates
9637 /* 30865 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9638 /* 30867 */ // Combiner Rule #281: combine_fmul_with_select_to_fldexp
9639 /* 30867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
9640 /* 30870 */ // Label 477: @30870
9641 /* 30870 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(30893), // Rule ID 146 //
9642 /* 30875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
9643 /* 30878 */ // MIs[0] dst
9644 /* 30878 */ // No operand predicates
9645 /* 30878 */ // MIs[0] x
9646 /* 30878 */ // No operand predicates
9647 /* 30878 */ // MIs[0] y
9648 /* 30878 */ // No operand predicates
9649 /* 30878 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
9650 /* 30882 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9651 /* 30887 */ // Combiner Rule #100: right_identity_one_fp
9652 /* 30887 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9653 /* 30892 */ GIR_EraseRootFromParent_Done,
9654 /* 30893 */ // Label 478: @30893
9655 /* 30893 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(30913), // Rule ID 158 //
9656 /* 30898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
9657 /* 30901 */ // MIs[0] dst
9658 /* 30901 */ // No operand predicates
9659 /* 30901 */ // MIs[0] x
9660 /* 30901 */ // No operand predicates
9661 /* 30901 */ // MIs[0] y
9662 /* 30901 */ // No operand predicates
9663 /* 30901 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9664 /* 30905 */ // Combiner Rule #110: right_identity_neg_one_fp
9665 /* 30905 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
9666 /* 30908 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9667 /* 30910 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9668 /* 30912 */ GIR_EraseRootFromParent_Done,
9669 /* 30913 */ // Label 479: @30913
9670 /* 30913 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(30924), // Rule ID 292 //
9671 /* 30918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9672 /* 30921 */ // MIs[0] d
9673 /* 30921 */ // No operand predicates
9674 /* 30921 */ // MIs[0] mi.src0
9675 /* 30921 */ // No operand predicates
9676 /* 30921 */ // MIs[0] mi.src1
9677 /* 30921 */ // No operand predicates
9678 /* 30921 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[2]]
9679 /* 30921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9680 /* 30924 */ // Label 480: @30924
9681 /* 30924 */ GIM_Reject,
9682 /* 30925 */ // Label 68: @30925
9683 /* 30925 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(30970), // Rule ID 322 //
9684 /* 30930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
9685 /* 30933 */ // MIs[0] dst
9686 /* 30933 */ // No operand predicates
9687 /* 30933 */ // MIs[0] nx
9688 /* 30933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9689 /* 30937 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9690 /* 30941 */ // MIs[1] x
9691 /* 30941 */ // No operand predicates
9692 /* 30941 */ // MIs[0] ny
9693 /* 30941 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9694 /* 30945 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9695 /* 30949 */ // MIs[2] y
9696 /* 30949 */ // No operand predicates
9697 /* 30949 */ // MIs[0] z
9698 /* 30949 */ // No operand predicates
9699 /* 30949 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9700 /* 30951 */ // Combiner Rule #205: G_FMA_fneg_fneg
9701 /* 30951 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
9702 /* 30954 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9703 /* 30956 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9704 /* 30960 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9705 /* 30964 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9706 /* 30966 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9707 /* 30969 */ GIR_EraseRootFromParent_Done,
9708 /* 30970 */ // Label 481: @30970
9709 /* 30970 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(30981), // Rule ID 303 //
9710 /* 30975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9711 /* 30978 */ // MIs[0] dst
9712 /* 30978 */ // No operand predicates
9713 /* 30978 */ // MIs[0] d.src0
9714 /* 30978 */ // No operand predicates
9715 /* 30978 */ // MIs[0] d.src1
9716 /* 30978 */ // No operand predicates
9717 /* 30978 */ // MIs[0] d.src2
9718 /* 30978 */ // No operand predicates
9719 /* 30978 */ // Combiner Rule #196: constant_fold_fma @ [d[1]]
9720 /* 30978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9721 /* 30981 */ // Label 482: @30981
9722 /* 30981 */ GIM_Reject,
9723 /* 30982 */ // Label 69: @30982
9724 /* 30982 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(31027), // Rule ID 321 //
9725 /* 30987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9726 /* 30990 */ // MIs[0] dst
9727 /* 30990 */ // No operand predicates
9728 /* 30990 */ // MIs[0] nx
9729 /* 30990 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9730 /* 30994 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9731 /* 30998 */ // MIs[1] x
9732 /* 30998 */ // No operand predicates
9733 /* 30998 */ // MIs[0] ny
9734 /* 30998 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9735 /* 31002 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9736 /* 31006 */ // MIs[2] y
9737 /* 31006 */ // No operand predicates
9738 /* 31006 */ // MIs[0] z
9739 /* 31006 */ // No operand predicates
9740 /* 31006 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9741 /* 31008 */ // Combiner Rule #204: G_FMAD_fneg_fneg
9742 /* 31008 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
9743 /* 31011 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9744 /* 31013 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9745 /* 31017 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9746 /* 31021 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9747 /* 31023 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9748 /* 31026 */ GIR_EraseRootFromParent_Done,
9749 /* 31027 */ // Label 483: @31027
9750 /* 31027 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(31038), // Rule ID 302 //
9751 /* 31032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9752 /* 31035 */ // MIs[0] dst
9753 /* 31035 */ // No operand predicates
9754 /* 31035 */ // MIs[0] d.src0
9755 /* 31035 */ // No operand predicates
9756 /* 31035 */ // MIs[0] d.src1
9757 /* 31035 */ // No operand predicates
9758 /* 31035 */ // MIs[0] d.src2
9759 /* 31035 */ // No operand predicates
9760 /* 31035 */ // Combiner Rule #196: constant_fold_fma @ [d[0]]
9761 /* 31035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9762 /* 31038 */ // Label 484: @31038
9763 /* 31038 */ GIM_Reject,
9764 /* 31039 */ // Label 70: @31039
9765 /* 31039 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(31050), // Rule ID 352 //
9766 /* 31044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9767 /* 31047 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FDIV'
9768 /* 31047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9769 /* 31050 */ // Label 485: @31050
9770 /* 31050 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(31089), // Rule ID 472 //
9771 /* 31055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule291Enabled),
9772 /* 31058 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f16,
9773 /* 31061 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_f16,
9774 /* 31064 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
9775 /* 31070 */ // MIs[0] y
9776 /* 31070 */ // No operand predicates
9777 /* 31070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9778 /* 31074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
9779 /* 31078 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
9780 /* 31084 */ // MIs[1] x
9781 /* 31084 */ // No operand predicates
9782 /* 31084 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9783 /* 31086 */ // Combiner Rule #291: fdiv_by_sqrt_to_rsq_f16
9784 /* 31086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
9785 /* 31089 */ // Label 486: @31089
9786 /* 31089 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(31132), // Rule ID 320 //
9787 /* 31094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
9788 /* 31097 */ // MIs[0] dst
9789 /* 31097 */ // No operand predicates
9790 /* 31097 */ // MIs[0] nx
9791 /* 31097 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9792 /* 31101 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9793 /* 31105 */ // MIs[1] x
9794 /* 31105 */ // No operand predicates
9795 /* 31105 */ // MIs[0] ny
9796 /* 31105 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9797 /* 31109 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9798 /* 31113 */ // MIs[2] y
9799 /* 31113 */ // No operand predicates
9800 /* 31113 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9801 /* 31115 */ // Combiner Rule #203: G_FDIV_fneg_fneg
9802 /* 31115 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
9803 /* 31118 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9804 /* 31120 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9805 /* 31124 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9806 /* 31128 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9807 /* 31131 */ GIR_EraseRootFromParent_Done,
9808 /* 31132 */ // Label 487: @31132
9809 /* 31132 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(31143), // Rule ID 293 //
9810 /* 31137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9811 /* 31140 */ // MIs[0] d
9812 /* 31140 */ // No operand predicates
9813 /* 31140 */ // MIs[0] mi.src0
9814 /* 31140 */ // No operand predicates
9815 /* 31140 */ // MIs[0] mi.src1
9816 /* 31140 */ // No operand predicates
9817 /* 31140 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[3]]
9818 /* 31140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9819 /* 31143 */ // Label 488: @31143
9820 /* 31143 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(31154), // Rule ID 365 //
9821 /* 31148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
9822 /* 31151 */ // MIs[0] dst
9823 /* 31151 */ // No operand predicates
9824 /* 31151 */ // MIs[0] src1
9825 /* 31151 */ // No operand predicates
9826 /* 31151 */ // MIs[0] src2
9827 /* 31151 */ // No operand predicates
9828 /* 31151 */ // Combiner Rule #223: fdiv_repeated_divison
9829 /* 31151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
9830 /* 31154 */ // Label 489: @31154
9831 /* 31154 */ GIM_Reject,
9832 /* 31155 */ // Label 71: @31155
9833 /* 31155 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(31166), // Rule ID 353 //
9834 /* 31160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9835 /* 31163 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FREM'
9836 /* 31163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9837 /* 31166 */ // Label 490: @31166
9838 /* 31166 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(31177), // Rule ID 294 //
9839 /* 31171 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9840 /* 31174 */ // MIs[0] d
9841 /* 31174 */ // No operand predicates
9842 /* 31174 */ // MIs[0] mi.src0
9843 /* 31174 */ // No operand predicates
9844 /* 31174 */ // MIs[0] mi.src1
9845 /* 31174 */ // No operand predicates
9846 /* 31174 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[4]]
9847 /* 31174 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9848 /* 31177 */ // Label 491: @31177
9849 /* 31177 */ GIM_Reject,
9850 /* 31178 */ // Label 72: @31178
9851 /* 31178 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(31199), // Rule ID 233 //
9852 /* 31183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
9853 /* 31186 */ // MIs[0] dst
9854 /* 31186 */ // No operand predicates
9855 /* 31186 */ // MIs[0] float
9856 /* 31186 */ // No operand predicates
9857 /* 31186 */ // MIs[0] int
9858 /* 31186 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9859 /* 31190 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9860 /* 31194 */ // MIs[1] imm
9861 /* 31194 */ // No operand predicates
9862 /* 31194 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9863 /* 31196 */ // Combiner Rule #172: expand_const_fpowi
9864 /* 31196 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9865 /* 31199 */ // Label 492: @31199
9866 /* 31199 */ GIM_Reject,
9867 /* 31200 */ // Label 73: @31200
9868 /* 31200 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(31221), // Rule ID 207 //
9869 /* 31205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
9870 /* 31208 */ // MIs[0] dst
9871 /* 31208 */ // No operand predicates
9872 /* 31208 */ // MIs[0] src0
9873 /* 31208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9874 /* 31212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9875 /* 31216 */ // MIs[1] cst
9876 /* 31216 */ // No operand predicates
9877 /* 31216 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9878 /* 31218 */ // Combiner Rule #154: constant_fold_flog2
9879 /* 31218 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9880 /* 31221 */ // Label 493: @31221
9881 /* 31221 */ GIM_Reject,
9882 /* 31222 */ // Label 74: @31222
9883 /* 31222 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(31243), // Rule ID 204 //
9884 /* 31227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
9885 /* 31230 */ // MIs[0] dst
9886 /* 31230 */ // No operand predicates
9887 /* 31230 */ // MIs[0] src0
9888 /* 31230 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9889 /* 31234 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9890 /* 31238 */ // MIs[1] cst
9891 /* 31238 */ // No operand predicates
9892 /* 31238 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9893 /* 31240 */ // Combiner Rule #151: constant_fold_fneg
9894 /* 31240 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9895 /* 31243 */ // Label 494: @31243
9896 /* 31243 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(31272), // Rule ID 144 //
9897 /* 31248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
9898 /* 31251 */ // MIs[0] dst
9899 /* 31251 */ // No operand predicates
9900 /* 31251 */ // MIs[0] t
9901 /* 31251 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9902 /* 31255 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9903 /* 31259 */ // MIs[1] src
9904 /* 31259 */ // No operand predicates
9905 /* 31259 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
9906 /* 31264 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9907 /* 31266 */ // Combiner Rule #98: fneg_fneg_fold
9908 /* 31266 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
9909 /* 31271 */ GIR_EraseRootFromParent_Done,
9910 /* 31272 */ // Label 495: @31272
9911 /* 31272 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(31283), // Rule ID 466 //
9912 /* 31277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
9913 /* 31280 */ // MIs[0] dst
9914 /* 31280 */ // No operand predicates
9915 /* 31280 */ // MIs[0] src
9916 /* 31280 */ // No operand predicates
9917 /* 31280 */ // Combiner Rule #285: foldable_fneg
9918 /* 31280 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
9919 /* 31283 */ // Label 496: @31283
9920 /* 31283 */ GIM_Reject,
9921 /* 31284 */ // Label 75: @31284
9922 /* 31284 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(31305), // Rule ID 209 //
9923 /* 31289 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
9924 /* 31292 */ // MIs[0] dst
9925 /* 31292 */ // No operand predicates
9926 /* 31292 */ // MIs[0] src0
9927 /* 31292 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9928 /* 31296 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9929 /* 31300 */ // MIs[1] cst
9930 /* 31300 */ // No operand predicates
9931 /* 31300 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9932 /* 31302 */ // Combiner Rule #156: constant_fold_fpext
9933 /* 31302 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9934 /* 31305 */ // Label 497: @31305
9935 /* 31305 */ GIM_Reject,
9936 /* 31306 */ // Label 76: @31306
9937 /* 31306 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 498*/ GIMT_Encode4(31329), GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), // Rule ID 457 //
9938 /* 31313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
9939 /* 31316 */ // MIs[0] fptrunc_dst
9940 /* 31316 */ // No operand predicates
9941 /* 31316 */ // MIs[0] fmed3_dst
9942 /* 31316 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9943 /* 31320 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
9944 /* 31324 */ // MIs[1] src0
9945 /* 31324 */ // No operand predicates
9946 /* 31324 */ // MIs[1] src1
9947 /* 31324 */ // No operand predicates
9948 /* 31324 */ // MIs[1] src2
9949 /* 31324 */ // No operand predicates
9950 /* 31324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9951 /* 31326 */ // Combiner Rule #280: expand_promoted_fmed3
9952 /* 31326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
9953 /* 31329 */ // Label 498: @31329
9954 /* 31329 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(31350), // Rule ID 208 //
9955 /* 31334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
9956 /* 31337 */ // MIs[0] dst
9957 /* 31337 */ // No operand predicates
9958 /* 31337 */ // MIs[0] src0
9959 /* 31337 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9960 /* 31341 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9961 /* 31345 */ // MIs[1] cst
9962 /* 31345 */ // No operand predicates
9963 /* 31345 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9964 /* 31347 */ // Combiner Rule #155: constant_fold_fptrunc
9965 /* 31347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9966 /* 31350 */ // Label 499: @31350
9967 /* 31350 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(31371), // Rule ID 155 //
9968 /* 31355 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
9969 /* 31358 */ // MIs[0] dst
9970 /* 31358 */ // No operand predicates
9971 /* 31358 */ // MIs[0] src1
9972 /* 31358 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9973 /* 31362 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
9974 /* 31366 */ // MIs[1] src0
9975 /* 31366 */ // No operand predicates
9976 /* 31366 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9977 /* 31368 */ // Combiner Rule #107: fptrunc_fpext_fold
9978 /* 31368 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
9979 /* 31371 */ // Label 500: @31371
9980 /* 31371 */ GIM_Reject,
9981 /* 31372 */ // Label 77: @31372
9982 /* 31372 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(31393), // Rule ID 102 //
9983 /* 31377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9984 /* 31380 */ // MIs[0] dst
9985 /* 31380 */ // No operand predicates
9986 /* 31380 */ // MIs[0] __unary_undef_to_undef_match_0.x
9987 /* 31380 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9988 /* 31384 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9989 /* 31388 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9990 /* 31390 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
9991 /* 31390 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
9992 /* 31393 */ // Label 501: @31393
9993 /* 31393 */ GIM_Reject,
9994 /* 31394 */ // Label 78: @31394
9995 /* 31394 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(31415), // Rule ID 103 //
9996 /* 31399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9997 /* 31402 */ // MIs[0] dst
9998 /* 31402 */ // No operand predicates
9999 /* 31402 */ // MIs[0] __unary_undef_to_undef_match_0.x
10000 /* 31402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10001 /* 31406 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10002 /* 31410 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10003 /* 31412 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
10004 /* 31412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
10005 /* 31415 */ // Label 502: @31415
10006 /* 31415 */ GIM_Reject,
10007 /* 31416 */ // Label 79: @31416
10008 /* 31416 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(31437), // Rule ID 83 //
10009 /* 31421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
10010 /* 31424 */ // MIs[0] dst
10011 /* 31424 */ // No operand predicates
10012 /* 31424 */ // MIs[0] __undef_to_fp_zero_match_0.x
10013 /* 31424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10014 /* 31428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10015 /* 31432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10016 /* 31434 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
10017 /* 31434 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10018 /* 31437 */ // Label 503: @31437
10019 /* 31437 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(31452), // Rule ID 217 //
10020 /* 31442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
10021 /* 31445 */ // MIs[0] dst
10022 /* 31445 */ // No operand predicates
10023 /* 31445 */ // MIs[0] Operand 1
10024 /* 31445 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
10025 /* 31449 */ // Combiner Rule #164: itof_const_zero_fold_si
10026 /* 31449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10027 /* 31452 */ // Label 504: @31452
10028 /* 31452 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(31463), // Rule ID 460 //
10029 /* 31457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
10030 /* 31460 */ // MIs[0] dst
10031 /* 31460 */ // No operand predicates
10032 /* 31460 */ // MIs[0] itofp.src
10033 /* 31460 */ // No operand predicates
10034 /* 31460 */ // Combiner Rule #282: uchar_to_float @ [itofp[1]]
10035 /* 31460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
10036 /* 31463 */ // Label 505: @31463
10037 /* 31463 */ GIM_Reject,
10038 /* 31464 */ // Label 80: @31464
10039 /* 31464 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(31485), // Rule ID 82 //
10040 /* 31469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
10041 /* 31472 */ // MIs[0] dst
10042 /* 31472 */ // No operand predicates
10043 /* 31472 */ // MIs[0] __undef_to_fp_zero_match_0.x
10044 /* 31472 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10045 /* 31476 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10046 /* 31480 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10047 /* 31482 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
10048 /* 31482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10049 /* 31485 */ // Label 506: @31485
10050 /* 31485 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(31500), // Rule ID 218 //
10051 /* 31490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
10052 /* 31493 */ // MIs[0] dst
10053 /* 31493 */ // No operand predicates
10054 /* 31493 */ // MIs[0] Operand 1
10055 /* 31493 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
10056 /* 31497 */ // Combiner Rule #165: itof_const_zero_fold_ui
10057 /* 31497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10058 /* 31500 */ // Label 507: @31500
10059 /* 31500 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(31511), // Rule ID 459 //
10060 /* 31505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
10061 /* 31508 */ // MIs[0] dst
10062 /* 31508 */ // No operand predicates
10063 /* 31508 */ // MIs[0] itofp.src
10064 /* 31508 */ // No operand predicates
10065 /* 31508 */ // Combiner Rule #282: uchar_to_float @ [itofp[0]]
10066 /* 31508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
10067 /* 31511 */ // Label 508: @31511
10068 /* 31511 */ GIM_Reject,
10069 /* 31512 */ // Label 81: @31512
10070 /* 31512 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(31541), // Rule ID 26 //
10071 /* 31517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
10072 /* 31520 */ // MIs[0] dst
10073 /* 31520 */ // No operand predicates
10074 /* 31520 */ // MIs[0] src
10075 /* 31520 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10076 /* 31524 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
10077 /* 31528 */ // MIs[1] __idempotent_prop_match_0.x
10078 /* 31528 */ // No operand predicates
10079 /* 31528 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10080 /* 31533 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10081 /* 31535 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
10082 /* 31535 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10083 /* 31540 */ GIR_EraseRootFromParent_Done,
10084 /* 31541 */ // Label 509: @31541
10085 /* 31541 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(31562), // Rule ID 205 //
10086 /* 31546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
10087 /* 31549 */ // MIs[0] dst
10088 /* 31549 */ // No operand predicates
10089 /* 31549 */ // MIs[0] src0
10090 /* 31549 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10091 /* 31553 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10092 /* 31557 */ // MIs[1] cst
10093 /* 31557 */ // No operand predicates
10094 /* 31557 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10095 /* 31559 */ // Combiner Rule #152: constant_fold_fabs
10096 /* 31559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10097 /* 31562 */ // Label 510: @31562
10098 /* 31562 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(31590), // Rule ID 315 //
10099 /* 31567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
10100 /* 31570 */ // MIs[0] dst
10101 /* 31570 */ // No operand predicates
10102 /* 31570 */ // MIs[0] tmp
10103 /* 31570 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10104 /* 31574 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10105 /* 31578 */ // MIs[1] x
10106 /* 31578 */ // No operand predicates
10107 /* 31578 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10108 /* 31580 */ // Combiner Rule #199: fabs_fneg_fold
10109 /* 31580 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
10110 /* 31583 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10111 /* 31585 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10112 /* 31589 */ GIR_EraseRootFromParent_Done,
10113 /* 31590 */ // Label 511: @31590
10114 /* 31590 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(31611), // Rule ID 467 //
10115 /* 31595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
10116 /* 31598 */ // MIs[0] dst
10117 /* 31598 */ // No operand predicates
10118 /* 31598 */ // MIs[0] round
10119 /* 31598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10120 /* 31602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTRUNC),
10121 /* 31606 */ // MIs[1] src
10122 /* 31606 */ // No operand predicates
10123 /* 31606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10124 /* 31608 */ // Combiner Rule #286: fold_fabs_fptrunc
10125 /* 31608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
10126 /* 31611 */ // Label 512: @31611
10127 /* 31611 */ GIM_Reject,
10128 /* 31612 */ // Label 82: @31612
10129 /* 31612 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(31623), // Rule ID 295 //
10130 /* 31617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10131 /* 31620 */ // MIs[0] d
10132 /* 31620 */ // No operand predicates
10133 /* 31620 */ // MIs[0] mi.src0
10134 /* 31620 */ // No operand predicates
10135 /* 31620 */ // MIs[0] mi.src1
10136 /* 31620 */ // No operand predicates
10137 /* 31620 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[5]]
10138 /* 31620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10139 /* 31623 */ // Label 513: @31623
10140 /* 31623 */ GIM_Reject,
10141 /* 31624 */ // Label 83: @31624
10142 /* 31624 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(31653), // Rule ID 27 //
10143 /* 31629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
10144 /* 31632 */ // MIs[0] dst
10145 /* 31632 */ // No operand predicates
10146 /* 31632 */ // MIs[0] src
10147 /* 31632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10148 /* 31636 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
10149 /* 31640 */ // MIs[1] __idempotent_prop_match_0.x
10150 /* 31640 */ // No operand predicates
10151 /* 31640 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10152 /* 31645 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10153 /* 31647 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
10154 /* 31647 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10155 /* 31652 */ GIR_EraseRootFromParent_Done,
10156 /* 31653 */ // Label 514: @31653
10157 /* 31653 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(31676), // Rule ID 465 //
10158 /* 31658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
10159 /* 31661 */ // MIs[0] dst
10160 /* 31661 */ // No operand predicates
10161 /* 31661 */ // MIs[0] src
10162 /* 31661 */ // No operand predicates
10163 /* 31661 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
10164 /* 31665 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10165 /* 31670 */ // Combiner Rule #284: remove_fcanonicalize
10166 /* 31670 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10167 /* 31675 */ GIR_EraseRootFromParent_Done,
10168 /* 31676 */ // Label 515: @31676
10169 /* 31676 */ GIM_Reject,
10170 /* 31677 */ // Label 84: @31677
10171 /* 31677 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(31688), // Rule ID 354 //
10172 /* 31682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10173 /* 31685 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
10174 /* 31685 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10175 /* 31688 */ // Label 516: @31688
10176 /* 31688 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(31699), // Rule ID 392 //
10177 /* 31693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10178 /* 31696 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
10179 /* 31696 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10180 /* 31699 */ // Label 517: @31699
10181 /* 31699 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(31710), // Rule ID 229 //
10182 /* 31704 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10183 /* 31707 */ // MIs[0] dst
10184 /* 31707 */ // No operand predicates
10185 /* 31707 */ // MIs[0] root.src0
10186 /* 31707 */ // No operand predicates
10187 /* 31707 */ // MIs[0] root.src1
10188 /* 31707 */ // No operand predicates
10189 /* 31707 */ // Combiner Rule #171: combine_minmax_nan @ [root[0]]
10190 /* 31707 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10191 /* 31710 */ // Label 518: @31710
10192 /* 31710 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(31721), // Rule ID 296 //
10193 /* 31715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10194 /* 31718 */ // MIs[0] d
10195 /* 31718 */ // No operand predicates
10196 /* 31718 */ // MIs[0] mi.src0
10197 /* 31718 */ // No operand predicates
10198 /* 31718 */ // MIs[0] mi.src1
10199 /* 31718 */ // No operand predicates
10200 /* 31718 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[6]]
10201 /* 31718 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10202 /* 31721 */ // Label 519: @31721
10203 /* 31721 */ GIM_Reject,
10204 /* 31722 */ // Label 85: @31722
10205 /* 31722 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(31733), // Rule ID 355 //
10206 /* 31727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10207 /* 31730 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
10208 /* 31730 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10209 /* 31733 */ // Label 520: @31733
10210 /* 31733 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(31744), // Rule ID 393 //
10211 /* 31738 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10212 /* 31741 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
10213 /* 31741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10214 /* 31744 */ // Label 521: @31744
10215 /* 31744 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(31755), // Rule ID 230 //
10216 /* 31749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10217 /* 31752 */ // MIs[0] dst
10218 /* 31752 */ // No operand predicates
10219 /* 31752 */ // MIs[0] root.src0
10220 /* 31752 */ // No operand predicates
10221 /* 31752 */ // MIs[0] root.src1
10222 /* 31752 */ // No operand predicates
10223 /* 31752 */ // Combiner Rule #171: combine_minmax_nan @ [root[1]]
10224 /* 31752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10225 /* 31755 */ // Label 522: @31755
10226 /* 31755 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(31766), // Rule ID 297 //
10227 /* 31760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10228 /* 31763 */ // MIs[0] d
10229 /* 31763 */ // No operand predicates
10230 /* 31763 */ // MIs[0] mi.src0
10231 /* 31763 */ // No operand predicates
10232 /* 31763 */ // MIs[0] mi.src1
10233 /* 31763 */ // No operand predicates
10234 /* 31763 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[7]]
10235 /* 31763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10236 /* 31766 */ // Label 523: @31766
10237 /* 31766 */ GIM_Reject,
10238 /* 31767 */ // Label 86: @31767
10239 /* 31767 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(31778), // Rule ID 394 //
10240 /* 31772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10241 /* 31775 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
10242 /* 31775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10243 /* 31778 */ // Label 524: @31778
10244 /* 31778 */ GIM_Reject,
10245 /* 31779 */ // Label 87: @31779
10246 /* 31779 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(31790), // Rule ID 395 //
10247 /* 31784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10248 /* 31787 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
10249 /* 31787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10250 /* 31790 */ // Label 525: @31790
10251 /* 31790 */ GIM_Reject,
10252 /* 31791 */ // Label 88: @31791
10253 /* 31791 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(31802), // Rule ID 356 //
10254 /* 31796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10255 /* 31799 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
10256 /* 31799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10257 /* 31802 */ // Label 526: @31802
10258 /* 31802 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(31813), // Rule ID 396 //
10259 /* 31807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10260 /* 31810 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
10261 /* 31810 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10262 /* 31813 */ // Label 527: @31813
10263 /* 31813 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(31824), // Rule ID 231 //
10264 /* 31818 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10265 /* 31821 */ // MIs[0] dst
10266 /* 31821 */ // No operand predicates
10267 /* 31821 */ // MIs[0] root.src0
10268 /* 31821 */ // No operand predicates
10269 /* 31821 */ // MIs[0] root.src1
10270 /* 31821 */ // No operand predicates
10271 /* 31821 */ // Combiner Rule #171: combine_minmax_nan @ [root[2]]
10272 /* 31821 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10273 /* 31824 */ // Label 528: @31824
10274 /* 31824 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(31835), // Rule ID 298 //
10275 /* 31829 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10276 /* 31832 */ // MIs[0] d
10277 /* 31832 */ // No operand predicates
10278 /* 31832 */ // MIs[0] mi.src0
10279 /* 31832 */ // No operand predicates
10280 /* 31832 */ // MIs[0] mi.src1
10281 /* 31832 */ // No operand predicates
10282 /* 31832 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[8]]
10283 /* 31832 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10284 /* 31835 */ // Label 529: @31835
10285 /* 31835 */ GIM_Reject,
10286 /* 31836 */ // Label 89: @31836
10287 /* 31836 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(31847), // Rule ID 357 //
10288 /* 31841 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10289 /* 31844 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
10290 /* 31844 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10291 /* 31847 */ // Label 530: @31847
10292 /* 31847 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(31858), // Rule ID 397 //
10293 /* 31852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10294 /* 31855 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
10295 /* 31855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10296 /* 31858 */ // Label 531: @31858
10297 /* 31858 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(31869), // Rule ID 232 //
10298 /* 31863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10299 /* 31866 */ // MIs[0] dst
10300 /* 31866 */ // No operand predicates
10301 /* 31866 */ // MIs[0] root.src0
10302 /* 31866 */ // No operand predicates
10303 /* 31866 */ // MIs[0] root.src1
10304 /* 31866 */ // No operand predicates
10305 /* 31866 */ // Combiner Rule #171: combine_minmax_nan @ [root[3]]
10306 /* 31866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10307 /* 31869 */ // Label 532: @31869
10308 /* 31869 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(31880), // Rule ID 299 //
10309 /* 31874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10310 /* 31877 */ // MIs[0] d
10311 /* 31877 */ // No operand predicates
10312 /* 31877 */ // MIs[0] mi.src0
10313 /* 31877 */ // No operand predicates
10314 /* 31877 */ // MIs[0] mi.src1
10315 /* 31877 */ // No operand predicates
10316 /* 31877 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[9]]
10317 /* 31877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10318 /* 31880 */ // Label 533: @31880
10319 /* 31880 */ GIM_Reject,
10320 /* 31881 */ // Label 90: @31881
10321 /* 31881 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(31892), // Rule ID 300 //
10322 /* 31886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10323 /* 31889 */ // MIs[0] d
10324 /* 31889 */ // No operand predicates
10325 /* 31889 */ // MIs[0] mi.src0
10326 /* 31889 */ // No operand predicates
10327 /* 31889 */ // MIs[0] mi.src1
10328 /* 31889 */ // No operand predicates
10329 /* 31889 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[10]]
10330 /* 31889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10331 /* 31892 */ // Label 534: @31892
10332 /* 31892 */ GIM_Reject,
10333 /* 31893 */ // Label 91: @31893
10334 /* 31893 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(31904), // Rule ID 301 //
10335 /* 31898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10336 /* 31901 */ // MIs[0] d
10337 /* 31901 */ // No operand predicates
10338 /* 31901 */ // MIs[0] mi.src0
10339 /* 31901 */ // No operand predicates
10340 /* 31901 */ // MIs[0] mi.src1
10341 /* 31901 */ // No operand predicates
10342 /* 31901 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[11]]
10343 /* 31901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10344 /* 31904 */ // Label 535: @31904
10345 /* 31904 */ GIM_Reject,
10346 /* 31905 */ // Label 92: @31905
10347 /* 31905 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(31916), // Rule ID 273 //
10348 /* 31910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10349 /* 31913 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
10350 /* 31913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10351 /* 31916 */ // Label 536: @31916
10352 /* 31916 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(31927), // Rule ID 334 //
10353 /* 31921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10354 /* 31924 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
10355 /* 31924 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10356 /* 31927 */ // Label 537: @31927
10357 /* 31927 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(31964), // Rule ID 219 //
10358 /* 31932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
10359 /* 31935 */ // MIs[0] dst
10360 /* 31935 */ // No operand predicates
10361 /* 31935 */ // MIs[0] base
10362 /* 31935 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10363 /* 31939 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
10364 /* 31943 */ // MIs[1] c1reg
10365 /* 31943 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
10366 /* 31947 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10367 /* 31951 */ // MIs[2] c1imm
10368 /* 31951 */ // No operand predicates
10369 /* 31951 */ // MIs[0] c2reg
10370 /* 31951 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
10371 /* 31955 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10372 /* 31959 */ // MIs[3] c2imm
10373 /* 31959 */ // No operand predicates
10374 /* 31959 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
10375 /* 31961 */ // Combiner Rule #166: const_ptradd_to_i2p
10376 /* 31961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
10377 /* 31964 */ // Label 538: @31964
10378 /* 31964 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(31987), // Rule ID 125 //
10379 /* 31969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
10380 /* 31972 */ // MIs[0] dst
10381 /* 31972 */ // No operand predicates
10382 /* 31972 */ // MIs[0] lhs
10383 /* 31972 */ // No operand predicates
10384 /* 31972 */ // MIs[0] Operand 2
10385 /* 31972 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
10386 /* 31976 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10387 /* 31981 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
10388 /* 31981 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10389 /* 31986 */ GIR_EraseRootFromParent_Done,
10390 /* 31987 */ // Label 539: @31987
10391 /* 31987 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(32007), // Rule ID 235 //
10392 /* 31992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
10393 /* 31995 */ // MIs[0] dst
10394 /* 31995 */ // No operand predicates
10395 /* 31995 */ // MIs[0] base
10396 /* 31995 */ // No operand predicates
10397 /* 31995 */ // MIs[0] offset
10398 /* 31995 */ // No operand predicates
10399 /* 31995 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
10400 /* 31999 */ // Combiner Rule #174: ptr_add_with_zero
10401 /* 31999 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
10402 /* 32002 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10403 /* 32004 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
10404 /* 32006 */ GIR_EraseRootFromParent_Done,
10405 /* 32007 */ // Label 540: @32007
10406 /* 32007 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(32018), // Rule ID 168 //
10407 /* 32012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
10408 /* 32015 */ // MIs[0] dst
10409 /* 32015 */ // No operand predicates
10410 /* 32015 */ // MIs[0] base
10411 /* 32015 */ // No operand predicates
10412 /* 32015 */ // MIs[0] offset
10413 /* 32015 */ // No operand predicates
10414 /* 32015 */ // Combiner Rule #115: reassoc_ptradd
10415 /* 32015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
10416 /* 32018 */ // Label 541: @32018
10417 /* 32018 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(32029), // Rule ID 170 //
10418 /* 32023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
10419 /* 32026 */ // MIs[0] dst
10420 /* 32026 */ // No operand predicates
10421 /* 32026 */ // MIs[0] base
10422 /* 32026 */ // No operand predicates
10423 /* 32026 */ // MIs[0] offset
10424 /* 32026 */ // No operand predicates
10425 /* 32026 */ // Combiner Rule #117: ptr_add_immed_chain
10426 /* 32026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
10427 /* 32029 */ // Label 542: @32029
10428 /* 32029 */ GIM_Reject,
10429 /* 32030 */ // Label 93: @32030
10430 /* 32030 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(32041), // Rule ID 286 //
10431 /* 32035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10432 /* 32038 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMIN'
10433 /* 32038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10434 /* 32041 */ // Label 543: @32041
10435 /* 32041 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(32052), // Rule ID 345 //
10436 /* 32046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10437 /* 32049 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMIN'
10438 /* 32049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10439 /* 32052 */ // Label 544: @32052
10440 /* 32052 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(32063), // Rule ID 374 //
10441 /* 32057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10442 /* 32060 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
10443 /* 32060 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10444 /* 32063 */ // Label 545: @32063
10445 /* 32063 */ GIM_Reject,
10446 /* 32064 */ // Label 94: @32064
10447 /* 32064 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(32075), // Rule ID 287 //
10448 /* 32069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10449 /* 32072 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMAX'
10450 /* 32072 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10451 /* 32075 */ // Label 546: @32075
10452 /* 32075 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(32086), // Rule ID 346 //
10453 /* 32080 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10454 /* 32083 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMAX'
10455 /* 32083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10456 /* 32086 */ // Label 547: @32086
10457 /* 32086 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(32097), // Rule ID 375 //
10458 /* 32091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10459 /* 32094 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
10460 /* 32094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10461 /* 32097 */ // Label 548: @32097
10462 /* 32097 */ GIM_Reject,
10463 /* 32098 */ // Label 95: @32098
10464 /* 32098 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(32109), // Rule ID 288 //
10465 /* 32103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10466 /* 32106 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMIN'
10467 /* 32106 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10468 /* 32109 */ // Label 549: @32109
10469 /* 32109 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(32120), // Rule ID 347 //
10470 /* 32114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10471 /* 32117 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMIN'
10472 /* 32117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10473 /* 32120 */ // Label 550: @32120
10474 /* 32120 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(32131), // Rule ID 376 //
10475 /* 32125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10476 /* 32128 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
10477 /* 32128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10478 /* 32131 */ // Label 551: @32131
10479 /* 32131 */ GIM_Reject,
10480 /* 32132 */ // Label 96: @32132
10481 /* 32132 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(32143), // Rule ID 289 //
10482 /* 32137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10483 /* 32140 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMAX'
10484 /* 32140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10485 /* 32143 */ // Label 552: @32143
10486 /* 32143 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(32154), // Rule ID 348 //
10487 /* 32148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10488 /* 32151 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMAX'
10489 /* 32151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10490 /* 32154 */ // Label 553: @32154
10491 /* 32154 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(32165), // Rule ID 377 //
10492 /* 32159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10493 /* 32162 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
10494 /* 32162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10495 /* 32165 */ // Label 554: @32165
10496 /* 32165 */ GIM_Reject,
10497 /* 32166 */ // Label 97: @32166
10498 /* 32166 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(32187), // Rule ID 96 //
10499 /* 32171 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
10500 /* 32174 */ // MIs[0] dst
10501 /* 32174 */ // No operand predicates
10502 /* 32174 */ // MIs[0] __unary_undef_to_zero_match_0.x
10503 /* 32174 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10504 /* 32178 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10505 /* 32182 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10506 /* 32184 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
10507 /* 32184 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
10508 /* 32187 */ // Label 555: @32187
10509 /* 32187 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(32198), // Rule ID 312 //
10510 /* 32192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10511 /* 32195 */ // MIs[0] dst
10512 /* 32195 */ // No operand predicates
10513 /* 32195 */ // MIs[0] mi.src
10514 /* 32195 */ // No operand predicates
10515 /* 32195 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[5]]
10516 /* 32195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10517 /* 32198 */ // Label 556: @32198
10518 /* 32198 */ GIM_Reject,
10519 /* 32199 */ // Label 98: @32199
10520 /* 32199 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(32210), // Rule ID 203 //
10521 /* 32204 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
10522 /* 32207 */ // MIs[0] tgt
10523 /* 32207 */ // No operand predicates
10524 /* 32207 */ // Combiner Rule #150: opt_brcond_by_inverting_cond
10525 /* 32207 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
10526 /* 32210 */ // Label 557: @32210
10527 /* 32210 */ GIM_Reject,
10528 /* 32211 */ // Label 99: @32211
10529 /* 32211 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(32222), // Rule ID 114 //
10530 /* 32216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
10531 /* 32219 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
10532 /* 32219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
10533 /* 32222 */ // Label 558: @32222
10534 /* 32222 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(32261), // Rule ID 45 //
10535 /* 32227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
10536 /* 32230 */ // MIs[0] root
10537 /* 32230 */ // No operand predicates
10538 /* 32230 */ // MIs[0] src
10539 /* 32230 */ // No operand predicates
10540 /* 32230 */ // MIs[0] elt
10541 /* 32230 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10542 /* 32234 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
10543 /* 32238 */ // MIs[1] src
10544 /* 32238 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
10545 /* 32243 */ // MIs[1] idx
10546 /* 32243 */ // No operand predicates
10547 /* 32243 */ // MIs[0] idx
10548 /* 32243 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
10549 /* 32248 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10550 /* 32253 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10551 /* 32255 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
10552 /* 32255 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10553 /* 32260 */ GIR_EraseRootFromParent_Done,
10554 /* 32261 */ // Label 559: @32261
10555 /* 32261 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(32294), // Rule ID 31 //
10556 /* 32266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
10557 /* 32269 */ // MIs[0] root
10558 /* 32269 */ // No operand predicates
10559 /* 32269 */ // MIs[0] src
10560 /* 32269 */ // No operand predicates
10561 /* 32269 */ // MIs[0] elt
10562 /* 32269 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10563 /* 32273 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10564 /* 32277 */ // MIs[0] idx
10565 /* 32277 */ // No operand predicates
10566 /* 32277 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
10567 /* 32281 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10568 /* 32286 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10569 /* 32288 */ // Combiner Rule #27: insert_vector_element_elt_undef
10570 /* 32288 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10571 /* 32293 */ GIR_EraseRootFromParent_Done,
10572 /* 32294 */ // Label 560: @32294
10573 /* 32294 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(32318), // Rule ID 30 //
10574 /* 32299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
10575 /* 32302 */ // MIs[0] root
10576 /* 32302 */ // No operand predicates
10577 /* 32302 */ // MIs[0] src
10578 /* 32302 */ // No operand predicates
10579 /* 32302 */ // MIs[0] elt
10580 /* 32302 */ // No operand predicates
10581 /* 32302 */ // MIs[0] idx
10582 /* 32302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
10583 /* 32306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10584 /* 32310 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10585 /* 32312 */ // Combiner Rule #26: insert_vector_element_idx_undef
10586 /* 32312 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10587 /* 32315 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10588 /* 32317 */ GIR_EraseRootFromParent_Done,
10589 /* 32318 */ // Label 561: @32318
10590 /* 32318 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(32329), // Rule ID 33 //
10591 /* 32323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
10592 /* 32326 */ // MIs[0] dst
10593 /* 32326 */ // No operand predicates
10594 /* 32326 */ // MIs[0] src
10595 /* 32326 */ // No operand predicates
10596 /* 32326 */ // MIs[0] elt
10597 /* 32326 */ // No operand predicates
10598 /* 32326 */ // MIs[0] idx
10599 /* 32326 */ // No operand predicates
10600 /* 32326 */ // Combiner Rule #29: insert_vector_elt_oob
10601 /* 32326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
10602 /* 32329 */ // Label 562: @32329
10603 /* 32329 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(32340), // Rule ID 74 //
10604 /* 32334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
10605 /* 32337 */ // MIs[0] dst
10606 /* 32337 */ // No operand predicates
10607 /* 32337 */ // MIs[0] src
10608 /* 32337 */ // No operand predicates
10609 /* 32337 */ // MIs[0] elt
10610 /* 32337 */ // No operand predicates
10611 /* 32337 */ // MIs[0] idx
10612 /* 32337 */ // No operand predicates
10613 /* 32337 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
10614 /* 32337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
10615 /* 32340 */ // Label 563: @32340
10616 /* 32340 */ GIM_Reject,
10617 /* 32341 */ // Label 100: @32341
10618 /* 32341 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(32352), // Rule ID 115 //
10619 /* 32346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
10620 /* 32349 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
10621 /* 32349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
10622 /* 32352 */ // Label 564: @32352
10623 /* 32352 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(32376), // Rule ID 43 //
10624 /* 32357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
10625 /* 32360 */ // MIs[0] root
10626 /* 32360 */ // No operand predicates
10627 /* 32360 */ // MIs[0] src
10628 /* 32360 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10629 /* 32364 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10630 /* 32368 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
10631 /* 32371 */ // MIs[1] x
10632 /* 32371 */ // No operand predicates
10633 /* 32371 */ // MIs[1] y
10634 /* 32371 */ // No operand predicates
10635 /* 32371 */ // MIs[1] z
10636 /* 32371 */ // No operand predicates
10637 /* 32371 */ // MIs[1] a
10638 /* 32371 */ // No operand predicates
10639 /* 32371 */ // MIs[1] b
10640 /* 32371 */ // No operand predicates
10641 /* 32371 */ // MIs[1] c
10642 /* 32371 */ // No operand predicates
10643 /* 32371 */ // MIs[1] d
10644 /* 32371 */ // No operand predicates
10645 /* 32371 */ // MIs[1] e
10646 /* 32371 */ // No operand predicates
10647 /* 32371 */ // MIs[0] idx
10648 /* 32371 */ // No operand predicates
10649 /* 32371 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10650 /* 32373 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
10651 /* 32373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10652 /* 32376 */ // Label 565: @32376
10653 /* 32376 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(32400), // Rule ID 42 //
10654 /* 32381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
10655 /* 32384 */ // MIs[0] root
10656 /* 32384 */ // No operand predicates
10657 /* 32384 */ // MIs[0] src
10658 /* 32384 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10659 /* 32388 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10660 /* 32392 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
10661 /* 32395 */ // MIs[1] x
10662 /* 32395 */ // No operand predicates
10663 /* 32395 */ // MIs[1] y
10664 /* 32395 */ // No operand predicates
10665 /* 32395 */ // MIs[1] z
10666 /* 32395 */ // No operand predicates
10667 /* 32395 */ // MIs[1] a
10668 /* 32395 */ // No operand predicates
10669 /* 32395 */ // MIs[1] b
10670 /* 32395 */ // No operand predicates
10671 /* 32395 */ // MIs[1] c
10672 /* 32395 */ // No operand predicates
10673 /* 32395 */ // MIs[1] d
10674 /* 32395 */ // No operand predicates
10675 /* 32395 */ // MIs[0] idx
10676 /* 32395 */ // No operand predicates
10677 /* 32395 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10678 /* 32397 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
10679 /* 32397 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10680 /* 32400 */ // Label 566: @32400
10681 /* 32400 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(32424), // Rule ID 41 //
10682 /* 32405 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
10683 /* 32408 */ // MIs[0] root
10684 /* 32408 */ // No operand predicates
10685 /* 32408 */ // MIs[0] src
10686 /* 32408 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10687 /* 32412 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10688 /* 32416 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
10689 /* 32419 */ // MIs[1] x
10690 /* 32419 */ // No operand predicates
10691 /* 32419 */ // MIs[1] y
10692 /* 32419 */ // No operand predicates
10693 /* 32419 */ // MIs[1] z
10694 /* 32419 */ // No operand predicates
10695 /* 32419 */ // MIs[1] a
10696 /* 32419 */ // No operand predicates
10697 /* 32419 */ // MIs[1] b
10698 /* 32419 */ // No operand predicates
10699 /* 32419 */ // MIs[1] c
10700 /* 32419 */ // No operand predicates
10701 /* 32419 */ // MIs[0] idx
10702 /* 32419 */ // No operand predicates
10703 /* 32419 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10704 /* 32421 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
10705 /* 32421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10706 /* 32424 */ // Label 567: @32424
10707 /* 32424 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(32448), // Rule ID 40 //
10708 /* 32429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
10709 /* 32432 */ // MIs[0] root
10710 /* 32432 */ // No operand predicates
10711 /* 32432 */ // MIs[0] src
10712 /* 32432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10713 /* 32436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10714 /* 32440 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
10715 /* 32443 */ // MIs[1] x
10716 /* 32443 */ // No operand predicates
10717 /* 32443 */ // MIs[1] y
10718 /* 32443 */ // No operand predicates
10719 /* 32443 */ // MIs[1] z
10720 /* 32443 */ // No operand predicates
10721 /* 32443 */ // MIs[1] a
10722 /* 32443 */ // No operand predicates
10723 /* 32443 */ // MIs[1] b
10724 /* 32443 */ // No operand predicates
10725 /* 32443 */ // MIs[0] idx
10726 /* 32443 */ // No operand predicates
10727 /* 32443 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10728 /* 32445 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
10729 /* 32445 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10730 /* 32448 */ // Label 568: @32448
10731 /* 32448 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(32472), // Rule ID 39 //
10732 /* 32453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
10733 /* 32456 */ // MIs[0] root
10734 /* 32456 */ // No operand predicates
10735 /* 32456 */ // MIs[0] src
10736 /* 32456 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10737 /* 32460 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10738 /* 32464 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
10739 /* 32467 */ // MIs[1] x
10740 /* 32467 */ // No operand predicates
10741 /* 32467 */ // MIs[1] y
10742 /* 32467 */ // No operand predicates
10743 /* 32467 */ // MIs[1] z
10744 /* 32467 */ // No operand predicates
10745 /* 32467 */ // MIs[1] a
10746 /* 32467 */ // No operand predicates
10747 /* 32467 */ // MIs[0] idx
10748 /* 32467 */ // No operand predicates
10749 /* 32467 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10750 /* 32469 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
10751 /* 32469 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10752 /* 32472 */ // Label 569: @32472
10753 /* 32472 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(32496), // Rule ID 38 //
10754 /* 32477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
10755 /* 32480 */ // MIs[0] root
10756 /* 32480 */ // No operand predicates
10757 /* 32480 */ // MIs[0] src
10758 /* 32480 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10759 /* 32484 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10760 /* 32488 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10761 /* 32491 */ // MIs[1] x
10762 /* 32491 */ // No operand predicates
10763 /* 32491 */ // MIs[1] y
10764 /* 32491 */ // No operand predicates
10765 /* 32491 */ // MIs[1] z
10766 /* 32491 */ // No operand predicates
10767 /* 32491 */ // MIs[0] idx
10768 /* 32491 */ // No operand predicates
10769 /* 32491 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10770 /* 32493 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
10771 /* 32493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10772 /* 32496 */ // Label 570: @32496
10773 /* 32496 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(32530), // Rule ID 34 //
10774 /* 32501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
10775 /* 32504 */ // MIs[0] root
10776 /* 32504 */ // No operand predicates
10777 /* 32504 */ // MIs[0] src
10778 /* 32504 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10779 /* 32508 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10780 /* 32512 */ // MIs[1] x
10781 /* 32512 */ // No operand predicates
10782 /* 32512 */ // MIs[1] value
10783 /* 32512 */ // No operand predicates
10784 /* 32512 */ // MIs[1] idx
10785 /* 32512 */ // No operand predicates
10786 /* 32512 */ // MIs[0] idx
10787 /* 32512 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
10788 /* 32517 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10789 /* 32522 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10790 /* 32524 */ // Combiner Rule #30: extract_vector_element_not_const
10791 /* 32524 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10792 /* 32529 */ GIR_EraseRootFromParent_Done,
10793 /* 32530 */ // Label 571: @32530
10794 /* 32530 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(32551), // Rule ID 35 //
10795 /* 32535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
10796 /* 32538 */ // MIs[0] root
10797 /* 32538 */ // No operand predicates
10798 /* 32538 */ // MIs[0] src
10799 /* 32538 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10800 /* 32542 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10801 /* 32546 */ // MIs[1] x
10802 /* 32546 */ // No operand predicates
10803 /* 32546 */ // MIs[1] value
10804 /* 32546 */ // No operand predicates
10805 /* 32546 */ // MIs[1] idx2
10806 /* 32546 */ // No operand predicates
10807 /* 32546 */ // MIs[0] idx1
10808 /* 32546 */ // No operand predicates
10809 /* 32546 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10810 /* 32548 */ // Combiner Rule #31: extract_vector_element_different_indices
10811 /* 32548 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
10812 /* 32551 */ // Label 572: @32551
10813 /* 32551 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(32580), // Rule ID 44 //
10814 /* 32556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
10815 /* 32559 */ // MIs[0] root
10816 /* 32559 */ // No operand predicates
10817 /* 32559 */ // MIs[0] src
10818 /* 32559 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10819 /* 32563 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
10820 /* 32567 */ // MIs[1] src1
10821 /* 32567 */ // No operand predicates
10822 /* 32567 */ // MIs[1] src2
10823 /* 32567 */ // No operand predicates
10824 /* 32567 */ // MIs[1] mask
10825 /* 32567 */ // No operand predicates
10826 /* 32567 */ // MIs[0] idx
10827 /* 32567 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10828 /* 32571 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10829 /* 32575 */ // MIs[2] imm
10830 /* 32575 */ // No operand predicates
10831 /* 32575 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10832 /* 32577 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
10833 /* 32577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
10834 /* 32580 */ // Label 573: @32580
10835 /* 32580 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(32604), // Rule ID 37 //
10836 /* 32585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
10837 /* 32588 */ // MIs[0] root
10838 /* 32588 */ // No operand predicates
10839 /* 32588 */ // MIs[0] src
10840 /* 32588 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10841 /* 32592 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10842 /* 32596 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
10843 /* 32599 */ // MIs[1] x
10844 /* 32599 */ // No operand predicates
10845 /* 32599 */ // MIs[1] y
10846 /* 32599 */ // No operand predicates
10847 /* 32599 */ // MIs[0] idx
10848 /* 32599 */ // No operand predicates
10849 /* 32599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10850 /* 32601 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
10851 /* 32601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10852 /* 32604 */ // Label 574: @32604
10853 /* 32604 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(32636), // Rule ID 36 //
10854 /* 32609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
10855 /* 32612 */ // MIs[0] root
10856 /* 32612 */ // No operand predicates
10857 /* 32612 */ // MIs[0] src
10858 /* 32612 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10859 /* 32616 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
10860 /* 32620 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
10861 /* 32623 */ // MIs[1] unused
10862 /* 32623 */ // No operand predicates
10863 /* 32623 */ // MIs[0] idx
10864 /* 32623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10865 /* 32627 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10866 /* 32631 */ // MIs[2] imm
10867 /* 32631 */ // No operand predicates
10868 /* 32631 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10869 /* 32633 */ // Combiner Rule #32: extract_vector_element_build_vector
10870 /* 32633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
10871 /* 32636 */ // Label 575: @32636
10872 /* 32636 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(32660), // Rule ID 28 //
10873 /* 32641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10874 /* 32644 */ // MIs[0] root
10875 /* 32644 */ // No operand predicates
10876 /* 32644 */ // MIs[0] __extract_vector_element_undef_match_0.x
10877 /* 32644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10878 /* 32648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10879 /* 32652 */ // MIs[0] __extract_vector_element_undef_match_0.y
10880 /* 32652 */ // No operand predicates
10881 /* 32652 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10882 /* 32654 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
10883 /* 32654 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10884 /* 32657 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10885 /* 32659 */ GIR_EraseRootFromParent_Done,
10886 /* 32660 */ // Label 576: @32660
10887 /* 32660 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(32684), // Rule ID 29 //
10888 /* 32665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10889 /* 32668 */ // MIs[0] root
10890 /* 32668 */ // No operand predicates
10891 /* 32668 */ // MIs[0] __extract_vector_element_undef_match_0.x
10892 /* 32668 */ // No operand predicates
10893 /* 32668 */ // MIs[0] __extract_vector_element_undef_match_0.y
10894 /* 32668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10895 /* 32672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10896 /* 32676 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10897 /* 32678 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
10898 /* 32678 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10899 /* 32681 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10900 /* 32683 */ GIR_EraseRootFromParent_Done,
10901 /* 32684 */ // Label 577: @32684
10902 /* 32684 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(32695), // Rule ID 32 //
10903 /* 32689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
10904 /* 32692 */ // MIs[0] dst
10905 /* 32692 */ // No operand predicates
10906 /* 32692 */ // MIs[0] src
10907 /* 32692 */ // No operand predicates
10908 /* 32692 */ // MIs[0] idx
10909 /* 32692 */ // No operand predicates
10910 /* 32692 */ // Combiner Rule #28: match_extract_of_element
10911 /* 32692 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
10912 /* 32695 */ // Label 578: @32695
10913 /* 32695 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(32706), // Rule ID 75 //
10914 /* 32700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
10915 /* 32703 */ // MIs[0] dst
10916 /* 32703 */ // No operand predicates
10917 /* 32703 */ // MIs[0] src
10918 /* 32703 */ // No operand predicates
10919 /* 32703 */ // MIs[0] idx
10920 /* 32703 */ // No operand predicates
10921 /* 32703 */ // Combiner Rule #71: extract_vec_elt_build_vec
10922 /* 32703 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
10923 /* 32706 */ // Label 579: @32706
10924 /* 32706 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(32717), // Rule ID 81 //
10925 /* 32711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
10926 /* 32714 */ // MIs[0] dst
10927 /* 32714 */ // No operand predicates
10928 /* 32714 */ // MIs[0] src
10929 /* 32714 */ // No operand predicates
10930 /* 32714 */ // MIs[0] idx
10931 /* 32714 */ // No operand predicates
10932 /* 32714 */ // Combiner Rule #75: combine_extracted_vector_load
10933 /* 32714 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
10934 /* 32717 */ // Label 580: @32717
10935 /* 32717 */ GIM_Reject,
10936 /* 32718 */ // Label 101: @32718
10937 /* 32718 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(32729), // Rule ID 110 //
10938 /* 32723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
10939 /* 32726 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
10940 /* 32726 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
10941 /* 32729 */ // Label 581: @32729
10942 /* 32729 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(32750), // Rule ID 412 //
10943 /* 32734 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
10944 /* 32737 */ // MIs[0] root
10945 /* 32737 */ // No operand predicates
10946 /* 32737 */ // MIs[0] src1
10947 /* 32737 */ // No operand predicates
10948 /* 32737 */ // MIs[0] undef
10949 /* 32737 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10950 /* 32741 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10951 /* 32745 */ // MIs[0] mask
10952 /* 32745 */ // No operand predicates
10953 /* 32745 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10954 /* 32747 */ // Combiner Rule #243: combine_shuffle_undef_rhs
10955 /* 32747 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
10956 /* 32750 */ // Label 582: @32750
10957 /* 32750 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(32768), // Rule ID 112 //
10958 /* 32755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
10959 /* 32758 */ // MIs[0] dst
10960 /* 32758 */ // No operand predicates
10961 /* 32758 */ // MIs[0] src1
10962 /* 32758 */ // No operand predicates
10963 /* 32758 */ // MIs[0] src2
10964 /* 32758 */ // No operand predicates
10965 /* 32758 */ // MIs[0] mask
10966 /* 32758 */ // No operand predicates
10967 /* 32758 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
10968 /* 32762 */ // Combiner Rule #85: propagate_undef_shuffle_mask
10969 /* 32762 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10970 /* 32765 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10971 /* 32767 */ GIR_EraseRootFromParent_Done,
10972 /* 32768 */ // Label 583: @32768
10973 /* 32768 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(32779), // Rule ID 411 //
10974 /* 32773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
10975 /* 32776 */ // MIs[0] dst
10976 /* 32776 */ // No operand predicates
10977 /* 32776 */ // MIs[0] src1
10978 /* 32776 */ // No operand predicates
10979 /* 32776 */ // MIs[0] src2
10980 /* 32776 */ // No operand predicates
10981 /* 32776 */ // MIs[0] mask
10982 /* 32776 */ // No operand predicates
10983 /* 32776 */ // Combiner Rule #242: combine_shuffle_concat
10984 /* 32776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
10985 /* 32779 */ // Label 584: @32779
10986 /* 32779 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(32790), // Rule ID 413 //
10987 /* 32784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
10988 /* 32787 */ // MIs[0] dst
10989 /* 32787 */ // No operand predicates
10990 /* 32787 */ // MIs[0] src1
10991 /* 32787 */ // No operand predicates
10992 /* 32787 */ // MIs[0] src2
10993 /* 32787 */ // No operand predicates
10994 /* 32787 */ // MIs[0] mask
10995 /* 32787 */ // No operand predicates
10996 /* 32787 */ // Combiner Rule #244: combine_shuffle_disjoint_mask
10997 /* 32787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
10998 /* 32790 */ // Label 585: @32790
10999 /* 32790 */ GIM_Reject,
11000 /* 32791 */ // Label 102: @32791
11001 /* 32791 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(32802), // Rule ID 309 //
11002 /* 32796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11003 /* 32799 */ // MIs[0] dst
11004 /* 32799 */ // No operand predicates
11005 /* 32799 */ // MIs[0] mi.src
11006 /* 32799 */ // No operand predicates
11007 /* 32799 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[2]]
11008 /* 32799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11009 /* 32802 */ // Label 586: @32802
11010 /* 32802 */ GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(32813), // Rule ID 437 //
11011 /* 32807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
11012 /* 32810 */ // MIs[0] dst
11013 /* 32810 */ // No operand predicates
11014 /* 32810 */ // MIs[0] src
11015 /* 32810 */ // No operand predicates
11016 /* 32810 */ // Combiner Rule #266: cttz_to_cttz_zero_poison
11017 /* 32810 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
11018 /* 32813 */ // Label 587: @32813
11019 /* 32813 */ GIM_Reject,
11020 /* 32814 */ // Label 103: @32814
11021 /* 32814 */ GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(32825), // Rule ID 310 //
11022 /* 32819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11023 /* 32822 */ // MIs[0] dst
11024 /* 32822 */ // No operand predicates
11025 /* 32822 */ // MIs[0] mi.src
11026 /* 32822 */ // No operand predicates
11027 /* 32822 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[3]]
11028 /* 32822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11029 /* 32825 */ // Label 588: @32825
11030 /* 32825 */ GIM_Reject,
11031 /* 32826 */ // Label 104: @32826
11032 /* 32826 */ GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(32837), // Rule ID 307 //
11033 /* 32831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11034 /* 32834 */ // MIs[0] dst
11035 /* 32834 */ // No operand predicates
11036 /* 32834 */ // MIs[0] mi.src
11037 /* 32834 */ // No operand predicates
11038 /* 32834 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[0]]
11039 /* 32834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11040 /* 32837 */ // Label 589: @32837
11041 /* 32837 */ GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(32848), // Rule ID 434 //
11042 /* 32842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
11043 /* 32845 */ // MIs[0] dst
11044 /* 32845 */ // No operand predicates
11045 /* 32845 */ // MIs[0] src
11046 /* 32845 */ // No operand predicates
11047 /* 32845 */ // Combiner Rule #263: ctlz_to_ctls
11048 /* 32845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
11049 /* 32848 */ // Label 590: @32848
11050 /* 32848 */ GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(32859), // Rule ID 436 //
11051 /* 32853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
11052 /* 32856 */ // MIs[0] dst
11053 /* 32856 */ // No operand predicates
11054 /* 32856 */ // MIs[0] src
11055 /* 32856 */ // No operand predicates
11056 /* 32856 */ // Combiner Rule #265: ctlz_to_ctlz_zero_poison
11057 /* 32856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
11058 /* 32859 */ // Label 591: @32859
11059 /* 32859 */ GIM_Reject,
11060 /* 32860 */ // Label 105: @32860
11061 /* 32860 */ GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(32871), // Rule ID 308 //
11062 /* 32865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11063 /* 32868 */ // MIs[0] dst
11064 /* 32868 */ // No operand predicates
11065 /* 32868 */ // MIs[0] mi.src
11066 /* 32868 */ // No operand predicates
11067 /* 32868 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[1]]
11068 /* 32868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11069 /* 32871 */ // Label 592: @32871
11070 /* 32871 */ GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(32882), // Rule ID 435 //
11071 /* 32876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
11072 /* 32879 */ // MIs[0] dst
11073 /* 32879 */ // No operand predicates
11074 /* 32879 */ // MIs[0] src
11075 /* 32879 */ // No operand predicates
11076 /* 32879 */ // Combiner Rule #264: ctlz_zero_poison_to_ctls
11077 /* 32879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
11078 /* 32882 */ // Label 593: @32882
11079 /* 32882 */ GIM_Reject,
11080 /* 32883 */ // Label 106: @32883
11081 /* 32883 */ GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(32894), // Rule ID 311 //
11082 /* 32888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11083 /* 32891 */ // MIs[0] dst
11084 /* 32891 */ // No operand predicates
11085 /* 32891 */ // MIs[0] mi.src
11086 /* 32891 */ // No operand predicates
11087 /* 32891 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[4]]
11088 /* 32891 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11089 /* 32894 */ // Label 594: @32894
11090 /* 32894 */ GIM_Reject,
11091 /* 32895 */ // Label 107: @32895
11092 /* 32895 */ GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(32906), // Rule ID 313 //
11093 /* 32900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11094 /* 32903 */ // MIs[0] dst
11095 /* 32903 */ // No operand predicates
11096 /* 32903 */ // MIs[0] mi.src
11097 /* 32903 */ // No operand predicates
11098 /* 32903 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[6]]
11099 /* 32903 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11100 /* 32906 */ // Label 595: @32906
11101 /* 32906 */ GIM_Reject,
11102 /* 32907 */ // Label 108: @32907
11103 /* 32907 */ GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(32951), // Rule ID 263 //
11104 /* 32912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
11105 /* 32915 */ // MIs[0] d
11106 /* 32915 */ // No operand predicates
11107 /* 32915 */ // MIs[0] src
11108 /* 32915 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11109 /* 32919 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
11110 /* 32923 */ // MIs[1] rev
11111 /* 32923 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11112 /* 32927 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
11113 /* 32931 */ // MIs[2] val
11114 /* 32931 */ // No operand predicates
11115 /* 32931 */ // MIs[1] amt
11116 /* 32931 */ // No operand predicates
11117 /* 32931 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
11118 /* 32935 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11119 /* 32937 */ // Combiner Rule #187: bitreverse_lshr
11120 /* 32937 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
11121 /* 32940 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
11122 /* 32942 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
11123 /* 32946 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
11124 /* 32950 */ GIR_EraseRootFromParent_Done,
11125 /* 32951 */ // Label 596: @32951
11126 /* 32951 */ GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(32995), // Rule ID 262 //
11127 /* 32956 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
11128 /* 32959 */ // MIs[0] d
11129 /* 32959 */ // No operand predicates
11130 /* 32959 */ // MIs[0] src
11131 /* 32959 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11132 /* 32963 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
11133 /* 32967 */ // MIs[1] rev
11134 /* 32967 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11135 /* 32971 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
11136 /* 32975 */ // MIs[2] val
11137 /* 32975 */ // No operand predicates
11138 /* 32975 */ // MIs[1] amt
11139 /* 32975 */ // No operand predicates
11140 /* 32975 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
11141 /* 32979 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11142 /* 32981 */ // Combiner Rule #186: bitreverse_shl
11143 /* 32981 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
11144 /* 32984 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
11145 /* 32986 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
11146 /* 32990 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
11147 /* 32994 */ GIR_EraseRootFromParent_Done,
11148 /* 32995 */ // Label 597: @32995
11149 /* 32995 */ GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(33006), // Rule ID 314 //
11150 /* 33000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11151 /* 33003 */ // MIs[0] dst
11152 /* 33003 */ // No operand predicates
11153 /* 33003 */ // MIs[0] mi.src
11154 /* 33003 */ // No operand predicates
11155 /* 33003 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[7]]
11156 /* 33003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11157 /* 33006 */ // Label 598: @33006
11158 /* 33006 */ GIM_Reject,
11159 /* 33007 */ // Label 109: @33007
11160 /* 33007 */ GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(33028), // Rule ID 210 //
11161 /* 33012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
11162 /* 33015 */ // MIs[0] dst
11163 /* 33015 */ // No operand predicates
11164 /* 33015 */ // MIs[0] src0
11165 /* 33015 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11166 /* 33019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11167 /* 33023 */ // MIs[1] cst
11168 /* 33023 */ // No operand predicates
11169 /* 33023 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11170 /* 33025 */ // Combiner Rule #157: constant_fold_fceil
11171 /* 33025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11172 /* 33028 */ // Label 599: @33028
11173 /* 33028 */ GIM_Reject,
11174 /* 33029 */ // Label 110: @33029
11175 /* 33029 */ GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(33089), // Rule ID 470 //
11176 /* 33034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule289Enabled),
11177 /* 33037 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
11178 /* 33043 */ // MIs[0] dst
11179 /* 33043 */ // No operand predicates
11180 /* 33043 */ // MIs[0] rcp
11181 /* 33043 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11182 /* 33047 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
11183 /* 33051 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
11184 /* 33054 */ GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
11185 /* 33059 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
11186 /* 33065 */ // MIs[1] rcp
11187 /* 33065 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
11188 /* 33070 */ // MIs[1] x
11189 /* 33070 */ // No operand predicates
11190 /* 33070 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11191 /* 33072 */ // Combiner Rule #289: fsqrt_of_rcp_to_rsq
11192 /* 33072 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
11193 /* 33075 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11194 /* 33077 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
11195 /* 33081 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
11196 /* 33085 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11197 /* 33088 */ GIR_EraseRootFromParent_Done,
11198 /* 33089 */ // Label 600: @33089
11199 /* 33089 */ GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(33110), // Rule ID 206 //
11200 /* 33094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
11201 /* 33097 */ // MIs[0] dst
11202 /* 33097 */ // No operand predicates
11203 /* 33097 */ // MIs[0] src0
11204 /* 33097 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11205 /* 33101 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11206 /* 33105 */ // MIs[1] cst
11207 /* 33105 */ // No operand predicates
11208 /* 33105 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11209 /* 33107 */ // Combiner Rule #153: constant_fold_fsqrt
11210 /* 33107 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11211 /* 33110 */ // Label 601: @33110
11212 /* 33110 */ GIM_Reject,
11213 /* 33111 */ // Label 111: @33111
11214 /* 33111 */ GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(33132), // Rule ID 211 //
11215 /* 33116 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
11216 /* 33119 */ // MIs[0] dst
11217 /* 33119 */ // No operand predicates
11218 /* 33119 */ // MIs[0] src0
11219 /* 33119 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11220 /* 33123 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11221 /* 33127 */ // MIs[1] cst
11222 /* 33127 */ // No operand predicates
11223 /* 33127 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11224 /* 33129 */ // Combiner Rule #158: constant_fold_ffloor
11225 /* 33129 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11226 /* 33132 */ // Label 602: @33132
11227 /* 33132 */ GIM_Reject,
11228 /* 33133 */ // Label 112: @33133
11229 /* 33133 */ GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(33154), // Rule ID 215 //
11230 /* 33138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
11231 /* 33141 */ // MIs[0] dst
11232 /* 33141 */ // No operand predicates
11233 /* 33141 */ // MIs[0] src0
11234 /* 33141 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11235 /* 33145 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11236 /* 33149 */ // MIs[1] cst
11237 /* 33149 */ // No operand predicates
11238 /* 33149 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11239 /* 33151 */ // Combiner Rule #162: constant_fold_frint
11240 /* 33151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11241 /* 33154 */ // Label 603: @33154
11242 /* 33154 */ GIM_Reject,
11243 /* 33155 */ // Label 113: @33155
11244 /* 33155 */ GIM_Try, /*On fail goto*//*Label 604*/ GIMT_Encode4(33176), // Rule ID 216 //
11245 /* 33160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
11246 /* 33163 */ // MIs[0] dst
11247 /* 33163 */ // No operand predicates
11248 /* 33163 */ // MIs[0] src0
11249 /* 33163 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11250 /* 33167 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11251 /* 33171 */ // MIs[1] cst
11252 /* 33171 */ // No operand predicates
11253 /* 33171 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11254 /* 33173 */ // Combiner Rule #163: constant_fold_fnearbyint
11255 /* 33173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11256 /* 33176 */ // Label 604: @33176
11257 /* 33176 */ GIM_Reject,
11258 /* 33177 */ // Label 114: @33177
11259 /* 33177 */ GIM_Try, /*On fail goto*//*Label 605*/ GIMT_Encode4(33188), // Rule ID 461 //
11260 /* 33182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11261 /* 33185 */ // MIs[0] dst
11262 /* 33185 */ // No operand predicates
11263 /* 33185 */ // MIs[0] cvt_f32_ubyteN.src
11264 /* 33185 */ // No operand predicates
11265 /* 33185 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[0]]
11266 /* 33185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11267 /* 33188 */ // Label 605: @33188
11268 /* 33188 */ GIM_Reject,
11269 /* 33189 */ // Label 115: @33189
11270 /* 33189 */ GIM_Try, /*On fail goto*//*Label 606*/ GIMT_Encode4(33200), // Rule ID 462 //
11271 /* 33194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11272 /* 33197 */ // MIs[0] dst
11273 /* 33197 */ // No operand predicates
11274 /* 33197 */ // MIs[0] cvt_f32_ubyteN.src
11275 /* 33197 */ // No operand predicates
11276 /* 33197 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[1]]
11277 /* 33197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11278 /* 33200 */ // Label 606: @33200
11279 /* 33200 */ GIM_Reject,
11280 /* 33201 */ // Label 116: @33201
11281 /* 33201 */ GIM_Try, /*On fail goto*//*Label 607*/ GIMT_Encode4(33212), // Rule ID 463 //
11282 /* 33206 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11283 /* 33209 */ // MIs[0] dst
11284 /* 33209 */ // No operand predicates
11285 /* 33209 */ // MIs[0] cvt_f32_ubyteN.src
11286 /* 33209 */ // No operand predicates
11287 /* 33209 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[2]]
11288 /* 33209 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11289 /* 33212 */ // Label 607: @33212
11290 /* 33212 */ GIM_Reject,
11291 /* 33213 */ // Label 117: @33213
11292 /* 33213 */ GIM_Try, /*On fail goto*//*Label 608*/ GIMT_Encode4(33224), // Rule ID 464 //
11293 /* 33218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11294 /* 33221 */ // MIs[0] dst
11295 /* 33221 */ // No operand predicates
11296 /* 33221 */ // MIs[0] cvt_f32_ubyteN.src
11297 /* 33221 */ // No operand predicates
11298 /* 33221 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[3]]
11299 /* 33221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11300 /* 33224 */ // Label 608: @33224
11301 /* 33224 */ GIM_Reject,
11302 /* 33225 */ // Label 118: @33225
11303 /* 33225 */ GIM_Reject,
11304 /* 33226 */ }; // Size: 33226 bytes
11305 return MatchTable0;
11306}
11307#undef GIMT_Encode2
11308#undef GIMT_Encode4
11309#undef GIMT_Encode8
11310
11311
11312#endif // GET_GICOMBINER_IMPL
11313
11314#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
11315
11316AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
11317AvailableFunctionFeatures()
11318
11319#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
11320
11321#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
11322
11323, State(0),
11324ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
11325
11326#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
11327
11328