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