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.
55 #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
56 static const unsigned char MatcherTable[] = {
57 OPC_SwitchOpcode , 114|128,3, TARGET_VAL(ISD::STORE),
58 OPC_RecordMemRef,
59 OPC_RecordNode,
60 OPC_Scope, 75,
61 OPC_CheckChild1Integer, 0,
62 OPC_Scope, 34,
63 OPC_CheckChild1TypeI32,
64 OPC_RecordChild2,
65 OPC_CheckPredicate1,
66 OPC_CheckPredicate2,
67 OPC_Scope, 13,
68 OPC_CheckComplexPat0, /*#*/1,
69 OPC_EmitMergeInputChains1_0,
70 OPC_EmitRegisterI32, SP::G0,
71 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
72 3, 2, 3, 4,
73 13,
74 OPC_CheckComplexPat1, /*#*/1,
75 OPC_EmitMergeInputChains1_0,
76 OPC_EmitRegisterI32, SP::G0,
77 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
78 3, 2, 3, 4,
79 0,
80 35,
81 OPC_CheckChild1TypeI64,
82 OPC_RecordChild2,
83 OPC_CheckPredicate1,
84 OPC_CheckPredicate2,
85 OPC_CheckPatternPredicate0,
86 OPC_Scope, 13,
87 OPC_CheckComplexPat0, /*#*/1,
88 OPC_EmitMergeInputChains1_0,
89 OPC_EmitRegisterI64, SP::G0,
90 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
91 3, 2, 3, 4,
92 13,
93 OPC_CheckComplexPat1, /*#*/1,
94 OPC_EmitMergeInputChains1_0,
95 OPC_EmitRegisterI64, SP::G0,
96 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
97 3, 2, 3, 4,
98 0,
99 0,
100 32|128,3,
101 OPC_RecordChild1,
102 OPC_Scope, 124,
103 OPC_CheckChild1TypeI32,
104 OPC_RecordChild2,
105 OPC_CheckPredicate1,
106 OPC_Scope, 62,
107 OPC_CheckPredicate, 13,
108 OPC_Scope, 28,
109 OPC_CheckPredicate, 14,
110 OPC_Scope, 11,
111 OPC_CheckComplexPat0, /*#*/2,
112 OPC_EmitMergeInputChains1_0,
113 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
114 3, 3, 4, 1,
115 11,
116 OPC_CheckComplexPat1, /*#*/2,
117 OPC_EmitMergeInputChains1_0,
118 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
119 3, 3, 4, 1,
120 0,
121 28,
122 OPC_CheckPredicate, 15,
123 OPC_Scope, 11,
124 OPC_CheckComplexPat0, /*#*/2,
125 OPC_EmitMergeInputChains1_0,
126 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
127 3, 3, 4, 1,
128 11,
129 OPC_CheckComplexPat1, /*#*/2,
130 OPC_EmitMergeInputChains1_0,
131 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
132 3, 3, 4, 1,
133 0,
134 0,
135 55,
136 OPC_CheckPredicate2,
137 OPC_Scope, 11,
138 OPC_CheckComplexPat0, /*#*/2,
139 OPC_EmitMergeInputChains1_0,
140 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
141 3, 3, 4, 1,
142 11,
143 OPC_CheckComplexPat1, /*#*/2,
144 OPC_EmitMergeInputChains1_0,
145 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
146 3, 3, 4, 1,
147 27,
148 OPC_CheckPatternPredicate4,
149 OPC_Scope, 11,
150 OPC_CheckComplexPat0, /*#*/2,
151 OPC_EmitMergeInputChains1_0,
152 OPC_MorphNodeTo0, TARGET_VAL(SP::STCrr), 0|OPFL_Chain|OPFL_MemRefs,
153 3, 3, 4, 1,
154 11,
155 OPC_CheckComplexPat1, /*#*/2,
156 OPC_EmitMergeInputChains1_0,
157 OPC_MorphNodeTo0, TARGET_VAL(SP::STCri), 0|OPFL_Chain|OPFL_MemRefs,
158 3, 3, 4, 1,
159 0,
160 0,
161 0,
162 59,
163 OPC_CheckChild1Type, MVT::v2i32,
164 OPC_RecordChild2,
165 OPC_CheckPredicate1,
166 OPC_CheckPredicate2,
167 OPC_Scope, 11,
168 OPC_CheckComplexPat0, /*#*/2,
169 OPC_EmitMergeInputChains1_0,
170 OPC_MorphNodeTo0, TARGET_VAL(SP::STDrr), 0|OPFL_Chain|OPFL_MemRefs,
171 3, 3, 4, 1,
172 11,
173 OPC_CheckComplexPat1, /*#*/2,
174 OPC_EmitMergeInputChains1_0,
175 OPC_MorphNodeTo0, TARGET_VAL(SP::STDri), 0|OPFL_Chain|OPFL_MemRefs,
176 3, 3, 4, 1,
177 27,
178 OPC_CheckPatternPredicate4,
179 OPC_Scope, 11,
180 OPC_CheckComplexPat0, /*#*/2,
181 OPC_EmitMergeInputChains1_0,
182 OPC_MorphNodeTo0, TARGET_VAL(SP::STDCrr), 0|OPFL_Chain|OPFL_MemRefs,
183 3, 3, 4, 1,
184 11,
185 OPC_CheckComplexPat1, /*#*/2,
186 OPC_EmitMergeInputChains1_0,
187 OPC_MorphNodeTo0, TARGET_VAL(SP::STDCri), 0|OPFL_Chain|OPFL_MemRefs,
188 3, 3, 4, 1,
189 0,
190 0,
191 31,
192 OPC_CheckChild1Type, MVT::f32,
193 OPC_RecordChild2,
194 OPC_CheckPredicate1,
195 OPC_CheckPredicate2,
196 OPC_Scope, 11,
197 OPC_CheckComplexPat0, /*#*/2,
198 OPC_EmitMergeInputChains1_0,
199 OPC_MorphNodeTo0, TARGET_VAL(SP::STFrr), 0|OPFL_Chain|OPFL_MemRefs,
200 3, 3, 4, 1,
201 11,
202 OPC_CheckComplexPat1, /*#*/2,
203 OPC_EmitMergeInputChains1_0,
204 OPC_MorphNodeTo0, TARGET_VAL(SP::STFri), 0|OPFL_Chain|OPFL_MemRefs,
205 3, 3, 4, 1,
206 0,
207 31,
208 OPC_CheckChild1Type, MVT::f64,
209 OPC_RecordChild2,
210 OPC_CheckPredicate1,
211 OPC_CheckPredicate2,
212 OPC_Scope, 11,
213 OPC_CheckComplexPat0, /*#*/2,
214 OPC_EmitMergeInputChains1_0,
215 OPC_MorphNodeTo0, TARGET_VAL(SP::STDFrr), 0|OPFL_Chain|OPFL_MemRefs,
216 3, 3, 4, 1,
217 11,
218 OPC_CheckComplexPat1, /*#*/2,
219 OPC_EmitMergeInputChains1_0,
220 OPC_MorphNodeTo0, TARGET_VAL(SP::STDFri), 0|OPFL_Chain|OPFL_MemRefs,
221 3, 3, 4, 1,
222 0,
223 32,
224 OPC_CheckChild1Type, MVT::f128,
225 OPC_RecordChild2,
226 OPC_CheckPredicate1,
227 OPC_CheckPredicate2,
228 OPC_CheckPatternPredicate1,
229 OPC_Scope, 11,
230 OPC_CheckComplexPat0, /*#*/2,
231 OPC_EmitMergeInputChains1_0,
232 OPC_MorphNodeTo0, TARGET_VAL(SP::STQFrr), 0|OPFL_Chain|OPFL_MemRefs,
233 3, 3, 4, 1,
234 11,
235 OPC_CheckComplexPat1, /*#*/2,
236 OPC_EmitMergeInputChains1_0,
237 OPC_MorphNodeTo0, TARGET_VAL(SP::STQFri), 0|OPFL_Chain|OPFL_MemRefs,
238 3, 3, 4, 1,
239 0,
240 1|128,1,
241 OPC_CheckChild1TypeI64,
242 OPC_RecordChild2,
243 OPC_CheckPredicate1,
244 OPC_Scope, 28,
245 OPC_CheckPredicate2,
246 OPC_CheckPatternPredicate0,
247 OPC_Scope, 11,
248 OPC_CheckComplexPat0, /*#*/2,
249 OPC_EmitMergeInputChains1_0,
250 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
251 3, 3, 4, 1,
252 11,
253 OPC_CheckComplexPat1, /*#*/2,
254 OPC_EmitMergeInputChains1_0,
255 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
256 3, 3, 4, 1,
257 0,
258 94,
259 OPC_CheckPredicate, 13,
260 OPC_Scope, 29,
261 OPC_CheckPredicate, 14,
262 OPC_CheckPatternPredicate0,
263 OPC_Scope, 11,
264 OPC_CheckComplexPat0, /*#*/2,
265 OPC_EmitMergeInputChains1_0,
266 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
267 3, 3, 4, 1,
268 11,
269 OPC_CheckComplexPat1, /*#*/2,
270 OPC_EmitMergeInputChains1_0,
271 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
272 3, 3, 4, 1,
273 0,
274 29,
275 OPC_CheckPredicate, 15,
276 OPC_CheckPatternPredicate0,
277 OPC_Scope, 11,
278 OPC_CheckComplexPat0, /*#*/2,
279 OPC_EmitMergeInputChains1_0,
280 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
281 3, 3, 4, 1,
282 11,
283 OPC_CheckComplexPat1, /*#*/2,
284 OPC_EmitMergeInputChains1_0,
285 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
286 3, 3, 4, 1,
287 0,
288 29,
289 OPC_CheckPredicate, 18,
290 OPC_CheckPatternPredicate0,
291 OPC_Scope, 11,
292 OPC_CheckComplexPat0, /*#*/2,
293 OPC_EmitMergeInputChains1_0,
294 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
295 3, 3, 4, 1,
296 11,
297 OPC_CheckComplexPat1, /*#*/2,
298 OPC_EmitMergeInputChains1_0,
299 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
300 3, 3, 4, 1,
301 0,
302 0,
303 0,
304 0,
305 0,
306 34, TARGET_VAL(SPISD::LOAD_GDOP),
307 OPC_RecordChild0,
308 OPC_RecordChild1,
309 OPC_MoveChild1,
310 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
311 OPC_MoveParent,
312 OPC_SwitchType , 10, MVT::i32,
313 OPC_CheckComplexPat0, /*#*/0,
314 OPC_MorphNodeTo1None, TARGET_VAL(SP::GDOP_LDrr),
315 MVT::i32, 3, 2, 3, 1,
316 11, MVT::i64,
317 OPC_CheckPatternPredicate0,
318 OPC_CheckComplexPat0, /*#*/0,
319 OPC_MorphNodeTo1None, TARGET_VAL(SP::GDOP_LDXrr),
320 MVT::i64, 3, 2, 3, 1,
321 0,
322 34, TARGET_VAL(SPISD::TLS_LD),
323 OPC_RecordChild0,
324 OPC_RecordChild1,
325 OPC_MoveChild1,
326 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
327 OPC_MoveParent,
328 OPC_SwitchType , 10, MVT::i32,
329 OPC_CheckComplexPat0, /*#*/0,
330 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_LDrr),
331 MVT::i32, 3, 2, 3, 1,
332 11, MVT::i64,
333 OPC_CheckPatternPredicate0,
334 OPC_CheckComplexPat0, /*#*/0,
335 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_LDXrr),
336 MVT::i64, 3, 2, 3, 1,
337 0,
338 80|128,2, TARGET_VAL(ISD::ADD),
339 OPC_Scope, 107,
340 OPC_MoveChild0,
341 OPC_SwitchOpcode , 49, TARGET_VAL(SPISD::Hi),
342 OPC_RecordChild0,
343 OPC_MoveChild0,
344 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
345 OPC_MoveParent,
346 OPC_MoveSibling1,
347 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
348 OPC_RecordChild0,
349 OPC_MoveChild0,
350 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
351 OPC_MoveParent,
352 OPC_MoveParent,
353 OPC_Scope, 14,
354 OPC_CheckPatternPredicate2,
355 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
356 MVT::i32, 1, 0,
357 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
358 MVT::iPTR, 2, 2, 1,
359 14,
360 OPC_CheckPatternPredicate0,
361 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
362 MVT::i32, 1, 0,
363 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
364 MVT::iPTR, 2, 2, 1,
365 0,
366 49, TARGET_VAL(SPISD::Lo),
367 OPC_RecordChild0,
368 OPC_MoveChild0,
369 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
370 OPC_MoveParent,
371 OPC_MoveSibling1,
372 OPC_CheckOpcode, TARGET_VAL(SPISD::Hi),
373 OPC_RecordChild0,
374 OPC_MoveChild0,
375 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
376 OPC_MoveParent,
377 OPC_MoveParent,
378 OPC_Scope, 14,
379 OPC_CheckPatternPredicate2,
380 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
381 MVT::i32, 1, 1,
382 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
383 MVT::iPTR, 2, 2, 0,
384 14,
385 OPC_CheckPatternPredicate0,
386 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
387 MVT::i32, 1, 1,
388 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
389 MVT::iPTR, 2, 2, 0,
390 0,
391 0,
392 84,
393 OPC_RecordChild0,
394 OPC_MoveChild1,
395 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
396 OPC_RecordChild0,
397 OPC_MoveChild0,
398 OPC_SwitchOpcode , 22, TARGET_VAL(ISD::TargetGlobalAddress),
399 OPC_MoveParent,
400 OPC_MoveParent,
401 OPC_Scope, 8,
402 OPC_CheckPatternPredicate2,
403 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
404 MVT::iPTR, 2, 0, 1,
405 8,
406 OPC_CheckPatternPredicate0,
407 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
408 MVT::iPTR, 2, 0, 1,
409 0,
410 22, TARGET_VAL(ISD::TargetConstantPool),
411 OPC_MoveParent,
412 OPC_MoveParent,
413 OPC_Scope, 8,
414 OPC_CheckPatternPredicate2,
415 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
416 MVT::iPTR, 2, 0, 1,
417 8,
418 OPC_CheckPatternPredicate0,
419 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
420 MVT::iPTR, 2, 0, 1,
421 0,
422 22, TARGET_VAL(ISD::TargetBlockAddress),
423 OPC_MoveParent,
424 OPC_MoveParent,
425 OPC_Scope, 8,
426 OPC_CheckPatternPredicate2,
427 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
428 MVT::iPTR, 2, 0, 1,
429 8,
430 OPC_CheckPatternPredicate0,
431 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
432 MVT::iPTR, 2, 0, 1,
433 0,
434 0,
435 86,
436 OPC_MoveChild0,
437 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
438 OPC_RecordChild0,
439 OPC_MoveChild0,
440 OPC_SwitchOpcode , 23, TARGET_VAL(ISD::TargetGlobalAddress),
441 OPC_MoveParent,
442 OPC_MoveParent,
443 OPC_RecordChild1,
444 OPC_Scope, 8,
445 OPC_CheckPatternPredicate2,
446 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
447 MVT::iPTR, 2, 1, 0,
448 8,
449 OPC_CheckPatternPredicate0,
450 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
451 MVT::iPTR, 2, 1, 0,
452 0,
453 23, TARGET_VAL(ISD::TargetConstantPool),
454 OPC_MoveParent,
455 OPC_MoveParent,
456 OPC_RecordChild1,
457 OPC_Scope, 8,
458 OPC_CheckPatternPredicate2,
459 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
460 MVT::iPTR, 2, 1, 0,
461 8,
462 OPC_CheckPatternPredicate0,
463 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
464 MVT::iPTR, 2, 1, 0,
465 0,
466 23, TARGET_VAL(ISD::TargetBlockAddress),
467 OPC_MoveParent,
468 OPC_MoveParent,
469 OPC_RecordChild1,
470 OPC_Scope, 8,
471 OPC_CheckPatternPredicate2,
472 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
473 MVT::iPTR, 2, 1, 0,
474 8,
475 OPC_CheckPatternPredicate0,
476 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
477 MVT::iPTR, 2, 1, 0,
478 0,
479 0,
480 53,
481 OPC_RecordChild0,
482 OPC_RecordChild1,
483 OPC_Scope, 29,
484 OPC_MoveChild1,
485 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
486 OPC_CheckPredicate0,
487 OPC_MoveParent,
488 OPC_SwitchType , 8, MVT::i32,
489 OPC_EmitConvertToTarget1,
490 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
491 MVT::i32, 2, 0, 2,
492 9, MVT::i64,
493 OPC_CheckPatternPredicate0,
494 OPC_EmitConvertToTarget1,
495 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
496 MVT::i64, 2, 0, 2,
497 0,
498 8,
499 OPC_CheckTypeI32,
500 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDrr),
501 MVT::i32, 2, 0, 1,
502 9,
503 OPC_CheckTypeI64,
504 OPC_CheckPatternPredicate0,
505 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDrr),
506 MVT::i64, 2, 0, 1,
507 0,
508 0,
509 12|128,2, TARGET_VAL(ISD::XOR),
510 OPC_Scope, 24|128,1,
511 OPC_MoveChild0,
512 OPC_SwitchOpcode , 49, TARGET_VAL(SPISD::Hi),
513 OPC_RecordChild0,
514 OPC_MoveChild0,
515 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
516 OPC_MoveParent,
517 OPC_MoveSibling1,
518 OPC_CheckOpcode, TARGET_VAL(SPISD::Lo),
519 OPC_RecordChild0,
520 OPC_MoveChild0,
521 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
522 OPC_MoveParent,
523 OPC_MoveParent,
524 OPC_Scope, 14,
525 OPC_CheckPatternPredicate2,
526 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
527 MVT::i32, 1, 0,
528 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
529 MVT::iPTR, 2, 2, 1,
530 14,
531 OPC_CheckPatternPredicate0,
532 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
533 MVT::i32, 1, 0,
534 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
535 MVT::iPTR, 2, 2, 1,
536 0,
537 49, TARGET_VAL(SPISD::Lo),
538 OPC_RecordChild0,
539 OPC_MoveChild0,
540 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
541 OPC_MoveParent,
542 OPC_MoveSibling1,
543 OPC_CheckOpcode, TARGET_VAL(SPISD::Hi),
544 OPC_RecordChild0,
545 OPC_MoveChild0,
546 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
547 OPC_MoveParent,
548 OPC_MoveParent,
549 OPC_Scope, 14,
550 OPC_CheckPatternPredicate2,
551 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
552 MVT::i32, 1, 1,
553 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
554 MVT::iPTR, 2, 2, 0,
555 14,
556 OPC_CheckPatternPredicate0,
557 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
558 MVT::i32, 1, 1,
559 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
560 MVT::iPTR, 2, 2, 0,
561 0,
562 42, TARGET_VAL(ISD::XOR),
563 OPC_RecordChild0,
564 OPC_Scope, 25,
565 OPC_RecordChild1,
566 OPC_MoveParent,
567 OPC_CheckChild1Integer, 3,
568 OPC_SwitchType , 7, MVT::i32,
569 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
570 MVT::i32, 2, 0, 1,
571 8, MVT::i64,
572 OPC_CheckPatternPredicate0,
573 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
574 MVT::i64, 2, 0, 1,
575 0,
576 12,
577 OPC_CheckChild1Integer, 3,
578 OPC_MoveParent,
579 OPC_RecordChild1,
580 OPC_CheckTypeI32,
581 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
582 MVT::i32, 2, 0, 1,
583 0,
584 0,
585 17,
586 OPC_RecordChild0,
587 OPC_MoveChild1,
588 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
589 OPC_RecordChild0,
590 OPC_CheckChild1Integer, 3,
591 OPC_MoveParent,
592 OPC_CheckTypeI32,
593 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
594 MVT::i32, 2, 1, 0,
595 18,
596 OPC_MoveChild0,
597 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
598 OPC_RecordChild0,
599 OPC_CheckChild1Integer, 3,
600 OPC_MoveParent,
601 OPC_RecordChild1,
602 OPC_CheckTypeI64,
603 OPC_CheckPatternPredicate0,
604 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
605 MVT::i64, 2, 0, 1,
606 74,
607 OPC_RecordChild0,
608 OPC_Scope, 17,
609 OPC_MoveChild1,
610 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
611 OPC_RecordChild0,
612 OPC_CheckChild1Integer, 3,
613 OPC_MoveParent,
614 OPC_CheckTypeI64,
615 OPC_CheckPatternPredicate0,
616 OPC_MorphNodeTo1None, TARGET_VAL(SP::XNORrr),
617 MVT::i64, 2, 1, 0,
618 52,
619 OPC_RecordChild1,
620 OPC_Scope, 29,
621 OPC_MoveChild1,
622 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
623 OPC_CheckPredicate0,
624 OPC_MoveParent,
625 OPC_SwitchType , 8, MVT::i32,
626 OPC_EmitConvertToTarget1,
627 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
628 MVT::i32, 2, 0, 2,
629 9, MVT::i64,
630 OPC_CheckPatternPredicate0,
631 OPC_EmitConvertToTarget1,
632 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
633 MVT::i64, 2, 0, 2,
634 0,
635 8,
636 OPC_CheckTypeI32,
637 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORrr),
638 MVT::i32, 2, 0, 1,
639 9,
640 OPC_CheckTypeI64,
641 OPC_CheckPatternPredicate0,
642 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORrr),
643 MVT::i64, 2, 0, 1,
644 0,
645 0,
646 0,
647 65|128,6, TARGET_VAL(ISD::LOAD),
648 OPC_RecordMemRef,
649 OPC_RecordNode,
650 OPC_RecordChild1,
651 OPC_CheckPredicate, 19,
652 OPC_Scope, 61,
653 OPC_CheckPredicate, 8,
654 OPC_CheckTypeI32,
655 OPC_Scope, 27,
656 OPC_CheckPredicate3,
657 OPC_Scope, 11,
658 OPC_CheckComplexPat0, /*#*/1,
659 OPC_EmitMergeInputChains1_0,
660 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBrr), 0|OPFL_Chain|OPFL_MemRefs,
661 MVT::i32, 2, 2, 3,
662 11,
663 OPC_CheckComplexPat1, /*#*/1,
664 OPC_EmitMergeInputChains1_0,
665 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBri), 0|OPFL_Chain|OPFL_MemRefs,
666 MVT::i32, 2, 2, 3,
667 0,
668 27,
669 OPC_CheckPredicate4,
670 OPC_Scope, 11,
671 OPC_CheckComplexPat0, /*#*/1,
672 OPC_EmitMergeInputChains1_0,
673 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHrr), 0|OPFL_Chain|OPFL_MemRefs,
674 MVT::i32, 2, 2, 3,
675 11,
676 OPC_CheckComplexPat1, /*#*/1,
677 OPC_EmitMergeInputChains1_0,
678 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHri), 0|OPFL_Chain|OPFL_MemRefs,
679 MVT::i32, 2, 2, 3,
680 0,
681 0,
682 60,
683 OPC_CheckPredicate6,
684 OPC_CheckTypeI32,
685 OPC_Scope, 27,
686 OPC_CheckPredicate3,
687 OPC_Scope, 11,
688 OPC_CheckComplexPat0, /*#*/1,
689 OPC_EmitMergeInputChains1_0,
690 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
691 MVT::i32, 2, 2, 3,
692 11,
693 OPC_CheckComplexPat1, /*#*/1,
694 OPC_EmitMergeInputChains1_0,
695 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
696 MVT::i32, 2, 2, 3,
697 0,
698 27,
699 OPC_CheckPredicate4,
700 OPC_Scope, 11,
701 OPC_CheckComplexPat0, /*#*/1,
702 OPC_EmitMergeInputChains1_0,
703 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
704 MVT::i32, 2, 2, 3,
705 11,
706 OPC_CheckComplexPat1, /*#*/1,
707 OPC_EmitMergeInputChains1_0,
708 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
709 MVT::i32, 2, 2, 3,
710 0,
711 0,
712 57,
713 OPC_CheckPredicate, 10,
714 OPC_CheckTypeI32,
715 OPC_Scope, 11,
716 OPC_CheckComplexPat0, /*#*/1,
717 OPC_EmitMergeInputChains1_0,
718 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
719 MVT::i32, 2, 2, 3,
720 11,
721 OPC_CheckComplexPat1, /*#*/1,
722 OPC_EmitMergeInputChains1_0,
723 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
724 MVT::i32, 2, 2, 3,
725 27,
726 OPC_CheckPatternPredicate4,
727 OPC_Scope, 11,
728 OPC_CheckComplexPat0, /*#*/1,
729 OPC_EmitMergeInputChains1_0,
730 OPC_MorphNodeTo1, TARGET_VAL(SP::LDCrr), 0|OPFL_Chain|OPFL_MemRefs,
731 MVT::i32, 2, 2, 3,
732 11,
733 OPC_CheckComplexPat1, /*#*/1,
734 OPC_EmitMergeInputChains1_0,
735 OPC_MorphNodeTo1, TARGET_VAL(SP::LDCri), 0|OPFL_Chain|OPFL_MemRefs,
736 MVT::i32, 2, 2, 3,
737 0,
738 0,
739 89,
740 OPC_CheckPredicate7,
741 OPC_CheckTypeI32,
742 OPC_Scope, 28,
743 OPC_CheckPredicate, 9,
744 OPC_Scope, 11,
745 OPC_CheckComplexPat0, /*#*/1,
746 OPC_EmitMergeInputChains1_0,
747 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
748 MVT::i32, 2, 2, 3,
749 11,
750 OPC_CheckComplexPat1, /*#*/1,
751 OPC_EmitMergeInputChains1_0,
752 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
753 MVT::i32, 2, 2, 3,
754 0,
755 27,
756 OPC_CheckPredicate3,
757 OPC_Scope, 11,
758 OPC_CheckComplexPat0, /*#*/1,
759 OPC_EmitMergeInputChains1_0,
760 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
761 MVT::i32, 2, 2, 3,
762 11,
763 OPC_CheckComplexPat1, /*#*/1,
764 OPC_EmitMergeInputChains1_0,
765 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
766 MVT::i32, 2, 2, 3,
767 0,
768 27,
769 OPC_CheckPredicate4,
770 OPC_Scope, 11,
771 OPC_CheckComplexPat0, /*#*/1,
772 OPC_EmitMergeInputChains1_0,
773 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
774 MVT::i32, 2, 2, 3,
775 11,
776 OPC_CheckComplexPat1, /*#*/1,
777 OPC_EmitMergeInputChains1_0,
778 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
779 MVT::i32, 2, 2, 3,
780 0,
781 0,
782 30,
783 OPC_CheckPredicate6,
784 OPC_CheckPredicate, 9,
785 OPC_CheckTypeI32,
786 OPC_Scope, 11,
787 OPC_CheckComplexPat0, /*#*/1,
788 OPC_EmitMergeInputChains1_0,
789 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
790 MVT::i32, 2, 2, 3,
791 11,
792 OPC_CheckComplexPat1, /*#*/1,
793 OPC_EmitMergeInputChains1_0,
794 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
795 MVT::i32, 2, 2, 3,
796 0,
797 30,
798 OPC_CheckPredicate, 10,
799 OPC_CheckTypeI64,
800 OPC_CheckPatternPredicate0,
801 OPC_Scope, 11,
802 OPC_CheckComplexPat0, /*#*/1,
803 OPC_EmitMergeInputChains1_0,
804 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXrr), 0|OPFL_Chain|OPFL_MemRefs,
805 MVT::i64, 2, 2, 3,
806 11,
807 OPC_CheckComplexPat1, /*#*/1,
808 OPC_EmitMergeInputChains1_0,
809 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXri), 0|OPFL_Chain|OPFL_MemRefs,
810 MVT::i64, 2, 2, 3,
811 0,
812 31,
813 OPC_CheckPredicate6,
814 OPC_CheckPredicate, 9,
815 OPC_CheckTypeI64,
816 OPC_CheckPatternPredicate0,
817 OPC_Scope, 11,
818 OPC_CheckComplexPat0, /*#*/1,
819 OPC_EmitMergeInputChains1_0,
820 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
821 MVT::i64, 2, 2, 3,
822 11,
823 OPC_CheckComplexPat1, /*#*/1,
824 OPC_EmitMergeInputChains1_0,
825 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
826 MVT::i64, 2, 2, 3,
827 0,
828 31,
829 OPC_CheckPredicate7,
830 OPC_CheckPredicate, 9,
831 OPC_CheckTypeI64,
832 OPC_CheckPatternPredicate0,
833 OPC_Scope, 11,
834 OPC_CheckComplexPat0, /*#*/1,
835 OPC_EmitMergeInputChains1_0,
836 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
837 MVT::i64, 2, 2, 3,
838 11,
839 OPC_CheckComplexPat1, /*#*/1,
840 OPC_EmitMergeInputChains1_0,
841 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
842 MVT::i64, 2, 2, 3,
843 0,
844 30,
845 OPC_CheckPredicate6,
846 OPC_CheckPredicate3,
847 OPC_CheckTypeI64,
848 OPC_CheckPatternPredicate0,
849 OPC_Scope, 11,
850 OPC_CheckComplexPat0, /*#*/1,
851 OPC_EmitMergeInputChains1_0,
852 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
853 MVT::i64, 2, 2, 3,
854 11,
855 OPC_CheckComplexPat1, /*#*/1,
856 OPC_EmitMergeInputChains1_0,
857 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
858 MVT::i64, 2, 2, 3,
859 0,
860 30,
861 OPC_CheckPredicate7,
862 OPC_CheckPredicate3,
863 OPC_CheckTypeI64,
864 OPC_CheckPatternPredicate0,
865 OPC_Scope, 11,
866 OPC_CheckComplexPat0, /*#*/1,
867 OPC_EmitMergeInputChains1_0,
868 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
869 MVT::i64, 2, 2, 3,
870 11,
871 OPC_CheckComplexPat1, /*#*/1,
872 OPC_EmitMergeInputChains1_0,
873 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
874 MVT::i64, 2, 2, 3,
875 0,
876 31,
877 OPC_CheckPredicate, 8,
878 OPC_CheckPredicate3,
879 OPC_CheckTypeI64,
880 OPC_CheckPatternPredicate0,
881 OPC_Scope, 11,
882 OPC_CheckComplexPat0, /*#*/1,
883 OPC_EmitMergeInputChains1_0,
884 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBrr), 0|OPFL_Chain|OPFL_MemRefs,
885 MVT::i64, 2, 2, 3,
886 11,
887 OPC_CheckComplexPat1, /*#*/1,
888 OPC_EmitMergeInputChains1_0,
889 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSBri), 0|OPFL_Chain|OPFL_MemRefs,
890 MVT::i64, 2, 2, 3,
891 0,
892 30,
893 OPC_CheckPredicate6,
894 OPC_CheckPredicate4,
895 OPC_CheckTypeI64,
896 OPC_CheckPatternPredicate0,
897 OPC_Scope, 11,
898 OPC_CheckComplexPat0, /*#*/1,
899 OPC_EmitMergeInputChains1_0,
900 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
901 MVT::i64, 2, 2, 3,
902 11,
903 OPC_CheckComplexPat1, /*#*/1,
904 OPC_EmitMergeInputChains1_0,
905 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
906 MVT::i64, 2, 2, 3,
907 0,
908 30,
909 OPC_CheckPredicate7,
910 OPC_CheckPredicate4,
911 OPC_CheckTypeI64,
912 OPC_CheckPatternPredicate0,
913 OPC_Scope, 11,
914 OPC_CheckComplexPat0, /*#*/1,
915 OPC_EmitMergeInputChains1_0,
916 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
917 MVT::i64, 2, 2, 3,
918 11,
919 OPC_CheckComplexPat1, /*#*/1,
920 OPC_EmitMergeInputChains1_0,
921 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
922 MVT::i64, 2, 2, 3,
923 0,
924 31,
925 OPC_CheckPredicate, 8,
926 OPC_CheckPredicate4,
927 OPC_CheckTypeI64,
928 OPC_CheckPatternPredicate0,
929 OPC_Scope, 11,
930 OPC_CheckComplexPat0, /*#*/1,
931 OPC_EmitMergeInputChains1_0,
932 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHrr), 0|OPFL_Chain|OPFL_MemRefs,
933 MVT::i64, 2, 2, 3,
934 11,
935 OPC_CheckComplexPat1, /*#*/1,
936 OPC_EmitMergeInputChains1_0,
937 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSHri), 0|OPFL_Chain|OPFL_MemRefs,
938 MVT::i64, 2, 2, 3,
939 0,
940 30,
941 OPC_CheckPredicate6,
942 OPC_CheckPredicate5,
943 OPC_CheckTypeI64,
944 OPC_CheckPatternPredicate0,
945 OPC_Scope, 11,
946 OPC_CheckComplexPat0, /*#*/1,
947 OPC_EmitMergeInputChains1_0,
948 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
949 MVT::i64, 2, 2, 3,
950 11,
951 OPC_CheckComplexPat1, /*#*/1,
952 OPC_EmitMergeInputChains1_0,
953 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
954 MVT::i64, 2, 2, 3,
955 0,
956 30,
957 OPC_CheckPredicate7,
958 OPC_CheckPredicate5,
959 OPC_CheckTypeI64,
960 OPC_CheckPatternPredicate0,
961 OPC_Scope, 11,
962 OPC_CheckComplexPat0, /*#*/1,
963 OPC_EmitMergeInputChains1_0,
964 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
965 MVT::i64, 2, 2, 3,
966 11,
967 OPC_CheckComplexPat1, /*#*/1,
968 OPC_EmitMergeInputChains1_0,
969 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
970 MVT::i64, 2, 2, 3,
971 0,
972 31,
973 OPC_CheckPredicate, 8,
974 OPC_CheckPredicate5,
975 OPC_CheckTypeI64,
976 OPC_CheckPatternPredicate0,
977 OPC_Scope, 11,
978 OPC_CheckComplexPat0, /*#*/1,
979 OPC_EmitMergeInputChains1_0,
980 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWrr), 0|OPFL_Chain|OPFL_MemRefs,
981 MVT::i64, 2, 2, 3,
982 11,
983 OPC_CheckComplexPat1, /*#*/1,
984 OPC_EmitMergeInputChains1_0,
985 OPC_MorphNodeTo1, TARGET_VAL(SP::LDSWri), 0|OPFL_Chain|OPFL_MemRefs,
986 MVT::i64, 2, 2, 3,
987 0,
988 17|128,1,
989 OPC_CheckPredicate, 10,
990 OPC_SwitchType , 26, MVT::f32,
991 OPC_Scope, 11,
992 OPC_CheckComplexPat0, /*#*/1,
993 OPC_EmitMergeInputChains1_0,
994 OPC_MorphNodeTo1, TARGET_VAL(SP::LDFrr), 0|OPFL_Chain|OPFL_MemRefs,
995 MVT::f32, 2, 2, 3,
996 11,
997 OPC_CheckComplexPat1, /*#*/1,
998 OPC_EmitMergeInputChains1_0,
999 OPC_MorphNodeTo1, TARGET_VAL(SP::LDFri), 0|OPFL_Chain|OPFL_MemRefs,
1000 MVT::f32, 2, 2, 3,
1001 0,
1002 26, MVT::f64,
1003 OPC_Scope, 11,
1004 OPC_CheckComplexPat0, /*#*/1,
1005 OPC_EmitMergeInputChains1_0,
1006 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDFrr), 0|OPFL_Chain|OPFL_MemRefs,
1007 MVT::f64, 2, 2, 3,
1008 11,
1009 OPC_CheckComplexPat1, /*#*/1,
1010 OPC_EmitMergeInputChains1_0,
1011 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDFri), 0|OPFL_Chain|OPFL_MemRefs,
1012 MVT::f64, 2, 2, 3,
1013 0,
1014 27, MVT::f128,
1015 OPC_CheckPatternPredicate1,
1016 OPC_Scope, 11,
1017 OPC_CheckComplexPat0, /*#*/1,
1018 OPC_EmitMergeInputChains1_0,
1019 OPC_MorphNodeTo1, TARGET_VAL(SP::LDQFrr), 0|OPFL_Chain|OPFL_MemRefs,
1020 MVT::f128, 2, 2, 3,
1021 11,
1022 OPC_CheckComplexPat1, /*#*/1,
1023 OPC_EmitMergeInputChains1_0,
1024 OPC_MorphNodeTo1, TARGET_VAL(SP::LDQFri), 0|OPFL_Chain|OPFL_MemRefs,
1025 MVT::f128, 2, 2, 3,
1026 0,
1027 54, MVT::v2i32,
1028 OPC_Scope, 11,
1029 OPC_CheckComplexPat0, /*#*/1,
1030 OPC_EmitMergeInputChains1_0,
1031 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDrr), 0|OPFL_Chain|OPFL_MemRefs,
1032 MVT::v2i32, 2, 2, 3,
1033 11,
1034 OPC_CheckComplexPat1, /*#*/1,
1035 OPC_EmitMergeInputChains1_0,
1036 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDri), 0|OPFL_Chain|OPFL_MemRefs,
1037 MVT::v2i32, 2, 2, 3,
1038 27,
1039 OPC_CheckPatternPredicate4,
1040 OPC_Scope, 11,
1041 OPC_CheckComplexPat0, /*#*/1,
1042 OPC_EmitMergeInputChains1_0,
1043 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDCrr), 0|OPFL_Chain|OPFL_MemRefs,
1044 MVT::v2i32, 2, 2, 3,
1045 11,
1046 OPC_CheckComplexPat1, /*#*/1,
1047 OPC_EmitMergeInputChains1_0,
1048 OPC_MorphNodeTo1, TARGET_VAL(SP::LDDCri), 0|OPFL_Chain|OPFL_MemRefs,
1049 MVT::v2i32, 2, 2, 3,
1050 0,
1051 0,
1052 0,
1053 0,
1054 34, TARGET_VAL(ISD::ATOMIC_SWAP),
1055 OPC_RecordMemRef,
1056 OPC_RecordNode,
1057 OPC_RecordChild1,
1058 OPC_RecordChild2,
1059 OPC_CheckPredicate5,
1060 OPC_CheckTypeI32,
1061 OPC_Scope, 12,
1062 OPC_CheckComplexPat0, /*#*/1,
1063 OPC_EmitMergeInputChains1_0,
1064 OPC_MorphNodeTo1, TARGET_VAL(SP::SWAPrr), 0|OPFL_Chain|OPFL_MemRefs,
1065 MVT::i32, 3, 3, 4, 2,
1066 12,
1067 OPC_CheckComplexPat1, /*#*/1,
1068 OPC_EmitMergeInputChains1_0,
1069 OPC_MorphNodeTo1, TARGET_VAL(SP::SWAPri), 0|OPFL_Chain|OPFL_MemRefs,
1070 MVT::i32, 3, 3, 4, 2,
1071 0,
1072 124, TARGET_VAL(ISD::ATOMIC_LOAD),
1073 OPC_RecordMemRef,
1074 OPC_RecordNode,
1075 OPC_RecordChild1,
1076 OPC_SwitchType , 86, MVT::i32,
1077 OPC_Scope, 27,
1078 OPC_CheckPredicate3,
1079 OPC_Scope, 11,
1080 OPC_CheckComplexPat0, /*#*/1,
1081 OPC_EmitMergeInputChains1_0,
1082 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBrr), 0|OPFL_Chain|OPFL_MemRefs,
1083 MVT::i32, 2, 2, 3,
1084 11,
1085 OPC_CheckComplexPat1, /*#*/1,
1086 OPC_EmitMergeInputChains1_0,
1087 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUBri), 0|OPFL_Chain|OPFL_MemRefs,
1088 MVT::i32, 2, 2, 3,
1089 0,
1090 27,
1091 OPC_CheckPredicate4,
1092 OPC_Scope, 11,
1093 OPC_CheckComplexPat0, /*#*/1,
1094 OPC_EmitMergeInputChains1_0,
1095 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHrr), 0|OPFL_Chain|OPFL_MemRefs,
1096 MVT::i32, 2, 2, 3,
1097 11,
1098 OPC_CheckComplexPat1, /*#*/1,
1099 OPC_EmitMergeInputChains1_0,
1100 OPC_MorphNodeTo1, TARGET_VAL(SP::LDUHri), 0|OPFL_Chain|OPFL_MemRefs,
1101 MVT::i32, 2, 2, 3,
1102 0,
1103 27,
1104 OPC_CheckPredicate5,
1105 OPC_Scope, 11,
1106 OPC_CheckComplexPat0, /*#*/1,
1107 OPC_EmitMergeInputChains1_0,
1108 OPC_MorphNodeTo1, TARGET_VAL(SP::LDrr), 0|OPFL_Chain|OPFL_MemRefs,
1109 MVT::i32, 2, 2, 3,
1110 11,
1111 OPC_CheckComplexPat1, /*#*/1,
1112 OPC_EmitMergeInputChains1_0,
1113 OPC_MorphNodeTo1, TARGET_VAL(SP::LDri), 0|OPFL_Chain|OPFL_MemRefs,
1114 MVT::i32, 2, 2, 3,
1115 0,
1116 0,
1117 29, MVT::i64,
1118 OPC_CheckPredicate, 11,
1119 OPC_CheckPatternPredicate0,
1120 OPC_Scope, 11,
1121 OPC_CheckComplexPat0, /*#*/1,
1122 OPC_EmitMergeInputChains1_0,
1123 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXrr), 0|OPFL_Chain|OPFL_MemRefs,
1124 MVT::i64, 2, 2, 3,
1125 11,
1126 OPC_CheckComplexPat1, /*#*/1,
1127 OPC_EmitMergeInputChains1_0,
1128 OPC_MorphNodeTo1, TARGET_VAL(SP::LDXri), 0|OPFL_Chain|OPFL_MemRefs,
1129 MVT::i64, 2, 2, 3,
1130 0,
1131 0,
1132 126, TARGET_VAL(ISD::ATOMIC_STORE),
1133 OPC_RecordMemRef,
1134 OPC_RecordNode,
1135 OPC_RecordChild1,
1136 OPC_Scope, 88,
1137 OPC_CheckChild1TypeI32,
1138 OPC_RecordChild2,
1139 OPC_Scope, 27,
1140 OPC_CheckPredicate3,
1141 OPC_Scope, 11,
1142 OPC_CheckComplexPat0, /*#*/2,
1143 OPC_EmitMergeInputChains1_0,
1144 OPC_MorphNodeTo0, TARGET_VAL(SP::STBrr), 0|OPFL_Chain|OPFL_MemRefs,
1145 3, 3, 4, 1,
1146 11,
1147 OPC_CheckComplexPat1, /*#*/2,
1148 OPC_EmitMergeInputChains1_0,
1149 OPC_MorphNodeTo0, TARGET_VAL(SP::STBri), 0|OPFL_Chain|OPFL_MemRefs,
1150 3, 3, 4, 1,
1151 0,
1152 27,
1153 OPC_CheckPredicate4,
1154 OPC_Scope, 11,
1155 OPC_CheckComplexPat0, /*#*/2,
1156 OPC_EmitMergeInputChains1_0,
1157 OPC_MorphNodeTo0, TARGET_VAL(SP::STHrr), 0|OPFL_Chain|OPFL_MemRefs,
1158 3, 3, 4, 1,
1159 11,
1160 OPC_CheckComplexPat1, /*#*/2,
1161 OPC_EmitMergeInputChains1_0,
1162 OPC_MorphNodeTo0, TARGET_VAL(SP::STHri), 0|OPFL_Chain|OPFL_MemRefs,
1163 3, 3, 4, 1,
1164 0,
1165 27,
1166 OPC_CheckPredicate5,
1167 OPC_Scope, 11,
1168 OPC_CheckComplexPat0, /*#*/2,
1169 OPC_EmitMergeInputChains1_0,
1170 OPC_MorphNodeTo0, TARGET_VAL(SP::STrr), 0|OPFL_Chain|OPFL_MemRefs,
1171 3, 3, 4, 1,
1172 11,
1173 OPC_CheckComplexPat1, /*#*/2,
1174 OPC_EmitMergeInputChains1_0,
1175 OPC_MorphNodeTo0, TARGET_VAL(SP::STri), 0|OPFL_Chain|OPFL_MemRefs,
1176 3, 3, 4, 1,
1177 0,
1178 0,
1179 31,
1180 OPC_CheckChild1TypeI64,
1181 OPC_RecordChild2,
1182 OPC_CheckPredicate, 11,
1183 OPC_CheckPatternPredicate0,
1184 OPC_Scope, 11,
1185 OPC_CheckComplexPat0, /*#*/2,
1186 OPC_EmitMergeInputChains1_0,
1187 OPC_MorphNodeTo0, TARGET_VAL(SP::STXrr), 0|OPFL_Chain|OPFL_MemRefs,
1188 3, 3, 4, 1,
1189 11,
1190 OPC_CheckComplexPat1, /*#*/2,
1191 OPC_EmitMergeInputChains1_0,
1192 OPC_MorphNodeTo0, TARGET_VAL(SP::STXri), 0|OPFL_Chain|OPFL_MemRefs,
1193 3, 3, 4, 1,
1194 0,
1195 0,
1196 24, TARGET_VAL(ISD::BRIND),
1197 OPC_RecordNode,
1198 OPC_RecordChild1,
1199 OPC_Scope, 9,
1200 OPC_CheckComplexPat0, /*#*/1,
1201 OPC_EmitMergeInputChains1_0,
1202 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BINDrr),
1203 2, 2, 3,
1204 9,
1205 OPC_CheckComplexPat1, /*#*/1,
1206 OPC_EmitMergeInputChains1_0,
1207 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BINDri),
1208 2, 2, 3,
1209 0,
1210 53, TARGET_VAL(SPISD::CALL),
1211 OPC_RecordNode,
1212 OPC_CaptureGlueInput,
1213 OPC_RecordChild1,
1214 OPC_Scope, 10,
1215 OPC_CheckComplexPat0, /*#*/1,
1216 OPC_EmitMergeInputChains1_0,
1217 OPC_MorphNodeTo0, TARGET_VAL(SP::CALLrr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1218 2, 2, 3,
1219 10,
1220 OPC_CheckComplexPat1, /*#*/1,
1221 OPC_EmitMergeInputChains1_0,
1222 OPC_MorphNodeTo0, TARGET_VAL(SP::CALLri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1223 2, 2, 3,
1224 25,
1225 OPC_MoveChild1,
1226 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
1227 OPC_MoveParent,
1228 OPC_EmitMergeInputChains1_0,
1229 OPC_MorphNodeTo0, TARGET_VAL(SP::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1230 1, 1,
1231 8, TARGET_VAL(ISD::TargetExternalSymbol),
1232 OPC_MoveParent,
1233 OPC_EmitMergeInputChains1_0,
1234 OPC_MorphNodeTo0, TARGET_VAL(SP::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1235 1, 1,
1236 0,
1237 0,
1238 42, TARGET_VAL(SPISD::TAIL_CALL),
1239 OPC_RecordNode,
1240 OPC_CaptureGlueInput,
1241 OPC_RecordChild1,
1242 OPC_Scope, 10,
1243 OPC_CheckComplexPat1, /*#*/1,
1244 OPC_EmitMergeInputChains1_0,
1245 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALLri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1246 2, 2, 3,
1247 25,
1248 OPC_MoveChild1,
1249 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
1250 OPC_MoveParent,
1251 OPC_EmitMergeInputChains1_0,
1252 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1253 1, 1,
1254 8, TARGET_VAL(ISD::TargetExternalSymbol),
1255 OPC_MoveParent,
1256 OPC_EmitMergeInputChains1_0,
1257 OPC_MorphNodeTo0, TARGET_VAL(SP::TAIL_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1258 1, 1,
1259 0,
1260 0,
1261 34|128,1, TARGET_VAL(ISD::AND),
1262 OPC_Scope, 30,
1263 OPC_RecordChild0,
1264 OPC_MoveChild1,
1265 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1266 OPC_RecordChild0,
1267 OPC_CheckChild1Integer, 3,
1268 OPC_MoveParent,
1269 OPC_SwitchType , 7, MVT::i32,
1270 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1271 MVT::i32, 2, 0, 1,
1272 8, MVT::i64,
1273 OPC_CheckPatternPredicate0,
1274 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1275 MVT::i64, 2, 0, 1,
1276 0,
1277 30,
1278 OPC_MoveChild0,
1279 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1280 OPC_RecordChild0,
1281 OPC_CheckChild1Integer, 3,
1282 OPC_MoveParent,
1283 OPC_RecordChild1,
1284 OPC_SwitchType , 7, MVT::i32,
1285 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1286 MVT::i32, 2, 1, 0,
1287 8, MVT::i64,
1288 OPC_CheckPatternPredicate0,
1289 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1290 MVT::i64, 2, 1, 0,
1291 0,
1292 18,
1293 OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15,
1294 OPC_RecordChild0,
1295 OPC_CheckTypeI64,
1296 OPC_CheckPatternPredicate0,
1297 OPC_EmitInteger32, 0,
1298 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
1299 MVT::i64, 2, 0, 1,
1300 78,
1301 OPC_RecordChild0,
1302 OPC_RecordChild1,
1303 OPC_Scope, 54,
1304 OPC_MoveChild1,
1305 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1306 OPC_Scope, 25,
1307 OPC_CheckPredicate0,
1308 OPC_MoveParent,
1309 OPC_SwitchType , 8, MVT::i32,
1310 OPC_EmitConvertToTarget1,
1311 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDri),
1312 MVT::i32, 2, 0, 2,
1313 9, MVT::i64,
1314 OPC_CheckPatternPredicate0,
1315 OPC_EmitConvertToTarget1,
1316 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDri),
1317 MVT::i64, 2, 0, 2,
1318 0,
1319 21,
1320 OPC_CheckPredicate, 16,
1321 OPC_MoveParent,
1322 OPC_CheckTypeI32,
1323 OPC_EmitConvertToTarget1,
1324 OPC_EmitNodeXForm, 0, 2,
1325 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
1326 MVT::i32, 1, 3,
1327 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDNrr),
1328 MVT::i32, 2, 0, 4,
1329 0,
1330 8,
1331 OPC_CheckTypeI32,
1332 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDrr),
1333 MVT::i32, 2, 0, 1,
1334 9,
1335 OPC_CheckTypeI64,
1336 OPC_CheckPatternPredicate0,
1337 OPC_MorphNodeTo1None, TARGET_VAL(SP::ANDrr),
1338 MVT::i64, 2, 0, 1,
1339 0,
1340 0,
1341 15|128,1, TARGET_VAL(ISD::OR),
1342 OPC_Scope, 30,
1343 OPC_RecordChild0,
1344 OPC_MoveChild1,
1345 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1346 OPC_RecordChild0,
1347 OPC_CheckChild1Integer, 3,
1348 OPC_MoveParent,
1349 OPC_SwitchType , 7, MVT::i32,
1350 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1351 MVT::i32, 2, 0, 1,
1352 8, MVT::i64,
1353 OPC_CheckPatternPredicate0,
1354 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1355 MVT::i64, 2, 0, 1,
1356 0,
1357 30,
1358 OPC_MoveChild0,
1359 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1360 OPC_RecordChild0,
1361 OPC_CheckChild1Integer, 3,
1362 OPC_MoveParent,
1363 OPC_RecordChild1,
1364 OPC_SwitchType , 7, MVT::i32,
1365 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1366 MVT::i32, 2, 1, 0,
1367 8, MVT::i64,
1368 OPC_CheckPatternPredicate0,
1369 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1370 MVT::i64, 2, 1, 0,
1371 0,
1372 78,
1373 OPC_RecordChild0,
1374 OPC_RecordChild1,
1375 OPC_Scope, 54,
1376 OPC_MoveChild1,
1377 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1378 OPC_Scope, 25,
1379 OPC_CheckPredicate0,
1380 OPC_MoveParent,
1381 OPC_SwitchType , 8, MVT::i32,
1382 OPC_EmitConvertToTarget1,
1383 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
1384 MVT::i32, 2, 0, 2,
1385 9, MVT::i64,
1386 OPC_CheckPatternPredicate0,
1387 OPC_EmitConvertToTarget1,
1388 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
1389 MVT::i64, 2, 0, 2,
1390 0,
1391 21,
1392 OPC_CheckPredicate, 16,
1393 OPC_MoveParent,
1394 OPC_CheckTypeI32,
1395 OPC_EmitConvertToTarget1,
1396 OPC_EmitNodeXForm, 0, 2,
1397 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
1398 MVT::i32, 1, 3,
1399 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORNrr),
1400 MVT::i32, 2, 0, 4,
1401 0,
1402 8,
1403 OPC_CheckTypeI32,
1404 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
1405 MVT::i32, 2, 0, 1,
1406 9,
1407 OPC_CheckTypeI64,
1408 OPC_CheckPatternPredicate0,
1409 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
1410 MVT::i64, 2, 0, 1,
1411 0,
1412 0,
1413 43|128,1, TARGET_VAL(SPISD::SELECT_ICC),
1414 OPC_CaptureGlueInput,
1415 OPC_RecordChild0,
1416 OPC_Scope, 44,
1417 OPC_MoveChild0,
1418 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1419 OPC_CheckPredicate, 12,
1420 OPC_MoveParent,
1421 OPC_RecordChild1,
1422 OPC_RecordChild2,
1423 OPC_MoveChild2,
1424 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1425 OPC_MoveParent,
1426 OPC_SwitchType , 11, MVT::i32,
1427 OPC_CheckPatternPredicate1,
1428 OPC_EmitConvertToTarget0,
1429 OPC_EmitConvertToTarget2,
1430 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCri),
1431 MVT::i32, 3, 3, 1, 4,
1432 13, MVT::i64,
1433 OPC_CheckPatternPredicate0,
1434 OPC_EmitNodeXForm, 1, 0,
1435 OPC_EmitConvertToTarget2,
1436 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCri),
1437 MVT::i64, 3, 3, 1, 4,
1438 0,
1439 121,
1440 OPC_RecordChild1,
1441 OPC_RecordChild2,
1442 OPC_MoveChild2,
1443 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1444 OPC_MoveParent,
1445 OPC_SwitchType , 23, MVT::i32,
1446 OPC_Scope, 10,
1447 OPC_CheckPatternPredicate1,
1448 OPC_EmitConvertToTarget2,
1449 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCrr),
1450 MVT::i32, 3, 0, 1, 3,
1451 9,
1452 OPC_EmitConvertToTarget2,
1453 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_ICC),
1454 MVT::i32, 3, 0, 1, 3,
1455 0,
1456 10, MVT::i64,
1457 OPC_CheckPatternPredicate0,
1458 OPC_EmitConvertToTarget2,
1459 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVICCrr),
1460 MVT::i64, 3, 0, 1, 3,
1461 23, MVT::f32,
1462 OPC_Scope, 10,
1463 OPC_CheckPatternPredicate1,
1464 OPC_EmitConvertToTarget2,
1465 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_ICC),
1466 MVT::f32, 3, 0, 1, 3,
1467 9,
1468 OPC_EmitConvertToTarget2,
1469 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_ICC),
1470 MVT::f32, 3, 0, 1, 3,
1471 0,
1472 23, MVT::f64,
1473 OPC_Scope, 10,
1474 OPC_CheckPatternPredicate1,
1475 OPC_EmitConvertToTarget2,
1476 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_ICC),
1477 MVT::f64, 3, 0, 1, 3,
1478 9,
1479 OPC_EmitConvertToTarget2,
1480 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_ICC),
1481 MVT::f64, 3, 0, 1, 3,
1482 0,
1483 23, MVT::f128,
1484 OPC_Scope, 10,
1485 OPC_CheckPatternPredicate5,
1486 OPC_EmitConvertToTarget2,
1487 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_ICC),
1488 MVT::f128, 3, 0, 1, 3,
1489 9,
1490 OPC_EmitConvertToTarget2,
1491 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_ICC),
1492 MVT::f128, 3, 0, 1, 3,
1493 0,
1494 0,
1495 0,
1496 43|128,1, TARGET_VAL(SPISD::SELECT_FCC),
1497 OPC_CaptureGlueInput,
1498 OPC_RecordChild0,
1499 OPC_Scope, 44,
1500 OPC_MoveChild0,
1501 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1502 OPC_CheckPredicate, 12,
1503 OPC_MoveParent,
1504 OPC_RecordChild1,
1505 OPC_RecordChild2,
1506 OPC_MoveChild2,
1507 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1508 OPC_MoveParent,
1509 OPC_SwitchType , 11, MVT::i32,
1510 OPC_CheckPatternPredicate1,
1511 OPC_EmitConvertToTarget0,
1512 OPC_EmitConvertToTarget2,
1513 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCri),
1514 MVT::i32, 3, 3, 1, 4,
1515 13, MVT::i64,
1516 OPC_CheckPatternPredicate0,
1517 OPC_EmitNodeXForm, 1, 0,
1518 OPC_EmitConvertToTarget2,
1519 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCri),
1520 MVT::i64, 3, 3, 1, 4,
1521 0,
1522 121,
1523 OPC_RecordChild1,
1524 OPC_RecordChild2,
1525 OPC_MoveChild2,
1526 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1527 OPC_MoveParent,
1528 OPC_SwitchType , 23, MVT::i32,
1529 OPC_Scope, 10,
1530 OPC_CheckPatternPredicate1,
1531 OPC_EmitConvertToTarget2,
1532 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCrr),
1533 MVT::i32, 3, 0, 1, 3,
1534 9,
1535 OPC_EmitConvertToTarget2,
1536 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_FCC),
1537 MVT::i32, 3, 0, 1, 3,
1538 0,
1539 10, MVT::i64,
1540 OPC_CheckPatternPredicate0,
1541 OPC_EmitConvertToTarget2,
1542 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVFCCrr),
1543 MVT::i64, 3, 0, 1, 3,
1544 23, MVT::f32,
1545 OPC_Scope, 10,
1546 OPC_CheckPatternPredicate1,
1547 OPC_EmitConvertToTarget2,
1548 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_FCC),
1549 MVT::f32, 3, 0, 1, 3,
1550 9,
1551 OPC_EmitConvertToTarget2,
1552 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_FCC),
1553 MVT::f32, 3, 0, 1, 3,
1554 0,
1555 23, MVT::f64,
1556 OPC_Scope, 10,
1557 OPC_CheckPatternPredicate1,
1558 OPC_EmitConvertToTarget2,
1559 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_FCC),
1560 MVT::f64, 3, 0, 1, 3,
1561 9,
1562 OPC_EmitConvertToTarget2,
1563 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_FCC),
1564 MVT::f64, 3, 0, 1, 3,
1565 0,
1566 23, MVT::f128,
1567 OPC_Scope, 10,
1568 OPC_CheckPatternPredicate5,
1569 OPC_EmitConvertToTarget2,
1570 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_FCC),
1571 MVT::f128, 3, 0, 1, 3,
1572 9,
1573 OPC_EmitConvertToTarget2,
1574 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_FCC),
1575 MVT::f128, 3, 0, 1, 3,
1576 0,
1577 0,
1578 0,
1579 43|128,1, TARGET_VAL(SPISD::SELECT_XCC),
1580 OPC_CaptureGlueInput,
1581 OPC_RecordChild0,
1582 OPC_Scope, 44,
1583 OPC_MoveChild0,
1584 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1585 OPC_CheckPredicate, 12,
1586 OPC_MoveParent,
1587 OPC_RecordChild1,
1588 OPC_RecordChild2,
1589 OPC_MoveChild2,
1590 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1591 OPC_MoveParent,
1592 OPC_SwitchType , 11, MVT::i32,
1593 OPC_CheckPatternPredicate0,
1594 OPC_EmitConvertToTarget0,
1595 OPC_EmitConvertToTarget2,
1596 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCri),
1597 MVT::i32, 3, 3, 1, 4,
1598 13, MVT::i64,
1599 OPC_CheckPatternPredicate0,
1600 OPC_EmitNodeXForm, 1, 0,
1601 OPC_EmitConvertToTarget2,
1602 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCri),
1603 MVT::i64, 3, 3, 1, 4,
1604 0,
1605 121,
1606 OPC_RecordChild1,
1607 OPC_RecordChild2,
1608 OPC_MoveChild2,
1609 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1610 OPC_MoveParent,
1611 OPC_SwitchType , 23, MVT::i32,
1612 OPC_Scope, 10,
1613 OPC_CheckPatternPredicate0,
1614 OPC_EmitConvertToTarget2,
1615 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCrr),
1616 MVT::i32, 3, 0, 1, 3,
1617 9,
1618 OPC_EmitConvertToTarget2,
1619 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_Int_XCC),
1620 MVT::i32, 3, 0, 1, 3,
1621 0,
1622 10, MVT::i64,
1623 OPC_CheckPatternPredicate0,
1624 OPC_EmitConvertToTarget2,
1625 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVXCCrr),
1626 MVT::i64, 3, 0, 1, 3,
1627 23, MVT::f32,
1628 OPC_Scope, 10,
1629 OPC_CheckPatternPredicate0,
1630 OPC_EmitConvertToTarget2,
1631 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVS_XCC),
1632 MVT::f32, 3, 0, 1, 3,
1633 9,
1634 OPC_EmitConvertToTarget2,
1635 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_FP_XCC),
1636 MVT::f32, 3, 0, 1, 3,
1637 0,
1638 23, MVT::f64,
1639 OPC_Scope, 10,
1640 OPC_CheckPatternPredicate0,
1641 OPC_EmitConvertToTarget2,
1642 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVD_XCC),
1643 MVT::f64, 3, 0, 1, 3,
1644 9,
1645 OPC_EmitConvertToTarget2,
1646 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_DFP_XCC),
1647 MVT::f64, 3, 0, 1, 3,
1648 0,
1649 23, MVT::f128,
1650 OPC_Scope, 10,
1651 OPC_CheckPatternPredicate6,
1652 OPC_EmitConvertToTarget2,
1653 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVQ_XCC),
1654 MVT::f128, 3, 0, 1, 3,
1655 9,
1656 OPC_EmitConvertToTarget2,
1657 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::SELECT_CC_QFP_XCC),
1658 MVT::f128, 3, 0, 1, 3,
1659 0,
1660 0,
1661 0,
1662 0|128,1, TARGET_VAL(SPISD::SELECT_REG),
1663 OPC_CaptureGlueInput,
1664 OPC_RecordChild0,
1665 OPC_Scope, 47,
1666 OPC_MoveChild0,
1667 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1668 OPC_CheckPredicate, 20,
1669 OPC_MoveParent,
1670 OPC_RecordChild1,
1671 OPC_RecordChild2,
1672 OPC_MoveChild2,
1673 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1674 OPC_MoveParent,
1675 OPC_RecordChild3,
1676 OPC_SwitchType , 12, MVT::i32,
1677 OPC_CheckPatternPredicate0,
1678 OPC_EmitConvertToTarget0,
1679 OPC_EmitConvertToTarget2,
1680 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVRri),
1681 MVT::i32, 4, 3, 4, 1, 5,
1682 14, MVT::i64,
1683 OPC_CheckPatternPredicate0,
1684 OPC_EmitNodeXForm, 1, 0,
1685 OPC_EmitConvertToTarget2,
1686 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVRri),
1687 MVT::i64, 4, 3, 4, 1, 5,
1688 0,
1689 75,
1690 OPC_RecordChild1,
1691 OPC_RecordChild2,
1692 OPC_MoveChild2,
1693 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1694 OPC_MoveParent,
1695 OPC_RecordChild3,
1696 OPC_SwitchType , 11, MVT::i32,
1697 OPC_CheckPatternPredicate0,
1698 OPC_EmitConvertToTarget2,
1699 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVRrr),
1700 MVT::i32, 4, 3, 0, 1, 4,
1701 11, MVT::i64,
1702 OPC_CheckPatternPredicate0,
1703 OPC_EmitConvertToTarget2,
1704 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::MOVRrr),
1705 MVT::i64, 4, 3, 0, 1, 4,
1706 11, MVT::f32,
1707 OPC_CheckPatternPredicate0,
1708 OPC_EmitConvertToTarget2,
1709 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVRS),
1710 MVT::f32, 4, 3, 0, 1, 4,
1711 11, MVT::f64,
1712 OPC_CheckPatternPredicate0,
1713 OPC_EmitConvertToTarget2,
1714 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVRD),
1715 MVT::f64, 4, 3, 0, 1, 4,
1716 11, MVT::f128,
1717 OPC_CheckPatternPredicate3,
1718 OPC_EmitConvertToTarget2,
1719 OPC_MorphNodeTo1GlueInput, TARGET_VAL(SP::FMOVRQ),
1720 MVT::f128, 4, 3, 0, 1, 4,
1721 0,
1722 0,
1723 20, TARGET_VAL(ISD::CALLSEQ_START),
1724 OPC_RecordNode,
1725 OPC_RecordChild1,
1726 OPC_MoveChild1,
1727 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1728 OPC_MoveSibling2,
1729 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1730 OPC_RecordNode,
1731 OPC_MoveParent,
1732 OPC_EmitMergeInputChains1_0,
1733 OPC_MorphNodeTo0, TARGET_VAL(SP::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
1734 2, 1, 2,
1735 21, TARGET_VAL(ISD::CALLSEQ_END),
1736 OPC_RecordNode,
1737 OPC_CaptureGlueInput,
1738 OPC_RecordChild1,
1739 OPC_MoveChild1,
1740 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1741 OPC_MoveSibling2,
1742 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1743 OPC_RecordNode,
1744 OPC_MoveParent,
1745 OPC_EmitMergeInputChains1_0,
1746 OPC_MorphNodeTo0, TARGET_VAL(SP::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1747 2, 1, 2,
1748 21, TARGET_VAL(SPISD::TLS_CALL),
1749 OPC_RecordNode,
1750 OPC_CaptureGlueInput,
1751 OPC_RecordChild1,
1752 OPC_MoveChild1,
1753 OPC_CheckOpcode, TARGET_VAL(ISD::TargetExternalSymbol),
1754 OPC_MoveSibling2,
1755 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
1756 OPC_RecordNode,
1757 OPC_MoveParent,
1758 OPC_EmitMergeInputChains1_0,
1759 OPC_MorphNodeTo0, TARGET_VAL(SP::TLS_CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic2,
1760 2, 1, 2,
1761 29, TARGET_VAL(ISD::ATOMIC_FENCE),
1762 OPC_RecordNode,
1763 OPC_MoveChild1,
1764 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1765 OPC_MoveSibling2,
1766 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1767 OPC_MoveParent,
1768 OPC_Scope, 6,
1769 OPC_CheckPatternPredicate4,
1770 OPC_EmitMergeInputChains1_0,
1771 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::STBAR),
1772 0,
1773 9,
1774 OPC_CheckPatternPredicate1,
1775 OPC_EmitMergeInputChains1_0,
1776 OPC_EmitInteger32, 30,
1777 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::MEMBARi),
1778 1, 1,
1779 0,
1780 27, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
1781 OPC_RecordChild0,
1782 OPC_Scope, 11,
1783 OPC_CheckChild1Integer, 0,
1784 OPC_EmitStringInteger32, SP::sub_even,
1785 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
1786 MVT::i32, 2, 0, 1,
1787 11,
1788 OPC_CheckChild1Integer, 2,
1789 OPC_EmitStringInteger32, SP::sub_odd,
1790 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
1791 MVT::i32, 2, 0, 1,
1792 0,
1793 29, TARGET_VAL(ISD::ADDC),
1794 OPC_RecordChild0,
1795 OPC_RecordChild1,
1796 OPC_Scope, 15,
1797 OPC_MoveChild1,
1798 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1799 OPC_CheckPredicate0,
1800 OPC_MoveParent,
1801 OPC_CheckTypeI32,
1802 OPC_EmitConvertToTarget1,
1803 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCri),
1804 MVT::i32, 2, 0, 2,
1805 8,
1806 OPC_CheckTypeI32,
1807 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::ADDCCrr),
1808 MVT::i32, 2, 0, 1,
1809 0,
1810 32, TARGET_VAL(ISD::ADDE),
1811 OPC_CaptureGlueInput,
1812 OPC_RecordChild0,
1813 OPC_RecordChild1,
1814 OPC_Scope, 16,
1815 OPC_MoveChild1,
1816 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1817 OPC_CheckPredicate0,
1818 OPC_MoveParent,
1819 OPC_CheckTypeI32,
1820 OPC_EmitConvertToTarget1,
1821 OPC_MorphNodeTo1, TARGET_VAL(SP::ADDEri), 0|OPFL_GlueInput|OPFL_GlueOutput,
1822 MVT::i32, 2, 0, 2,
1823 9,
1824 OPC_CheckTypeI32,
1825 OPC_MorphNodeTo1, TARGET_VAL(SP::ADDErr), 0|OPFL_GlueInput|OPFL_GlueOutput,
1826 MVT::i32, 2, 0, 1,
1827 0,
1828 53, TARGET_VAL(ISD::SUB),
1829 OPC_RecordChild0,
1830 OPC_RecordChild1,
1831 OPC_Scope, 29,
1832 OPC_MoveChild1,
1833 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1834 OPC_CheckPredicate0,
1835 OPC_MoveParent,
1836 OPC_SwitchType , 8, MVT::i32,
1837 OPC_EmitConvertToTarget1,
1838 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBri),
1839 MVT::i32, 2, 0, 2,
1840 9, MVT::i64,
1841 OPC_CheckPatternPredicate0,
1842 OPC_EmitConvertToTarget1,
1843 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBri),
1844 MVT::i64, 2, 0, 2,
1845 0,
1846 8,
1847 OPC_CheckTypeI32,
1848 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBrr),
1849 MVT::i32, 2, 0, 1,
1850 9,
1851 OPC_CheckTypeI64,
1852 OPC_CheckPatternPredicate0,
1853 OPC_MorphNodeTo1None, TARGET_VAL(SP::SUBrr),
1854 MVT::i64, 2, 0, 1,
1855 0,
1856 32, TARGET_VAL(ISD::SUBE),
1857 OPC_CaptureGlueInput,
1858 OPC_RecordChild0,
1859 OPC_RecordChild1,
1860 OPC_Scope, 16,
1861 OPC_MoveChild1,
1862 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1863 OPC_CheckPredicate0,
1864 OPC_MoveParent,
1865 OPC_CheckTypeI32,
1866 OPC_EmitConvertToTarget1,
1867 OPC_MorphNodeTo1, TARGET_VAL(SP::SUBEri), 0|OPFL_GlueInput|OPFL_GlueOutput,
1868 MVT::i32, 2, 0, 2,
1869 9,
1870 OPC_CheckTypeI32,
1871 OPC_MorphNodeTo1, TARGET_VAL(SP::SUBErr), 0|OPFL_GlueInput|OPFL_GlueOutput,
1872 MVT::i32, 2, 0, 1,
1873 0,
1874 29, TARGET_VAL(ISD::SUBC),
1875 OPC_RecordChild0,
1876 OPC_RecordChild1,
1877 OPC_Scope, 15,
1878 OPC_MoveChild1,
1879 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1880 OPC_CheckPredicate0,
1881 OPC_MoveParent,
1882 OPC_CheckTypeI32,
1883 OPC_EmitConvertToTarget1,
1884 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
1885 MVT::i32, 2, 0, 2,
1886 8,
1887 OPC_CheckTypeI32,
1888 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
1889 MVT::i32, 2, 0, 1,
1890 0,
1891 61, TARGET_VAL(SPISD::CMPICC),
1892 OPC_RecordChild0,
1893 OPC_Scope, 27,
1894 OPC_CheckChild0TypeI32,
1895 OPC_RecordChild1,
1896 OPC_Scope, 14,
1897 OPC_MoveChild1,
1898 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1899 OPC_CheckPredicate0,
1900 OPC_MoveParent,
1901 OPC_EmitConvertToTarget1,
1902 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
1903 MVT::i32, 2, 0, 2,
1904 7,
1905 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
1906 MVT::i32, 2, 0, 1,
1907 0,
1908 29,
1909 OPC_CheckChild0TypeI64,
1910 OPC_RecordChild1,
1911 OPC_Scope, 15,
1912 OPC_MoveChild1,
1913 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1914 OPC_CheckPredicate0,
1915 OPC_MoveParent,
1916 OPC_CheckPatternPredicate0,
1917 OPC_EmitConvertToTarget1,
1918 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCri),
1919 MVT::i32, 2, 0, 2,
1920 8,
1921 OPC_CheckPatternPredicate0,
1922 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::SUBCCrr),
1923 MVT::i32, 2, 0, 1,
1924 0,
1925 0,
1926 31, TARGET_VAL(ISD::UMUL_LOHI),
1927 OPC_RecordChild0,
1928 OPC_RecordChild1,
1929 OPC_Scope, 16,
1930 OPC_MoveChild1,
1931 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1932 OPC_CheckPredicate0,
1933 OPC_MoveParent,
1934 OPC_CheckTypeI32,
1935 OPC_EmitConvertToTarget1,
1936 OPC_MorphNodeTo2None, TARGET_VAL(SP::UMULri),
1937 MVT::i32, MVT::i32, 2, 0, 2,
1938 9,
1939 OPC_CheckTypeI32,
1940 OPC_MorphNodeTo2None, TARGET_VAL(SP::UMULrr),
1941 MVT::i32, MVT::i32, 2, 0, 1,
1942 0,
1943 31, TARGET_VAL(ISD::SMUL_LOHI),
1944 OPC_RecordChild0,
1945 OPC_RecordChild1,
1946 OPC_Scope, 16,
1947 OPC_MoveChild1,
1948 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1949 OPC_CheckPredicate0,
1950 OPC_MoveParent,
1951 OPC_CheckTypeI32,
1952 OPC_EmitConvertToTarget1,
1953 OPC_MorphNodeTo2None, TARGET_VAL(SP::SMULri),
1954 MVT::i32, MVT::i32, 2, 0, 2,
1955 9,
1956 OPC_CheckTypeI32,
1957 OPC_MorphNodeTo2None, TARGET_VAL(SP::SMULrr),
1958 MVT::i32, MVT::i32, 2, 0, 1,
1959 0,
1960 17, TARGET_VAL(SPISD::RET_GLUE),
1961 OPC_RecordNode,
1962 OPC_CaptureGlueInput,
1963 OPC_RecordChild1,
1964 OPC_MoveChild1,
1965 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1966 OPC_CheckPredicate0,
1967 OPC_MoveParent,
1968 OPC_EmitMergeInputChains1_0,
1969 OPC_EmitConvertToTarget1,
1970 OPC_MorphNodeTo0, TARGET_VAL(SP::RETL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1971 1, 2,
1972 31, TARGET_VAL(ISD::MUL),
1973 OPC_RecordChild0,
1974 OPC_RecordChild1,
1975 OPC_Scope, 16,
1976 OPC_MoveChild1,
1977 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1978 OPC_CheckPredicate0,
1979 OPC_MoveParent,
1980 OPC_CheckTypeI64,
1981 OPC_CheckPatternPredicate0,
1982 OPC_EmitConvertToTarget1,
1983 OPC_MorphNodeTo1None, TARGET_VAL(SP::MULXri),
1984 MVT::i64, 2, 0, 2,
1985 9,
1986 OPC_CheckTypeI64,
1987 OPC_CheckPatternPredicate0,
1988 OPC_MorphNodeTo1None, TARGET_VAL(SP::MULXrr),
1989 MVT::i64, 2, 0, 1,
1990 0,
1991 31, TARGET_VAL(ISD::SDIV),
1992 OPC_RecordChild0,
1993 OPC_RecordChild1,
1994 OPC_Scope, 16,
1995 OPC_MoveChild1,
1996 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1997 OPC_CheckPredicate0,
1998 OPC_MoveParent,
1999 OPC_CheckTypeI64,
2000 OPC_CheckPatternPredicate0,
2001 OPC_EmitConvertToTarget1,
2002 OPC_MorphNodeTo1None, TARGET_VAL(SP::SDIVXri),
2003 MVT::i64, 2, 0, 2,
2004 9,
2005 OPC_CheckTypeI64,
2006 OPC_CheckPatternPredicate0,
2007 OPC_MorphNodeTo1None, TARGET_VAL(SP::SDIVXrr),
2008 MVT::i64, 2, 0, 1,
2009 0,
2010 31, TARGET_VAL(ISD::UDIV),
2011 OPC_RecordChild0,
2012 OPC_RecordChild1,
2013 OPC_Scope, 16,
2014 OPC_MoveChild1,
2015 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2016 OPC_CheckPredicate0,
2017 OPC_MoveParent,
2018 OPC_CheckTypeI64,
2019 OPC_CheckPatternPredicate0,
2020 OPC_EmitConvertToTarget1,
2021 OPC_MorphNodeTo1None, TARGET_VAL(SP::UDIVXri),
2022 MVT::i64, 2, 0, 2,
2023 9,
2024 OPC_CheckTypeI64,
2025 OPC_CheckPatternPredicate0,
2026 OPC_MorphNodeTo1None, TARGET_VAL(SP::UDIVXrr),
2027 MVT::i64, 2, 0, 1,
2028 0,
2029 57, TARGET_VAL(ISD::SHL),
2030 OPC_RecordChild0,
2031 OPC_RecordChild1,
2032 OPC_Scope, 29,
2033 OPC_MoveChild1,
2034 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2035 OPC_CheckTypeI32,
2036 OPC_MoveParent,
2037 OPC_SwitchType , 8, MVT::i32,
2038 OPC_EmitConvertToTarget1,
2039 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLri),
2040 MVT::i32, 2, 0, 2,
2041 9, MVT::i64,
2042 OPC_CheckPatternPredicate0,
2043 OPC_EmitConvertToTarget1,
2044 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLXri),
2045 MVT::i64, 2, 0, 2,
2046 0,
2047 22,
2048 OPC_CheckChild1TypeI32,
2049 OPC_SwitchType , 7, MVT::i32,
2050 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLrr),
2051 MVT::i32, 2, 0, 1,
2052 8, MVT::i64,
2053 OPC_CheckPatternPredicate0,
2054 OPC_MorphNodeTo1None, TARGET_VAL(SP::SLLXrr),
2055 MVT::i64, 2, 0, 1,
2056 0,
2057 0,
2058 57, TARGET_VAL(ISD::SRL),
2059 OPC_RecordChild0,
2060 OPC_RecordChild1,
2061 OPC_Scope, 29,
2062 OPC_MoveChild1,
2063 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2064 OPC_CheckTypeI32,
2065 OPC_MoveParent,
2066 OPC_SwitchType , 8, MVT::i32,
2067 OPC_EmitConvertToTarget1,
2068 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
2069 MVT::i32, 2, 0, 2,
2070 9, MVT::i64,
2071 OPC_CheckPatternPredicate0,
2072 OPC_EmitConvertToTarget1,
2073 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLXri),
2074 MVT::i64, 2, 0, 2,
2075 0,
2076 22,
2077 OPC_CheckChild1TypeI32,
2078 OPC_SwitchType , 7, MVT::i32,
2079 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLrr),
2080 MVT::i32, 2, 0, 1,
2081 8, MVT::i64,
2082 OPC_CheckPatternPredicate0,
2083 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLXrr),
2084 MVT::i64, 2, 0, 1,
2085 0,
2086 0,
2087 57, TARGET_VAL(ISD::SRA),
2088 OPC_RecordChild0,
2089 OPC_RecordChild1,
2090 OPC_Scope, 29,
2091 OPC_MoveChild1,
2092 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2093 OPC_CheckTypeI32,
2094 OPC_MoveParent,
2095 OPC_SwitchType , 8, MVT::i32,
2096 OPC_EmitConvertToTarget1,
2097 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
2098 MVT::i32, 2, 0, 2,
2099 9, MVT::i64,
2100 OPC_CheckPatternPredicate0,
2101 OPC_EmitConvertToTarget1,
2102 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAXri),
2103 MVT::i64, 2, 0, 2,
2104 0,
2105 22,
2106 OPC_CheckChild1TypeI32,
2107 OPC_SwitchType , 7, MVT::i32,
2108 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRArr),
2109 MVT::i32, 2, 0, 1,
2110 8, MVT::i64,
2111 OPC_CheckPatternPredicate0,
2112 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAXrr),
2113 MVT::i64, 2, 0, 1,
2114 0,
2115 0,
2116 22, TARGET_VAL(SPISD::BRICC),
2117 OPC_RecordNode,
2118 OPC_CaptureGlueInput,
2119 OPC_RecordChild1,
2120 OPC_MoveChild1,
2121 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2122 OPC_MoveSibling2,
2123 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2124 OPC_RecordNode,
2125 OPC_MoveParent,
2126 OPC_EmitMergeInputChains1_0,
2127 OPC_EmitConvertToTarget2,
2128 OPC_MorphNodeTo0, TARGET_VAL(SP::BCOND), 0|OPFL_Chain|OPFL_GlueInput,
2129 2, 1, 3,
2130 23, TARGET_VAL(SPISD::BPICC),
2131 OPC_RecordNode,
2132 OPC_CaptureGlueInput,
2133 OPC_RecordChild1,
2134 OPC_MoveChild1,
2135 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2136 OPC_MoveSibling2,
2137 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2138 OPC_RecordNode,
2139 OPC_MoveParent,
2140 OPC_CheckPatternPredicate1,
2141 OPC_EmitMergeInputChains1_0,
2142 OPC_EmitConvertToTarget2,
2143 OPC_MorphNodeTo0, TARGET_VAL(SP::BPICC), 0|OPFL_Chain|OPFL_GlueInput,
2144 2, 1, 3,
2145 33, TARGET_VAL(SPISD::BRFCC),
2146 OPC_RecordNode,
2147 OPC_CaptureGlueInput,
2148 OPC_RecordChild1,
2149 OPC_MoveChild1,
2150 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2151 OPC_MoveSibling2,
2152 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2153 OPC_RecordNode,
2154 OPC_MoveParent,
2155 OPC_EmitMergeInputChains1_0,
2156 OPC_EmitConvertToTarget2,
2157 OPC_Scope, 7,
2158 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCOND), 0|OPFL_Chain|OPFL_GlueInput,
2159 2, 1, 3,
2160 7,
2161 OPC_MorphNodeTo0, TARGET_VAL(SP::CBCOND), 0|OPFL_Chain|OPFL_GlueInput,
2162 2, 1, 3,
2163 0,
2164 34, TARGET_VAL(SPISD::BRFCC_V9),
2165 OPC_RecordNode,
2166 OPC_CaptureGlueInput,
2167 OPC_RecordChild1,
2168 OPC_MoveChild1,
2169 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2170 OPC_MoveSibling2,
2171 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2172 OPC_RecordNode,
2173 OPC_MoveParent,
2174 OPC_CheckPatternPredicate1,
2175 OPC_EmitMergeInputChains1_0,
2176 OPC_EmitConvertToTarget2,
2177 OPC_Scope, 7,
2178 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCOND_V9), 0|OPFL_Chain|OPFL_GlueInput,
2179 2, 1, 3,
2180 7,
2181 OPC_MorphNodeTo0, TARGET_VAL(SP::FBCONDA_V9), 0|OPFL_Chain|OPFL_GlueInput,
2182 2, 1, 3,
2183 0,
2184 39, TARGET_VAL(SPISD::TLS_ADD),
2185 OPC_RecordChild0,
2186 OPC_RecordChild1,
2187 OPC_Scope, 16,
2188 OPC_CheckChild1TypeI32,
2189 OPC_RecordChild2,
2190 OPC_MoveChild2,
2191 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2192 OPC_MoveParent,
2193 OPC_CheckTypeI32,
2194 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_ADDrr),
2195 MVT::i32, 3, 0, 1, 2,
2196 17,
2197 OPC_CheckChild1TypeI64,
2198 OPC_RecordChild2,
2199 OPC_MoveChild2,
2200 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2201 OPC_MoveParent,
2202 OPC_CheckTypeI64,
2203 OPC_CheckPatternPredicate0,
2204 OPC_MorphNodeTo1None, TARGET_VAL(SP::TLS_ADDrr),
2205 MVT::i64, 3, 0, 1, 2,
2206 0,
2207 92, TARGET_VAL(SPISD::Hi),
2208 OPC_RecordChild0,
2209 OPC_MoveChild0,
2210 OPC_SwitchOpcode , 19, TARGET_VAL(ISD::TargetGlobalAddress),
2211 OPC_MoveParent,
2212 OPC_Scope, 7,
2213 OPC_CheckPatternPredicate2,
2214 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2215 MVT::iPTR, 1, 0,
2216 7,
2217 OPC_CheckPatternPredicate0,
2218 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2219 MVT::iPTR, 1, 0,
2220 0,
2221 19, TARGET_VAL(ISD::TargetConstantPool),
2222 OPC_MoveParent,
2223 OPC_Scope, 7,
2224 OPC_CheckPatternPredicate2,
2225 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2226 MVT::iPTR, 1, 0,
2227 7,
2228 OPC_CheckPatternPredicate0,
2229 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2230 MVT::iPTR, 1, 0,
2231 0,
2232 19, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2233 OPC_MoveParent,
2234 OPC_Scope, 7,
2235 OPC_CheckPatternPredicate2,
2236 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2237 MVT::iPTR, 1, 0,
2238 7,
2239 OPC_CheckPatternPredicate0,
2240 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2241 MVT::iPTR, 1, 0,
2242 0,
2243 19, TARGET_VAL(ISD::TargetBlockAddress),
2244 OPC_MoveParent,
2245 OPC_Scope, 7,
2246 OPC_CheckPatternPredicate2,
2247 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2248 MVT::iPTR, 1, 0,
2249 7,
2250 OPC_CheckPatternPredicate0,
2251 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2252 MVT::iPTR, 1, 0,
2253 0,
2254 0,
2255 116, TARGET_VAL(SPISD::Lo),
2256 OPC_RecordChild0,
2257 OPC_MoveChild0,
2258 OPC_SwitchOpcode , 25, TARGET_VAL(ISD::TargetGlobalAddress),
2259 OPC_MoveParent,
2260 OPC_Scope, 10,
2261 OPC_CheckPatternPredicate2,
2262 OPC_EmitRegisterI32, SP::G0,
2263 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2264 MVT::iPTR, 2, 1, 0,
2265 10,
2266 OPC_CheckPatternPredicate0,
2267 OPC_EmitRegisterI64, SP::G0,
2268 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2269 MVT::iPTR, 2, 1, 0,
2270 0,
2271 25, TARGET_VAL(ISD::TargetConstantPool),
2272 OPC_MoveParent,
2273 OPC_Scope, 10,
2274 OPC_CheckPatternPredicate2,
2275 OPC_EmitRegisterI32, SP::G0,
2276 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2277 MVT::iPTR, 2, 1, 0,
2278 10,
2279 OPC_CheckPatternPredicate0,
2280 OPC_EmitRegisterI64, SP::G0,
2281 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2282 MVT::iPTR, 2, 1, 0,
2283 0,
2284 25, TARGET_VAL(ISD::TargetGlobalTLSAddress),
2285 OPC_MoveParent,
2286 OPC_Scope, 10,
2287 OPC_CheckPatternPredicate2,
2288 OPC_EmitRegisterI32, SP::G0,
2289 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2290 MVT::iPTR, 2, 1, 0,
2291 10,
2292 OPC_CheckPatternPredicate0,
2293 OPC_EmitRegisterI64, SP::G0,
2294 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2295 MVT::iPTR, 2, 1, 0,
2296 0,
2297 25, TARGET_VAL(ISD::TargetBlockAddress),
2298 OPC_MoveParent,
2299 OPC_Scope, 10,
2300 OPC_CheckPatternPredicate2,
2301 OPC_EmitRegisterI32, SP::G0,
2302 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2303 MVT::iPTR, 2, 1, 0,
2304 10,
2305 OPC_CheckPatternPredicate0,
2306 OPC_EmitRegisterI64, SP::G0,
2307 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2308 MVT::iPTR, 2, 1, 0,
2309 0,
2310 0,
2311 23, TARGET_VAL(SPISD::BPXCC),
2312 OPC_RecordNode,
2313 OPC_CaptureGlueInput,
2314 OPC_RecordChild1,
2315 OPC_MoveChild1,
2316 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2317 OPC_MoveSibling2,
2318 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2319 OPC_RecordNode,
2320 OPC_MoveParent,
2321 OPC_CheckPatternPredicate0,
2322 OPC_EmitMergeInputChains1_0,
2323 OPC_EmitConvertToTarget2,
2324 OPC_MorphNodeTo0, TARGET_VAL(SP::BPXCC), 0|OPFL_Chain|OPFL_GlueInput,
2325 2, 1, 3,
2326 25, TARGET_VAL(SPISD::BR_REG),
2327 OPC_RecordNode,
2328 OPC_CaptureGlueInput,
2329 OPC_RecordChild1,
2330 OPC_MoveChild1,
2331 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2332 OPC_MoveSibling2,
2333 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2334 OPC_RecordNode,
2335 OPC_MoveParent,
2336 OPC_RecordChild3,
2337 OPC_CheckPatternPredicate0,
2338 OPC_EmitMergeInputChains1_0,
2339 OPC_EmitConvertToTarget2,
2340 OPC_MorphNodeTo0, TARGET_VAL(SP::BPR), 0|OPFL_Chain|OPFL_GlueInput,
2341 3, 1, 4, 3,
2342 90|128,1, TARGET_VAL(ISD::Constant),
2343 OPC_Scope, 25,
2344 OPC_CheckInteger, 0,
2345 OPC_SwitchType , 8, MVT::i32,
2346 OPC_EmitRegisterI32, SP::G0,
2347 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY),
2348 MVT::i32, 1, 0,
2349 9, MVT::i64,
2350 OPC_CheckPatternPredicate0,
2351 OPC_EmitRegisterI64, SP::G0,
2352 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY),
2353 MVT::i64, 1, 0,
2354 0,
2355 60|128,1,
2356 OPC_RecordNode,
2357 OPC_Scope, 13,
2358 OPC_CheckPredicate, 17,
2359 OPC_CheckTypeI32,
2360 OPC_EmitConvertToTarget0,
2361 OPC_EmitNodeXForm, 2, 1,
2362 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2363 MVT::i32, 1, 2,
2364 29,
2365 OPC_CheckPredicate0,
2366 OPC_SwitchType , 10, MVT::i32,
2367 OPC_EmitRegisterI32, SP::G0,
2368 OPC_EmitConvertToTarget0,
2369 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2370 MVT::i32, 2, 1, 2,
2371 12, MVT::i64,
2372 OPC_EmitRegisterI64, SP::G0,
2373 OPC_EmitNodeXForm, 1, 0,
2374 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2375 MVT::i64, 2, 1, 2,
2376 0,
2377 12,
2378 OPC_CheckPredicate, 17,
2379 OPC_CheckTypeI64,
2380 OPC_EmitNodeXForm, 2, 0,
2381 OPC_MorphNodeTo1None, TARGET_VAL(SP::SETHIi),
2382 MVT::i64, 1, 1,
2383 23,
2384 OPC_CheckPredicate, 21,
2385 OPC_CheckTypeI64,
2386 OPC_CheckPatternPredicate0,
2387 OPC_EmitNodeXForm, 2, 0,
2388 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2389 MVT::i32, 1, 1,
2390 OPC_EmitNodeXForm, 3, 0,
2391 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2392 MVT::i64, 2, 2, 3,
2393 23,
2394 OPC_CheckPredicate, 22,
2395 OPC_CheckTypeI64,
2396 OPC_CheckPatternPredicate0,
2397 OPC_EmitNodeXForm, 4, 0,
2398 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2399 MVT::i32, 1, 1,
2400 OPC_EmitNodeXForm, 5, 0,
2401 OPC_MorphNodeTo1None, TARGET_VAL(SP::XORri),
2402 MVT::i64, 2, 2, 3,
2403 22,
2404 OPC_CheckTypeI32,
2405 OPC_EmitConvertToTarget0,
2406 OPC_EmitNodeXForm, 2, 1,
2407 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2408 MVT::i32, 1, 2,
2409 OPC_EmitConvertToTarget0,
2410 OPC_EmitNodeXForm, 3, 4,
2411 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORri),
2412 MVT::i32, 2, 3, 5,
2413 56,
2414 OPC_CheckTypeI64,
2415 OPC_CheckPatternPredicate0,
2416 OPC_EmitNodeXForm, 6, 0,
2417 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2418 MVT::i32, 1, 1,
2419 OPC_EmitNodeXForm, 7, 0,
2420 OPC_EmitNode1None, TARGET_VAL(SP::ORri),
2421 MVT::i64, 2, 2, 3,
2422 OPC_EmitInteger32, 64,
2423 OPC_EmitNode1None, TARGET_VAL(SP::SLLXri),
2424 MVT::i64, 2, 4, 5,
2425 OPC_EmitNodeXForm, 2, 0,
2426 OPC_EmitNode1None, TARGET_VAL(SP::SETHIi),
2427 MVT::i32, 1, 7,
2428 OPC_EmitNodeXForm, 3, 0,
2429 OPC_EmitNode1None, TARGET_VAL(SP::ORri),
2430 MVT::i32, 2, 8, 9,
2431 OPC_MorphNodeTo1None, TARGET_VAL(SP::ORrr),
2432 MVT::i64, 2, 6, 10,
2433 0,
2434 0,
2435 65, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
2436 OPC_RecordMemRef,
2437 OPC_RecordNode,
2438 OPC_RecordChild1,
2439 OPC_SwitchType , 36, MVT::i32,
2440 OPC_RecordChild2,
2441 OPC_RecordChild3,
2442 OPC_CheckPredicate5,
2443 OPC_Scope, 15,
2444 OPC_CheckPatternPredicate1,
2445 OPC_EmitMergeInputChains1_0,
2446 OPC_EmitInteger32, 0|128,2,
2447 OPC_MorphNodeTo1, TARGET_VAL(SP::CASArr), 0|OPFL_Chain|OPFL_MemRefs,
2448 MVT::i32, 4, 1, 2, 3, 4,
2449 14,
2450 OPC_CheckPatternPredicate7,
2451 OPC_EmitMergeInputChains1_0,
2452 OPC_EmitInteger32, 20,
2453 OPC_MorphNodeTo1, TARGET_VAL(SP::CASArr), 0|OPFL_Chain|OPFL_MemRefs,
2454 MVT::i32, 4, 1, 2, 3, 4,
2455 0,
2456 20, MVT::i64,
2457 OPC_CheckChild1TypeI64,
2458 OPC_RecordChild2,
2459 OPC_RecordChild3,
2460 OPC_CheckPredicate, 11,
2461 OPC_CheckPatternPredicate0,
2462 OPC_EmitMergeInputChains1_0,
2463 OPC_EmitInteger32, 0|128,2,
2464 OPC_MorphNodeTo1, TARGET_VAL(SP::CASXArr), 0|OPFL_Chain|OPFL_MemRefs,
2465 MVT::i64, 4, 1, 2, 3, 4,
2466 0,
2467 16, TARGET_VAL(SPISD::FLUSHW),
2468 OPC_RecordNode,
2469 OPC_Scope, 6,
2470 OPC_CheckPatternPredicate1,
2471 OPC_EmitMergeInputChains1_0,
2472 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::FLUSHW),
2473 0,
2474 5,
2475 OPC_EmitMergeInputChains1_0,
2476 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA3),
2477 0,
2478 0,
2479 13, TARGET_VAL(ISD::BR),
2480 OPC_RecordNode,
2481 OPC_RecordChild1,
2482 OPC_MoveChild1,
2483 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2484 OPC_MoveParent,
2485 OPC_EmitMergeInputChains1_0,
2486 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::BA),
2487 1, 1,
2488 6, TARGET_VAL(ISD::TRAP),
2489 OPC_RecordNode,
2490 OPC_EmitMergeInputChains1_0,
2491 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA5),
2492 0,
2493 6, TARGET_VAL(ISD::DEBUGTRAP),
2494 OPC_RecordNode,
2495 OPC_EmitMergeInputChains1_0,
2496 OPC_MorphNodeTo0Chain, TARGET_VAL(SP::TA1),
2497 0,
2498 37, TARGET_VAL(SPISD::CMPFCC),
2499 OPC_RecordChild0,
2500 OPC_Scope, 10,
2501 OPC_CheckChild0Type, MVT::f32,
2502 OPC_RecordChild1,
2503 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPS),
2504 MVT::i1, 2, 0, 1,
2505 10,
2506 OPC_CheckChild0Type, MVT::f64,
2507 OPC_RecordChild1,
2508 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPD),
2509 MVT::i1, 2, 0, 1,
2510 11,
2511 OPC_CheckChild0Type, MVT::f128,
2512 OPC_RecordChild1,
2513 OPC_CheckPatternPredicate3,
2514 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPQ),
2515 MVT::i1, 2, 0, 1,
2516 0,
2517 39, TARGET_VAL(SPISD::CMPFCC_V9),
2518 OPC_RecordChild0,
2519 OPC_Scope, 11,
2520 OPC_CheckChild0Type, MVT::f32,
2521 OPC_RecordChild1,
2522 OPC_CheckPatternPredicate1,
2523 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPS_V9),
2524 MVT::i1, 2, 0, 1,
2525 11,
2526 OPC_CheckChild0Type, MVT::f64,
2527 OPC_RecordChild1,
2528 OPC_CheckPatternPredicate1,
2529 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPD_V9),
2530 MVT::i1, 2, 0, 1,
2531 11,
2532 OPC_CheckChild0Type, MVT::f128,
2533 OPC_RecordChild1,
2534 OPC_CheckPatternPredicate1,
2535 OPC_MorphNodeTo1GlueOutput, TARGET_VAL(SP::FCMPQ_V9),
2536 MVT::i1, 2, 0, 1,
2537 0,
2538 31, TARGET_VAL(ISD::FrameIndex),
2539 OPC_RecordNode,
2540 OPC_SwitchType , 12, MVT::i32,
2541 OPC_EmitNodeXForm, 8, 0,
2542 OPC_EmitInteger32, 0,
2543 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
2544 MVT::i32, 2, 1, 2,
2545 12, MVT::i64,
2546 OPC_EmitNodeXForm, 8, 0,
2547 OPC_EmitInteger64, 0,
2548 OPC_MorphNodeTo1None, TARGET_VAL(SP::ADDri),
2549 MVT::i64, 2, 1, 2,
2550 0,
2551 13, TARGET_VAL(ISD::ANY_EXTEND),
2552 OPC_RecordChild0,
2553 OPC_CheckChild0TypeI32,
2554 OPC_CheckTypeI64,
2555 OPC_CheckPatternPredicate0,
2556 OPC_EmitStringInteger32, SP::I64RegsRegClassID,
2557 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS),
2558 MVT::i64, 2, 0, 1,
2559 12, TARGET_VAL(ISD::TRUNCATE),
2560 OPC_RecordChild0,
2561 OPC_CheckTypeI32,
2562 OPC_CheckPatternPredicate0,
2563 OPC_EmitStringInteger32, SP::IntRegsRegClassID,
2564 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS),
2565 MVT::i32, 2, 0, 1,
2566 13, TARGET_VAL(ISD::ZERO_EXTEND),
2567 OPC_RecordChild0,
2568 OPC_CheckChild0TypeI32,
2569 OPC_CheckTypeI64,
2570 OPC_CheckPatternPredicate0,
2571 OPC_EmitInteger32, 0,
2572 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRLri),
2573 MVT::i64, 2, 0, 1,
2574 13, TARGET_VAL(ISD::SIGN_EXTEND),
2575 OPC_RecordChild0,
2576 OPC_CheckChild0TypeI32,
2577 OPC_CheckTypeI64,
2578 OPC_CheckPatternPredicate0,
2579 OPC_EmitInteger32, 0,
2580 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
2581 MVT::i64, 2, 0, 1,
2582 15, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2583 OPC_RecordChild0,
2584 OPC_MoveChild1,
2585 OPC_CheckValueType, MVT::i32,
2586 OPC_MoveParent,
2587 OPC_CheckPatternPredicate0,
2588 OPC_EmitInteger32, 0,
2589 OPC_MorphNodeTo1None, TARGET_VAL(SP::SRAri),
2590 MVT::i64, 2, 0, 1,
2591 31, TARGET_VAL(ISD::CTPOP),
2592 OPC_RecordChild0,
2593 OPC_SwitchType , 8, MVT::i64,
2594 OPC_CheckChild0TypeI64,
2595 OPC_CheckPatternPredicate0,
2596 OPC_MorphNodeTo1None, TARGET_VAL(SP::POPCrr),
2597 MVT::i64, 1, 0,
2598 16, MVT::i32,
2599 OPC_CheckChild0TypeI32,
2600 OPC_EmitInteger32, 0,
2601 OPC_EmitNode1None, TARGET_VAL(SP::SRLri),
2602 MVT::i32, 2, 0, 1,
2603 OPC_MorphNodeTo1None, TARGET_VAL(SP::POPCrr),
2604 MVT::i32, 1, 2,
2605 0,
2606 84, TARGET_VAL(ISD::FMUL),
2607 OPC_Scope, 46,
2608 OPC_MoveChild0,
2609 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
2610 OPC_RecordChild0,
2611 OPC_Scope, 17,
2612 OPC_MoveSibling1,
2613 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
2614 OPC_RecordChild0,
2615 OPC_MoveParent,
2616 OPC_CheckType, MVT::f64,
2617 OPC_CheckPatternPredicate, 8,
2618 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSMULD),
2619 MVT::f64, 2, 0, 1,
2620 20,
2621 OPC_CheckChild0Type, MVT::f64,
2622 OPC_MoveSibling1,
2623 OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
2624 OPC_RecordChild0,
2625 OPC_CheckChild0Type, MVT::f64,
2626 OPC_MoveParent,
2627 OPC_CheckType, MVT::f128,
2628 OPC_CheckPatternPredicate3,
2629 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDMULQ),
2630 MVT::f128, 2, 0, 1,
2631 0,
2632 34,
2633 OPC_RecordChild0,
2634 OPC_RecordChild1,
2635 OPC_SwitchType , 9, MVT::f32,
2636 OPC_CheckPatternPredicate, 9,
2637 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULS),
2638 MVT::f32, 2, 0, 1,
2639 7, MVT::f64,
2640 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULD),
2641 MVT::f64, 2, 0, 1,
2642 8, MVT::f128,
2643 OPC_CheckPatternPredicate3,
2644 OPC_MorphNodeTo1None, TARGET_VAL(SP::FMULQ),
2645 MVT::f128, 2, 0, 1,
2646 0,
2647 0,
2648 28, TARGET_VAL(SPISD::ITOF),
2649 OPC_RecordChild0,
2650 OPC_SwitchType , 6, MVT::f32,
2651 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOS),
2652 MVT::f32, 1, 0,
2653 6, MVT::f64,
2654 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOD),
2655 MVT::f64, 1, 0,
2656 7, MVT::f128,
2657 OPC_CheckPatternPredicate3,
2658 OPC_MorphNodeTo1None, TARGET_VAL(SP::FITOQ),
2659 MVT::f128, 1, 0,
2660 0,
2661 31, TARGET_VAL(SPISD::FTOI),
2662 OPC_RecordChild0,
2663 OPC_Scope, 8,
2664 OPC_CheckChild0Type, MVT::f32,
2665 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOI),
2666 MVT::f32, 1, 0,
2667 8,
2668 OPC_CheckChild0Type, MVT::f64,
2669 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOI),
2670 MVT::f32, 1, 0,
2671 9,
2672 OPC_CheckChild0Type, MVT::f128,
2673 OPC_CheckPatternPredicate3,
2674 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOI),
2675 MVT::f32, 1, 0,
2676 0,
2677 35, TARGET_VAL(ISD::FP_EXTEND),
2678 OPC_RecordChild0,
2679 OPC_SwitchType , 6, MVT::f64,
2680 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOD),
2681 MVT::f64, 1, 0,
2682 22, MVT::f128,
2683 OPC_Scope, 9,
2684 OPC_CheckChild0Type, MVT::f32,
2685 OPC_CheckPatternPredicate3,
2686 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOQ),
2687 MVT::f128, 1, 0,
2688 9,
2689 OPC_CheckChild0Type, MVT::f64,
2690 OPC_CheckPatternPredicate3,
2691 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOQ),
2692 MVT::f128, 1, 0,
2693 0,
2694 0,
2695 35, TARGET_VAL(ISD::FP_ROUND),
2696 OPC_RecordChild0,
2697 OPC_SwitchType , 21, MVT::f32,
2698 OPC_Scope, 8,
2699 OPC_CheckChild0Type, MVT::f64,
2700 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOS),
2701 MVT::f32, 1, 0,
2702 9,
2703 OPC_CheckChild0Type, MVT::f128,
2704 OPC_CheckPatternPredicate3,
2705 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOS),
2706 MVT::f32, 1, 0,
2707 0,
2708 7, MVT::f64,
2709 OPC_CheckPatternPredicate3,
2710 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOD),
2711 MVT::f64, 1, 0,
2712 0,
2713 29, TARGET_VAL(ISD::FNEG),
2714 OPC_RecordChild0,
2715 OPC_SwitchType , 6, MVT::f32,
2716 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGS),
2717 MVT::f32, 1, 0,
2718 7, MVT::f64,
2719 OPC_CheckPatternPredicate1,
2720 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGD),
2721 MVT::f64, 1, 0,
2722 7, MVT::f128,
2723 OPC_CheckPatternPredicate5,
2724 OPC_MorphNodeTo1None, TARGET_VAL(SP::FNEGQ),
2725 MVT::f128, 1, 0,
2726 0,
2727 29, TARGET_VAL(ISD::FABS),
2728 OPC_RecordChild0,
2729 OPC_SwitchType , 6, MVT::f32,
2730 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSS),
2731 MVT::f32, 1, 0,
2732 7, MVT::f64,
2733 OPC_CheckPatternPredicate1,
2734 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSD),
2735 MVT::f64, 1, 0,
2736 7, MVT::f128,
2737 OPC_CheckPatternPredicate5,
2738 OPC_MorphNodeTo1None, TARGET_VAL(SP::FABSQ),
2739 MVT::f128, 1, 0,
2740 0,
2741 30, TARGET_VAL(ISD::FSQRT),
2742 OPC_RecordChild0,
2743 OPC_SwitchType , 8, MVT::f32,
2744 OPC_CheckPatternPredicate, 10,
2745 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTS),
2746 MVT::f32, 1, 0,
2747 6, MVT::f64,
2748 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTD),
2749 MVT::f64, 1, 0,
2750 7, MVT::f128,
2751 OPC_CheckPatternPredicate3,
2752 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSQRTQ),
2753 MVT::f128, 1, 0,
2754 0,
2755 32, TARGET_VAL(ISD::FADD),
2756 OPC_RecordChild0,
2757 OPC_RecordChild1,
2758 OPC_SwitchType , 7, MVT::f32,
2759 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDS),
2760 MVT::f32, 2, 0, 1,
2761 7, MVT::f64,
2762 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDD),
2763 MVT::f64, 2, 0, 1,
2764 8, MVT::f128,
2765 OPC_CheckPatternPredicate3,
2766 OPC_MorphNodeTo1None, TARGET_VAL(SP::FADDQ),
2767 MVT::f128, 2, 0, 1,
2768 0,
2769 32, TARGET_VAL(ISD::FSUB),
2770 OPC_RecordChild0,
2771 OPC_RecordChild1,
2772 OPC_SwitchType , 7, MVT::f32,
2773 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBS),
2774 MVT::f32, 2, 0, 1,
2775 7, MVT::f64,
2776 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBD),
2777 MVT::f64, 2, 0, 1,
2778 8, MVT::f128,
2779 OPC_CheckPatternPredicate3,
2780 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSUBQ),
2781 MVT::f128, 2, 0, 1,
2782 0,
2783 32, TARGET_VAL(ISD::FDIV),
2784 OPC_RecordChild0,
2785 OPC_RecordChild1,
2786 OPC_SwitchType , 7, MVT::f32,
2787 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVS),
2788 MVT::f32, 2, 0, 1,
2789 7, MVT::f64,
2790 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVD),
2791 MVT::f64, 2, 0, 1,
2792 8, MVT::f128,
2793 OPC_CheckPatternPredicate3,
2794 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDIVQ),
2795 MVT::f128, 2, 0, 1,
2796 0,
2797 30, TARGET_VAL(SPISD::XTOF),
2798 OPC_RecordChild0,
2799 OPC_SwitchType , 7, MVT::f32,
2800 OPC_CheckPatternPredicate0,
2801 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOS),
2802 MVT::f32, 1, 0,
2803 7, MVT::f64,
2804 OPC_CheckPatternPredicate0,
2805 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOD),
2806 MVT::f64, 1, 0,
2807 7, MVT::f128,
2808 OPC_CheckPatternPredicate6,
2809 OPC_MorphNodeTo1None, TARGET_VAL(SP::FXTOQ),
2810 MVT::f128, 1, 0,
2811 0,
2812 33, TARGET_VAL(SPISD::FTOX),
2813 OPC_RecordChild0,
2814 OPC_Scope, 9,
2815 OPC_CheckChild0Type, MVT::f32,
2816 OPC_CheckPatternPredicate0,
2817 OPC_MorphNodeTo1None, TARGET_VAL(SP::FSTOX),
2818 MVT::f64, 1, 0,
2819 9,
2820 OPC_CheckChild0Type, MVT::f64,
2821 OPC_CheckPatternPredicate0,
2822 OPC_MorphNodeTo1None, TARGET_VAL(SP::FDTOX),
2823 MVT::f64, 1, 0,
2824 9,
2825 OPC_CheckChild0Type, MVT::f128,
2826 OPC_CheckPatternPredicate6,
2827 OPC_MorphNodeTo1None, TARGET_VAL(SP::FQTOX),
2828 MVT::f64, 1, 0,
2829 0,
2830 76, TARGET_VAL(ISD::BUILD_VECTOR),
2831 OPC_CheckType, MVT::v2i32,
2832 OPC_Scope, 41,
2833 OPC_CheckChild0Integer, 0,
2834 OPC_CheckChild0TypeI32,
2835 OPC_RecordChild1,
2836 OPC_CheckChild1TypeI32,
2837 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
2838 MVT::v2i32, 0,
2839 OPC_EmitRegisterI32, SP::G0,
2840 OPC_EmitRegisterI32, SP::G0,
2841 OPC_EmitNode1None, TARGET_VAL(SP::ORrr),
2842 MVT::i32, 2, 2, 3,
2843 OPC_EmitStringInteger32, SP::sub_even,
2844 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
2845 MVT::v2i32, 3, 1, 4, 5,
2846 OPC_EmitStringInteger32, SP::sub_odd,
2847 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
2848 MVT::v2i32, 3, 6, 0, 7,
2849 29,
2850 OPC_RecordChild0,
2851 OPC_CheckChild0TypeI32,
2852 OPC_RecordChild1,
2853 OPC_CheckChild1TypeI32,
2854 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
2855 MVT::v2i32, 0,
2856 OPC_EmitStringInteger32, SP::sub_even,
2857 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
2858 MVT::v2i32, 3, 2, 0, 3,
2859 OPC_EmitStringInteger32, SP::sub_odd,
2860 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
2861 MVT::v2i32, 3, 4, 1, 5,
2862 0,
2863 0,
2864 0
2865 }; // Total Array size is 5762 bytes
2866
2867 #undef TARGET_VAL
2868 SelectCodeCommon(NodeToMatch: N, MatcherTable, TableSize: sizeof(MatcherTable));
2869}
2870#endif // GET_DAGISEL_BODY
2871
2872#ifdef GET_DAGISEL_DECL
2873bool CheckPatternPredicate(unsigned PredNo) const override;
2874#endif
2875#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2876bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
2877#if DAGISEL_INLINE
2878 override
2879#endif
2880{
2881 switch (PredNo) {
2882 default: llvm_unreachable("Invalid predicate in table?");
2883 case 0: return (Subtarget->is64Bit());
2884 case 1: return (Subtarget->isV9());
2885 case 2: return (!Subtarget->is64Bit());
2886 case 3: return (Subtarget->hasHardQuad());
2887 case 4: return (!Subtarget->isV9());
2888 case 5: return (Subtarget->hasHardQuad()) && (Subtarget->isV9());
2889 case 6: return (Subtarget->hasHardQuad()) && (Subtarget->is64Bit());
2890 case 7: return (Subtarget->hasLeonCasa());
2891 case 8: return (!Subtarget->hasNoFSMULD());
2892 case 9: return (!Subtarget->hasNoFMULS());
2893 case 10: return (!Subtarget->fixAllFDIVSQRT());
2894 }
2895}
2896#endif // GET_DAGISEL_BODY
2897
2898#ifdef GET_DAGISEL_DECL
2899bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
2900#endif
2901#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2902bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
2903#if DAGISEL_INLINE
2904 override
2905#endif
2906{
2907 switch (PredNo) {
2908 default: llvm_unreachable("Invalid predicate in table?");
2909 case 0: {
2910 // Predicate_simm13
2911 auto *N = cast<ConstantSDNode>(Val: Node);
2912 (void)N;
2913 return isInt<13>(x: N->getSExtValue());
2914 }
2915 case 1: {
2916 // Predicate_unindexedstore
2917 SDNode *N = Node;
2918 (void)N;
2919if (cast<StoreSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
2920return true;
2921
2922 }
2923 case 2: {
2924 // Predicate_store
2925 SDNode *N = Node;
2926 (void)N;
2927 if (cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
2928return true;
2929
2930 }
2931 case 3: {
2932 // Predicate_atomic_load_8
2933 // Predicate_atomic_store_8
2934 // Predicate_extloadi8
2935 // Predicate_sextloadi8
2936 // Predicate_zextloadi8
2937 SDNode *N = Node;
2938 (void)N;
2939if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
2940return true;
2941
2942 }
2943 case 4: {
2944 // Predicate_atomic_load_16
2945 // Predicate_atomic_store_16
2946 // Predicate_extloadi16
2947 // Predicate_sextloadi16
2948 // Predicate_zextloadi16
2949 SDNode *N = Node;
2950 (void)N;
2951if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
2952return true;
2953
2954 }
2955 case 5: {
2956 // Predicate_atomic_cmp_swap_i32
2957 // Predicate_atomic_load_32
2958 // Predicate_atomic_store_32
2959 // Predicate_atomic_swap_i32
2960 // Predicate_extloadi32
2961 // Predicate_sextloadi32
2962 // Predicate_zextloadi32
2963 SDNode *N = Node;
2964 (void)N;
2965if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
2966return true;
2967
2968 }
2969 case 6: {
2970 // Predicate_zextload
2971 SDNode *N = Node;
2972 (void)N;
2973if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
2974return true;
2975
2976 }
2977 case 7: {
2978 // Predicate_extload
2979 SDNode *N = Node;
2980 (void)N;
2981if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
2982return true;
2983
2984 }
2985 case 8: {
2986 // Predicate_sextload
2987 SDNode *N = Node;
2988 (void)N;
2989if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::SEXTLOAD) return false;
2990return true;
2991
2992 }
2993 case 9: {
2994 // Predicate_extloadi1
2995 // Predicate_zextloadi1
2996 SDNode *N = Node;
2997 (void)N;
2998if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i1) return false;
2999return true;
3000
3001 }
3002 case 10: {
3003 // Predicate_load
3004 SDNode *N = Node;
3005 (void)N;
3006if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
3007return true;
3008
3009 }
3010 case 11: {
3011 // Predicate_atomic_cmp_swap_i64
3012 // Predicate_atomic_load_64
3013 // Predicate_atomic_store_64
3014 SDNode *N = Node;
3015 (void)N;
3016if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i64) return false;
3017return true;
3018
3019 }
3020 case 12: {
3021 // Predicate_simm11
3022 auto *N = cast<ConstantSDNode>(Val: Node);
3023 (void)N;
3024 return isInt<11>(x: N->getSExtValue());
3025 }
3026 case 13: {
3027 // Predicate_truncstore
3028 SDNode *N = Node;
3029 (void)N;
3030 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
3031return true;
3032
3033 }
3034 case 14: {
3035 // Predicate_truncstorei8
3036 SDNode *N = Node;
3037 (void)N;
3038if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
3039 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
3040return true;
3041
3042 }
3043 case 15: {
3044 // Predicate_truncstorei16
3045 SDNode *N = Node;
3046 (void)N;
3047if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
3048 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
3049return true;
3050
3051 }
3052 case 16: {
3053 // Predicate_SETHIimm_not
3054 auto *N = cast<ConstantSDNode>(Val: Node);
3055 (void)N;
3056
3057 return N->hasOneUse() && isShiftedUInt<22, 10>(x: ~(unsigned)N->getZExtValue());
3058
3059 }
3060 case 17: {
3061 // Predicate_SETHIimm
3062 auto *N = cast<ConstantSDNode>(Val: Node);
3063 (void)N;
3064
3065 return isShiftedUInt<22, 10>(x: N->getZExtValue());
3066
3067 }
3068 case 18: {
3069 // Predicate_truncstorei32
3070 SDNode *N = Node;
3071 (void)N;
3072if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
3073 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
3074return true;
3075
3076 }
3077 case 19: {
3078 // Predicate_unindexedload
3079 SDNode *N = Node;
3080 (void)N;
3081if (cast<LoadSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
3082return true;
3083
3084 }
3085 case 20: {
3086 // Predicate_simm10
3087 auto *N = cast<ConstantSDNode>(Val: Node);
3088 (void)N;
3089 return isInt<10>(x: N->getSExtValue());
3090 }
3091 case 21: {
3092 // Predicate_uimm32
3093 auto *N = cast<ConstantSDNode>(Val: Node);
3094 (void)N;
3095 return isUInt<32>(x: N->getZExtValue());
3096 }
3097 case 22: {
3098 // Predicate_nimm33
3099 auto *N = cast<ConstantSDNode>(Val: Node);
3100 (void)N;
3101
3102 int64_t Imm = N->getSExtValue();
3103 return Imm < 0 && isInt<33>(x: Imm);
3104
3105 }
3106 }
3107}
3108#endif // GET_DAGISEL_BODY
3109
3110#ifdef GET_DAGISEL_DECL
3111bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
3112 SDValue N, unsigned PatternNo,
3113 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
3114#endif
3115#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
3116bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
3117 SDValue N, unsigned PatternNo,
3118 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
3119#if DAGISEL_INLINE
3120 override
3121#endif
3122{
3123 unsigned NextRes = Result.size();
3124 switch (PatternNo) {
3125 default: llvm_unreachable("Invalid pattern # in table?");
3126 case 0:
3127 Result.resize(N: NextRes+2);
3128 return SelectADDRrr(N, R1&: Result[NextRes+0].first, R2&: Result[NextRes+1].first);
3129 case 1:
3130 Result.resize(N: NextRes+2);
3131 return SelectADDRri(N, Base&: Result[NextRes+0].first, Offset&: Result[NextRes+1].first);
3132 }
3133}
3134#endif // GET_DAGISEL_BODY
3135
3136#ifdef GET_DAGISEL_DECL
3137SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
3138#endif
3139#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
3140SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
3141#if DAGISEL_INLINE
3142 override
3143#endif
3144{
3145 switch (XFormNo) {
3146 default: llvm_unreachable("Invalid xform # in table?");
3147 case 0: {
3148 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3149
3150 return CurDAG->getTargetConstant(Val: ~(unsigned)N->getZExtValue() >> 10, DL: SDLoc(N),
3151 VT: MVT::i32);
3152
3153 }
3154 case 1: {
3155 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3156
3157 return CurDAG->getTargetConstant(Val: N->getSExtValue(), DL: SDLoc(N), VT: MVT::i32);
3158
3159 }
3160 case 2: {
3161 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3162
3163 // Transformation function: shift the immediate value down into the low bits.
3164 return CurDAG->getTargetConstant(Val: (unsigned)N->getZExtValue() >> 10, DL: SDLoc(N),
3165 VT: MVT::i32);
3166
3167 }
3168 case 3: {
3169 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3170
3171 return CurDAG->getTargetConstant(Val: (unsigned)N->getZExtValue() & 1023, DL: SDLoc(N),
3172 VT: MVT::i32);
3173
3174 }
3175 case 4: {
3176 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3177
3178 uint64_t Val = (~N->getZExtValue() >> 10) & ((1u << 22) - 1);
3179 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
3180
3181 }
3182 case 5: {
3183 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3184
3185 return CurDAG->getTargetConstant(Val: ~(~N->getZExtValue() & 0x3ff), DL: SDLoc(N),
3186 VT: MVT::i32);
3187
3188 }
3189 case 6: {
3190 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3191
3192 uint64_t Val = (N->getZExtValue() >> 42) & ((1u << 22) - 1);
3193 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
3194
3195 }
3196 case 7: {
3197 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
3198
3199 uint64_t Val = (N->getZExtValue() >> 32) & ((1u << 10) - 1);
3200 return CurDAG->getTargetConstant(Val, DL: SDLoc(N), VT: MVT::i32);
3201
3202 }
3203 case 8: {
3204 FrameIndexSDNode *N = cast<FrameIndexSDNode>(Val: V.getNode());
3205
3206 return CurDAG->getTargetFrameIndex(FI: N->getIndex(), VT: N->getValueType(ResNo: 0));
3207
3208 }
3209 }
3210}
3211#endif // GET_DAGISEL_BODY
3212
3213
3214#ifdef DAGISEL_INLINE
3215#undef DAGISEL_INLINE
3216#endif
3217#ifdef DAGISEL_CLASS_COLONCOLON
3218#undef DAGISEL_CLASS_COLONCOLON
3219#endif
3220#ifdef GET_DAGISEL_DECL
3221#undef GET_DAGISEL_DECL
3222#endif
3223#ifdef GET_DAGISEL_BODY
3224#undef GET_DAGISEL_BODY
3225#endif
3226