1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* DAG Instruction Selector for the Sparc target *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9// *** NOTE: This file is #included into the middle of the target
10// *** instruction selector class. These functions are really methods.
11
12// If GET_DAGISEL_DECL is #defined with any value, only function
13// declarations will be included when this file is included.
14// If GET_DAGISEL_BODY is #defined, its value should be the name of
15// the instruction selector class. Function bodies will be emitted
16// and each function's name will be qualified with the name of the
17// class.
18//
19// When neither of the GET_DAGISEL* macros is defined, the functions
20// are emitted inline.
21
22#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
23#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
24#endif
25
26#ifdef GET_DAGISEL_BODY
27#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
28#define LOCAL_DAGISEL_STRINGIZE_(X) #X
29static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
30 "GET_DAGISEL_BODY is empty: it should be defined with the class name");
31#undef LOCAL_DAGISEL_STRINGIZE_
32#undef LOCAL_DAGISEL_STRINGIZE
33#endif
34
35#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
36#define DAGISEL_INLINE 1
37#else
38#define DAGISEL_INLINE 0
39#endif
40
41#if !DAGISEL_INLINE
42#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
43#else
44#define DAGISEL_CLASS_COLONCOLON
45#endif
46
47#ifdef GET_DAGISEL_DECL
48void SelectCode(SDNode *N);
49#endif
50#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
51void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
52{
53 // Some target values are emitted as 2 bytes, TARGET_VAL handles
54 // this. Coverage indexes are emitted as 4 bytes,
55 // COVERAGE_IDX_VAL handles this.
56 #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
57 #define COVERAGE_IDX_VAL(X) X & 255, (unsigned(X) >> 8) & 255, (unsigned(X) >> 16) & 255, (unsigned(X) >> 24) & 255
58 static const uint8_t MatcherTable[] = {
59 OPC_SwitchOpcode , 48|128,3, TARGET_VAL(ISD::STORE),
60 OPC_RecordMemRef,
61 OPC_RecordNode,
62 OPC_Scope, 67,
63 OPC_CheckChild1Integer, 0,
64 OPC_Scope, 30,
65 OPC_CheckChild1TypeI32,
66 OPC_RecordChild2,
67 OPC_CheckPredicate3,
68 OPC_CheckPredicate4,
69 OPC_Scope, 11,
70 OPC_CheckComplexPat0, /*#*/1,
71 OPC_EmitMergeInputChains1_0,
72 OPC_EmitRegisterI32, SP::G0,
73 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
74 3, 46,
75 11,
76 OPC_CheckComplexPat1, /*#*/1,
77 OPC_EmitMergeInputChains1_0,
78 OPC_EmitRegisterI32, SP::G0,
79 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
80 3, 46,
81 0,
82 31,
83 OPC_CheckChild1TypeI64,
84 OPC_RecordChild2,
85 OPC_CheckPredicate3,
86 OPC_CheckPredicate4,
87 OPC_CheckPatternPredicate0,
88 OPC_Scope, 11,
89 OPC_CheckComplexPat0, /*#*/1,
90 OPC_EmitMergeInputChains1_0,
91 OPC_EmitRegisterI64, SP::G0,
92 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
93 3, 46,
94 11,
95 OPC_CheckComplexPat1, /*#*/1,
96 OPC_EmitMergeInputChains1_0,
97 OPC_EmitRegisterI64, SP::G0,
98 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
99 3, 46,
100 0,
101 0,
102 102|128,2,
103 OPC_RecordChild1,
104 OPC_Scope, 106,
105 OPC_CheckChild1TypeI32,
106 OPC_RecordChild2,
107 OPC_CheckPredicate3,
108 OPC_Scope, 52,
109 OPC_CheckPredicate, 17,
110 OPC_Scope, 23,
111 OPC_CheckPredicate1,
112 OPC_Scope, 9,
113 OPC_CheckComplexPat0, /*#*/2,
114 OPC_EmitMergeInputChains1_0,
115 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
116 3, 13,
117 9,
118 OPC_CheckComplexPat1, /*#*/2,
119 OPC_EmitMergeInputChains1_0,
120 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
121 3, 13,
122 0,
123 23,
124 OPC_CheckPredicate2,
125 OPC_Scope, 9,
126 OPC_CheckComplexPat0, /*#*/2,
127 OPC_EmitMergeInputChains1_0,
128 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
129 3, 13,
130 9,
131 OPC_CheckComplexPat1, /*#*/2,
132 OPC_EmitMergeInputChains1_0,
133 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
134 3, 13,
135 0,
136 0,
137 47,
138 OPC_CheckPredicate4,
139 OPC_Scope, 9,
140 OPC_CheckComplexPat0, /*#*/2,
141 OPC_EmitMergeInputChains1_0,
142 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
143 3, 13,
144 9,
145 OPC_CheckComplexPat1, /*#*/2,
146 OPC_EmitMergeInputChains1_0,
147 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
148 3, 13,
149 23,
150 OPC_CheckPatternPredicate7,
151 OPC_Scope, 9,
152 OPC_CheckComplexPat0, /*#*/2,
153 OPC_EmitMergeInputChains1_0,
154 OPC_MorphNodeTo0, TARGET_VAL(SP::STCrr), 0|OPFL_Chain|OPFL_MemRefs,
155 3, 13,
156 9,
157 OPC_CheckComplexPat1, /*#*/2,
158 OPC_EmitMergeInputChains1_0,
159 OPC_MorphNodeTo0, TARGET_VAL(SP::STCri), 0|OPFL_Chain|OPFL_MemRefs,
160 3, 13,
161 0,
162 0,
163 0,
164 51,
165 OPC_CheckChild1Type, MVT::v2i32,
166 OPC_RecordChild2,
167 OPC_CheckPredicate3,
168 OPC_CheckPredicate4,
169 OPC_Scope, 9,
170 OPC_CheckComplexPat0, /*#*/2,
171 OPC_EmitMergeInputChains1_0,
172 OPC_MorphNodeTo0, TARGET_VAL(SP::STDrr), 0|OPFL_Chain|OPFL_MemRefs,
173 3, 13,
174 9,
175 OPC_CheckComplexPat1, /*#*/2,
176 OPC_EmitMergeInputChains1_0,
177 OPC_MorphNodeTo0, TARGET_VAL(SP::STDri), 0|OPFL_Chain|OPFL_MemRefs,
178 3, 13,
179 23,
180 OPC_CheckPatternPredicate7,
181 OPC_Scope, 9,
182 OPC_CheckComplexPat0, /*#*/2,
183 OPC_EmitMergeInputChains1_0,
184 OPC_MorphNodeTo0, TARGET_VAL(SP::STDCrr), 0|OPFL_Chain|OPFL_MemRefs,
185 3, 13,
186 9,
187 OPC_CheckComplexPat1, /*#*/2,
188 OPC_EmitMergeInputChains1_0,
189 OPC_MorphNodeTo0, TARGET_VAL(SP::STDCri), 0|OPFL_Chain|OPFL_MemRefs,
190 3, 13,
191 0,
192 0,
193 27,
194 OPC_CheckChild1Type, MVT::f32,
195 OPC_RecordChild2,
196 OPC_CheckPredicate3,
197 OPC_CheckPredicate4,
198 OPC_Scope, 9,
199 OPC_CheckComplexPat0, /*#*/2,
200 OPC_EmitMergeInputChains1_0,
201 OPC_MorphNodeTo0, TARGET_VAL(SP::STFrr), 0|OPFL_Chain|OPFL_MemRefs,
202 3, 13,
203 9,
204 OPC_CheckComplexPat1, /*#*/2,
205 OPC_EmitMergeInputChains1_0,
206 OPC_MorphNodeTo0, TARGET_VAL(SP::STFri), 0|OPFL_Chain|OPFL_MemRefs,
207 3, 13,
208 0,
209 27,
210 OPC_CheckChild1Type, MVT::f64,
211 OPC_RecordChild2,
212 OPC_CheckPredicate3,
213 OPC_CheckPredicate4,
214 OPC_Scope, 9,
215 OPC_CheckComplexPat0, /*#*/2,
216 OPC_EmitMergeInputChains1_0,
217 OPC_MorphNodeTo0, TARGET_VAL(SP::STDFrr), 0|OPFL_Chain|OPFL_MemRefs,
218 3, 13,
219 9,
220 OPC_CheckComplexPat1, /*#*/2,
221 OPC_EmitMergeInputChains1_0,
222 OPC_MorphNodeTo0, TARGET_VAL(SP::STDFri), 0|OPFL_Chain|OPFL_MemRefs,
223 3, 13,
224 0,
225 28,
226 OPC_CheckChild1Type, MVT::f128,
227 OPC_RecordChild2,
228 OPC_CheckPredicate3,
229 OPC_CheckPredicate4,
230 OPC_CheckPatternPredicate1,
231 OPC_Scope, 9,
232 OPC_CheckComplexPat0, /*#*/2,
233 OPC_EmitMergeInputChains1_0,
234 OPC_MorphNodeTo0, TARGET_VAL(SP::STQFrr), 0|OPFL_Chain|OPFL_MemRefs,
235 3, 13,
236 9,
237 OPC_CheckComplexPat1, /*#*/2,
238 OPC_EmitMergeInputChains1_0,
239 OPC_MorphNodeTo0, TARGET_VAL(SP::STQFri), 0|OPFL_Chain|OPFL_MemRefs,
240 3, 13,
241 0,
242 110,
243 OPC_CheckChild1TypeI64,
244 OPC_RecordChild2,
245 OPC_CheckPredicate3,
246 OPC_Scope, 24,
247 OPC_CheckPredicate4,
248 OPC_CheckPatternPredicate1,
249 OPC_Scope, 9,
250 OPC_CheckComplexPat0, /*#*/2,
251 OPC_EmitMergeInputChains1_0,
252 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
253 3, 13,
254 9,
255 OPC_CheckComplexPat1, /*#*/2,
256 OPC_EmitMergeInputChains1_0,
257 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
258 3, 13,
259 0,
260 79,
261 OPC_CheckPredicate, 17,
262 OPC_Scope, 24,
263 OPC_CheckPredicate1,
264 OPC_CheckPatternPredicate0,
265 OPC_Scope, 9,
266 OPC_CheckComplexPat0, /*#*/2,
267 OPC_EmitMergeInputChains1_0,
268 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
269 3, 13,
270 9,
271 OPC_CheckComplexPat1, /*#*/2,
272 OPC_EmitMergeInputChains1_0,
273 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
274 3, 13,
275 0,
276 24,
277 OPC_CheckPredicate2,
278 OPC_CheckPatternPredicate0,
279 OPC_Scope, 9,
280 OPC_CheckComplexPat0, /*#*/2,
281 OPC_EmitMergeInputChains1_0,
282 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
283 3, 13,
284 9,
285 OPC_CheckComplexPat1, /*#*/2,
286 OPC_EmitMergeInputChains1_0,
287 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
288 3, 13,
289 0,
290 24,
291 OPC_CheckPredicate5,
292 OPC_CheckPatternPredicate0,
293 OPC_Scope, 9,
294 OPC_CheckComplexPat0, /*#*/2,
295 OPC_EmitMergeInputChains1_0,
296 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
297 3, 13,
298 9,
299 OPC_CheckComplexPat1, /*#*/2,
300 OPC_EmitMergeInputChains1_0,
301 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
302 3, 13,
303 0,
304 0,
305 0,
306 0,
307 0,
308 30, TARGET_VAL(SPISD::LOAD_GDOP),
309 OPC_RecordChild0,
310 OPC_RecordChild1,
311 OPC_MoveChild1,
312 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
313 OPC_MoveParent,
314 OPC_SwitchType , 8, MVT::i32,
315 OPC_CheckComplexPat0, /*#*/0,
316 OPC_MorphNodeTo1None, TARGET_VAL(SP::GDOP_LDrr),
317 MVT::i32, 3, 10,
318 9, MVT::i64,
319 OPC_CheckPatternPredicate1,
320 OPC_CheckComplexPat0, /*#*/0,
321 OPC_MorphNodeTo1None, TARGET_VAL(SP::GDOP_LDXrr),
322 MVT::i64, 3, 10,
323 0,
324 30, TARGET_VAL(SPISD::TLS_LD),
325 OPC_RecordChild0,
326 OPC_RecordChild1,
327 OPC_MoveChild1,
328 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
329 OPC_MoveParent,
330 OPC_SwitchType , 8, MVT::i32,
331 OPC_CheckComplexPat0, /*#*/0,
332 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_LDrr),
333 MVT::i32, 3, 10,
334 9, MVT::i64,
335 OPC_CheckPatternPredicate1,
336 OPC_CheckComplexPat0, /*#*/0,
337 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_LDXrr),
338 MVT::i64, 3, 10,
339 0,
340 9|128,1, TARGET_VAL(ISD::ZERO_EXTEND),
341 OPC_Scope, 121,
342 OPC_MoveChild0,
343 OPC_SwitchOpcode , 48, TARGET_VAL(SPISD::LOAD_BIG),
344 OPC_RecordMemRef,
345 OPC_RecordNode,
346 OPC_RecordChild1,
347 OPC_MoveChild2,
348 OPC_Scope, 20,
349 OPC_CheckValueType, MVT::i16,
350 OPC_MoveParent,
351 OPC_CheckTypeI32,
352 OPC_MoveParent,
353 OPC_CheckTypeI64,
354 OPC_CheckPatternPredicate1,
355 OPC_CheckComplexPat2, /*#*/1,
356 OPC_EmitMergeInputChains1_0,
357 OPC_EmitIntegerI32, 0|128,1,
358 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
359 MVT::i64, 3, 46,
360 20,
361 OPC_CheckValueType, MVT::i32,
362 OPC_MoveParent,
363 OPC_CheckTypeI32,
364 OPC_MoveParent,
365 OPC_CheckTypeI64,
366 OPC_CheckPatternPredicate1,
367 OPC_CheckComplexPat2, /*#*/1,
368 OPC_EmitMergeInputChains1_0,
369 OPC_EmitIntegerI32, 0|128,1,
370 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
371 MVT::i64, 3, 46,
372 0,
373 48, TARGET_VAL(SPISD::LOAD_LITTLE),
374 OPC_RecordMemRef,
375 OPC_RecordNode,
376 OPC_RecordChild1,
377 OPC_MoveChild2,
378 OPC_Scope, 20,
379 OPC_CheckValueType, MVT::i16,
380 OPC_MoveParent,
381 OPC_CheckTypeI32,
382 OPC_MoveParent,
383 OPC_CheckTypeI64,
384 OPC_CheckPatternPredicate1,
385 OPC_CheckComplexPat2, /*#*/1,
386 OPC_EmitMergeInputChains1_0,
387 OPC_EmitIntegerI32, 8|128,1,
388 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
389 MVT::i64, 3, 46,
390 20,
391 OPC_CheckValueType, MVT::i32,
392 OPC_MoveParent,
393 OPC_CheckTypeI32,
394 OPC_MoveParent,
395 OPC_CheckTypeI64,
396 OPC_CheckPatternPredicate1,
397 OPC_CheckComplexPat2, /*#*/1,
398 OPC_EmitMergeInputChains1_0,
399 OPC_EmitIntegerI32, 8|128,1,
400 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
401 MVT::i64, 3, 46,
402 0,
403 13, TARGET_VAL(ISD::BITCAST),
404 OPC_RecordChild0,
405 OPC_CheckChild0Type, MVT::f32,
406 OPC_CheckTypeI32,
407 OPC_MoveParent,
408 OPC_CheckTypeI64,
409 OPC_CheckPatternPredicate2,
410 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVSTOUW),
411 MVT::i64, 1, 1,
412 0,
413 12,
414 OPC_RecordChild0,
415 OPC_CheckChild0TypeI32,
416 OPC_CheckTypeI64,
417 OPC_CheckPatternPredicate0,
418 OPC_EmitIntegerI32, 0,
419 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
420 MVT::i64, 2, 6,
421 0,
422 9|128,1, TARGET_VAL(ISD::ANY_EXTEND),
423 OPC_Scope, 121,
424 OPC_MoveChild0,
425 OPC_SwitchOpcode , 48, TARGET_VAL(SPISD::LOAD_BIG),
426 OPC_RecordMemRef,
427 OPC_RecordNode,
428 OPC_RecordChild1,
429 OPC_MoveChild2,
430 OPC_Scope, 20,
431 OPC_CheckValueType, MVT::i16,
432 OPC_MoveParent,
433 OPC_CheckTypeI32,
434 OPC_MoveParent,
435 OPC_CheckTypeI64,
436 OPC_CheckPatternPredicate1,
437 OPC_CheckComplexPat2, /*#*/1,
438 OPC_EmitMergeInputChains1_0,
439 OPC_EmitIntegerI32, 0|128,1,
440 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
441 MVT::i64, 3, 46,
442 20,
443 OPC_CheckValueType, MVT::i32,
444 OPC_MoveParent,
445 OPC_CheckTypeI32,
446 OPC_MoveParent,
447 OPC_CheckTypeI64,
448 OPC_CheckPatternPredicate1,
449 OPC_CheckComplexPat2, /*#*/1,
450 OPC_EmitMergeInputChains1_0,
451 OPC_EmitIntegerI32, 0|128,1,
452 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
453 MVT::i64, 3, 46,
454 0,
455 48, TARGET_VAL(SPISD::LOAD_LITTLE),
456 OPC_RecordMemRef,
457 OPC_RecordNode,
458 OPC_RecordChild1,
459 OPC_MoveChild2,
460 OPC_Scope, 20,
461 OPC_CheckValueType, MVT::i16,
462 OPC_MoveParent,
463 OPC_CheckTypeI32,
464 OPC_MoveParent,
465 OPC_CheckTypeI64,
466 OPC_CheckPatternPredicate1,
467 OPC_CheckComplexPat2, /*#*/1,
468 OPC_EmitMergeInputChains1_0,
469 OPC_EmitIntegerI32, 8|128,1,
470 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
471 MVT::i64, 3, 46,
472 20,
473 OPC_CheckValueType, MVT::i32,
474 OPC_MoveParent,
475 OPC_CheckTypeI32,
476 OPC_MoveParent,
477 OPC_CheckTypeI64,
478 OPC_CheckPatternPredicate1,
479 OPC_CheckComplexPat2, /*#*/1,
480 OPC_EmitMergeInputChains1_0,
481 OPC_EmitIntegerI32, 8|128,1,
482 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
483 MVT::i64, 3, 46,
484 0,
485 13, TARGET_VAL(ISD::BITCAST),
486 OPC_RecordChild0,
487 OPC_CheckChild0Type, MVT::f32,
488 OPC_CheckTypeI32,
489 OPC_MoveParent,
490 OPC_CheckTypeI64,
491 OPC_CheckPatternPredicate2,
492 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVSTOUW),
493 MVT::i64, 1, 1,
494 0,
495 12,
496 OPC_RecordChild0,
497 OPC_CheckChild0TypeI32,
498 OPC_CheckTypeI64,
499 OPC_CheckPatternPredicate0,
500 OPC_EmitIntegerI32, SP::I64RegsRegClassID,
501 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS),
502 MVT::i64, 2, 6,
503 0,
504 9|128,1, TARGET_VAL(ISD::SIGN_EXTEND),
505 OPC_Scope, 121,
506 OPC_MoveChild0,
507 OPC_SwitchOpcode , 48, TARGET_VAL(SPISD::LOAD_BIG),
508 OPC_RecordMemRef,
509 OPC_RecordNode,
510 OPC_RecordChild1,
511 OPC_MoveChild2,
512 OPC_Scope, 20,
513 OPC_CheckValueType, MVT::i16,
514 OPC_MoveParent,
515 OPC_CheckTypeI32,
516 OPC_MoveParent,
517 OPC_CheckTypeI64,
518 OPC_CheckPatternPredicate1,
519 OPC_CheckComplexPat2, /*#*/1,
520 OPC_EmitMergeInputChains1_0,
521 OPC_EmitIntegerI32, 0|128,1,
522 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHArr), 0|OPFL_Chain|OPFL_MemRefs,
523 MVT::i64, 3, 46,
524 20,
525 OPC_CheckValueType, MVT::i32,
526 OPC_MoveParent,
527 OPC_CheckTypeI32,
528 OPC_MoveParent,
529 OPC_CheckTypeI64,
530 OPC_CheckPatternPredicate6,
531 OPC_CheckComplexPat2, /*#*/1,
532 OPC_EmitMergeInputChains1_0,
533 OPC_EmitIntegerI32, 0|128,1,
534 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWArr), 0|OPFL_Chain|OPFL_MemRefs,
535 MVT::i64, 3, 46,
536 0,
537 48, TARGET_VAL(SPISD::LOAD_LITTLE),
538 OPC_RecordMemRef,
539 OPC_RecordNode,
540 OPC_RecordChild1,
541 OPC_MoveChild2,
542 OPC_Scope, 20,
543 OPC_CheckValueType, MVT::i16,
544 OPC_MoveParent,
545 OPC_CheckTypeI32,
546 OPC_MoveParent,
547 OPC_CheckTypeI64,
548 OPC_CheckPatternPredicate1,
549 OPC_CheckComplexPat2, /*#*/1,
550 OPC_EmitMergeInputChains1_0,
551 OPC_EmitIntegerI32, 8|128,1,
552 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHArr), 0|OPFL_Chain|OPFL_MemRefs,
553 MVT::i64, 3, 46,
554 20,
555 OPC_CheckValueType, MVT::i32,
556 OPC_MoveParent,
557 OPC_CheckTypeI32,
558 OPC_MoveParent,
559 OPC_CheckTypeI64,
560 OPC_CheckPatternPredicate6,
561 OPC_CheckComplexPat2, /*#*/1,
562 OPC_EmitMergeInputChains1_0,
563 OPC_EmitIntegerI32, 8|128,1,
564 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWArr), 0|OPFL_Chain|OPFL_MemRefs,
565 MVT::i64, 3, 46,
566 0,
567 13, TARGET_VAL(ISD::BITCAST),
568 OPC_RecordChild0,
569 OPC_CheckChild0Type, MVT::f32,
570 OPC_CheckTypeI32,
571 OPC_MoveParent,
572 OPC_CheckTypeI64,
573 OPC_CheckPatternPredicate2,
574 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVSTOSW),
575 MVT::i64, 1, 1,
576 0,
577 12,
578 OPC_RecordChild0,
579 OPC_CheckChild0TypeI32,
580 OPC_CheckTypeI64,
581 OPC_CheckPatternPredicate0,
582 OPC_EmitIntegerI32, 0,
583 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
584 MVT::i64, 2, 6,
585 0,
586 76|128,2, TARGET_VAL(ISD::ADD),
587 OPC_Scope, 107,
588 OPC_MoveChild0,
589 OPC_SwitchOpcode , 49, TARGET_VAL(SPISD::Hi),
590 OPC_RecordChild0,
591 OPC_MoveChild0,
592 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
593 OPC_MoveParent,
594 OPC_MoveSibling1,
595 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
596 OPC_RecordChild0,
597 OPC_MoveChild0,
598 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
599 OPC_MoveParent,
600 OPC_MoveParent,
601 OPC_Scope, 14,
602 OPC_CheckPatternPredicate3,
603 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
604 MVT::i32, 1, 1,
605 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
606 18|128,2, 2, 8,
607 14,
608 OPC_CheckPatternPredicate0,
609 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
610 MVT::i32, 1, 1,
611 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
612 18|128,2, 2, 8,
613 0,
614 49, TARGET_VAL(SPISD::Lo),
615 OPC_RecordChild0,
616 OPC_MoveChild0,
617 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
618 OPC_MoveParent,
619 OPC_MoveSibling1,
620 OPC_CheckOpcode, TARGET_VAL(SPISD::Hi),
621 OPC_RecordChild0,
622 OPC_MoveChild0,
623 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
624 OPC_MoveParent,
625 OPC_MoveParent,
626 OPC_Scope, 14,
627 OPC_CheckPatternPredicate3,
628 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
629 MVT::i32, 1, 7,
630 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
631 18|128,2, 2, 2,
632 14,
633 OPC_CheckPatternPredicate0,
634 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
635 MVT::i32, 1, 7,
636 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
637 18|128,2, 2, 2,
638 0,
639 0,
640 84,
641 OPC_RecordChild0,
642 OPC_MoveChild1,
643 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
644 OPC_RecordChild0,
645 OPC_MoveChild0,
646 OPC_SwitchOpcode , 22, TARGET_VAL(ISD::TargetGlobalAddress),
647 OPC_MoveParent,
648 OPC_MoveParent,
649 OPC_Scope, 8,
650 OPC_CheckPatternPredicate3,
651 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
652 18|128,2, 2, 6,
653 8,
654 OPC_CheckPatternPredicate0,
655 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
656 18|128,2, 2, 6,
657 0,
658 22, TARGET_VAL(ISD::TargetConstantPool),
659 OPC_MoveParent,
660 OPC_MoveParent,
661 OPC_Scope, 8,
662 OPC_CheckPatternPredicate3,
663 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
664 18|128,2, 2, 6,
665 8,
666 OPC_CheckPatternPredicate0,
667 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
668 18|128,2, 2, 6,
669 0,
670 22, TARGET_VAL(ISD::TargetBlockAddress),
671 OPC_MoveParent,
672 OPC_MoveParent,
673 OPC_Scope, 8,
674 OPC_CheckPatternPredicate3,
675 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
676 18|128,2, 2, 6,
677 8,
678 OPC_CheckPatternPredicate0,
679 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
680 18|128,2, 2, 6,
681 0,
682 0,
683 86,
684 OPC_MoveChild0,
685 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
686 OPC_RecordChild0,
687 OPC_MoveChild0,
688 OPC_SwitchOpcode , 23, TARGET_VAL(ISD::TargetGlobalAddress),
689 OPC_MoveParent,
690 OPC_MoveParent,
691 OPC_RecordChild1,
692 OPC_Scope, 8,
693 OPC_CheckPatternPredicate3,
694 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
695 18|128,2, 2, 0,
696 8,
697 OPC_CheckPatternPredicate0,
698 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
699 18|128,2, 2, 0,
700 0,
701 23, TARGET_VAL(ISD::TargetConstantPool),
702 OPC_MoveParent,
703 OPC_MoveParent,
704 OPC_RecordChild1,
705 OPC_Scope, 8,
706 OPC_CheckPatternPredicate3,
707 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
708 18|128,2, 2, 0,
709 8,
710 OPC_CheckPatternPredicate0,
711 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
712 18|128,2, 2, 0,
713 0,
714 23, TARGET_VAL(ISD::TargetBlockAddress),
715 OPC_MoveParent,
716 OPC_MoveParent,
717 OPC_RecordChild1,
718 OPC_Scope, 8,
719 OPC_CheckPatternPredicate3,
720 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
721 18|128,2, 2, 0,
722 8,
723 OPC_CheckPatternPredicate0,
724 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
725 18|128,2, 2, 0,
726 0,
727 0,
728 49,
729 OPC_RecordChild0,
730 OPC_RecordChild1,
731 OPC_Scope, 27,
732 OPC_MoveChild1,
733 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
734 OPC_CheckPredicate0,
735 OPC_MoveParent,
736 OPC_SwitchType , 7, MVT::i32,
737 OPC_EmitConvertToTarget1,
738 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
739 MVT::i32, 2, 16,
740 8, MVT::i64,
741 OPC_CheckPatternPredicate0,
742 OPC_EmitConvertToTarget1,
743 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
744 MVT::i64, 2, 16,
745 0,
746 7,
747 OPC_CheckTypeI32,
748 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDrr),
749 MVT::i32, 2, 6,
750 8,
751 OPC_CheckTypeI64,
752 OPC_CheckPatternPredicate0,
753 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDrr),
754 MVT::i64, 2, 6,
755 0,
756 0,
757 2|128,2, TARGET_VAL(ISD::XOR),
758 OPC_Scope, 21|128,1,
759 OPC_MoveChild0,
760 OPC_SwitchOpcode , 49, TARGET_VAL(SPISD::Hi),
761 OPC_RecordChild0,
762 OPC_MoveChild0,
763 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
764 OPC_MoveParent,
765 OPC_MoveSibling1,
766 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
767 OPC_RecordChild0,
768 OPC_MoveChild0,
769 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
770 OPC_MoveParent,
771 OPC_MoveParent,
772 OPC_Scope, 14,
773 OPC_CheckPatternPredicate3,
774 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
775 MVT::i32, 1, 1,
776 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
777 18|128,2, 2, 8,
778 14,
779 OPC_CheckPatternPredicate0,
780 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
781 MVT::i32, 1, 1,
782 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
783 18|128,2, 2, 8,
784 0,
785 49, TARGET_VAL(SPISD::Lo),
786 OPC_RecordChild0,
787 OPC_MoveChild0,
788 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
789 OPC_MoveParent,
790 OPC_MoveSibling1,
791 OPC_CheckOpcode, TARGET_VAL(SPISD::Hi),
792 OPC_RecordChild0,
793 OPC_MoveChild0,
794 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
795 OPC_MoveParent,
796 OPC_MoveParent,
797 OPC_Scope, 14,
798 OPC_CheckPatternPredicate3,
799 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
800 MVT::i32, 1, 7,
801 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
802 18|128,2, 2, 2,
803 14,
804 OPC_CheckPatternPredicate0,
805 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
806 MVT::i32, 1, 7,
807 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
808 18|128,2, 2, 2,
809 0,
810 39, TARGET_VAL(ISD::XOR),
811 OPC_RecordChild0,
812 OPC_Scope, 23,
813 OPC_RecordChild1,
814 OPC_MoveParent,
815 OPC_CheckChild1Integer, 127,
816 OPC_SwitchType , 6, MVT::i32,
817 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
818 MVT::i32, 2, 6,
819 7, MVT::i64,
820 OPC_CheckPatternPredicate0,
821 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
822 MVT::i64, 2, 6,
823 0,
824 11,
825 OPC_CheckChild1Integer, 127,
826 OPC_MoveParent,
827 OPC_RecordChild1,
828 OPC_CheckTypeI32,
829 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
830 MVT::i32, 2, 6,
831 0,
832 0,
833 16,
834 OPC_RecordChild0,
835 OPC_MoveChild1,
836 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
837 OPC_RecordChild0,
838 OPC_CheckChild1Integer, 127,
839 OPC_MoveParent,
840 OPC_CheckTypeI32,
841 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
842 MVT::i32, 2, 0,
843 17,
844 OPC_MoveChild0,
845 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
846 OPC_RecordChild0,
847 OPC_CheckChild1Integer, 127,
848 OPC_MoveParent,
849 OPC_RecordChild1,
850 OPC_CheckTypeI64,
851 OPC_CheckPatternPredicate0,
852 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
853 MVT::i64, 2, 6,
854 69,
855 OPC_RecordChild0,
856 OPC_Scope, 16,
857 OPC_MoveChild1,
858 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
859 OPC_RecordChild0,
860 OPC_CheckChild1Integer, 127,
861 OPC_MoveParent,
862 OPC_CheckTypeI64,
863 OPC_CheckPatternPredicate0,
864 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
865 MVT::i64, 2, 0,
866 48,
867 OPC_RecordChild1,
868 OPC_Scope, 27,
869 OPC_MoveChild1,
870 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
871 OPC_CheckPredicate0,
872 OPC_MoveParent,
873 OPC_SwitchType , 7, MVT::i32,
874 OPC_EmitConvertToTarget1,
875 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
876 MVT::i32, 2, 16,
877 8, MVT::i64,
878 OPC_CheckPatternPredicate0,
879 OPC_EmitConvertToTarget1,
880 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
881 MVT::i64, 2, 16,
882 0,
883 7,
884 OPC_CheckTypeI32,
885 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORrr),
886 MVT::i32, 2, 6,
887 8,
888 OPC_CheckTypeI64,
889 OPC_CheckPatternPredicate0,
890 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORrr),
891 MVT::i64, 2, 6,
892 0,
893 0,
894 0,
895 11|128,6, TARGET_VAL(ISD::LOAD),
896 OPC_RecordMemRef,
897 OPC_RecordNode,
898 OPC_RecordChild1,
899 OPC_CheckPredicate, 20,
900 OPC_Scope, 57,
901 OPC_CheckPredicate, 9,
902 OPC_CheckTypeI32,
903 OPC_Scope, 25,
904 OPC_CheckPredicate1,
905 OPC_Scope, 10,
906 OPC_CheckComplexPat0, /*#*/1,
907 OPC_EmitMergeInputChains1_0,
908 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBrr), 0|OPFL_Chain|OPFL_MemRefs,
909 MVT::i32, 2, 31,
910 10,
911 OPC_CheckComplexPat1, /*#*/1,
912 OPC_EmitMergeInputChains1_0,
913 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBri), 0|OPFL_Chain|OPFL_MemRefs,
914 MVT::i32, 2, 31,
915 0,
916 25,
917 OPC_CheckPredicate2,
918 OPC_Scope, 10,
919 OPC_CheckComplexPat0, /*#*/1,
920 OPC_EmitMergeInputChains1_0,
921 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHrr), 0|OPFL_Chain|OPFL_MemRefs,
922 MVT::i32, 2, 31,
923 10,
924 OPC_CheckComplexPat1, /*#*/1,
925 OPC_EmitMergeInputChains1_0,
926 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHri), 0|OPFL_Chain|OPFL_MemRefs,
927 MVT::i32, 2, 31,
928 0,
929 0,
930 56,
931 OPC_CheckPredicate6,
932 OPC_CheckTypeI32,
933 OPC_Scope, 25,
934 OPC_CheckPredicate1,
935 OPC_Scope, 10,
936 OPC_CheckComplexPat0, /*#*/1,
937 OPC_EmitMergeInputChains1_0,
938 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
939 MVT::i32, 2, 31,
940 10,
941 OPC_CheckComplexPat1, /*#*/1,
942 OPC_EmitMergeInputChains1_0,
943 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
944 MVT::i32, 2, 31,
945 0,
946 25,
947 OPC_CheckPredicate2,
948 OPC_Scope, 10,
949 OPC_CheckComplexPat0, /*#*/1,
950 OPC_EmitMergeInputChains1_0,
951 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
952 MVT::i32, 2, 31,
953 10,
954 OPC_CheckComplexPat1, /*#*/1,
955 OPC_EmitMergeInputChains1_0,
956 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
957 MVT::i32, 2, 31,
958 0,
959 0,
960 53,
961 OPC_CheckPredicate, 14,
962 OPC_CheckTypeI32,
963 OPC_Scope, 10,
964 OPC_CheckComplexPat0, /*#*/1,
965 OPC_EmitMergeInputChains1_0,
966 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
967 MVT::i32, 2, 31,
968 10,
969 OPC_CheckComplexPat1, /*#*/1,
970 OPC_EmitMergeInputChains1_0,
971 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
972 MVT::i32, 2, 31,
973 25,
974 OPC_CheckPatternPredicate7,
975 OPC_Scope, 10,
976 OPC_CheckComplexPat0, /*#*/1,
977 OPC_EmitMergeInputChains1_0,
978 OPC_MorphNodeTo1, TARGET_VAL(SP::LDCrr), 0|OPFL_Chain|OPFL_MemRefs,
979 MVT::i32, 2, 31,
980 10,
981 OPC_CheckComplexPat1, /*#*/1,
982 OPC_EmitMergeInputChains1_0,
983 OPC_MorphNodeTo1, TARGET_VAL(SP::LDCri), 0|OPFL_Chain|OPFL_MemRefs,
984 MVT::i32, 2, 31,
985 0,
986 0,
987 83,
988 OPC_CheckPredicate7,
989 OPC_CheckTypeI32,
990 OPC_Scope, 26,
991 OPC_CheckPredicate, 10,
992 OPC_Scope, 10,
993 OPC_CheckComplexPat0, /*#*/1,
994 OPC_EmitMergeInputChains1_0,
995 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
996 MVT::i32, 2, 31,
997 10,
998 OPC_CheckComplexPat1, /*#*/1,
999 OPC_EmitMergeInputChains1_0,
1000 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1001 MVT::i32, 2, 31,
1002 0,
1003 25,
1004 OPC_CheckPredicate1,
1005 OPC_Scope, 10,
1006 OPC_CheckComplexPat0, /*#*/1,
1007 OPC_EmitMergeInputChains1_0,
1008 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1009 MVT::i32, 2, 31,
1010 10,
1011 OPC_CheckComplexPat1, /*#*/1,
1012 OPC_EmitMergeInputChains1_0,
1013 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1014 MVT::i32, 2, 31,
1015 0,
1016 25,
1017 OPC_CheckPredicate2,
1018 OPC_Scope, 10,
1019 OPC_CheckComplexPat0, /*#*/1,
1020 OPC_EmitMergeInputChains1_0,
1021 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1022 MVT::i32, 2, 31,
1023 10,
1024 OPC_CheckComplexPat1, /*#*/1,
1025 OPC_EmitMergeInputChains1_0,
1026 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1027 MVT::i32, 2, 31,
1028 0,
1029 0,
1030 28,
1031 OPC_CheckPredicate6,
1032 OPC_CheckPredicate, 10,
1033 OPC_CheckTypeI32,
1034 OPC_Scope, 10,
1035 OPC_CheckComplexPat0, /*#*/1,
1036 OPC_EmitMergeInputChains1_0,
1037 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1038 MVT::i32, 2, 31,
1039 10,
1040 OPC_CheckComplexPat1, /*#*/1,
1041 OPC_EmitMergeInputChains1_0,
1042 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1043 MVT::i32, 2, 31,
1044 0,
1045 28,
1046 OPC_CheckPredicate, 14,
1047 OPC_CheckTypeI64,
1048 OPC_CheckPatternPredicate1,
1049 OPC_Scope, 10,
1050 OPC_CheckComplexPat0, /*#*/1,
1051 OPC_EmitMergeInputChains1_0,
1052 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXrr), 0|OPFL_Chain|OPFL_MemRefs,
1053 MVT::i64, 2, 31,
1054 10,
1055 OPC_CheckComplexPat1, /*#*/1,
1056 OPC_EmitMergeInputChains1_0,
1057 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXri), 0|OPFL_Chain|OPFL_MemRefs,
1058 MVT::i64, 2, 31,
1059 0,
1060 29,
1061 OPC_CheckPredicate, 9,
1062 OPC_CheckPredicate5,
1063 OPC_CheckTypeI64,
1064 OPC_CheckPatternPredicate1,
1065 OPC_Scope, 10,
1066 OPC_CheckComplexPat0, /*#*/1,
1067 OPC_EmitMergeInputChains1_0,
1068 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWrr), 0|OPFL_Chain|OPFL_MemRefs,
1069 MVT::i64, 2, 31,
1070 10,
1071 OPC_CheckComplexPat1, /*#*/1,
1072 OPC_EmitMergeInputChains1_0,
1073 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWri), 0|OPFL_Chain|OPFL_MemRefs,
1074 MVT::i64, 2, 31,
1075 0,
1076 29,
1077 OPC_CheckPredicate6,
1078 OPC_CheckPredicate, 10,
1079 OPC_CheckTypeI64,
1080 OPC_CheckPatternPredicate0,
1081 OPC_Scope, 10,
1082 OPC_CheckComplexPat0, /*#*/1,
1083 OPC_EmitMergeInputChains1_0,
1084 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1085 MVT::i64, 2, 31,
1086 10,
1087 OPC_CheckComplexPat1, /*#*/1,
1088 OPC_EmitMergeInputChains1_0,
1089 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1090 MVT::i64, 2, 31,
1091 0,
1092 29,
1093 OPC_CheckPredicate7,
1094 OPC_CheckPredicate, 10,
1095 OPC_CheckTypeI64,
1096 OPC_CheckPatternPredicate0,
1097 OPC_Scope, 10,
1098 OPC_CheckComplexPat0, /*#*/1,
1099 OPC_EmitMergeInputChains1_0,
1100 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1101 MVT::i64, 2, 31,
1102 10,
1103 OPC_CheckComplexPat1, /*#*/1,
1104 OPC_EmitMergeInputChains1_0,
1105 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1106 MVT::i64, 2, 31,
1107 0,
1108 28,
1109 OPC_CheckPredicate6,
1110 OPC_CheckPredicate1,
1111 OPC_CheckTypeI64,
1112 OPC_CheckPatternPredicate0,
1113 OPC_Scope, 10,
1114 OPC_CheckComplexPat0, /*#*/1,
1115 OPC_EmitMergeInputChains1_0,
1116 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1117 MVT::i64, 2, 31,
1118 10,
1119 OPC_CheckComplexPat1, /*#*/1,
1120 OPC_EmitMergeInputChains1_0,
1121 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1122 MVT::i64, 2, 31,
1123 0,
1124 28,
1125 OPC_CheckPredicate7,
1126 OPC_CheckPredicate1,
1127 OPC_CheckTypeI64,
1128 OPC_CheckPatternPredicate0,
1129 OPC_Scope, 10,
1130 OPC_CheckComplexPat0, /*#*/1,
1131 OPC_EmitMergeInputChains1_0,
1132 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1133 MVT::i64, 2, 31,
1134 10,
1135 OPC_CheckComplexPat1, /*#*/1,
1136 OPC_EmitMergeInputChains1_0,
1137 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1138 MVT::i64, 2, 31,
1139 0,
1140 29,
1141 OPC_CheckPredicate, 9,
1142 OPC_CheckPredicate1,
1143 OPC_CheckTypeI64,
1144 OPC_CheckPatternPredicate0,
1145 OPC_Scope, 10,
1146 OPC_CheckComplexPat0, /*#*/1,
1147 OPC_EmitMergeInputChains1_0,
1148 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBrr), 0|OPFL_Chain|OPFL_MemRefs,
1149 MVT::i64, 2, 31,
1150 10,
1151 OPC_CheckComplexPat1, /*#*/1,
1152 OPC_EmitMergeInputChains1_0,
1153 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBri), 0|OPFL_Chain|OPFL_MemRefs,
1154 MVT::i64, 2, 31,
1155 0,
1156 28,
1157 OPC_CheckPredicate6,
1158 OPC_CheckPredicate2,
1159 OPC_CheckTypeI64,
1160 OPC_CheckPatternPredicate0,
1161 OPC_Scope, 10,
1162 OPC_CheckComplexPat0, /*#*/1,
1163 OPC_EmitMergeInputChains1_0,
1164 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1165 MVT::i64, 2, 31,
1166 10,
1167 OPC_CheckComplexPat1, /*#*/1,
1168 OPC_EmitMergeInputChains1_0,
1169 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1170 MVT::i64, 2, 31,
1171 0,
1172 28,
1173 OPC_CheckPredicate7,
1174 OPC_CheckPredicate2,
1175 OPC_CheckTypeI64,
1176 OPC_CheckPatternPredicate0,
1177 OPC_Scope, 10,
1178 OPC_CheckComplexPat0, /*#*/1,
1179 OPC_EmitMergeInputChains1_0,
1180 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1181 MVT::i64, 2, 31,
1182 10,
1183 OPC_CheckComplexPat1, /*#*/1,
1184 OPC_EmitMergeInputChains1_0,
1185 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1186 MVT::i64, 2, 31,
1187 0,
1188 29,
1189 OPC_CheckPredicate, 9,
1190 OPC_CheckPredicate2,
1191 OPC_CheckTypeI64,
1192 OPC_CheckPatternPredicate0,
1193 OPC_Scope, 10,
1194 OPC_CheckComplexPat0, /*#*/1,
1195 OPC_EmitMergeInputChains1_0,
1196 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHrr), 0|OPFL_Chain|OPFL_MemRefs,
1197 MVT::i64, 2, 31,
1198 10,
1199 OPC_CheckComplexPat1, /*#*/1,
1200 OPC_EmitMergeInputChains1_0,
1201 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHri), 0|OPFL_Chain|OPFL_MemRefs,
1202 MVT::i64, 2, 31,
1203 0,
1204 28,
1205 OPC_CheckPredicate6,
1206 OPC_CheckPredicate5,
1207 OPC_CheckTypeI64,
1208 OPC_CheckPatternPredicate0,
1209 OPC_Scope, 10,
1210 OPC_CheckComplexPat0, /*#*/1,
1211 OPC_EmitMergeInputChains1_0,
1212 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
1213 MVT::i64, 2, 31,
1214 10,
1215 OPC_CheckComplexPat1, /*#*/1,
1216 OPC_EmitMergeInputChains1_0,
1217 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
1218 MVT::i64, 2, 31,
1219 0,
1220 28,
1221 OPC_CheckPredicate7,
1222 OPC_CheckPredicate5,
1223 OPC_CheckTypeI64,
1224 OPC_CheckPatternPredicate0,
1225 OPC_Scope, 10,
1226 OPC_CheckComplexPat0, /*#*/1,
1227 OPC_EmitMergeInputChains1_0,
1228 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
1229 MVT::i64, 2, 31,
1230 10,
1231 OPC_CheckComplexPat1, /*#*/1,
1232 OPC_EmitMergeInputChains1_0,
1233 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
1234 MVT::i64, 2, 31,
1235 0,
1236 7|128,1,
1237 OPC_CheckPredicate, 14,
1238 OPC_SwitchType , 24, MVT::f32,
1239 OPC_Scope, 10,
1240 OPC_CheckComplexPat0, /*#*/1,
1241 OPC_EmitMergeInputChains1_0,
1242 OPC_MorphNodeTo1, TARGET_VAL(SP::LDFrr), 0|OPFL_Chain|OPFL_MemRefs,
1243 MVT::f32, 2, 31,
1244 10,
1245 OPC_CheckComplexPat1, /*#*/1,
1246 OPC_EmitMergeInputChains1_0,
1247 OPC_MorphNodeTo1, TARGET_VAL(SP::LDFri), 0|OPFL_Chain|OPFL_MemRefs,
1248 MVT::f32, 2, 31,
1249 0,
1250 24, MVT::f64,
1251 OPC_Scope, 10,
1252 OPC_CheckComplexPat0, /*#*/1,
1253 OPC_EmitMergeInputChains1_0,
1254 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDFrr), 0|OPFL_Chain|OPFL_MemRefs,
1255 MVT::f64, 2, 31,
1256 10,
1257 OPC_CheckComplexPat1, /*#*/1,
1258 OPC_EmitMergeInputChains1_0,
1259 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDFri), 0|OPFL_Chain|OPFL_MemRefs,
1260 MVT::f64, 2, 31,
1261 0,
1262 25, MVT::f128,
1263 OPC_CheckPatternPredicate1,
1264 OPC_Scope, 10,
1265 OPC_CheckComplexPat0, /*#*/1,
1266 OPC_EmitMergeInputChains1_0,
1267 OPC_MorphNodeTo1, TARGET_VAL(SP::LDQFrr), 0|OPFL_Chain|OPFL_MemRefs,
1268 MVT::f128, 2, 31,
1269 10,
1270 OPC_CheckComplexPat1, /*#*/1,
1271 OPC_EmitMergeInputChains1_0,
1272 OPC_MorphNodeTo1, TARGET_VAL(SP::LDQFri), 0|OPFL_Chain|OPFL_MemRefs,
1273 MVT::f128, 2, 31,
1274 0,
1275 50, MVT::v2i32,
1276 OPC_Scope, 10,
1277 OPC_CheckComplexPat0, /*#*/1,
1278 OPC_EmitMergeInputChains1_0,
1279 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDrr), 0|OPFL_Chain|OPFL_MemRefs,
1280 MVT::v2i32, 2, 31,
1281 10,
1282 OPC_CheckComplexPat1, /*#*/1,
1283 OPC_EmitMergeInputChains1_0,
1284 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDri), 0|OPFL_Chain|OPFL_MemRefs,
1285 MVT::v2i32, 2, 31,
1286 25,
1287 OPC_CheckPatternPredicate7,
1288 OPC_Scope, 10,
1289 OPC_CheckComplexPat0, /*#*/1,
1290 OPC_EmitMergeInputChains1_0,
1291 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDCrr), 0|OPFL_Chain|OPFL_MemRefs,
1292 MVT::v2i32, 2, 31,
1293 10,
1294 OPC_CheckComplexPat1, /*#*/1,
1295 OPC_EmitMergeInputChains1_0,
1296 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDCri), 0|OPFL_Chain|OPFL_MemRefs,
1297 MVT::v2i32, 2, 31,
1298 0,
1299 0,
1300 0,
1301 0,
1302 30, TARGET_VAL(ISD::ATOMIC_SWAP),
1303 OPC_RecordMemRef,
1304 OPC_RecordNode,
1305 OPC_RecordChild1,
1306 OPC_RecordChild2,
1307 OPC_CheckPredicate5,
1308 OPC_CheckTypeI32,
1309 OPC_Scope, 10,
1310 OPC_CheckComplexPat0, /*#*/1,
1311 OPC_EmitMergeInputChains1_0,
1312 OPC_MorphNodeTo1, TARGET_VAL(SP::SWAPrr), 0|OPFL_Chain|OPFL_MemRefs,
1313 MVT::i32, 3, 21,
1314 10,
1315 OPC_CheckComplexPat1, /*#*/1,
1316 OPC_EmitMergeInputChains1_0,
1317 OPC_MorphNodeTo1, TARGET_VAL(SP::SWAPri), 0|OPFL_Chain|OPFL_MemRefs,
1318 MVT::i32, 3, 21,
1319 0,
1320 58|128,1, TARGET_VAL(ISD::ATOMIC_LOAD),
1321 OPC_RecordMemRef,
1322 OPC_RecordNode,
1323 OPC_RecordChild1,
1324 OPC_Scope, 14,
1325 OPC_CheckPredicate, 11,
1326 OPC_CheckPredicate1,
1327 OPC_CheckTypeI32,
1328 OPC_CheckComplexPat0, /*#*/1,
1329 OPC_EmitMergeInputChains1_0,
1330 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1331 MVT::i32, 2, 31,
1332 14,
1333 OPC_CheckPredicate, 12,
1334 OPC_CheckPredicate1,
1335 OPC_CheckTypeI32,
1336 OPC_CheckComplexPat0, /*#*/1,
1337 OPC_EmitMergeInputChains1_0,
1338 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1339 MVT::i32, 2, 31,
1340 14,
1341 OPC_CheckPredicate, 11,
1342 OPC_CheckPredicate1,
1343 OPC_CheckTypeI32,
1344 OPC_CheckComplexPat1, /*#*/1,
1345 OPC_EmitMergeInputChains1_0,
1346 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1347 MVT::i32, 2, 31,
1348 14,
1349 OPC_CheckPredicate, 12,
1350 OPC_CheckPredicate1,
1351 OPC_CheckTypeI32,
1352 OPC_CheckComplexPat1, /*#*/1,
1353 OPC_EmitMergeInputChains1_0,
1354 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1355 MVT::i32, 2, 31,
1356 14,
1357 OPC_CheckPredicate, 11,
1358 OPC_CheckPredicate2,
1359 OPC_CheckTypeI32,
1360 OPC_CheckComplexPat0, /*#*/1,
1361 OPC_EmitMergeInputChains1_0,
1362 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1363 MVT::i32, 2, 31,
1364 14,
1365 OPC_CheckPredicate, 12,
1366 OPC_CheckPredicate2,
1367 OPC_CheckTypeI32,
1368 OPC_CheckComplexPat0, /*#*/1,
1369 OPC_EmitMergeInputChains1_0,
1370 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1371 MVT::i32, 2, 31,
1372 14,
1373 OPC_CheckPredicate, 11,
1374 OPC_CheckPredicate2,
1375 OPC_CheckTypeI32,
1376 OPC_CheckComplexPat1, /*#*/1,
1377 OPC_EmitMergeInputChains1_0,
1378 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1379 MVT::i32, 2, 31,
1380 14,
1381 OPC_CheckPredicate, 12,
1382 OPC_CheckPredicate2,
1383 OPC_CheckTypeI32,
1384 OPC_CheckComplexPat1, /*#*/1,
1385 OPC_EmitMergeInputChains1_0,
1386 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1387 MVT::i32, 2, 31,
1388 60,
1389 OPC_CheckPredicate, 21,
1390 OPC_SwitchType , 25, MVT::i32,
1391 OPC_CheckPredicate5,
1392 OPC_Scope, 10,
1393 OPC_CheckComplexPat0, /*#*/1,
1394 OPC_EmitMergeInputChains1_0,
1395 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
1396 MVT::i32, 2, 31,
1397 10,
1398 OPC_CheckComplexPat1, /*#*/1,
1399 OPC_EmitMergeInputChains1_0,
1400 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
1401 MVT::i32, 2, 31,
1402 0,
1403 27, MVT::i64,
1404 OPC_CheckPredicate, 15,
1405 OPC_CheckPatternPredicate0,
1406 OPC_Scope, 10,
1407 OPC_CheckComplexPat0, /*#*/1,
1408 OPC_EmitMergeInputChains1_0,
1409 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXrr), 0|OPFL_Chain|OPFL_MemRefs,
1410 MVT::i64, 2, 31,
1411 10,
1412 OPC_CheckComplexPat1, /*#*/1,
1413 OPC_EmitMergeInputChains1_0,
1414 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXri), 0|OPFL_Chain|OPFL_MemRefs,
1415 MVT::i64, 2, 31,
1416 0,
1417 0,
1418 0,
1419 110, TARGET_VAL(ISD::ATOMIC_STORE),
1420 OPC_RecordMemRef,
1421 OPC_RecordNode,
1422 OPC_RecordChild1,
1423 OPC_Scope, 76,
1424 OPC_CheckChild1TypeI32,
1425 OPC_RecordChild2,
1426 OPC_Scope, 23,
1427 OPC_CheckPredicate1,
1428 OPC_Scope, 9,
1429 OPC_CheckComplexPat0, /*#*/2,
1430 OPC_EmitMergeInputChains1_0,
1431 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
1432 3, 13,
1433 9,
1434 OPC_CheckComplexPat1, /*#*/2,
1435 OPC_EmitMergeInputChains1_0,
1436 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
1437 3, 13,
1438 0,
1439 23,
1440 OPC_CheckPredicate2,
1441 OPC_Scope, 9,
1442 OPC_CheckComplexPat0, /*#*/2,
1443 OPC_EmitMergeInputChains1_0,
1444 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
1445 3, 13,
1446 9,
1447 OPC_CheckComplexPat1, /*#*/2,
1448 OPC_EmitMergeInputChains1_0,
1449 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
1450 3, 13,
1451 0,
1452 23,
1453 OPC_CheckPredicate5,
1454 OPC_Scope, 9,
1455 OPC_CheckComplexPat0, /*#*/2,
1456 OPC_EmitMergeInputChains1_0,
1457 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
1458 3, 13,
1459 9,
1460 OPC_CheckComplexPat1, /*#*/2,
1461 OPC_EmitMergeInputChains1_0,
1462 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
1463 3, 13,
1464 0,
1465 0,
1466 27,
1467 OPC_CheckChild1TypeI64,
1468 OPC_RecordChild2,
1469 OPC_CheckPredicate, 15,
1470 OPC_CheckPatternPredicate0,
1471 OPC_Scope, 9,
1472 OPC_CheckComplexPat0, /*#*/2,
1473 OPC_EmitMergeInputChains1_0,
1474 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
1475 3, 13,
1476 9,
1477 OPC_CheckComplexPat1, /*#*/2,
1478 OPC_EmitMergeInputChains1_0,
1479 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
1480 3, 13,
1481 0,
1482 0,
1483 22, TARGET_VAL(ISD::BRIND),
1484 OPC_RecordNode,
1485 OPC_RecordChild1,
1486 OPC_Scope, 8,
1487 OPC_CheckComplexPat0, /*#*/1,
1488 OPC_EmitMergeInputChains1_0,
1489 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BINDrr),
1490 2, 31,
1491 8,
1492 OPC_CheckComplexPat1, /*#*/1,
1493 OPC_EmitMergeInputChains1_0,
1494 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BINDri),
1495 2, 31,
1496 0,
1497 51, TARGET_VAL(SPISD::CALL),
1498 OPC_RecordNode,
1499 OPC_CaptureGlueInput,
1500 OPC_RecordChild1,
1501 OPC_Scope, 9,
1502 OPC_CheckComplexPat0, /*#*/1,
1503 OPC_EmitMergeInputChains1_0,
1504 OPC_MorphNodeTo0, TARGET_VAL(SP::CALLrr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1505 2, 31,
1506 9,
1507 OPC_CheckComplexPat1, /*#*/1,
1508 OPC_EmitMergeInputChains1_0,
1509 OPC_MorphNodeTo0, TARGET_VAL(SP::CALLri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1510 2, 31,
1511 25,
1512 OPC_MoveChild1,
1513 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
1514 OPC_MoveParent,
1515 OPC_EmitMergeInputChains1_0,
1516 OPC_MorphNodeTo0, TARGET_VAL(SP::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1517 1, 7,
1518 8, TARGET_VAL(ISD::TargetExternalSymbol),
1519 OPC_MoveParent,
1520 OPC_EmitMergeInputChains1_0,
1521 OPC_MorphNodeTo0, TARGET_VAL(SP::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1522 1, 7,
1523 0,
1524 0,
1525 41, TARGET_VAL(SPISD::TAIL_CALL),
1526 OPC_RecordNode,
1527 OPC_CaptureGlueInput,
1528 OPC_RecordChild1,
1529 OPC_Scope, 9,
1530 OPC_CheckComplexPat1, /*#*/1,
1531 OPC_EmitMergeInputChains1_0,
1532 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALLri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1533 2, 31,
1534 25,
1535 OPC_MoveChild1,
1536 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
1537 OPC_MoveParent,
1538 OPC_EmitMergeInputChains1_0,
1539 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1540 1, 7,
1541 8, TARGET_VAL(ISD::TargetExternalSymbol),
1542 OPC_MoveParent,
1543 OPC_EmitMergeInputChains1_0,
1544 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1545 1, 7,
1546 0,
1547 0,
1548 63, TARGET_VAL(SPISD::LOAD_BIG),
1549 OPC_RecordMemRef,
1550 OPC_RecordNode,
1551 OPC_RecordChild1,
1552 OPC_MoveChild2,
1553 OPC_Scope, 18,
1554 OPC_CheckValueType, MVT::i16,
1555 OPC_MoveParent,
1556 OPC_CheckTypeI32,
1557 OPC_CheckPatternPredicate1,
1558 OPC_CheckComplexPat2, /*#*/1,
1559 OPC_EmitMergeInputChains1_0,
1560 OPC_EmitIntegerI32, 0|128,1,
1561 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
1562 MVT::i32, 3, 46,
1563 18,
1564 OPC_CheckValueType, MVT::i32,
1565 OPC_MoveParent,
1566 OPC_CheckTypeI32,
1567 OPC_CheckPatternPredicate1,
1568 OPC_CheckComplexPat2, /*#*/1,
1569 OPC_EmitMergeInputChains1_0,
1570 OPC_EmitIntegerI32, 0|128,1,
1571 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
1572 MVT::i32, 3, 46,
1573 18,
1574 OPC_CheckValueType, MVT::i64,
1575 OPC_MoveParent,
1576 OPC_CheckTypeI64,
1577 OPC_CheckPatternPredicate6,
1578 OPC_CheckComplexPat2, /*#*/1,
1579 OPC_EmitMergeInputChains1_0,
1580 OPC_EmitIntegerI32, 0|128,1,
1581 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXArr), 0|OPFL_Chain|OPFL_MemRefs,
1582 MVT::i64, 3, 46,
1583 0,
1584 63, TARGET_VAL(SPISD::LOAD_LITTLE),
1585 OPC_RecordMemRef,
1586 OPC_RecordNode,
1587 OPC_RecordChild1,
1588 OPC_MoveChild2,
1589 OPC_Scope, 18,
1590 OPC_CheckValueType, MVT::i16,
1591 OPC_MoveParent,
1592 OPC_CheckTypeI32,
1593 OPC_CheckPatternPredicate1,
1594 OPC_CheckComplexPat2, /*#*/1,
1595 OPC_EmitMergeInputChains1_0,
1596 OPC_EmitIntegerI32, 8|128,1,
1597 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHArr), 0|OPFL_Chain|OPFL_MemRefs,
1598 MVT::i32, 3, 46,
1599 18,
1600 OPC_CheckValueType, MVT::i32,
1601 OPC_MoveParent,
1602 OPC_CheckTypeI32,
1603 OPC_CheckPatternPredicate1,
1604 OPC_CheckComplexPat2, /*#*/1,
1605 OPC_EmitMergeInputChains1_0,
1606 OPC_EmitIntegerI32, 8|128,1,
1607 OPC_MorphNodeTo1, TARGET_VAL(SP::LDArr), 0|OPFL_Chain|OPFL_MemRefs,
1608 MVT::i32, 3, 46,
1609 18,
1610 OPC_CheckValueType, MVT::i64,
1611 OPC_MoveParent,
1612 OPC_CheckTypeI64,
1613 OPC_CheckPatternPredicate6,
1614 OPC_CheckComplexPat2, /*#*/1,
1615 OPC_EmitMergeInputChains1_0,
1616 OPC_EmitIntegerI32, 8|128,1,
1617 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXArr), 0|OPFL_Chain|OPFL_MemRefs,
1618 MVT::i64, 3, 46,
1619 0,
1620 102, TARGET_VAL(SPISD::STORE_BIG),
1621 OPC_RecordMemRef,
1622 OPC_RecordNode,
1623 OPC_RecordChild1,
1624 OPC_Scope, 39,
1625 OPC_CheckChild1TypeI32,
1626 OPC_RecordChild2,
1627 OPC_MoveChild3,
1628 OPC_Scope, 16,
1629 OPC_CheckValueType, MVT::i16,
1630 OPC_MoveParent,
1631 OPC_CheckPatternPredicate1,
1632 OPC_CheckComplexPat2, /*#*/2,
1633 OPC_EmitMergeInputChains1_0,
1634 OPC_EmitIntegerI32, 0|128,1,
1635 OPC_MorphNodeTo0, TARGET_VAL(SP::STHArr), 0|OPFL_Chain|OPFL_MemRefs,
1636 4, 49,
1637 16,
1638 OPC_CheckValueType, MVT::i32,
1639 OPC_MoveParent,
1640 OPC_CheckPatternPredicate1,
1641 OPC_CheckComplexPat2, /*#*/2,
1642 OPC_EmitMergeInputChains1_0,
1643 OPC_EmitIntegerI32, 0|128,1,
1644 OPC_MorphNodeTo0, TARGET_VAL(SP::STArr), 0|OPFL_Chain|OPFL_MemRefs,
1645 4, 49,
1646 0,
1647 56,
1648 OPC_CheckChild1TypeI64,
1649 OPC_RecordChild2,
1650 OPC_MoveChild3,
1651 OPC_Scope, 16,
1652 OPC_CheckValueType, MVT::i16,
1653 OPC_MoveParent,
1654 OPC_CheckPatternPredicate6,
1655 OPC_CheckComplexPat2, /*#*/2,
1656 OPC_EmitMergeInputChains1_0,
1657 OPC_EmitIntegerI32, 0|128,1,
1658 OPC_MorphNodeTo0, TARGET_VAL(SP::STHArr), 0|OPFL_Chain|OPFL_MemRefs,
1659 4, 49,
1660 16,
1661 OPC_CheckValueType, MVT::i32,
1662 OPC_MoveParent,
1663 OPC_CheckPatternPredicate6,
1664 OPC_CheckComplexPat2, /*#*/2,
1665 OPC_EmitMergeInputChains1_0,
1666 OPC_EmitIntegerI32, 0|128,1,
1667 OPC_MorphNodeTo0, TARGET_VAL(SP::STArr), 0|OPFL_Chain|OPFL_MemRefs,
1668 4, 49,
1669 16,
1670 OPC_CheckValueType, MVT::i64,
1671 OPC_MoveParent,
1672 OPC_CheckPatternPredicate6,
1673 OPC_CheckComplexPat2, /*#*/2,
1674 OPC_EmitMergeInputChains1_0,
1675 OPC_EmitIntegerI32, 0|128,1,
1676 OPC_MorphNodeTo0, TARGET_VAL(SP::STXArr), 0|OPFL_Chain|OPFL_MemRefs,
1677 4, 49,
1678 0,
1679 0,
1680 102, TARGET_VAL(SPISD::STORE_LITTLE),
1681 OPC_RecordMemRef,
1682 OPC_RecordNode,
1683 OPC_RecordChild1,
1684 OPC_Scope, 39,
1685 OPC_CheckChild1TypeI32,
1686 OPC_RecordChild2,
1687 OPC_MoveChild3,
1688 OPC_Scope, 16,
1689 OPC_CheckValueType, MVT::i16,
1690 OPC_MoveParent,
1691 OPC_CheckPatternPredicate1,
1692 OPC_CheckComplexPat2, /*#*/2,
1693 OPC_EmitMergeInputChains1_0,
1694 OPC_EmitIntegerI32, 8|128,1,
1695 OPC_MorphNodeTo0, TARGET_VAL(SP::STHArr), 0|OPFL_Chain|OPFL_MemRefs,
1696 4, 49,
1697 16,
1698 OPC_CheckValueType, MVT::i32,
1699 OPC_MoveParent,
1700 OPC_CheckPatternPredicate1,
1701 OPC_CheckComplexPat2, /*#*/2,
1702 OPC_EmitMergeInputChains1_0,
1703 OPC_EmitIntegerI32, 8|128,1,
1704 OPC_MorphNodeTo0, TARGET_VAL(SP::STArr), 0|OPFL_Chain|OPFL_MemRefs,
1705 4, 49,
1706 0,
1707 56,
1708 OPC_CheckChild1TypeI64,
1709 OPC_RecordChild2,
1710 OPC_MoveChild3,
1711 OPC_Scope, 16,
1712 OPC_CheckValueType, MVT::i16,
1713 OPC_MoveParent,
1714 OPC_CheckPatternPredicate6,
1715 OPC_CheckComplexPat2, /*#*/2,
1716 OPC_EmitMergeInputChains1_0,
1717 OPC_EmitIntegerI32, 8|128,1,
1718 OPC_MorphNodeTo0, TARGET_VAL(SP::STHArr), 0|OPFL_Chain|OPFL_MemRefs,
1719 4, 49,
1720 16,
1721 OPC_CheckValueType, MVT::i32,
1722 OPC_MoveParent,
1723 OPC_CheckPatternPredicate6,
1724 OPC_CheckComplexPat2, /*#*/2,
1725 OPC_EmitMergeInputChains1_0,
1726 OPC_EmitIntegerI32, 8|128,1,
1727 OPC_MorphNodeTo0, TARGET_VAL(SP::STArr), 0|OPFL_Chain|OPFL_MemRefs,
1728 4, 49,
1729 16,
1730 OPC_CheckValueType, MVT::i64,
1731 OPC_MoveParent,
1732 OPC_CheckPatternPredicate6,
1733 OPC_CheckComplexPat2, /*#*/2,
1734 OPC_EmitMergeInputChains1_0,
1735 OPC_EmitIntegerI32, 8|128,1,
1736 OPC_MorphNodeTo0, TARGET_VAL(SP::STXArr), 0|OPFL_Chain|OPFL_MemRefs,
1737 4, 49,
1738 0,
1739 0,
1740 24|128,1, TARGET_VAL(ISD::AND),
1741 OPC_Scope, 28,
1742 OPC_RecordChild0,
1743 OPC_MoveChild1,
1744 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1745 OPC_RecordChild0,
1746 OPC_CheckChild1Integer, 127,
1747 OPC_MoveParent,
1748 OPC_SwitchType , 6, MVT::i32,
1749 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1750 MVT::i32, 2, 6,
1751 7, MVT::i64,
1752 OPC_CheckPatternPredicate0,
1753 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1754 MVT::i64, 2, 6,
1755 0,
1756 28,
1757 OPC_MoveChild0,
1758 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1759 OPC_RecordChild0,
1760 OPC_CheckChild1Integer, 127,
1761 OPC_MoveParent,
1762 OPC_RecordChild1,
1763 OPC_SwitchType , 6, MVT::i32,
1764 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1765 MVT::i32, 2, 0,
1766 7, MVT::i64,
1767 OPC_CheckPatternPredicate0,
1768 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1769 MVT::i64, 2, 0,
1770 0,
1771 17,
1772 OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15,
1773 OPC_RecordChild0,
1774 OPC_CheckTypeI64,
1775 OPC_CheckPatternPredicate0,
1776 OPC_EmitIntegerI32, 0,
1777 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
1778 MVT::i64, 2, 6,
1779 73,
1780 OPC_RecordChild0,
1781 OPC_RecordChild1,
1782 OPC_Scope, 51,
1783 OPC_MoveChild1,
1784 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1785 OPC_Scope, 23,
1786 OPC_CheckPredicate0,
1787 OPC_MoveParent,
1788 OPC_SwitchType , 7, MVT::i32,
1789 OPC_EmitConvertToTarget1,
1790 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDri),
1791 MVT::i32, 2, 16,
1792 8, MVT::i64,
1793 OPC_CheckPatternPredicate0,
1794 OPC_EmitConvertToTarget1,
1795 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDri),
1796 MVT::i64, 2, 16,
1797 0,
1798 20,
1799 OPC_CheckPredicate, 18,
1800 OPC_MoveParent,
1801 OPC_CheckTypeI32,
1802 OPC_EmitConvertToTarget1,
1803 OPC_EmitNodeXForm, 0, 2,
1804 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
1805 MVT::i32, 1, 26,
1806 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1807 MVT::i32, 2, 36,
1808 0,
1809 7,
1810 OPC_CheckTypeI32,
1811 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDrr),
1812 MVT::i32, 2, 6,
1813 8,
1814 OPC_CheckTypeI64,
1815 OPC_CheckPatternPredicate0,
1816 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDrr),
1817 MVT::i64, 2, 6,
1818 0,
1819 0,
1820 6|128,1, TARGET_VAL(ISD::OR),
1821 OPC_Scope, 28,
1822 OPC_RecordChild0,
1823 OPC_MoveChild1,
1824 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1825 OPC_RecordChild0,
1826 OPC_CheckChild1Integer, 127,
1827 OPC_MoveParent,
1828 OPC_SwitchType , 6, MVT::i32,
1829 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1830 MVT::i32, 2, 6,
1831 7, MVT::i64,
1832 OPC_CheckPatternPredicate0,
1833 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1834 MVT::i64, 2, 6,
1835 0,
1836 28,
1837 OPC_MoveChild0,
1838 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1839 OPC_RecordChild0,
1840 OPC_CheckChild1Integer, 127,
1841 OPC_MoveParent,
1842 OPC_RecordChild1,
1843 OPC_SwitchType , 6, MVT::i32,
1844 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1845 MVT::i32, 2, 0,
1846 7, MVT::i64,
1847 OPC_CheckPatternPredicate0,
1848 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1849 MVT::i64, 2, 0,
1850 0,
1851 73,
1852 OPC_RecordChild0,
1853 OPC_RecordChild1,
1854 OPC_Scope, 51,
1855 OPC_MoveChild1,
1856 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1857 OPC_Scope, 23,
1858 OPC_CheckPredicate0,
1859 OPC_MoveParent,
1860 OPC_SwitchType , 7, MVT::i32,
1861 OPC_EmitConvertToTarget1,
1862 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
1863 MVT::i32, 2, 16,
1864 8, MVT::i64,
1865 OPC_CheckPatternPredicate0,
1866 OPC_EmitConvertToTarget1,
1867 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
1868 MVT::i64, 2, 16,
1869 0,
1870 20,
1871 OPC_CheckPredicate, 18,
1872 OPC_MoveParent,
1873 OPC_CheckTypeI32,
1874 OPC_EmitConvertToTarget1,
1875 OPC_EmitNodeXForm, 0, 2,
1876 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
1877 MVT::i32, 1, 26,
1878 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1879 MVT::i32, 2, 36,
1880 0,
1881 7,
1882 OPC_CheckTypeI32,
1883 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
1884 MVT::i32, 2, 6,
1885 8,
1886 OPC_CheckTypeI64,
1887 OPC_CheckPatternPredicate0,
1888 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
1889 MVT::i64, 2, 6,
1890 0,
1891 0,
1892 35|128,1, TARGET_VAL(ISD::ATOMIC_FENCE),
1893 OPC_RecordNode,
1894 OPC_Scope, 46,
1895 OPC_CheckChild1Integer, 4,
1896 OPC_Scope, 25,
1897 OPC_CheckChild1TypeI32,
1898 OPC_MoveChild2,
1899 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1900 OPC_MoveParent,
1901 OPC_Scope, 6,
1902 OPC_CheckPatternPredicate7,
1903 OPC_EmitMergeInputChains1_0,
1904 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::NOP),
1905 0,
1906 9,
1907 OPC_CheckPatternPredicate1,
1908 OPC_EmitMergeInputChains1_0,
1909 OPC_EmitIntegerI32, 5,
1910 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1911 1, 7,
1912 0,
1913 15,
1914 OPC_CheckChild1TypeI64,
1915 OPC_MoveChild2,
1916 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1917 OPC_MoveParent,
1918 OPC_CheckPatternPredicate1,
1919 OPC_EmitMergeInputChains1_0,
1920 OPC_EmitIntegerI32, 5,
1921 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1922 1, 7,
1923 0,
1924 46,
1925 OPC_CheckChild1Integer, 5,
1926 OPC_Scope, 25,
1927 OPC_CheckChild1TypeI32,
1928 OPC_MoveChild2,
1929 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1930 OPC_MoveParent,
1931 OPC_Scope, 6,
1932 OPC_CheckPatternPredicate7,
1933 OPC_EmitMergeInputChains1_0,
1934 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::STBAR),
1935 0,
1936 9,
1937 OPC_CheckPatternPredicate1,
1938 OPC_EmitMergeInputChains1_0,
1939 OPC_EmitIntegerI32, 12,
1940 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1941 1, 7,
1942 0,
1943 15,
1944 OPC_CheckChild1TypeI64,
1945 OPC_MoveChild2,
1946 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1947 OPC_MoveParent,
1948 OPC_CheckPatternPredicate1,
1949 OPC_EmitMergeInputChains1_0,
1950 OPC_EmitIntegerI32, 12,
1951 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1952 1, 7,
1953 0,
1954 36,
1955 OPC_CheckChild1Integer, 6,
1956 OPC_Scope, 15,
1957 OPC_CheckChild1TypeI32,
1958 OPC_MoveChild2,
1959 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1960 OPC_MoveParent,
1961 OPC_CheckPatternPredicate1,
1962 OPC_EmitMergeInputChains1_0,
1963 OPC_EmitIntegerI32, 13,
1964 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1965 1, 7,
1966 15,
1967 OPC_CheckChild1TypeI64,
1968 OPC_MoveChild2,
1969 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1970 OPC_MoveParent,
1971 OPC_CheckPatternPredicate1,
1972 OPC_EmitMergeInputChains1_0,
1973 OPC_EmitIntegerI32, 13,
1974 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1975 1, 7,
1976 0,
1977 28,
1978 OPC_MoveChild1,
1979 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1980 OPC_MoveSibling2,
1981 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1982 OPC_MoveParent,
1983 OPC_Scope, 6,
1984 OPC_CheckPatternPredicate7,
1985 OPC_EmitMergeInputChains1_0,
1986 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::V8BAR),
1987 0,
1988 9,
1989 OPC_CheckPatternPredicate1,
1990 OPC_EmitMergeInputChains1_0,
1991 OPC_EmitIntegerI32, 15,
1992 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1993 1, 7,
1994 0,
1995 0,
1996 22|128,1, TARGET_VAL(SPISD::SELECT_ICC),
1997 OPC_CaptureGlueInput,
1998 OPC_RecordChild0,
1999 OPC_Scope, 40,
2000 OPC_MoveChild0,
2001 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2002 OPC_CheckPredicate, 16,
2003 OPC_MoveParent,
2004 OPC_RecordChild1,
2005 OPC_RecordChild2,
2006 OPC_MoveChild2,
2007 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2008 OPC_MoveParent,
2009 OPC_SwitchType , 9, MVT::i32,
2010 OPC_CheckPatternPredicate1,
2011 OPC_EmitConvertToTarget0,
2012 OPC_EmitConvertToTarget2,
2013 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCri),
2014 MVT::i32, 3, 42,
2015 11, MVT::i64,
2016 OPC_CheckPatternPredicate0,
2017 OPC_EmitNodeXForm, 1, 0,
2018 OPC_EmitConvertToTarget2,
2019 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCri),
2020 MVT::i64, 3, 42,
2021 0,
2022 104,
2023 OPC_RecordChild1,
2024 OPC_RecordChild2,
2025 OPC_MoveChild2,
2026 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2027 OPC_MoveParent,
2028 OPC_SwitchType , 19, MVT::i32,
2029 OPC_Scope, 8,
2030 OPC_CheckPatternPredicate1,
2031 OPC_EmitConvertToTarget2,
2032 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCrr),
2033 MVT::i32, 3, 27,
2034 7,
2035 OPC_EmitConvertToTarget2,
2036 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_ICC),
2037 MVT::i32, 3, 27,
2038 0,
2039 8, MVT::i64,
2040 OPC_CheckPatternPredicate0,
2041 OPC_EmitConvertToTarget2,
2042 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCrr),
2043 MVT::i64, 3, 27,
2044 19, MVT::f32,
2045 OPC_Scope, 8,
2046 OPC_CheckPatternPredicate1,
2047 OPC_EmitConvertToTarget2,
2048 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_ICC),
2049 MVT::f32, 3, 27,
2050 7,
2051 OPC_EmitConvertToTarget2,
2052 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_ICC),
2053 MVT::f32, 3, 27,
2054 0,
2055 19, MVT::f64,
2056 OPC_Scope, 8,
2057 OPC_CheckPatternPredicate1,
2058 OPC_EmitConvertToTarget2,
2059 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_ICC),
2060 MVT::f64, 3, 27,
2061 7,
2062 OPC_EmitConvertToTarget2,
2063 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_ICC),
2064 MVT::f64, 3, 27,
2065 0,
2066 20, MVT::f128,
2067 OPC_Scope, 9,
2068 OPC_CheckPatternPredicate, 8,
2069 OPC_EmitConvertToTarget2,
2070 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_ICC),
2071 MVT::f128, 3, 27,
2072 7,
2073 OPC_EmitConvertToTarget2,
2074 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_ICC),
2075 MVT::f128, 3, 27,
2076 0,
2077 0,
2078 0,
2079 22|128,1, TARGET_VAL(SPISD::SELECT_FCC),
2080 OPC_CaptureGlueInput,
2081 OPC_RecordChild0,
2082 OPC_Scope, 40,
2083 OPC_MoveChild0,
2084 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2085 OPC_CheckPredicate, 16,
2086 OPC_MoveParent,
2087 OPC_RecordChild1,
2088 OPC_RecordChild2,
2089 OPC_MoveChild2,
2090 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2091 OPC_MoveParent,
2092 OPC_SwitchType , 9, MVT::i32,
2093 OPC_CheckPatternPredicate1,
2094 OPC_EmitConvertToTarget0,
2095 OPC_EmitConvertToTarget2,
2096 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCri),
2097 MVT::i32, 3, 42,
2098 11, MVT::i64,
2099 OPC_CheckPatternPredicate0,
2100 OPC_EmitNodeXForm, 1, 0,
2101 OPC_EmitConvertToTarget2,
2102 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCri),
2103 MVT::i64, 3, 42,
2104 0,
2105 104,
2106 OPC_RecordChild1,
2107 OPC_RecordChild2,
2108 OPC_MoveChild2,
2109 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2110 OPC_MoveParent,
2111 OPC_SwitchType , 19, MVT::i32,
2112 OPC_Scope, 8,
2113 OPC_CheckPatternPredicate1,
2114 OPC_EmitConvertToTarget2,
2115 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCrr),
2116 MVT::i32, 3, 27,
2117 7,
2118 OPC_EmitConvertToTarget2,
2119 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_FCC),
2120 MVT::i32, 3, 27,
2121 0,
2122 8, MVT::i64,
2123 OPC_CheckPatternPredicate0,
2124 OPC_EmitConvertToTarget2,
2125 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCrr),
2126 MVT::i64, 3, 27,
2127 19, MVT::f32,
2128 OPC_Scope, 8,
2129 OPC_CheckPatternPredicate1,
2130 OPC_EmitConvertToTarget2,
2131 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_FCC),
2132 MVT::f32, 3, 27,
2133 7,
2134 OPC_EmitConvertToTarget2,
2135 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_FCC),
2136 MVT::f32, 3, 27,
2137 0,
2138 19, MVT::f64,
2139 OPC_Scope, 8,
2140 OPC_CheckPatternPredicate1,
2141 OPC_EmitConvertToTarget2,
2142 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_FCC),
2143 MVT::f64, 3, 27,
2144 7,
2145 OPC_EmitConvertToTarget2,
2146 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_FCC),
2147 MVT::f64, 3, 27,
2148 0,
2149 20, MVT::f128,
2150 OPC_Scope, 9,
2151 OPC_CheckPatternPredicate, 8,
2152 OPC_EmitConvertToTarget2,
2153 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_FCC),
2154 MVT::f128, 3, 27,
2155 7,
2156 OPC_EmitConvertToTarget2,
2157 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_FCC),
2158 MVT::f128, 3, 27,
2159 0,
2160 0,
2161 0,
2162 22|128,1, TARGET_VAL(SPISD::SELECT_XCC),
2163 OPC_CaptureGlueInput,
2164 OPC_RecordChild0,
2165 OPC_Scope, 40,
2166 OPC_MoveChild0,
2167 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2168 OPC_CheckPredicate, 16,
2169 OPC_MoveParent,
2170 OPC_RecordChild1,
2171 OPC_RecordChild2,
2172 OPC_MoveChild2,
2173 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2174 OPC_MoveParent,
2175 OPC_SwitchType , 9, MVT::i32,
2176 OPC_CheckPatternPredicate0,
2177 OPC_EmitConvertToTarget0,
2178 OPC_EmitConvertToTarget2,
2179 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCri),
2180 MVT::i32, 3, 42,
2181 11, MVT::i64,
2182 OPC_CheckPatternPredicate0,
2183 OPC_EmitNodeXForm, 1, 0,
2184 OPC_EmitConvertToTarget2,
2185 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCri),
2186 MVT::i64, 3, 42,
2187 0,
2188 104,
2189 OPC_RecordChild1,
2190 OPC_RecordChild2,
2191 OPC_MoveChild2,
2192 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2193 OPC_MoveParent,
2194 OPC_SwitchType , 19, MVT::i32,
2195 OPC_Scope, 8,
2196 OPC_CheckPatternPredicate0,
2197 OPC_EmitConvertToTarget2,
2198 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCrr),
2199 MVT::i32, 3, 27,
2200 7,
2201 OPC_EmitConvertToTarget2,
2202 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_XCC),
2203 MVT::i32, 3, 27,
2204 0,
2205 8, MVT::i64,
2206 OPC_CheckPatternPredicate0,
2207 OPC_EmitConvertToTarget2,
2208 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCrr),
2209 MVT::i64, 3, 27,
2210 19, MVT::f32,
2211 OPC_Scope, 8,
2212 OPC_CheckPatternPredicate0,
2213 OPC_EmitConvertToTarget2,
2214 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_XCC),
2215 MVT::f32, 3, 27,
2216 7,
2217 OPC_EmitConvertToTarget2,
2218 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_XCC),
2219 MVT::f32, 3, 27,
2220 0,
2221 19, MVT::f64,
2222 OPC_Scope, 8,
2223 OPC_CheckPatternPredicate0,
2224 OPC_EmitConvertToTarget2,
2225 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_XCC),
2226 MVT::f64, 3, 27,
2227 7,
2228 OPC_EmitConvertToTarget2,
2229 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_XCC),
2230 MVT::f64, 3, 27,
2231 0,
2232 20, MVT::f128,
2233 OPC_Scope, 9,
2234 OPC_CheckPatternPredicate, 10,
2235 OPC_EmitConvertToTarget2,
2236 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_XCC),
2237 MVT::f128, 3, 27,
2238 7,
2239 OPC_EmitConvertToTarget2,
2240 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_XCC),
2241 MVT::f128, 3, 27,
2242 0,
2243 0,
2244 0,
2245 107, TARGET_VAL(SPISD::SELECT_REG),
2246 OPC_RecordChild0,
2247 OPC_Scope, 41,
2248 OPC_MoveChild0,
2249 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2250 OPC_CheckPredicate, 22,
2251 OPC_MoveParent,
2252 OPC_RecordChild1,
2253 OPC_RecordChild2,
2254 OPC_MoveChild2,
2255 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2256 OPC_MoveParent,
2257 OPC_RecordChild3,
2258 OPC_SwitchType , 9, MVT::i32,
2259 OPC_CheckPatternPredicate1,
2260 OPC_EmitConvertToTarget0,
2261 OPC_EmitConvertToTarget2,
2262 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVRri),
2263 MVT::i32, 4, 49,
2264 11, MVT::i64,
2265 OPC_CheckPatternPredicate0,
2266 OPC_EmitNodeXForm, 1, 0,
2267 OPC_EmitConvertToTarget2,
2268 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVRri),
2269 MVT::i64, 4, 49,
2270 0,
2271 61,
2272 OPC_RecordChild1,
2273 OPC_RecordChild2,
2274 OPC_MoveChild2,
2275 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2276 OPC_MoveParent,
2277 OPC_RecordChild3,
2278 OPC_SwitchType , 8, MVT::i32,
2279 OPC_CheckPatternPredicate1,
2280 OPC_EmitConvertToTarget2,
2281 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVRrr),
2282 MVT::i32, 4, 38,
2283 8, MVT::i64,
2284 OPC_CheckPatternPredicate0,
2285 OPC_EmitConvertToTarget2,
2286 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVRrr),
2287 MVT::i64, 4, 38,
2288 8, MVT::f32,
2289 OPC_CheckPatternPredicate1,
2290 OPC_EmitConvertToTarget2,
2291 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMOVRS),
2292 MVT::f32, 4, 38,
2293 8, MVT::f64,
2294 OPC_CheckPatternPredicate1,
2295 OPC_EmitConvertToTarget2,
2296 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMOVRD),
2297 MVT::f64, 4, 38,
2298 9, MVT::f128,
2299 OPC_CheckPatternPredicate, 8,
2300 OPC_EmitConvertToTarget2,
2301 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMOVRQ),
2302 MVT::f128, 4, 38,
2303 0,
2304 0,
2305 19, TARGET_VAL(ISD::CALLSEQ_START),
2306 OPC_RecordNode,
2307 OPC_RecordChild1,
2308 OPC_MoveChild1,
2309 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
2310 OPC_MoveSibling2,
2311 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
2312 OPC_RecordNode,
2313 OPC_MoveParent,
2314 OPC_EmitMergeInputChains1_0,
2315 OPC_MorphNodeTo0, TARGET_VAL(SP::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
2316 2, 19,
2317 20, TARGET_VAL(ISD::CALLSEQ_END),
2318 OPC_RecordNode,
2319 OPC_CaptureGlueInput,
2320 OPC_RecordChild1,
2321 OPC_MoveChild1,
2322 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
2323 OPC_MoveSibling2,
2324 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
2325 OPC_RecordNode,
2326 OPC_MoveParent,
2327 OPC_EmitMergeInputChains1_0,
2328 OPC_MorphNodeTo0, TARGET_VAL(SP::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
2329 2, 19,
2330 20, TARGET_VAL(SPISD::TLS_CALL),
2331 OPC_RecordNode,
2332 OPC_CaptureGlueInput,
2333 OPC_RecordChild1,
2334 OPC_MoveChild1,
2335 OPC_CheckOpcode, TARGET_VAL(ISD::TargetExternalSymbol),
2336 OPC_MoveSibling2,
2337 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2338 OPC_RecordNode,
2339 OPC_MoveParent,
2340 OPC_EmitMergeInputChains1_0,
2341 OPC_MorphNodeTo0, TARGET_VAL(SP::TLS_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic2,
2342 2, 19,
2343 25, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
2344 OPC_RecordChild0,
2345 OPC_Scope, 10,
2346 OPC_CheckChild1Integer, 0,
2347 OPC_EmitIntegerI32, SP::sub_even,
2348 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
2349 MVT::i32, 2, 6,
2350 10,
2351 OPC_CheckChild1Integer, 1,
2352 OPC_EmitIntegerI32, SP::sub_odd,
2353 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
2354 MVT::i32, 2, 6,
2355 0,
2356 49, TARGET_VAL(ISD::ADDC),
2357 OPC_RecordChild0,
2358 OPC_RecordChild1,
2359 OPC_Scope, 27,
2360 OPC_MoveChild1,
2361 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2362 OPC_CheckPredicate0,
2363 OPC_MoveParent,
2364 OPC_SwitchType , 7, MVT::i32,
2365 OPC_EmitConvertToTarget1,
2366 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCri),
2367 MVT::i32, 2, 16,
2368 8, MVT::i64,
2369 OPC_CheckPatternPredicate0,
2370 OPC_EmitConvertToTarget1,
2371 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCri),
2372 MVT::i64, 2, 16,
2373 0,
2374 7,
2375 OPC_CheckTypeI32,
2376 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCrr),
2377 MVT::i32, 2, 6,
2378 8,
2379 OPC_CheckTypeI64,
2380 OPC_CheckPatternPredicate0,
2381 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCrr),
2382 MVT::i64, 2, 6,
2383 0,
2384 40, TARGET_VAL(ISD::ADDE),
2385 OPC_CaptureGlueInput,
2386 OPC_RecordChild0,
2387 OPC_RecordChild1,
2388 OPC_Scope, 15,
2389 OPC_MoveChild1,
2390 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2391 OPC_CheckPredicate0,
2392 OPC_MoveParent,
2393 OPC_CheckTypeI32,
2394 OPC_EmitConvertToTarget1,
2395 OPC_MorphNodeTo1, TARGET_VAL(SP::ADDEri), 0|OPFL_GlueInput|OPFL_GlueOutput,
2396 MVT::i32, 2, 16,
2397 8,
2398 OPC_CheckTypeI32,
2399 OPC_MorphNodeTo1, TARGET_VAL(SP::ADDErr), 0|OPFL_GlueInput|OPFL_GlueOutput,
2400 MVT::i32, 2, 6,
2401 9,
2402 OPC_CheckTypeI64,
2403 OPC_CheckPatternPredicate2,
2404 OPC_MorphNodeTo1, TARGET_VAL(SP::ADDXCCC), 0|OPFL_GlueInput|OPFL_GlueOutput,
2405 MVT::i64, 2, 6,
2406 0,
2407 49, TARGET_VAL(ISD::SUB),
2408 OPC_RecordChild0,
2409 OPC_RecordChild1,
2410 OPC_Scope, 27,
2411 OPC_MoveChild1,
2412 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2413 OPC_CheckPredicate0,
2414 OPC_MoveParent,
2415 OPC_SwitchType , 7, MVT::i32,
2416 OPC_EmitConvertToTarget1,
2417 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBri),
2418 MVT::i32, 2, 16,
2419 8, MVT::i64,
2420 OPC_CheckPatternPredicate0,
2421 OPC_EmitConvertToTarget1,
2422 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBri),
2423 MVT::i64, 2, 16,
2424 0,
2425 7,
2426 OPC_CheckTypeI32,
2427 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBrr),
2428 MVT::i32, 2, 6,
2429 8,
2430 OPC_CheckTypeI64,
2431 OPC_CheckPatternPredicate0,
2432 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBrr),
2433 MVT::i64, 2, 6,
2434 0,
2435 30, TARGET_VAL(ISD::SUBE),
2436 OPC_CaptureGlueInput,
2437 OPC_RecordChild0,
2438 OPC_RecordChild1,
2439 OPC_Scope, 15,
2440 OPC_MoveChild1,
2441 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2442 OPC_CheckPredicate0,
2443 OPC_MoveParent,
2444 OPC_CheckTypeI32,
2445 OPC_EmitConvertToTarget1,
2446 OPC_MorphNodeTo1, TARGET_VAL(SP::SUBEri), 0|OPFL_GlueInput|OPFL_GlueOutput,
2447 MVT::i32, 2, 16,
2448 8,
2449 OPC_CheckTypeI32,
2450 OPC_MorphNodeTo1, TARGET_VAL(SP::SUBErr), 0|OPFL_GlueInput|OPFL_GlueOutput,
2451 MVT::i32, 2, 6,
2452 0,
2453 27, TARGET_VAL(ISD::SUBC),
2454 OPC_RecordChild0,
2455 OPC_RecordChild1,
2456 OPC_Scope, 14,
2457 OPC_MoveChild1,
2458 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2459 OPC_CheckPredicate0,
2460 OPC_MoveParent,
2461 OPC_CheckTypeI32,
2462 OPC_EmitConvertToTarget1,
2463 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
2464 MVT::i32, 2, 16,
2465 7,
2466 OPC_CheckTypeI32,
2467 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
2468 MVT::i32, 2, 6,
2469 0,
2470 57, TARGET_VAL(SPISD::CMPICC),
2471 OPC_RecordChild0,
2472 OPC_Scope, 25,
2473 OPC_CheckChild0TypeI32,
2474 OPC_RecordChild1,
2475 OPC_Scope, 13,
2476 OPC_MoveChild1,
2477 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2478 OPC_CheckPredicate0,
2479 OPC_MoveParent,
2480 OPC_EmitConvertToTarget1,
2481 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
2482 MVT::i32, 2, 16,
2483 6,
2484 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
2485 MVT::i32, 2, 6,
2486 0,
2487 27,
2488 OPC_CheckChild0TypeI64,
2489 OPC_RecordChild1,
2490 OPC_Scope, 14,
2491 OPC_MoveChild1,
2492 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2493 OPC_CheckPredicate0,
2494 OPC_MoveParent,
2495 OPC_CheckPatternPredicate0,
2496 OPC_EmitConvertToTarget1,
2497 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
2498 MVT::i32, 2, 16,
2499 7,
2500 OPC_CheckPatternPredicate0,
2501 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
2502 MVT::i32, 2, 6,
2503 0,
2504 0,
2505 29, TARGET_VAL(ISD::UMUL_LOHI),
2506 OPC_RecordChild0,
2507 OPC_RecordChild1,
2508 OPC_Scope, 15,
2509 OPC_MoveChild1,
2510 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2511 OPC_CheckPredicate0,
2512 OPC_MoveParent,
2513 OPC_CheckTypeI32,
2514 OPC_EmitConvertToTarget1,
2515 OPC_MorphNodeTo2None, TARGET_VAL(SP::UMULri),
2516 MVT::i32, MVT::i32, 2, 16,
2517 8,
2518 OPC_CheckTypeI32,
2519 OPC_MorphNodeTo2None, TARGET_VAL(SP::UMULrr),
2520 MVT::i32, MVT::i32, 2, 6,
2521 0,
2522 29, TARGET_VAL(ISD::SMUL_LOHI),
2523 OPC_RecordChild0,
2524 OPC_RecordChild1,
2525 OPC_Scope, 15,
2526 OPC_MoveChild1,
2527 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2528 OPC_CheckPredicate0,
2529 OPC_MoveParent,
2530 OPC_CheckTypeI32,
2531 OPC_EmitConvertToTarget1,
2532 OPC_MorphNodeTo2None, TARGET_VAL(SP::SMULri),
2533 MVT::i32, MVT::i32, 2, 16,
2534 8,
2535 OPC_CheckTypeI32,
2536 OPC_MorphNodeTo2None, TARGET_VAL(SP::SMULrr),
2537 MVT::i32, MVT::i32, 2, 6,
2538 0,
2539 17, TARGET_VAL(SPISD::RET_GLUE),
2540 OPC_RecordNode,
2541 OPC_CaptureGlueInput,
2542 OPC_RecordChild1,
2543 OPC_MoveChild1,
2544 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2545 OPC_CheckPredicate0,
2546 OPC_MoveParent,
2547 OPC_EmitMergeInputChains1_0,
2548 OPC_EmitConvertToTarget1,
2549 OPC_MorphNodeTo0, TARGET_VAL(SP::RETL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
2550 1, 17,
2551 29, TARGET_VAL(ISD::MUL),
2552 OPC_RecordChild0,
2553 OPC_RecordChild1,
2554 OPC_Scope, 15,
2555 OPC_MoveChild1,
2556 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2557 OPC_CheckPredicate0,
2558 OPC_MoveParent,
2559 OPC_CheckTypeI64,
2560 OPC_CheckPatternPredicate1,
2561 OPC_EmitConvertToTarget1,
2562 OPC_MorphNodeTo1None, TARGET_VAL(SP::MULXri),
2563 MVT::i64, 2, 16,
2564 8,
2565 OPC_CheckTypeI64,
2566 OPC_CheckPatternPredicate1,
2567 OPC_MorphNodeTo1None, TARGET_VAL(SP::MULXrr),
2568 MVT::i64, 2, 6,
2569 0,
2570 29, TARGET_VAL(ISD::SDIV),
2571 OPC_RecordChild0,
2572 OPC_RecordChild1,
2573 OPC_Scope, 15,
2574 OPC_MoveChild1,
2575 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2576 OPC_CheckPredicate0,
2577 OPC_MoveParent,
2578 OPC_CheckTypeI64,
2579 OPC_CheckPatternPredicate1,
2580 OPC_EmitConvertToTarget1,
2581 OPC_MorphNodeTo1None, TARGET_VAL(SP::SDIVXri),
2582 MVT::i64, 2, 16,
2583 8,
2584 OPC_CheckTypeI64,
2585 OPC_CheckPatternPredicate1,
2586 OPC_MorphNodeTo1None, TARGET_VAL(SP::SDIVXrr),
2587 MVT::i64, 2, 6,
2588 0,
2589 29, TARGET_VAL(ISD::UDIV),
2590 OPC_RecordChild0,
2591 OPC_RecordChild1,
2592 OPC_Scope, 15,
2593 OPC_MoveChild1,
2594 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2595 OPC_CheckPredicate0,
2596 OPC_MoveParent,
2597 OPC_CheckTypeI64,
2598 OPC_CheckPatternPredicate1,
2599 OPC_EmitConvertToTarget1,
2600 OPC_MorphNodeTo1None, TARGET_VAL(SP::UDIVXri),
2601 MVT::i64, 2, 16,
2602 8,
2603 OPC_CheckTypeI64,
2604 OPC_CheckPatternPredicate1,
2605 OPC_MorphNodeTo1None, TARGET_VAL(SP::UDIVXrr),
2606 MVT::i64, 2, 6,
2607 0,
2608 53, TARGET_VAL(ISD::SHL),
2609 OPC_RecordChild0,
2610 OPC_RecordChild1,
2611 OPC_Scope, 27,
2612 OPC_MoveChild1,
2613 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2614 OPC_CheckTypeI32,
2615 OPC_MoveParent,
2616 OPC_SwitchType , 7, MVT::i32,
2617 OPC_EmitConvertToTarget1,
2618 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLri),
2619 MVT::i32, 2, 16,
2620 8, MVT::i64,
2621 OPC_CheckPatternPredicate1,
2622 OPC_EmitConvertToTarget1,
2623 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLXri),
2624 MVT::i64, 2, 16,
2625 0,
2626 20,
2627 OPC_CheckChild1TypeI32,
2628 OPC_SwitchType , 6, MVT::i32,
2629 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLrr),
2630 MVT::i32, 2, 6,
2631 7, MVT::i64,
2632 OPC_CheckPatternPredicate1,
2633 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLXrr),
2634 MVT::i64, 2, 6,
2635 0,
2636 0,
2637 53, TARGET_VAL(ISD::SRL),
2638 OPC_RecordChild0,
2639 OPC_RecordChild1,
2640 OPC_Scope, 27,
2641 OPC_MoveChild1,
2642 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2643 OPC_CheckTypeI32,
2644 OPC_MoveParent,
2645 OPC_SwitchType , 7, MVT::i32,
2646 OPC_EmitConvertToTarget1,
2647 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
2648 MVT::i32, 2, 16,
2649 8, MVT::i64,
2650 OPC_CheckPatternPredicate1,
2651 OPC_EmitConvertToTarget1,
2652 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLXri),
2653 MVT::i64, 2, 16,
2654 0,
2655 20,
2656 OPC_CheckChild1TypeI32,
2657 OPC_SwitchType , 6, MVT::i32,
2658 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLrr),
2659 MVT::i32, 2, 6,
2660 7, MVT::i64,
2661 OPC_CheckPatternPredicate1,
2662 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLXrr),
2663 MVT::i64, 2, 6,
2664 0,
2665 0,
2666 53, TARGET_VAL(ISD::SRA),
2667 OPC_RecordChild0,
2668 OPC_RecordChild1,
2669 OPC_Scope, 27,
2670 OPC_MoveChild1,
2671 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2672 OPC_CheckTypeI32,
2673 OPC_MoveParent,
2674 OPC_SwitchType , 7, MVT::i32,
2675 OPC_EmitConvertToTarget1,
2676 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
2677 MVT::i32, 2, 16,
2678 8, MVT::i64,
2679 OPC_CheckPatternPredicate1,
2680 OPC_EmitConvertToTarget1,
2681 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAXri),
2682 MVT::i64, 2, 16,
2683 0,
2684 20,
2685 OPC_CheckChild1TypeI32,
2686 OPC_SwitchType , 6, MVT::i32,
2687 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRArr),
2688 MVT::i32, 2, 6,
2689 7, MVT::i64,
2690 OPC_CheckPatternPredicate1,
2691 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAXrr),
2692 MVT::i64, 2, 6,
2693 0,
2694 0,
2695 21, TARGET_VAL(SPISD::BRICC),
2696 OPC_RecordNode,
2697 OPC_CaptureGlueInput,
2698 OPC_RecordChild1,
2699 OPC_MoveChild1,
2700 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2701 OPC_MoveSibling2,
2702 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2703 OPC_RecordNode,
2704 OPC_MoveParent,
2705 OPC_EmitMergeInputChains1_0,
2706 OPC_EmitConvertToTarget2,
2707 OPC_MorphNodeTo0, TARGET_VAL(SP::BCOND), 0|OPFL_Chain|OPFL_GlueInput,
2708 2, 28,
2709 22, TARGET_VAL(SPISD::BPICC),
2710 OPC_RecordNode,
2711 OPC_CaptureGlueInput,
2712 OPC_RecordChild1,
2713 OPC_MoveChild1,
2714 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2715 OPC_MoveSibling2,
2716 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2717 OPC_RecordNode,
2718 OPC_MoveParent,
2719 OPC_CheckPatternPredicate1,
2720 OPC_EmitMergeInputChains1_0,
2721 OPC_EmitConvertToTarget2,
2722 OPC_MorphNodeTo0, TARGET_VAL(SP::BPICC), 0|OPFL_Chain|OPFL_GlueInput,
2723 2, 28,
2724 31, TARGET_VAL(SPISD::BRFCC),
2725 OPC_RecordNode,
2726 OPC_CaptureGlueInput,
2727 OPC_RecordChild1,
2728 OPC_MoveChild1,
2729 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2730 OPC_MoveSibling2,
2731 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2732 OPC_RecordNode,
2733 OPC_MoveParent,
2734 OPC_EmitMergeInputChains1_0,
2735 OPC_EmitConvertToTarget2,
2736 OPC_Scope, 6,
2737 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCOND), 0|OPFL_Chain|OPFL_GlueInput,
2738 2, 28,
2739 6,
2740 OPC_MorphNodeTo0, TARGET_VAL(SP::CPBCOND), 0|OPFL_Chain|OPFL_GlueInput,
2741 2, 28,
2742 0,
2743 32, TARGET_VAL(SPISD::BRFCC_V9),
2744 OPC_RecordNode,
2745 OPC_CaptureGlueInput,
2746 OPC_RecordChild1,
2747 OPC_MoveChild1,
2748 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2749 OPC_MoveSibling2,
2750 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2751 OPC_RecordNode,
2752 OPC_MoveParent,
2753 OPC_CheckPatternPredicate1,
2754 OPC_EmitMergeInputChains1_0,
2755 OPC_EmitConvertToTarget2,
2756 OPC_Scope, 6,
2757 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCOND_V9), 0|OPFL_Chain|OPFL_GlueInput,
2758 2, 28,
2759 6,
2760 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCONDA_V9), 0|OPFL_Chain|OPFL_GlueInput,
2761 2, 28,
2762 0,
2763 35, TARGET_VAL(SPISD::TLS_ADD),
2764 OPC_RecordChild0,
2765 OPC_RecordChild1,
2766 OPC_Scope, 14,
2767 OPC_CheckChild1TypeI32,
2768 OPC_RecordChild2,
2769 OPC_MoveChild2,
2770 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2771 OPC_MoveParent,
2772 OPC_CheckTypeI32,
2773 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_ADDrr),
2774 MVT::i32, 3, 18,
2775 15,
2776 OPC_CheckChild1TypeI64,
2777 OPC_RecordChild2,
2778 OPC_MoveChild2,
2779 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2780 OPC_MoveParent,
2781 OPC_CheckTypeI64,
2782 OPC_CheckPatternPredicate0,
2783 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_ADDrr),
2784 MVT::i64, 3, 18,
2785 0,
2786 100, TARGET_VAL(SPISD::Hi),
2787 OPC_RecordChild0,
2788 OPC_MoveChild0,
2789 OPC_SwitchOpcode , 21, TARGET_VAL(ISD::TargetGlobalAddress),
2790 OPC_MoveParent,
2791 OPC_Scope, 8,
2792 OPC_CheckPatternPredicate3,
2793 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2794 18|128,2, 1, 1,
2795 8,
2796 OPC_CheckPatternPredicate0,
2797 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2798 18|128,2, 1, 1,
2799 0,
2800 21, TARGET_VAL(ISD::TargetConstantPool),
2801 OPC_MoveParent,
2802 OPC_Scope, 8,
2803 OPC_CheckPatternPredicate3,
2804 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2805 18|128,2, 1, 1,
2806 8,
2807 OPC_CheckPatternPredicate0,
2808 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2809 18|128,2, 1, 1,
2810 0,
2811 21, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2812 OPC_MoveParent,
2813 OPC_Scope, 8,
2814 OPC_CheckPatternPredicate3,
2815 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2816 18|128,2, 1, 1,
2817 8,
2818 OPC_CheckPatternPredicate0,
2819 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2820 18|128,2, 1, 1,
2821 0,
2822 21, TARGET_VAL(ISD::TargetBlockAddress),
2823 OPC_MoveParent,
2824 OPC_Scope, 8,
2825 OPC_CheckPatternPredicate3,
2826 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2827 18|128,2, 1, 1,
2828 8,
2829 OPC_CheckPatternPredicate0,
2830 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2831 18|128,2, 1, 1,
2832 0,
2833 0,
2834 116, TARGET_VAL(SPISD::Lo),
2835 OPC_RecordChild0,
2836 OPC_MoveChild0,
2837 OPC_SwitchOpcode , 25, TARGET_VAL(ISD::TargetGlobalAddress),
2838 OPC_MoveParent,
2839 OPC_Scope, 10,
2840 OPC_CheckPatternPredicate3,
2841 OPC_EmitRegisterI32, SP::G0,
2842 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2843 18|128,2, 2, 0,
2844 10,
2845 OPC_CheckPatternPredicate0,
2846 OPC_EmitRegisterI64, SP::G0,
2847 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2848 18|128,2, 2, 0,
2849 0,
2850 25, TARGET_VAL(ISD::TargetConstantPool),
2851 OPC_MoveParent,
2852 OPC_Scope, 10,
2853 OPC_CheckPatternPredicate3,
2854 OPC_EmitRegisterI32, SP::G0,
2855 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2856 18|128,2, 2, 0,
2857 10,
2858 OPC_CheckPatternPredicate0,
2859 OPC_EmitRegisterI64, SP::G0,
2860 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2861 18|128,2, 2, 0,
2862 0,
2863 25, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2864 OPC_MoveParent,
2865 OPC_Scope, 10,
2866 OPC_CheckPatternPredicate3,
2867 OPC_EmitRegisterI32, SP::G0,
2868 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2869 18|128,2, 2, 0,
2870 10,
2871 OPC_CheckPatternPredicate0,
2872 OPC_EmitRegisterI64, SP::G0,
2873 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2874 18|128,2, 2, 0,
2875 0,
2876 25, TARGET_VAL(ISD::TargetBlockAddress),
2877 OPC_MoveParent,
2878 OPC_Scope, 10,
2879 OPC_CheckPatternPredicate3,
2880 OPC_EmitRegisterI32, SP::G0,
2881 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2882 18|128,2, 2, 0,
2883 10,
2884 OPC_CheckPatternPredicate0,
2885 OPC_EmitRegisterI64, SP::G0,
2886 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2887 18|128,2, 2, 0,
2888 0,
2889 0,
2890 22, TARGET_VAL(SPISD::BPXCC),
2891 OPC_RecordNode,
2892 OPC_CaptureGlueInput,
2893 OPC_RecordChild1,
2894 OPC_MoveChild1,
2895 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2896 OPC_MoveSibling2,
2897 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2898 OPC_RecordNode,
2899 OPC_MoveParent,
2900 OPC_CheckPatternPredicate0,
2901 OPC_EmitMergeInputChains1_0,
2902 OPC_EmitConvertToTarget2,
2903 OPC_MorphNodeTo0, TARGET_VAL(SP::BPXCC), 0|OPFL_Chain|OPFL_GlueInput,
2904 2, 28,
2905 21, TARGET_VAL(SPISD::BR_REG),
2906 OPC_RecordNode,
2907 OPC_RecordChild1,
2908 OPC_MoveChild1,
2909 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2910 OPC_MoveSibling2,
2911 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2912 OPC_RecordNode,
2913 OPC_MoveParent,
2914 OPC_RecordChild3,
2915 OPC_CheckPatternPredicate1,
2916 OPC_EmitMergeInputChains1_0,
2917 OPC_EmitConvertToTarget2,
2918 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BPR),
2919 3, 33,
2920 81|128,1, TARGET_VAL(ISD::Constant),
2921 OPC_Scope, 25,
2922 OPC_CheckInteger, 0,
2923 OPC_SwitchType , 8, MVT::i32,
2924 OPC_EmitRegisterI32, SP::G0,
2925 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY),
2926 MVT::i32, 1, 1,
2927 9, MVT::i64,
2928 OPC_CheckPatternPredicate0,
2929 OPC_EmitRegisterI64, SP::G0,
2930 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY),
2931 MVT::i64, 1, 1,
2932 0,
2933 51|128,1,
2934 OPC_RecordNode,
2935 OPC_Scope, 13,
2936 OPC_CheckPredicate, 19,
2937 OPC_CheckTypeI32,
2938 OPC_EmitConvertToTarget0,
2939 OPC_EmitNodeXForm, 2, 1,
2940 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2941 MVT::i32, 1, 17,
2942 27,
2943 OPC_CheckPredicate0,
2944 OPC_SwitchType , 9, MVT::i32,
2945 OPC_EmitRegisterI32, SP::G0,
2946 OPC_EmitConvertToTarget0,
2947 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2948 MVT::i32, 2, 19,
2949 11, MVT::i64,
2950 OPC_EmitRegisterI64, SP::G0,
2951 OPC_EmitNodeXForm, 1, 0,
2952 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2953 MVT::i64, 2, 19,
2954 0,
2955 12,
2956 OPC_CheckPredicate, 19,
2957 OPC_CheckTypeI64,
2958 OPC_EmitNodeXForm, 2, 0,
2959 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2960 MVT::i64, 1, 7,
2961 22,
2962 OPC_CheckPredicate, 23,
2963 OPC_CheckTypeI64,
2964 OPC_CheckPatternPredicate0,
2965 OPC_EmitNodeXForm, 2, 0,
2966 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2967 MVT::i32, 1, 7,
2968 OPC_EmitNodeXForm, 3, 0,
2969 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2970 MVT::i64, 2, 31,
2971 22,
2972 OPC_CheckPredicate, 24,
2973 OPC_CheckTypeI64,
2974 OPC_CheckPatternPredicate0,
2975 OPC_EmitNodeXForm, 4, 0,
2976 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2977 MVT::i32, 1, 7,
2978 OPC_EmitNodeXForm, 5, 0,
2979 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
2980 MVT::i64, 2, 31,
2981 21,
2982 OPC_CheckTypeI32,
2983 OPC_EmitConvertToTarget0,
2984 OPC_EmitNodeXForm, 2, 1,
2985 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2986 MVT::i32, 1, 17,
2987 OPC_EmitConvertToTarget0,
2988 OPC_EmitNodeXForm, 3, 4,
2989 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2990 MVT::i32, 2, 53,
2991 52,
2992 OPC_CheckTypeI64,
2993 OPC_CheckPatternPredicate0,
2994 OPC_EmitNodeXForm, 6, 0,
2995 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2996 MVT::i32, 1, 7,
2997 OPC_EmitNodeXForm, 7, 0,
2998 OPC_EmitNode1None, TARGET_VAL(SP::ORri),
2999 MVT::i64, 2, 31,
3000 OPC_EmitIntegerI32, 32,
3001 OPC_EmitNode1None, TARGET_VAL(SP::SLLXri),
3002 MVT::i64, 2, 56,
3003 OPC_EmitNodeXForm, 2, 0,
3004 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
3005 MVT::i32, 1, 62,
3006 OPC_EmitNodeXForm, 3, 0,
3007 OPC_EmitNode1None, TARGET_VAL(SP::ORri),
3008 MVT::i32, 2, 67,
3009 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
3010 MVT::i64, 2, 69,
3011 0,
3012 0,
3013 57, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
3014 OPC_RecordMemRef,
3015 OPC_RecordNode,
3016 OPC_RecordChild1,
3017 OPC_SwitchType , 31, MVT::i32,
3018 OPC_RecordChild2,
3019 OPC_RecordChild3,
3020 OPC_CheckPredicate5,
3021 OPC_Scope, 12,
3022 OPC_CheckPatternPredicate1,
3023 OPC_EmitMergeInputChains1_0,
3024 OPC_EmitIntegerI32, 0|128,1,
3025 OPC_MorphNodeTo1, TARGET_VAL(SP::CASArr), 0|OPFL_Chain|OPFL_MemRefs,
3026 MVT::i32, 4, 45,
3027 12,
3028 OPC_CheckPatternPredicate, 11,
3029 OPC_EmitMergeInputChains1_0,
3030 OPC_EmitIntegerI32, 10,
3031 OPC_MorphNodeTo1, TARGET_VAL(SP::CASArr), 0|OPFL_Chain|OPFL_MemRefs,
3032 MVT::i32, 4, 45,
3033 0,
3034 17, MVT::i64,
3035 OPC_CheckChild1TypeI64,
3036 OPC_RecordChild2,
3037 OPC_RecordChild3,
3038 OPC_CheckPredicate, 15,
3039 OPC_CheckPatternPredicate0,
3040 OPC_EmitMergeInputChains1_0,
3041 OPC_EmitIntegerI32, 0|128,1,
3042 OPC_MorphNodeTo1, TARGET_VAL(SP::CASXArr), 0|OPFL_Chain|OPFL_MemRefs,
3043 MVT::i64, 4, 45,
3044 0,
3045 16, TARGET_VAL(SPISD::FLUSHW),
3046 OPC_RecordNode,
3047 OPC_Scope, 6,
3048 OPC_CheckPatternPredicate1,
3049 OPC_EmitMergeInputChains1_0,
3050 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::FLUSHW),
3051 0,
3052 5,
3053 OPC_EmitMergeInputChains1_0,
3054 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA3),
3055 0,
3056 0,
3057 13, TARGET_VAL(ISD::BR),
3058 OPC_RecordNode,
3059 OPC_RecordChild1,
3060 OPC_MoveChild1,
3061 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
3062 OPC_MoveParent,
3063 OPC_EmitMergeInputChains1_0,
3064 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BA),
3065 1, 7,
3066 6, TARGET_VAL(ISD::TRAP),
3067 OPC_RecordNode,
3068 OPC_EmitMergeInputChains1_0,
3069 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA5),
3070 0,
3071 6, TARGET_VAL(ISD::DEBUGTRAP),
3072 OPC_RecordNode,
3073 OPC_EmitMergeInputChains1_0,
3074 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA1),
3075 0,
3076 34, TARGET_VAL(SPISD::CMPFCC),
3077 OPC_RecordChild0,
3078 OPC_Scope, 9,
3079 OPC_CheckChild0Type, MVT::f32,
3080 OPC_RecordChild1,
3081 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPS),
3082 MVT::i1, 2, 6,
3083 9,
3084 OPC_CheckChild0Type, MVT::f64,
3085 OPC_RecordChild1,
3086 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPD),
3087 MVT::i1, 2, 6,
3088 10,
3089 OPC_CheckChild0Type, MVT::f128,
3090 OPC_RecordChild1,
3091 OPC_CheckPatternPredicate5,
3092 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPQ),
3093 MVT::i1, 2, 6,
3094 0,
3095 36, TARGET_VAL(SPISD::CMPFCC_V9),
3096 OPC_RecordChild0,
3097 OPC_Scope, 10,
3098 OPC_CheckChild0Type, MVT::f32,
3099 OPC_RecordChild1,
3100 OPC_CheckPatternPredicate1,
3101 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPS_V9),
3102 MVT::i1, 2, 6,
3103 10,
3104 OPC_CheckChild0Type, MVT::f64,
3105 OPC_RecordChild1,
3106 OPC_CheckPatternPredicate1,
3107 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPD_V9),
3108 MVT::i1, 2, 6,
3109 10,
3110 OPC_CheckChild0Type, MVT::f128,
3111 OPC_RecordChild1,
3112 OPC_CheckPatternPredicate1,
3113 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPQ_V9),
3114 MVT::i1, 2, 6,
3115 0,
3116 29, TARGET_VAL(ISD::FrameIndex),
3117 OPC_RecordNode,
3118 OPC_SwitchType , 11, MVT::i32,
3119 OPC_EmitNodeXForm, 8, 0,
3120 OPC_EmitIntegerI32, 0,
3121 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
3122 MVT::i32, 2, 19,
3123 11, MVT::i64,
3124 OPC_EmitNodeXForm, 8, 0,
3125 OPC_EmitIntegerI64, 0,
3126 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
3127 MVT::i64, 2, 19,
3128 0,
3129 11, TARGET_VAL(ISD::TRUNCATE),
3130 OPC_RecordChild0,
3131 OPC_CheckTypeI32,
3132 OPC_CheckPatternPredicate0,
3133 OPC_EmitIntegerI32, SP::IntRegsRegClassID,
3134 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS),
3135 MVT::i32, 2, 6,
3136 14, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3137 OPC_RecordChild0,
3138 OPC_MoveChild1,
3139 OPC_CheckValueType, MVT::i32,
3140 OPC_MoveParent,
3141 OPC_CheckPatternPredicate0,
3142 OPC_EmitIntegerI32, 0,
3143 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
3144 MVT::i64, 2, 6,
3145 30, TARGET_VAL(ISD::CTPOP),
3146 OPC_RecordChild0,
3147 OPC_SwitchType , 8, MVT::i64,
3148 OPC_CheckChild0TypeI64,
3149 OPC_CheckPatternPredicate0,
3150 OPC_MorphNodeTo1None, TARGET_VAL(SP::POPCrr),
3151 MVT::i64, 1, 1,
3152 15, MVT::i32,
3153 OPC_CheckChild0TypeI32,
3154 OPC_EmitIntegerI32, 0,
3155 OPC_EmitNode1None, TARGET_VAL(SP::SRLri),
3156 MVT::i32, 2, 6,
3157 OPC_MorphNodeTo1None, TARGET_VAL(SP::POPCrr),
3158 MVT::i32, 1, 17,
3159 0,
3160 10, TARGET_VAL(ISD::MULHU),
3161 OPC_RecordChild0,
3162 OPC_RecordChild1,
3163 OPC_CheckTypeI64,
3164 OPC_CheckPatternPredicate2,
3165 OPC_MorphNodeTo1None, TARGET_VAL(SP::UMULXHI),
3166 MVT::i64, 2, 6,
3167 39, TARGET_VAL(ISD::CTLZ),
3168 OPC_RecordChild0,
3169 OPC_SwitchType , 8, MVT::i64,
3170 OPC_CheckChild0TypeI64,
3171 OPC_CheckPatternPredicate2,
3172 OPC_MorphNodeTo1None, TARGET_VAL(SP::LZCNT),
3173 MVT::i64, 1, 1,
3174 24, MVT::i32,
3175 OPC_CheckChild0TypeI32,
3176 OPC_CheckPatternPredicate2,
3177 OPC_EmitIntegerI32, 0,
3178 OPC_EmitNode1None, TARGET_VAL(SP::SRLri),
3179 MVT::i64, 2, 6,
3180 OPC_EmitNode1None, TARGET_VAL(SP::LZCNT),
3181 MVT::i64, 1, 17,
3182 OPC_EmitIntegerI32, 96,
3183 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
3184 MVT::i32, 2, 47,
3185 0,
3186 39, TARGET_VAL(ISD::CTLZ_ZERO_POISON),
3187 OPC_RecordChild0,
3188 OPC_SwitchType , 8, MVT::i64,
3189 OPC_CheckChild0TypeI64,
3190 OPC_CheckPatternPredicate2,
3191 OPC_MorphNodeTo1None, TARGET_VAL(SP::LZCNT),
3192 MVT::i64, 1, 1,
3193 24, MVT::i32,
3194 OPC_CheckChild0TypeI32,
3195 OPC_CheckPatternPredicate2,
3196 OPC_EmitIntegerI32, 0,
3197 OPC_EmitNode1None, TARGET_VAL(SP::SRLri),
3198 MVT::i64, 2, 6,
3199 OPC_EmitNode1None, TARGET_VAL(SP::LZCNT),
3200 MVT::i64, 1, 17,
3201 OPC_EmitIntegerI32, 96,
3202 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
3203 MVT::i32, 2, 47,
3204 0,
3205 45, TARGET_VAL(ISD::BITCAST),
3206 OPC_RecordChild0,
3207 OPC_SwitchType , 9, MVT::i32,
3208 OPC_CheckChild0Type, MVT::f32,
3209 OPC_CheckPatternPredicate2,
3210 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVSTOUW),
3211 MVT::i32, 1, 1,
3212 9, MVT::i64,
3213 OPC_CheckChild0Type, MVT::f64,
3214 OPC_CheckPatternPredicate2,
3215 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVDTOX),
3216 MVT::i64, 1, 1,
3217 8, MVT::f32,
3218 OPC_CheckChild0TypeI32,
3219 OPC_CheckPatternPredicate2,
3220 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVWTOS),
3221 MVT::f32, 1, 1,
3222 8, MVT::f64,
3223 OPC_CheckChild0TypeI64,
3224 OPC_CheckPatternPredicate2,
3225 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVXTOD),
3226 MVT::f64, 1, 1,
3227 0,
3228 50, TARGET_VAL(ISD::MULHS),
3229 OPC_RecordChild0,
3230 OPC_RecordChild1,
3231 OPC_CheckTypeI64,
3232 OPC_CheckPatternPredicate2,
3233 OPC_EmitNode1None, TARGET_VAL(SP::UMULXHI),
3234 MVT::i64, 2, 6,
3235 OPC_EmitIntegerI32, 63,
3236 OPC_EmitNode1None, TARGET_VAL(SP::SRAXri),
3237 MVT::i64, 2, 25,
3238 OPC_EmitNode1None, TARGET_VAL(SP::ANDrr),
3239 MVT::i32, 2, 14,
3240 OPC_EmitIntegerI32, 63,
3241 OPC_EmitNode1None, TARGET_VAL(SP::SRAXri),
3242 MVT::i64, 2, 58,
3243 OPC_EmitNode1None, TARGET_VAL(SP::ANDrr),
3244 MVT::i32, 2, 4,
3245 OPC_EmitNode1None, TARGET_VAL(SP::ADDrr),
3246 MVT::i32, 2, 63,
3247 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBrr),
3248 MVT::i64, 2, 65,
3249 108|128,1, TARGET_VAL(ISD::FNEG),
3250 OPC_Scope, 73|128,1,
3251 OPC_MoveChild0,
3252 OPC_SwitchOpcode , 48, TARGET_VAL(ISD::FMUL),
3253 OPC_Scope, 21,
3254 OPC_MoveChild0,
3255 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
3256 OPC_RecordChild0,
3257 OPC_MoveSibling1,
3258 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
3259 OPC_RecordChild0,
3260 OPC_MoveParent,
3261 OPC_MoveParent,
3262 OPC_CheckType, MVT::f64,
3263 OPC_CheckPatternPredicate2,
3264 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNSMULD),
3265 MVT::f64, 2, 6,
3266 23,
3267 OPC_RecordChild0,
3268 OPC_RecordChild1,
3269 OPC_MoveParent,
3270 OPC_SwitchType , 7, MVT::f32,
3271 OPC_CheckPatternPredicate2,
3272 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMULS),
3273 MVT::f32, 2, 6,
3274 7, MVT::f64,
3275 OPC_CheckPatternPredicate2,
3276 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMULD),
3277 MVT::f64, 2, 6,
3278 0,
3279 0,
3280 60, TARGET_VAL(ISD::STRICT_FMA),
3281 OPC_RecordNode,
3282 OPC_RecordChild1,
3283 OPC_RecordChild2,
3284 OPC_Scope, 29,
3285 OPC_MoveChild3,
3286 OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
3287 OPC_RecordChild0,
3288 OPC_MoveParent,
3289 OPC_MoveParent,
3290 OPC_SwitchType , 8, MVT::f32,
3291 OPC_CheckPatternPredicate4,
3292 OPC_EmitMergeInputChains1_0,
3293 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FNMSUBS),
3294 MVT::f32, 3, 30,
3295 8, MVT::f64,
3296 OPC_CheckPatternPredicate4,
3297 OPC_EmitMergeInputChains1_0,
3298 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FNMSUBD),
3299 MVT::f64, 3, 30,
3300 0,
3301 24,
3302 OPC_RecordChild3,
3303 OPC_MoveParent,
3304 OPC_SwitchType , 8, MVT::f32,
3305 OPC_CheckPatternPredicate4,
3306 OPC_EmitMergeInputChains1_0,
3307 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FNMADDS),
3308 MVT::f32, 3, 30,
3309 8, MVT::f64,
3310 OPC_CheckPatternPredicate4,
3311 OPC_EmitMergeInputChains1_0,
3312 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FNMADDD),
3313 MVT::f64, 3, 30,
3314 0,
3315 0,
3316 55, TARGET_VAL(ISD::FMA),
3317 OPC_RecordChild0,
3318 OPC_RecordChild1,
3319 OPC_Scope, 27,
3320 OPC_MoveChild2,
3321 OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
3322 OPC_RecordChild0,
3323 OPC_MoveParent,
3324 OPC_MoveParent,
3325 OPC_SwitchType , 7, MVT::f32,
3326 OPC_CheckPatternPredicate4,
3327 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMSUBS),
3328 MVT::f32, 3, 18,
3329 7, MVT::f64,
3330 OPC_CheckPatternPredicate4,
3331 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMSUBD),
3332 MVT::f64, 3, 18,
3333 0,
3334 22,
3335 OPC_RecordChild2,
3336 OPC_MoveParent,
3337 OPC_SwitchType , 7, MVT::f32,
3338 OPC_CheckPatternPredicate4,
3339 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMADDS),
3340 MVT::f32, 3, 18,
3341 7, MVT::f64,
3342 OPC_CheckPatternPredicate4,
3343 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNMADDD),
3344 MVT::f64, 3, 18,
3345 0,
3346 0,
3347 23, TARGET_VAL(ISD::FADD),
3348 OPC_RecordChild0,
3349 OPC_RecordChild1,
3350 OPC_MoveParent,
3351 OPC_SwitchType , 7, MVT::f32,
3352 OPC_CheckPatternPredicate2,
3353 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNADDS),
3354 MVT::f32, 2, 6,
3355 7, MVT::f64,
3356 OPC_CheckPatternPredicate2,
3357 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNADDD),
3358 MVT::f64, 2, 6,
3359 0,
3360 0,
3361 30,
3362 OPC_RecordChild0,
3363 OPC_SwitchType , 6, MVT::f32,
3364 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGS),
3365 MVT::f32, 1, 1,
3366 7, MVT::f64,
3367 OPC_CheckPatternPredicate1,
3368 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGD),
3369 MVT::f64, 1, 1,
3370 8, MVT::f128,
3371 OPC_CheckPatternPredicate, 8,
3372 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGQ),
3373 MVT::f128, 1, 1,
3374 0,
3375 0,
3376 10|128,2, TARGET_VAL(ISD::FMUL),
3377 OPC_Scope, 102|128,1,
3378 OPC_MoveChild0,
3379 OPC_SwitchOpcode , 56, TARGET_VAL(ISD::FADD),
3380 OPC_RecordChild0,
3381 OPC_RecordChild1,
3382 OPC_MoveSibling1,
3383 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
3384 OPC_Scope, 23,
3385 OPC_CheckPredicate, 8,
3386 OPC_MoveParent,
3387 OPC_SwitchType , 7, MVT::f32,
3388 OPC_CheckPatternPredicate2,
3389 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHADDS),
3390 MVT::f32, 2, 6,
3391 7, MVT::f64,
3392 OPC_CheckPatternPredicate2,
3393 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHADDD),
3394 MVT::f64, 2, 6,
3395 0,
3396 23,
3397 OPC_CheckPredicate, 13,
3398 OPC_MoveParent,
3399 OPC_SwitchType , 7, MVT::f32,
3400 OPC_CheckPatternPredicate2,
3401 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNHADDS),
3402 MVT::f32, 2, 6,
3403 7, MVT::f64,
3404 OPC_CheckPatternPredicate2,
3405 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNHADDD),
3406 MVT::f64, 2, 6,
3407 0,
3408 0,
3409 29, TARGET_VAL(ISD::FSUB),
3410 OPC_RecordChild0,
3411 OPC_RecordChild1,
3412 OPC_MoveSibling1,
3413 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
3414 OPC_CheckPredicate, 8,
3415 OPC_MoveParent,
3416 OPC_SwitchType , 7, MVT::f32,
3417 OPC_CheckPatternPredicate2,
3418 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHSUBS),
3419 MVT::f32, 2, 6,
3420 7, MVT::f64,
3421 OPC_CheckPatternPredicate2,
3422 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHSUBD),
3423 MVT::f64, 2, 6,
3424 0,
3425 90, TARGET_VAL(ISD::ConstantFP),
3426 OPC_Scope, 57,
3427 OPC_CheckPredicate, 8,
3428 OPC_MoveSibling1,
3429 OPC_SwitchOpcode , 23, TARGET_VAL(ISD::FADD),
3430 OPC_RecordChild0,
3431 OPC_RecordChild1,
3432 OPC_MoveParent,
3433 OPC_SwitchType , 7, MVT::f32,
3434 OPC_CheckPatternPredicate2,
3435 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHADDS),
3436 MVT::f32, 2, 6,
3437 7, MVT::f64,
3438 OPC_CheckPatternPredicate2,
3439 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHADDD),
3440 MVT::f64, 2, 6,
3441 0,
3442 23, TARGET_VAL(ISD::FSUB),
3443 OPC_RecordChild0,
3444 OPC_RecordChild1,
3445 OPC_MoveParent,
3446 OPC_SwitchType , 7, MVT::f32,
3447 OPC_CheckPatternPredicate2,
3448 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHSUBS),
3449 MVT::f32, 2, 6,
3450 7, MVT::f64,
3451 OPC_CheckPatternPredicate2,
3452 OPC_MorphNodeTo1None, TARGET_VAL(SP::FHSUBD),
3453 MVT::f64, 2, 6,
3454 0,
3455 0,
3456 29,
3457 OPC_CheckPredicate, 13,
3458 OPC_MoveSibling1,
3459 OPC_CheckOpcode, TARGET_VAL(ISD::FADD),
3460 OPC_RecordChild0,
3461 OPC_RecordChild1,
3462 OPC_MoveParent,
3463 OPC_SwitchType , 7, MVT::f32,
3464 OPC_CheckPatternPredicate2,
3465 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNHADDS),
3466 MVT::f32, 2, 6,
3467 7, MVT::f64,
3468 OPC_CheckPatternPredicate2,
3469 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNHADDD),
3470 MVT::f64, 2, 6,
3471 0,
3472 0,
3473 40, TARGET_VAL(ISD::FP_EXTEND),
3474 OPC_RecordChild0,
3475 OPC_Scope, 16,
3476 OPC_MoveSibling1,
3477 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
3478 OPC_RecordChild0,
3479 OPC_MoveParent,
3480 OPC_CheckType, MVT::f64,
3481 OPC_CheckPatternPredicate, 12,
3482 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSMULD),
3483 MVT::f64, 2, 6,
3484 19,
3485 OPC_CheckChild0Type, MVT::f64,
3486 OPC_MoveSibling1,
3487 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
3488 OPC_RecordChild0,
3489 OPC_CheckChild0Type, MVT::f64,
3490 OPC_MoveParent,
3491 OPC_CheckType, MVT::f128,
3492 OPC_CheckPatternPredicate5,
3493 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDMULQ),
3494 MVT::f128, 2, 6,
3495 0,
3496 0,
3497 31,
3498 OPC_RecordChild0,
3499 OPC_RecordChild1,
3500 OPC_SwitchType , 8, MVT::f32,
3501 OPC_CheckPatternPredicate, 13,
3502 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULS),
3503 MVT::f32, 2, 6,
3504 6, MVT::f64,
3505 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULD),
3506 MVT::f64, 2, 6,
3507 7, MVT::f128,
3508 OPC_CheckPatternPredicate5,
3509 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULQ),
3510 MVT::f128, 2, 6,
3511 0,
3512 0,
3513 58, TARGET_VAL(ISD::STRICT_FMA),
3514 OPC_RecordNode,
3515 OPC_RecordChild1,
3516 OPC_RecordChild2,
3517 OPC_Scope, 28,
3518 OPC_MoveChild3,
3519 OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
3520 OPC_RecordChild0,
3521 OPC_MoveParent,
3522 OPC_SwitchType , 8, MVT::f32,
3523 OPC_CheckPatternPredicate4,
3524 OPC_EmitMergeInputChains1_0,
3525 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FMSUBS),
3526 MVT::f32, 3, 30,
3527 8, MVT::f64,
3528 OPC_CheckPatternPredicate4,
3529 OPC_EmitMergeInputChains1_0,
3530 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FMSUBD),
3531 MVT::f64, 3, 30,
3532 0,
3533 23,
3534 OPC_RecordChild3,
3535 OPC_SwitchType , 8, MVT::f32,
3536 OPC_CheckPatternPredicate4,
3537 OPC_EmitMergeInputChains1_0,
3538 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FMADDS),
3539 MVT::f32, 3, 30,
3540 8, MVT::f64,
3541 OPC_CheckPatternPredicate4,
3542 OPC_EmitMergeInputChains1_0,
3543 OPC_MorphNodeTo1Chain, TARGET_VAL(SP::FMADDD),
3544 MVT::f64, 3, 30,
3545 0,
3546 0,
3547 53, TARGET_VAL(ISD::FMA),
3548 OPC_RecordChild0,
3549 OPC_RecordChild1,
3550 OPC_Scope, 26,
3551 OPC_MoveChild2,
3552 OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
3553 OPC_RecordChild0,
3554 OPC_MoveParent,
3555 OPC_SwitchType , 7, MVT::f32,
3556 OPC_CheckPatternPredicate4,
3557 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMSUBS),
3558 MVT::f32, 3, 18,
3559 7, MVT::f64,
3560 OPC_CheckPatternPredicate4,
3561 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMSUBD),
3562 MVT::f64, 3, 18,
3563 0,
3564 21,
3565 OPC_RecordChild2,
3566 OPC_SwitchType , 7, MVT::f32,
3567 OPC_CheckPatternPredicate4,
3568 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMADDS),
3569 MVT::f32, 3, 18,
3570 7, MVT::f64,
3571 OPC_CheckPatternPredicate4,
3572 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMADDD),
3573 MVT::f64, 3, 18,
3574 0,
3575 0,
3576 38|128,1, TARGET_VAL(ISD::ConstantFP),
3577 OPC_Scope, 22,
3578 OPC_CheckPredicate, 25,
3579 OPC_SwitchType , 7, MVT::f64,
3580 OPC_CheckPatternPredicate, 9,
3581 OPC_MorphNodeTo1None, TARGET_VAL(SP::FZERO),
3582 MVT::f64, 0,
3583 7, MVT::f32,
3584 OPC_CheckPatternPredicate, 9,
3585 OPC_MorphNodeTo1None, TARGET_VAL(SP::FZEROS),
3586 MVT::f32, 0,
3587 0,
3588 34,
3589 OPC_CheckPredicate, 26,
3590 OPC_SwitchType , 13, MVT::f64,
3591 OPC_CheckPatternPredicate, 9,
3592 OPC_EmitNode1None, TARGET_VAL(SP::FZERO),
3593 MVT::f64, 0,
3594 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGD),
3595 MVT::f64, 1, 1,
3596 13, MVT::f32,
3597 OPC_CheckPatternPredicate, 9,
3598 OPC_EmitNode1None, TARGET_VAL(SP::FZEROS),
3599 MVT::f32, 0,
3600 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGS),
3601 MVT::f32, 1, 1,
3602 0,
3603 21,
3604 OPC_CheckPredicate, 8,
3605 OPC_CheckType, MVT::f32,
3606 OPC_CheckPatternPredicate2,
3607 OPC_EmitIntegerI32, 0|128,0|128,63,
3608 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
3609 MVT::i32, 1, 1,
3610 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVWTOS),
3611 MVT::f32, 1, 7,
3612 22,
3613 OPC_CheckPredicate, 13,
3614 OPC_CheckType, MVT::f32,
3615 OPC_CheckPatternPredicate2,
3616 OPC_EmitIntegerI32, 0|128,0|128,63|128,1,
3617 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
3618 MVT::i32, 1, 1,
3619 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVWTOS),
3620 MVT::f32, 1, 7,
3621 29,
3622 OPC_CheckPredicate, 8,
3623 OPC_CheckType, MVT::f64,
3624 OPC_CheckPatternPredicate2,
3625 OPC_EmitIntegerI32, 0|128,112|128,63,
3626 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
3627 MVT::i64, 1, 1,
3628 OPC_EmitIntegerI32, 32,
3629 OPC_EmitNode1None, TARGET_VAL(SP::SLLXri),
3630 MVT::i64, 2, 19,
3631 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVXTOD),
3632 MVT::f64, 1, 26,
3633 30,
3634 OPC_CheckPredicate, 13,
3635 OPC_CheckType, MVT::f64,
3636 OPC_CheckPatternPredicate2,
3637 OPC_EmitIntegerI32, 0|128,112|128,63|128,1,
3638 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
3639 MVT::i64, 1, 1,
3640 OPC_EmitIntegerI32, 32,
3641 OPC_EmitNode1None, TARGET_VAL(SP::SLLXri),
3642 MVT::i64, 2, 19,
3643 OPC_MorphNodeTo1None, TARGET_VAL(SP::MOVXTOD),
3644 MVT::f64, 1, 26,
3645 0,
3646 28, TARGET_VAL(SPISD::ITOF),
3647 OPC_RecordChild0,
3648 OPC_SwitchType , 6, MVT::f32,
3649 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOS),
3650 MVT::f32, 1, 1,
3651 6, MVT::f64,
3652 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOD),
3653 MVT::f64, 1, 1,
3654 7, MVT::f128,
3655 OPC_CheckPatternPredicate5,
3656 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOQ),
3657 MVT::f128, 1, 1,
3658 0,
3659 31, TARGET_VAL(SPISD::FTOI),
3660 OPC_RecordChild0,
3661 OPC_Scope, 8,
3662 OPC_CheckChild0Type, MVT::f32,
3663 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOI),
3664 MVT::f32, 1, 1,
3665 8,
3666 OPC_CheckChild0Type, MVT::f64,
3667 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOI),
3668 MVT::f32, 1, 1,
3669 9,
3670 OPC_CheckChild0Type, MVT::f128,
3671 OPC_CheckPatternPredicate5,
3672 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOI),
3673 MVT::f32, 1, 1,
3674 0,
3675 35, TARGET_VAL(ISD::FP_EXTEND),
3676 OPC_RecordChild0,
3677 OPC_SwitchType , 6, MVT::f64,
3678 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOD),
3679 MVT::f64, 1, 1,
3680 22, MVT::f128,
3681 OPC_Scope, 9,
3682 OPC_CheckChild0Type, MVT::f32,
3683 OPC_CheckPatternPredicate5,
3684 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOQ),
3685 MVT::f128, 1, 1,
3686 9,
3687 OPC_CheckChild0Type, MVT::f64,
3688 OPC_CheckPatternPredicate5,
3689 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOQ),
3690 MVT::f128, 1, 1,
3691 0,
3692 0,
3693 35, TARGET_VAL(ISD::FP_ROUND),
3694 OPC_RecordChild0,
3695 OPC_SwitchType , 21, MVT::f32,
3696 OPC_Scope, 8,
3697 OPC_CheckChild0Type, MVT::f64,
3698 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOS),
3699 MVT::f32, 1, 1,
3700 9,
3701 OPC_CheckChild0Type, MVT::f128,
3702 OPC_CheckPatternPredicate5,
3703 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOS),
3704 MVT::f32, 1, 1,
3705 0,
3706 7, MVT::f64,
3707 OPC_CheckPatternPredicate5,
3708 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOD),
3709 MVT::f64, 1, 1,
3710 0,
3711 30, TARGET_VAL(ISD::FABS),
3712 OPC_RecordChild0,
3713 OPC_SwitchType , 6, MVT::f32,
3714 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSS),
3715 MVT::f32, 1, 1,
3716 7, MVT::f64,
3717 OPC_CheckPatternPredicate1,
3718 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSD),
3719 MVT::f64, 1, 1,
3720 8, MVT::f128,
3721 OPC_CheckPatternPredicate, 8,
3722 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSQ),
3723 MVT::f128, 1, 1,
3724 0,
3725 30, TARGET_VAL(ISD::FSQRT),
3726 OPC_RecordChild0,
3727 OPC_SwitchType , 8, MVT::f32,
3728 OPC_CheckPatternPredicate, 14,
3729 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTS),
3730 MVT::f32, 1, 1,
3731 6, MVT::f64,
3732 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTD),
3733 MVT::f64, 1, 1,
3734 7, MVT::f128,
3735 OPC_CheckPatternPredicate5,
3736 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTQ),
3737 MVT::f128, 1, 1,
3738 0,
3739 29, TARGET_VAL(ISD::FADD),
3740 OPC_RecordChild0,
3741 OPC_RecordChild1,
3742 OPC_SwitchType , 6, MVT::f32,
3743 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDS),
3744 MVT::f32, 2, 6,
3745 6, MVT::f64,
3746 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDD),
3747 MVT::f64, 2, 6,
3748 7, MVT::f128,
3749 OPC_CheckPatternPredicate5,
3750 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDQ),
3751 MVT::f128, 2, 6,
3752 0,
3753 29, TARGET_VAL(ISD::FSUB),
3754 OPC_RecordChild0,
3755 OPC_RecordChild1,
3756 OPC_SwitchType , 6, MVT::f32,
3757 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBS),
3758 MVT::f32, 2, 6,
3759 6, MVT::f64,
3760 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBD),
3761 MVT::f64, 2, 6,
3762 7, MVT::f128,
3763 OPC_CheckPatternPredicate5,
3764 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBQ),
3765 MVT::f128, 2, 6,
3766 0,
3767 29, TARGET_VAL(ISD::FDIV),
3768 OPC_RecordChild0,
3769 OPC_RecordChild1,
3770 OPC_SwitchType , 6, MVT::f32,
3771 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVS),
3772 MVT::f32, 2, 6,
3773 6, MVT::f64,
3774 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVD),
3775 MVT::f64, 2, 6,
3776 7, MVT::f128,
3777 OPC_CheckPatternPredicate5,
3778 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVQ),
3779 MVT::f128, 2, 6,
3780 0,
3781 31, TARGET_VAL(SPISD::XTOF),
3782 OPC_RecordChild0,
3783 OPC_SwitchType , 7, MVT::f32,
3784 OPC_CheckPatternPredicate1,
3785 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOS),
3786 MVT::f32, 1, 1,
3787 7, MVT::f64,
3788 OPC_CheckPatternPredicate1,
3789 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOD),
3790 MVT::f64, 1, 1,
3791 8, MVT::f128,
3792 OPC_CheckPatternPredicate, 8,
3793 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOQ),
3794 MVT::f128, 1, 1,
3795 0,
3796 34, TARGET_VAL(SPISD::FTOX),
3797 OPC_RecordChild0,
3798 OPC_Scope, 9,
3799 OPC_CheckChild0Type, MVT::f32,
3800 OPC_CheckPatternPredicate1,
3801 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOX),
3802 MVT::f64, 1, 1,
3803 9,
3804 OPC_CheckChild0Type, MVT::f64,
3805 OPC_CheckPatternPredicate1,
3806 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOX),
3807 MVT::f64, 1, 1,
3808 10,
3809 OPC_CheckChild0Type, MVT::f128,
3810 OPC_CheckPatternPredicate, 8,
3811 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOX),
3812 MVT::f64, 1, 1,
3813 0,
3814 67, TARGET_VAL(ISD::BUILD_VECTOR),
3815 OPC_CheckType, MVT::v2i32,
3816 OPC_Scope, 36,
3817 OPC_CheckChild0Integer, 0,
3818 OPC_CheckChild0TypeI32,
3819 OPC_RecordChild1,
3820 OPC_CheckChild1TypeI32,
3821 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
3822 MVT::v2i32, 0,
3823 OPC_EmitRegisterI32, SP::G0,
3824 OPC_EmitRegisterI32, SP::G0,
3825 OPC_EmitNode1None, TARGET_VAL(SP::ORrr),
3826 MVT::i32, 2, 31,
3827 OPC_EmitIntegerI32, SP::sub_even,
3828 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
3829 MVT::v2i32, 3, 55,
3830 OPC_EmitIntegerI32, SP::sub_odd,
3831 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
3832 MVT::v2i32, 3, 60,
3833 25,
3834 OPC_RecordChild0,
3835 OPC_CheckChild0TypeI32,
3836 OPC_RecordChild1,
3837 OPC_CheckChild1TypeI32,
3838 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
3839 MVT::v2i32, 0,
3840 OPC_EmitIntegerI32, SP::sub_even,
3841 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
3842 MVT::v2i32, 3, 24,
3843 OPC_EmitIntegerI32, SP::sub_odd,
3844 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
3845 MVT::v2i32, 3, 50,
3846 0,
3847 0,
3848 }; // Total Array size is 7220 bytes
3849
3850 static const uint8_t OperandLists[] = {
3851 /* 0 */ 1, 0,
3852 /* 2 */ 2, 0,
3853 /* 4 */ 7, 0,
3854 /* 6 */ 0, 1,
3855 /* 8 */ 2, 1,
3856 /* 10 */ 2, 3, 1,
3857 /* 13 */ 3, 4, 1,
3858 /* 16 */ 0, 2,
3859 /* 18 */ 0, 1, 2,
3860 /* 21 */ 3, 4, 2,
3861 /* 24 */ 2, 0, 3,
3862 /* 27 */ 0, 1, 3,
3863 /* 30 */ 1, 2, 3,
3864 /* 33 */ 1, 4, 3,
3865 /* 36 */ 0, 4,
3866 /* 38 */ 3, 0, 1, 4,
3867 /* 42 */ 3, 1, 4,
3868 /* 45 */ 1, 2, 3, 4,
3869 /* 49 */ 3, 4, 1, 5,
3870 /* 53 */ 3, 5,
3871 /* 55 */ 1, 4, 5,
3872 /* 58 */ 1, 6,
3873 /* 60 */ 6, 0, 7,
3874 /* 63 */ 5, 8,
3875 /* 65 */ 2, 9,
3876 /* 67 */ 8, 9,
3877 /* 69 */ 6, 10,
3878 };
3879
3880 #undef COVERAGE_IDX_VAL
3881 #undef TARGET_VAL
3882 SelectCodeCommon(NodeToMatch: N, MatcherTable, TableSize: sizeof(MatcherTable),
3883 OperandLists);
3884}
3885#endif // GET_DAGISEL_BODY
3886
3887#ifdef GET_DAGISEL_DECL
3888bool CheckPatternPredicate(unsigned PredNo) const override;
3889#endif
3890#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
3891bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
3892#if DAGISEL_INLINE
3893 override
3894#endif
3895{
3896 switch (PredNo) {
3897 default: llvm_unreachable("Invalid predicate in table?");
3898 case 0: return (Subtarget->is64Bit());
3899 case 1: return (Subtarget->isV9());
3900 case 2: return (Subtarget->isVIS3());
3901 case 3: return (!Subtarget->is64Bit());
3902 case 4: return (Subtarget->isUA2007());
3903 case 5: return (Subtarget->hasHardQuad());
3904 case 6: return (Subtarget->isV9()) && (Subtarget->is64Bit());
3905 case 7: return (!Subtarget->isV9());
3906 case 8: return (Subtarget->hasHardQuad()) && (Subtarget->isV9());
3907 case 9: return (Subtarget->isVIS());
3908 case 10: return (Subtarget->hasHardQuad()) && (Subtarget->is64Bit());
3909 case 11: return (Subtarget->hasLeonCasa());
3910 case 12: return (!Subtarget->hasNoFSMULD());
3911 case 13: return (!Subtarget->hasNoFMULS());
3912 case 14: return (!Subtarget->fixAllFDIVSQRT());
3913 }
3914}
3915#endif // GET_DAGISEL_BODY
3916
3917#ifdef GET_DAGISEL_DECL
3918bool CheckNodePredicate(SDValue Op, unsigned PredNo) const override;
3919#endif
3920#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
3921bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDValue Op, unsigned PredNo) const
3922#if DAGISEL_INLINE
3923 override
3924#endif
3925{
3926 switch (PredNo) {
3927 default: llvm_unreachable("Invalid predicate in table?");
3928 case 0: {
3929 // Predicate_simm13
3930 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
3931 (void)N;
3932 return isInt<13>(x: N->getSExtValue());
3933 }
3934 case 1: {
3935 // Predicate_atomic_load_aext_8
3936 // Predicate_atomic_load_zext_8
3937 // Predicate_atomic_store_8
3938 // Predicate_extloadi8
3939 // Predicate_sextloadi8
3940 // Predicate_truncstorei8
3941 // Predicate_zextloadi8
3942 SDNode *N = Op.getNode();
3943 (void)N;
3944if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
3945return true;
3946
3947 }
3948 case 2: {
3949 // Predicate_atomic_load_aext_16
3950 // Predicate_atomic_load_zext_16
3951 // Predicate_atomic_store_16
3952 // Predicate_extloadi16
3953 // Predicate_sextloadi16
3954 // Predicate_truncstorei16
3955 // Predicate_zextloadi16
3956 SDNode *N = Op.getNode();
3957 (void)N;
3958if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
3959return true;
3960
3961 }
3962 case 3: {
3963 // Predicate_unindexedstore
3964 SDNode *N = Op.getNode();
3965 (void)N;
3966if (cast<StoreSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
3967return true;
3968
3969 }
3970 case 4: {
3971 // Predicate_store
3972 SDNode *N = Op.getNode();
3973 (void)N;
3974 if (cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
3975return true;
3976
3977 }
3978 case 5: {
3979 // Predicate_atomic_cmp_swap_i32
3980 // Predicate_atomic_load_nonext_32
3981 // Predicate_atomic_store_32
3982 // Predicate_atomic_swap_i32
3983 // Predicate_extloadi32
3984 // Predicate_sextloadi32
3985 // Predicate_truncstorei32
3986 // Predicate_zextloadi32
3987 SDNode *N = Op.getNode();
3988 (void)N;
3989if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
3990return true;
3991
3992 }
3993 case 6: {
3994 // Predicate_zextload
3995 SDNode *N = Op.getNode();
3996 (void)N;
3997if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
3998return true;
3999
4000 }
4001 case 7: {
4002 // Predicate_extload
4003 SDNode *N = Op.getNode();
4004 (void)N;
4005if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
4006return true;
4007
4008 }
4009 case 8: {
4010 // Predicate_fpimmhalf
4011 const APFloat & Imm = cast<ConstantFPSDNode>(Val: Op.getNode())->getValueAPF();
4012return Imm.isExactlyValue(V: +0.5);
4013 }
4014 case 9: {
4015 // Predicate_sextload
4016 SDNode *N = Op.getNode();
4017 (void)N;
4018if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::SEXTLOAD) return false;
4019return true;
4020
4021 }
4022 case 10: {
4023 // Predicate_extloadi1
4024 // Predicate_zextloadi1
4025 SDNode *N = Op.getNode();
4026 (void)N;
4027if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i1) return false;
4028return true;
4029
4030 }
4031 case 11: {
4032 // Predicate_atomic_load_aext
4033 SDNode *N = Op.getNode();
4034 (void)N;
4035if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
4036return true;
4037
4038 }
4039 case 12: {
4040 // Predicate_atomic_load_zext
4041 SDNode *N = Op.getNode();
4042 (void)N;
4043if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
4044return true;
4045
4046 }
4047 case 13: {
4048 // Predicate_fpnegimmhalf
4049 const APFloat & Imm = cast<ConstantFPSDNode>(Val: Op.getNode())->getValueAPF();
4050return Imm.isExactlyValue(V: -0.5);
4051 }
4052 case 14: {
4053 // Predicate_load
4054 SDNode *N = Op.getNode();
4055 (void)N;
4056if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
4057return true;
4058
4059 }
4060 case 15: {
4061 // Predicate_atomic_cmp_swap_i64
4062 // Predicate_atomic_load_nonext_64
4063 // Predicate_atomic_store_64
4064 SDNode *N = Op.getNode();
4065 (void)N;
4066if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i64) return false;
4067return true;
4068
4069 }
4070 case 16: {
4071 // Predicate_simm11
4072 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4073 (void)N;
4074 return isInt<11>(x: N->getSExtValue());
4075 }
4076 case 17: {
4077 // Predicate_truncstore
4078 SDNode *N = Op.getNode();
4079 (void)N;
4080 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
4081return true;
4082
4083 }
4084 case 18: {
4085 // Predicate_SETHIimm_not
4086 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4087 (void)N;
4088
4089 return N->hasOneUse() && isShiftedUInt<22, 10>(x: ~(unsigned)N->getZExtValue());
4090
4091 }
4092 case 19: {
4093 // Predicate_SETHIimm
4094 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4095 (void)N;
4096
4097 return isShiftedUInt<22, 10>(x: N->getZExtValue());
4098
4099 }
4100 case 20: {
4101 // Predicate_unindexedload
4102 SDNode *N = Op.getNode();
4103 (void)N;
4104if (cast<LoadSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
4105return true;
4106
4107 }
4108 case 21: {
4109 // Predicate_atomic_load_nonext
4110 SDNode *N = Op.getNode();
4111 (void)N;
4112if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
4113return true;
4114
4115 }
4116 case 22: {
4117 // Predicate_simm10
4118 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4119 (void)N;
4120 return isInt<10>(x: N->getSExtValue());
4121 }
4122 case 23: {
4123 // Predicate_uimm32
4124 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4125 (void)N;
4126 return isUInt<32>(x: N->getZExtValue());
4127 }
4128 case 24: {
4129 // Predicate_nimm33
4130 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
4131 (void)N;
4132
4133 int64_t Imm = N->getSExtValue();
4134 return Imm < 0 && isInt<33>(x: Imm);
4135
4136 }
4137 case 25: {
4138 // Predicate_fpimm0
4139 const APFloat & Imm = cast<ConstantFPSDNode>(Val: Op.getNode())->getValueAPF();
4140return Imm.isPosZero();
4141 }
4142 case 26: {
4143 // Predicate_fpnegimm0
4144 const APFloat & Imm = cast<ConstantFPSDNode>(Val: Op.getNode())->getValueAPF();
4145return Imm.isNegZero();
4146 }
4147 }
4148}
4149#endif // GET_DAGISEL_BODY
4150
4151#ifdef GET_DAGISEL_DECL
4152bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
4153 SDValue N, unsigned PatternNo,
4154 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
4155#endif
4156#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
4157bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
4158 SDValue N, unsigned PatternNo,
4159 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
4160#if DAGISEL_INLINE
4161 override
4162#endif
4163{
4164 unsigned NextRes = Result.size();
4165 switch (PatternNo) {
4166 default: llvm_unreachable("Invalid pattern # in table?");
4167 case 0:
4168 Result.resize(N: NextRes+2);
4169 return SelectADDRrr(N, R1&: Result[NextRes+0].first, R2&: Result[NextRes+1].first);
4170 case 1:
4171 Result.resize(N: NextRes+2);
4172 return SelectADDRri(N, Base&: Result[NextRes+0].first, Offset&: Result[NextRes+1].first);
4173 case 2:
4174 Result.resize(N: NextRes+2);
4175 return SelectForceADDRrr(N, Base&: Result[NextRes+0].first, Disp&: Result[NextRes+1].first);
4176 }
4177}
4178#endif // GET_DAGISEL_BODY
4179
4180#ifdef GET_DAGISEL_DECL
4181SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
4182#endif
4183#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
4184SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
4185#if DAGISEL_INLINE
4186 override
4187#endif
4188{
4189 switch (XFormNo) {
4190 default: llvm_unreachable("Invalid xform # in table?");
4191 case 0: {
4192 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4193
4194 return CurDAG->getTargetConstant(Val: ~(unsigned)N->getZExtValue() >> 10, DL: SDLoc(N),
4195 VT: MVT::i32);
4196
4197 }
4198 case 1: {
4199 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4200
4201 return CurDAG->getSignedTargetConstant(Val: N->getSExtValue(), DL: SDLoc(N), VT: MVT::i32);
4202
4203 }
4204 case 2: {
4205 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4206
4207 // Transformation function: shift the immediate value down into the low bits.
4208 return CurDAG->getTargetConstant(Val: (unsigned)N->getZExtValue() >> 10, DL: SDLoc(N),
4209 VT: MVT::i32);
4210
4211 }
4212 case 3: {
4213 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4214
4215 return CurDAG->getTargetConstant(Val: (unsigned)N->getZExtValue() & 1023, DL: SDLoc(N),
4216 VT: MVT::i32);
4217
4218 }
4219 case 4: {
4220 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4221
4222 uint64_t Val = (~N->getZExtValue() >> 10) & ((1u << 22) - 1);
4223 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
4224
4225 }
4226 case 5: {
4227 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4228
4229 return CurDAG->getSignedTargetConstant(Val: ~(~N->getZExtValue() & 0x3ff),
4230 DL: SDLoc(N), VT: MVT::i32);
4231
4232 }
4233 case 6: {
4234 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4235
4236 uint64_t Val = (N->getZExtValue() >> 42) & ((1u << 22) - 1);
4237 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
4238
4239 }
4240 case 7: {
4241 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
4242
4243 uint64_t Val = (N->getZExtValue() >> 32) & ((1u << 10) - 1);
4244 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
4245
4246 }
4247 case 8: {
4248 FrameIndexSDNode *N = cast<FrameIndexSDNode>(Val: V.getNode());
4249
4250 return CurDAG->getTargetFrameIndex(FI: N->getIndex(), VT: N->getValueType(ResNo: 0));
4251
4252 }
4253 }
4254}
4255#endif // GET_DAGISEL_BODY
4256
4257
4258#ifdef DAGISEL_INLINE
4259#undef DAGISEL_INLINE
4260#endif
4261#ifdef DAGISEL_CLASS_COLONCOLON
4262#undef DAGISEL_CLASS_COLONCOLON
4263#endif
4264#ifdef GET_DAGISEL_DECL
4265#undef GET_DAGISEL_DECL
4266#endif
4267#ifdef GET_DAGISEL_BODY
4268#undef GET_DAGISEL_BODY
4269#endif
4270