1
//===- TableGen'erated file -------------------------------------*- C++ -*-===//
3
// DAG Instruction Selector for the PPC target
5
// Automatically generated file, do not edit!
7
//===----------------------------------------------------------------------===//
9
// *** NOTE: This file is #included into the middle of the target
10
// *** instruction selector class. These functions are really methods.
12
// The main instruction selector code.
13
SDNode *SelectCode(SDNode *N) {
14
// Opcodes are emitted as 2 bytes, TARGET_OPCODE handles this.
15
#define TARGET_OPCODE(X) X & 255, unsigned(X) >> 8
16
static const unsigned char MatcherTable[] = {
17
OPC_SwitchOpcode , 40, TARGET_OPCODE(ISD::MEMBARRIER),
20
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
21
OPC_CheckType, MVT::i32,
24
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
27
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
30
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
35
OPC_EmitMergeInputChains1_0,
36
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SYNC), 0|OPFL_Chain,
38
73|128,4, TARGET_OPCODE(ISD::INTRINSIC_VOID),
42
OPC_CheckInteger, 67|128,2,
45
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
46
OPC_EmitMergeInputChains1_0,
47
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBA), 0|OPFL_Chain,
50
OPC_CheckInteger, 68|128,2,
53
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
54
OPC_EmitMergeInputChains1_0,
55
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBF), 0|OPFL_Chain,
58
OPC_CheckInteger, 69|128,2,
61
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
62
OPC_EmitMergeInputChains1_0,
63
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBI), 0|OPFL_Chain,
66
OPC_CheckInteger, 70|128,2,
69
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
70
OPC_EmitMergeInputChains1_0,
71
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBST), 0|OPFL_Chain,
74
OPC_CheckInteger, 71|128,2,
77
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
78
OPC_EmitMergeInputChains1_0,
79
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBT), 0|OPFL_Chain,
82
OPC_CheckInteger, 72|128,2,
85
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
86
OPC_EmitMergeInputChains1_0,
87
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBTST), 0|OPFL_Chain,
90
OPC_CheckInteger, 73|128,2,
93
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
94
OPC_EmitMergeInputChains1_0,
95
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBZ), 0|OPFL_Chain,
98
OPC_CheckInteger, 74|128,2,
101
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
102
OPC_EmitMergeInputChains1_0,
103
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBZL), 0|OPFL_Chain,
106
OPC_CheckInteger, 63|128,1,
110
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
111
OPC_EmitMergeInputChains1_0,
112
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEBX), 0|OPFL_Chain,
115
OPC_CheckInteger, 64|128,1,
119
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
120
OPC_EmitMergeInputChains1_0,
121
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEHX), 0|OPFL_Chain,
124
OPC_CheckInteger, 65|128,1,
128
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
129
OPC_EmitMergeInputChains1_0,
130
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEWX), 0|OPFL_Chain,
133
OPC_CheckInteger, 66|128,1,
137
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
138
OPC_EmitMergeInputChains1_0,
139
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVX), 0|OPFL_Chain,
142
OPC_CheckInteger, 67|128,1,
146
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
147
OPC_EmitMergeInputChains1_0,
148
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVXL), 0|OPFL_Chain,
151
OPC_CheckInteger, 48|128,1,
155
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
157
OPC_EmitMergeInputChains1_0,
158
OPC_EmitInteger, MVT::i32, 0,
159
OPC_EmitConvertToTarget, 1,
160
OPC_EmitInteger, MVT::i32, 0,
161
OPC_EmitInteger, MVT::i32, 0,
162
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSS), 0|OPFL_Chain,
165
OPC_CheckInteger, 50|128,1,
169
OPC_CheckChild2Type, MVT::i32,
173
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
175
OPC_EmitMergeInputChains1_0,
176
OPC_EmitInteger, MVT::i32, 0,
177
OPC_EmitConvertToTarget, 3,
178
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DST), 0|OPFL_Chain,
181
OPC_CheckChild2Type, MVT::i64,
185
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
187
OPC_EmitMergeInputChains1_0,
188
OPC_EmitInteger, MVT::i32, 0,
189
OPC_EmitConvertToTarget, 3,
190
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DST64), 0|OPFL_Chain,
194
OPC_CheckInteger, 53|128,1,
198
OPC_CheckChild2Type, MVT::i32,
202
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
204
OPC_EmitMergeInputChains1_0,
205
OPC_EmitInteger, MVT::i32, 1,
206
OPC_EmitConvertToTarget, 3,
207
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTT), 0|OPFL_Chain,
210
OPC_CheckChild2Type, MVT::i64,
214
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
216
OPC_EmitMergeInputChains1_0,
217
OPC_EmitInteger, MVT::i32, 1,
218
OPC_EmitConvertToTarget, 3,
219
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTT64), 0|OPFL_Chain,
223
OPC_CheckInteger, 51|128,1,
227
OPC_CheckChild2Type, MVT::i32,
231
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
233
OPC_EmitMergeInputChains1_0,
234
OPC_EmitInteger, MVT::i32, 0,
235
OPC_EmitConvertToTarget, 3,
236
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTST), 0|OPFL_Chain,
239
OPC_CheckChild2Type, MVT::i64,
243
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
245
OPC_EmitMergeInputChains1_0,
246
OPC_EmitInteger, MVT::i32, 0,
247
OPC_EmitConvertToTarget, 3,
248
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTST64), 0|OPFL_Chain,
252
OPC_CheckInteger, 52|128,1,
256
OPC_CheckChild2Type, MVT::i32,
260
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
262
OPC_EmitMergeInputChains1_0,
263
OPC_EmitInteger, MVT::i32, 1,
264
OPC_EmitConvertToTarget, 3,
265
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTSTT), 0|OPFL_Chain,
268
OPC_CheckChild2Type, MVT::i64,
272
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
274
OPC_EmitMergeInputChains1_0,
275
OPC_EmitInteger, MVT::i32, 1,
276
OPC_EmitConvertToTarget, 3,
277
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTSTT64), 0|OPFL_Chain,
281
OPC_CheckInteger, 75|128,2,
283
OPC_EmitMergeInputChains1_0,
284
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SYNC), 0|OPFL_Chain,
287
OPC_CheckInteger, 62|128,1,
290
OPC_EmitMergeInputChains1_0,
291
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTVSCR), 0|OPFL_Chain,
294
OPC_CheckInteger, 49|128,1,
296
OPC_EmitMergeInputChains1_0,
297
OPC_EmitInteger, MVT::i32, 1,
298
OPC_EmitInteger, MVT::i32, 0,
299
OPC_EmitInteger, MVT::i32, 0,
300
OPC_EmitInteger, MVT::i32, 0,
301
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSSALL), 0|OPFL_Chain,
304
32|128,4, TARGET_OPCODE(ISD::ADD),
308
OPC_SwitchOpcode , 24, TARGET_OPCODE(PPCISD::Lo),
311
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
317
OPC_CheckType, MVT::i32,
318
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LA), 0,
319
1, MVT::i32, 2, 0, 1,
320
13|128,1, TARGET_OPCODE(PPCISD::Hi),
323
OPC_SwitchOpcode , 31, TARGET_OPCODE(ISD::TargetGlobalAddress),
329
OPC_SwitchType , 9, MVT::i32,
330
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
331
1, MVT::i32, 2, 0, 1,
333
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
334
1, MVT::i64, 2, 0, 1,
336
31, TARGET_OPCODE(ISD::TargetConstantPool),
342
OPC_SwitchType , 9, MVT::i32,
343
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
344
1, MVT::i32, 2, 0, 1,
346
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
347
1, MVT::i64, 2, 0, 1,
349
31, TARGET_OPCODE(ISD::TargetJumpTable),
355
OPC_SwitchType , 9, MVT::i32,
356
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
357
1, MVT::i32, 2, 0, 1,
359
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
360
1, MVT::i64, 2, 0, 1,
362
31, TARGET_OPCODE(ISD::TargetBlockAddress),
368
OPC_SwitchType , 9, MVT::i32,
369
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
370
1, MVT::i32, 2, 0, 1,
372
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
373
1, MVT::i64, 2, 0, 1,
379
OPC_SwitchOpcode , 25, TARGET_OPCODE(PPCISD::Lo),
382
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
389
OPC_CheckType, MVT::i32,
390
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LA), 0,
391
1, MVT::i32, 2, 1, 0,
392
17|128,1, TARGET_OPCODE(PPCISD::Hi),
395
OPC_SwitchOpcode , 32, TARGET_OPCODE(ISD::TargetGlobalAddress),
402
OPC_SwitchType , 9, MVT::i64,
403
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
404
1, MVT::i64, 2, 1, 0,
406
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
407
1, MVT::i32, 2, 1, 0,
409
32, TARGET_OPCODE(ISD::TargetConstantPool),
416
OPC_SwitchType , 9, MVT::i64,
417
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
418
1, MVT::i64, 2, 1, 0,
420
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
421
1, MVT::i32, 2, 1, 0,
423
32, TARGET_OPCODE(ISD::TargetJumpTable),
430
OPC_SwitchType , 9, MVT::i64,
431
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
432
1, MVT::i64, 2, 1, 0,
434
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
435
1, MVT::i32, 2, 1, 0,
437
32, TARGET_OPCODE(ISD::TargetBlockAddress),
444
OPC_SwitchType , 9, MVT::i64,
445
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
446
1, MVT::i64, 2, 1, 0,
448
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
449
1, MVT::i32, 2, 1, 0,
458
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
460
OPC_CheckPredicate, 0,
462
OPC_CheckType, MVT::i32,
463
OPC_EmitConvertToTarget, 1,
464
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDI), 0,
465
1, MVT::i32, 2, 0, 2,
467
OPC_CheckPredicate, 1,
469
OPC_CheckType, MVT::i32,
470
OPC_EmitConvertToTarget, 1,
471
OPC_EmitNodeXForm, 0, 2,
472
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
473
1, MVT::i32, 2, 0, 3,
475
OPC_CheckPredicate, 0,
477
OPC_CheckType, MVT::i64,
478
OPC_EmitConvertToTarget, 1,
479
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDI8), 0,
480
1, MVT::i64, 2, 0, 2,
482
OPC_CheckPredicate, 1,
484
OPC_CheckType, MVT::i64,
485
OPC_EmitConvertToTarget, 1,
486
OPC_EmitNodeXForm, 0, 2,
487
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
488
1, MVT::i64, 2, 0, 3,
491
OPC_CheckType, MVT::i32,
492
OPC_EmitConvertToTarget, 1,
493
OPC_EmitNodeXForm, 1, 2,
494
OPC_EmitNode, TARGET_OPCODE(PPC::ADDI), 0,
495
1, MVT::i32, 2, 0, 3,
496
OPC_EmitConvertToTarget, 1,
497
OPC_EmitNodeXForm, 2, 5,
498
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
499
1, MVT::i32, 2, 4, 6,
502
OPC_CheckType, MVT::i32,
503
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADD4), 0,
504
1, MVT::i32, 2, 0, 1,
506
OPC_CheckType, MVT::i64,
507
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADD8), 0,
508
1, MVT::i64, 2, 0, 1,
510
OPC_CheckType, MVT::v16i8,
511
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUBM), 0,
512
1, MVT::v16i8, 2, 0, 1,
514
OPC_CheckType, MVT::v8i16,
515
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUHM), 0,
516
1, MVT::v8i16, 2, 0, 1,
518
OPC_CheckType, MVT::v4i32,
519
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUWM), 0,
520
1, MVT::v4i32, 2, 0, 1,
523
72|128,6, TARGET_OPCODE(ISD::LOAD),
527
OPC_CheckPredicate, 2,
529
OPC_CheckPredicate, 3,
530
OPC_CheckPredicate, 4,
531
OPC_CheckType, MVT::i32,
532
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
533
OPC_EmitMergeInputChains1_0,
534
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
535
1, MVT::i32, 2, 2, 3,
537
OPC_CheckPredicate, 5,
538
OPC_CheckPredicate, 6,
539
OPC_CheckType, MVT::i32,
540
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
541
OPC_EmitMergeInputChains1_0,
542
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHA), 0|OPFL_Chain|OPFL_MemRefs,
543
1, MVT::i32, 2, 2, 3,
545
OPC_CheckPredicate, 3,
546
OPC_CheckPredicate, 7,
547
OPC_CheckType, MVT::i32,
548
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
549
OPC_EmitMergeInputChains1_0,
550
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
551
1, MVT::i32, 2, 2, 3,
553
OPC_CheckPredicate, 8,
554
OPC_CheckType, MVT::i32,
555
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
556
OPC_EmitMergeInputChains1_0,
557
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ), 0|OPFL_Chain|OPFL_MemRefs,
558
1, MVT::i32, 2, 2, 3,
560
OPC_CheckPredicate, 3,
561
OPC_CheckPredicate, 4,
562
OPC_CheckType, MVT::i32,
563
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
564
OPC_EmitMergeInputChains1_0,
565
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
566
1, MVT::i32, 2, 2, 3,
568
OPC_CheckPredicate, 5,
569
OPC_CheckPredicate, 6,
570
OPC_CheckType, MVT::i32,
571
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
572
OPC_EmitMergeInputChains1_0,
573
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHAX), 0|OPFL_Chain|OPFL_MemRefs,
574
1, MVT::i32, 2, 2, 3,
576
OPC_CheckPredicate, 3,
577
OPC_CheckPredicate, 7,
578
OPC_CheckType, MVT::i32,
579
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
580
OPC_EmitMergeInputChains1_0,
581
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
582
1, MVT::i32, 2, 2, 3,
584
OPC_CheckPredicate, 8,
585
OPC_CheckType, MVT::i32,
586
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
587
OPC_EmitMergeInputChains1_0,
588
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX), 0|OPFL_Chain|OPFL_MemRefs,
589
1, MVT::i32, 2, 2, 3,
591
OPC_CheckPredicate, 3,
592
OPC_CheckPredicate, 9,
593
OPC_CheckType, MVT::i32,
595
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
596
OPC_EmitMergeInputChains1_0,
597
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
598
1, MVT::i32, 2, 2, 3,
600
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
601
OPC_EmitMergeInputChains1_0,
602
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
603
1, MVT::i32, 2, 2, 3,
606
OPC_CheckPredicate, 10,
607
OPC_CheckType, MVT::i32,
609
OPC_CheckPredicate, 11,
611
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
612
OPC_EmitMergeInputChains1_0,
613
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
614
1, MVT::i32, 2, 2, 3,
616
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
617
OPC_EmitMergeInputChains1_0,
618
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
619
1, MVT::i32, 2, 2, 3,
622
OPC_CheckPredicate, 12,
624
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
625
OPC_EmitMergeInputChains1_0,
626
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
627
1, MVT::i32, 2, 2, 3,
629
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
630
OPC_EmitMergeInputChains1_0,
631
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
632
1, MVT::i32, 2, 2, 3,
635
OPC_CheckPredicate, 13,
637
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
638
OPC_EmitMergeInputChains1_0,
639
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
640
1, MVT::i32, 2, 2, 3,
642
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
643
OPC_EmitMergeInputChains1_0,
644
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
645
1, MVT::i32, 2, 2, 3,
649
OPC_CheckPredicate, 5,
650
OPC_CheckType, MVT::i64,
652
OPC_CheckPredicate, 6,
653
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
654
OPC_EmitMergeInputChains1_0,
655
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHA8), 0|OPFL_Chain|OPFL_MemRefs,
656
1, MVT::i64, 2, 2, 3,
658
OPC_CheckPredicate, 14,
659
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
660
OPC_EmitMergeInputChains1_0,
661
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWA), 0|OPFL_Chain|OPFL_MemRefs,
662
1, MVT::i64, 2, 2, 3,
664
OPC_CheckPredicate, 6,
665
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
666
OPC_EmitMergeInputChains1_0,
667
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHAX8), 0|OPFL_Chain|OPFL_MemRefs,
668
1, MVT::i64, 2, 2, 3,
670
OPC_CheckPredicate, 14,
671
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
672
OPC_EmitMergeInputChains1_0,
673
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWAX), 0|OPFL_Chain|OPFL_MemRefs,
674
1, MVT::i64, 2, 2, 3,
677
OPC_CheckPredicate, 3,
678
OPC_CheckType, MVT::i64,
680
OPC_CheckPredicate, 4,
681
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
682
OPC_EmitMergeInputChains1_0,
683
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
684
1, MVT::i64, 2, 2, 3,
686
OPC_CheckPredicate, 7,
687
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
688
OPC_EmitMergeInputChains1_0,
689
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
690
1, MVT::i64, 2, 2, 3,
692
OPC_CheckPredicate, 15,
693
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
694
OPC_EmitMergeInputChains1_0,
695
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
696
1, MVT::i64, 2, 2, 3,
698
OPC_CheckPredicate, 4,
699
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
700
OPC_EmitMergeInputChains1_0,
701
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
702
1, MVT::i64, 2, 2, 3,
704
OPC_CheckPredicate, 7,
705
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
706
OPC_EmitMergeInputChains1_0,
707
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
708
1, MVT::i64, 2, 2, 3,
710
OPC_CheckPredicate, 15,
711
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
712
OPC_EmitMergeInputChains1_0,
713
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
714
1, MVT::i64, 2, 2, 3,
717
OPC_CheckPredicate, 8,
718
OPC_CheckType, MVT::i64,
720
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
721
OPC_EmitMergeInputChains1_0,
722
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
723
1, MVT::i64, 2, 2, 3,
725
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
726
OPC_EmitMergeInputChains1_0,
727
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
728
1, MVT::i64, 2, 2, 3,
731
OPC_CheckPredicate, 3,
732
OPC_CheckPredicate, 9,
733
OPC_CheckType, MVT::i64,
735
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
736
OPC_EmitMergeInputChains1_0,
737
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
738
1, MVT::i64, 2, 2, 3,
740
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
741
OPC_EmitMergeInputChains1_0,
742
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
743
1, MVT::i64, 2, 2, 3,
746
OPC_CheckPredicate, 10,
747
OPC_CheckType, MVT::i64,
749
OPC_CheckPredicate, 11,
751
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
752
OPC_EmitMergeInputChains1_0,
753
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
754
1, MVT::i64, 2, 2, 3,
756
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
757
OPC_EmitMergeInputChains1_0,
758
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
759
1, MVT::i64, 2, 2, 3,
762
OPC_CheckPredicate, 12,
764
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
765
OPC_EmitMergeInputChains1_0,
766
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
767
1, MVT::i64, 2, 2, 3,
769
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
770
OPC_EmitMergeInputChains1_0,
771
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
772
1, MVT::i64, 2, 2, 3,
775
OPC_CheckPredicate, 13,
777
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
778
OPC_EmitMergeInputChains1_0,
779
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
780
1, MVT::i64, 2, 2, 3,
782
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
783
OPC_EmitMergeInputChains1_0,
784
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
785
1, MVT::i64, 2, 2, 3,
788
OPC_CheckPredicate, 16,
790
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
791
OPC_EmitMergeInputChains1_0,
792
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
793
1, MVT::i64, 2, 2, 3,
795
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
796
OPC_EmitMergeInputChains1_0,
797
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
798
1, MVT::i64, 2, 2, 3,
802
OPC_CheckPredicate, 8,
803
OPC_SwitchType , 30, MVT::f32,
805
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
806
OPC_EmitMergeInputChains1_0,
807
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFS), 0|OPFL_Chain|OPFL_MemRefs,
808
1, MVT::f32, 2, 2, 3,
810
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
811
OPC_EmitMergeInputChains1_0,
812
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFSX), 0|OPFL_Chain|OPFL_MemRefs,
813
1, MVT::f32, 2, 2, 3,
817
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
818
OPC_EmitMergeInputChains1_0,
819
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFD), 0|OPFL_Chain|OPFL_MemRefs,
820
1, MVT::f64, 2, 2, 3,
822
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
823
OPC_EmitMergeInputChains1_0,
824
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFDX), 0|OPFL_Chain|OPFL_MemRefs,
825
1, MVT::f64, 2, 2, 3,
829
OPC_CheckPredicate, 10,
830
OPC_CheckPredicate, 17,
831
OPC_CheckType, MVT::f64,
833
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
834
OPC_EmitMergeInputChains1_0,
835
OPC_EmitNode, TARGET_OPCODE(PPC::LFS), 0|OPFL_Chain,
836
1, MVT::f32, 2, 2, 3,
837
OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
838
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain|OPFL_MemRefs,
839
1, MVT::f64, 2, 4, 5,
841
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
842
OPC_EmitMergeInputChains1_0,
843
OPC_EmitNode, TARGET_OPCODE(PPC::LFSX), 0|OPFL_Chain,
844
1, MVT::f32, 2, 2, 3,
845
OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
846
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain|OPFL_MemRefs,
847
1, MVT::f64, 2, 4, 5,
850
OPC_CheckPredicate, 8,
851
OPC_CheckType, MVT::v4i32,
852
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
853
OPC_EmitMergeInputChains1_0,
854
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVX), 0|OPFL_Chain|OPFL_MemRefs,
855
1, MVT::v4i32, 2, 2, 3,
857
29|128,4, TARGET_OPCODE(ISD::STORE),
862
OPC_CheckChild1Type, MVT::i32,
865
OPC_CheckPredicate, 18,
867
OPC_CheckPredicate, 19,
869
OPC_CheckPredicate, 20,
870
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
871
OPC_EmitMergeInputChains1_0,
872
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STB), 0|OPFL_Chain|OPFL_MemRefs,
875
OPC_CheckPredicate, 21,
876
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
877
OPC_EmitMergeInputChains1_0,
878
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STH), 0|OPFL_Chain|OPFL_MemRefs,
882
OPC_CheckPredicate, 22,
883
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
884
OPC_EmitMergeInputChains1_0,
885
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STW), 0|OPFL_Chain|OPFL_MemRefs,
888
OPC_CheckPredicate, 19,
890
OPC_CheckPredicate, 20,
891
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
892
OPC_EmitMergeInputChains1_0,
893
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBX), 0|OPFL_Chain|OPFL_MemRefs,
896
OPC_CheckPredicate, 21,
897
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
898
OPC_EmitMergeInputChains1_0,
899
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHX), 0|OPFL_Chain|OPFL_MemRefs,
903
OPC_CheckPredicate, 22,
904
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
905
OPC_EmitMergeInputChains1_0,
906
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWX), 0|OPFL_Chain|OPFL_MemRefs,
912
OPC_CheckPredicate, 23,
913
OPC_CheckPredicate, 24,
915
OPC_CheckPredicate, 25,
916
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
917
OPC_EmitMergeInputChains1_0,
918
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBU), 0|OPFL_Chain|OPFL_MemRefs,
919
1, MVT::iPTR, 3, 1, 4, 2,
921
OPC_CheckPredicate, 26,
922
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
923
OPC_EmitMergeInputChains1_0,
924
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHU), 0|OPFL_Chain|OPFL_MemRefs,
925
1, MVT::iPTR, 3, 1, 4, 2,
928
OPC_CheckPredicate, 27,
929
OPC_CheckPredicate, 28,
930
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
931
OPC_EmitMergeInputChains1_0,
932
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWU), 0|OPFL_Chain|OPFL_MemRefs,
933
1, MVT::iPTR, 3, 1, 4, 2,
937
OPC_CheckChild1Type, MVT::f32,
940
OPC_CheckPredicate, 18,
941
OPC_CheckPredicate, 22,
943
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
944
OPC_EmitMergeInputChains1_0,
945
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFS), 0|OPFL_Chain|OPFL_MemRefs,
948
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
949
OPC_EmitMergeInputChains1_0,
950
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFSX), 0|OPFL_Chain|OPFL_MemRefs,
955
OPC_CheckPredicate, 27,
956
OPC_CheckPredicate, 28,
957
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
958
OPC_EmitMergeInputChains1_0,
959
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFSU), 0|OPFL_Chain|OPFL_MemRefs,
960
1, MVT::iPTR, 3, 1, 4, 2,
963
OPC_CheckChild1Type, MVT::f64,
966
OPC_CheckPredicate, 18,
967
OPC_CheckPredicate, 22,
969
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
970
OPC_EmitMergeInputChains1_0,
971
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFD), 0|OPFL_Chain|OPFL_MemRefs,
974
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
975
OPC_EmitMergeInputChains1_0,
976
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFDX), 0|OPFL_Chain|OPFL_MemRefs,
981
OPC_CheckPredicate, 27,
982
OPC_CheckPredicate, 28,
983
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
984
OPC_EmitMergeInputChains1_0,
985
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFDU), 0|OPFL_Chain|OPFL_MemRefs,
986
1, MVT::iPTR, 3, 1, 4, 2,
989
OPC_CheckChild1Type, MVT::v4i32,
991
OPC_CheckPredicate, 18,
992
OPC_CheckPredicate, 22,
993
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
994
OPC_EmitMergeInputChains1_0,
995
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVX), 0|OPFL_Chain|OPFL_MemRefs,
998
OPC_CheckChild1Type, MVT::i64,
1000
OPC_Scope, 10|128,1,
1001
OPC_CheckPredicate, 18,
1003
OPC_CheckPredicate, 19,
1005
OPC_CheckPredicate, 20,
1006
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1007
OPC_EmitMergeInputChains1_0,
1008
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STB8), 0|OPFL_Chain|OPFL_MemRefs,
1011
OPC_CheckPredicate, 21,
1012
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1013
OPC_EmitMergeInputChains1_0,
1014
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STH8), 0|OPFL_Chain|OPFL_MemRefs,
1017
OPC_CheckPredicate, 29,
1018
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1019
OPC_EmitMergeInputChains1_0,
1020
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STW8), 0|OPFL_Chain|OPFL_MemRefs,
1023
OPC_CheckPredicate, 20,
1024
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1025
OPC_EmitMergeInputChains1_0,
1026
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBX8), 0|OPFL_Chain|OPFL_MemRefs,
1029
OPC_CheckPredicate, 21,
1030
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1031
OPC_EmitMergeInputChains1_0,
1032
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHX8), 0|OPFL_Chain|OPFL_MemRefs,
1035
OPC_CheckPredicate, 29,
1036
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1037
OPC_EmitMergeInputChains1_0,
1038
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWX8), 0|OPFL_Chain|OPFL_MemRefs,
1042
OPC_CheckPredicate, 22,
1044
OPC_CheckComplexPat, /*CP*/3, /*#*/2,
1045
OPC_EmitMergeInputChains1_0,
1046
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
1049
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1050
OPC_EmitMergeInputChains1_0,
1051
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
1058
OPC_CheckPredicate, 23,
1059
OPC_CheckPredicate, 24,
1061
OPC_CheckPredicate, 25,
1062
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1063
OPC_EmitMergeInputChains1_0,
1064
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBU8), 0|OPFL_Chain|OPFL_MemRefs,
1065
1, MVT::iPTR, 3, 1, 4, 2,
1067
OPC_CheckPredicate, 26,
1068
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1069
OPC_EmitMergeInputChains1_0,
1070
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHU8), 0|OPFL_Chain|OPFL_MemRefs,
1071
1, MVT::iPTR, 3, 1, 4, 2,
1074
OPC_CheckPredicate, 27,
1075
OPC_CheckPredicate, 28,
1076
OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1077
OPC_EmitMergeInputChains1_0,
1078
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDU), 0|OPFL_Chain|OPFL_MemRefs,
1079
1, MVT::iPTR, 3, 1, 4, 2,
1083
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_ADD),
1088
OPC_SwitchType , 53, MVT::i32,
1090
OPC_CheckPredicate, 30,
1091
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1092
OPC_EmitMergeInputChains1_0,
1093
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
1094
1, MVT::i32, 3, 3, 4, 2,
1096
OPC_CheckPredicate, 31,
1097
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1098
OPC_EmitMergeInputChains1_0,
1099
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
1100
1, MVT::i32, 3, 3, 4, 2,
1102
OPC_CheckPredicate, 32,
1103
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1104
OPC_EmitMergeInputChains1_0,
1105
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
1106
1, MVT::i32, 3, 3, 4, 2,
1109
OPC_CheckPredicate, 33,
1110
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1111
OPC_EmitMergeInputChains1_0,
1112
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I64), 0|OPFL_Chain|OPFL_MemRefs,
1113
1, MVT::i64, 3, 3, 4, 2,
1115
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_SUB),
1120
OPC_SwitchType , 53, MVT::i32,
1122
OPC_CheckPredicate, 34,
1123
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1124
OPC_EmitMergeInputChains1_0,
1125
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
1126
1, MVT::i32, 3, 3, 4, 2,
1128
OPC_CheckPredicate, 35,
1129
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1130
OPC_EmitMergeInputChains1_0,
1131
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
1132
1, MVT::i32, 3, 3, 4, 2,
1134
OPC_CheckPredicate, 36,
1135
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1136
OPC_EmitMergeInputChains1_0,
1137
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
1138
1, MVT::i32, 3, 3, 4, 2,
1141
OPC_CheckPredicate, 37,
1142
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1143
OPC_EmitMergeInputChains1_0,
1144
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I64), 0|OPFL_Chain|OPFL_MemRefs,
1145
1, MVT::i64, 3, 3, 4, 2,
1147
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_AND),
1152
OPC_SwitchType , 53, MVT::i32,
1154
OPC_CheckPredicate, 38,
1155
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1156
OPC_EmitMergeInputChains1_0,
1157
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
1158
1, MVT::i32, 3, 3, 4, 2,
1160
OPC_CheckPredicate, 39,
1161
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1162
OPC_EmitMergeInputChains1_0,
1163
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
1164
1, MVT::i32, 3, 3, 4, 2,
1166
OPC_CheckPredicate, 40,
1167
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1168
OPC_EmitMergeInputChains1_0,
1169
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
1170
1, MVT::i32, 3, 3, 4, 2,
1173
OPC_CheckPredicate, 41,
1174
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1175
OPC_EmitMergeInputChains1_0,
1176
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I64), 0|OPFL_Chain|OPFL_MemRefs,
1177
1, MVT::i64, 3, 3, 4, 2,
1179
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_OR),
1184
OPC_SwitchType , 53, MVT::i32,
1186
OPC_CheckPredicate, 42,
1187
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1188
OPC_EmitMergeInputChains1_0,
1189
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
1190
1, MVT::i32, 3, 3, 4, 2,
1192
OPC_CheckPredicate, 43,
1193
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1194
OPC_EmitMergeInputChains1_0,
1195
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
1196
1, MVT::i32, 3, 3, 4, 2,
1198
OPC_CheckPredicate, 44,
1199
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1200
OPC_EmitMergeInputChains1_0,
1201
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
1202
1, MVT::i32, 3, 3, 4, 2,
1205
OPC_CheckPredicate, 45,
1206
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1207
OPC_EmitMergeInputChains1_0,
1208
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I64), 0|OPFL_Chain|OPFL_MemRefs,
1209
1, MVT::i64, 3, 3, 4, 2,
1211
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_XOR),
1216
OPC_SwitchType , 53, MVT::i32,
1218
OPC_CheckPredicate, 46,
1219
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1220
OPC_EmitMergeInputChains1_0,
1221
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
1222
1, MVT::i32, 3, 3, 4, 2,
1224
OPC_CheckPredicate, 47,
1225
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1226
OPC_EmitMergeInputChains1_0,
1227
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
1228
1, MVT::i32, 3, 3, 4, 2,
1230
OPC_CheckPredicate, 48,
1231
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1232
OPC_EmitMergeInputChains1_0,
1233
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
1234
1, MVT::i32, 3, 3, 4, 2,
1237
OPC_CheckPredicate, 49,
1238
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1239
OPC_EmitMergeInputChains1_0,
1240
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I64), 0|OPFL_Chain|OPFL_MemRefs,
1241
1, MVT::i64, 3, 3, 4, 2,
1243
79, TARGET_OPCODE(ISD::ATOMIC_LOAD_NAND),
1248
OPC_SwitchType , 53, MVT::i32,
1250
OPC_CheckPredicate, 50,
1251
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1252
OPC_EmitMergeInputChains1_0,
1253
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
1254
1, MVT::i32, 3, 3, 4, 2,
1256
OPC_CheckPredicate, 51,
1257
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1258
OPC_EmitMergeInputChains1_0,
1259
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
1260
1, MVT::i32, 3, 3, 4, 2,
1262
OPC_CheckPredicate, 52,
1263
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1264
OPC_EmitMergeInputChains1_0,
1265
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
1266
1, MVT::i32, 3, 3, 4, 2,
1269
OPC_CheckPredicate, 53,
1270
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1271
OPC_EmitMergeInputChains1_0,
1272
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I64), 0|OPFL_Chain|OPFL_MemRefs,
1273
1, MVT::i64, 3, 3, 4, 2,
1275
84, TARGET_OPCODE(ISD::ATOMIC_CMP_SWAP),
1281
OPC_SwitchType , 56, MVT::i32,
1283
OPC_CheckPredicate, 54,
1284
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1285
OPC_EmitMergeInputChains1_0,
1286
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
1287
1, MVT::i32, 4, 4, 5, 2, 3,
1289
OPC_CheckPredicate, 55,
1290
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1291
OPC_EmitMergeInputChains1_0,
1292
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
1293
1, MVT::i32, 4, 4, 5, 2, 3,
1295
OPC_CheckPredicate, 56,
1296
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1297
OPC_EmitMergeInputChains1_0,
1298
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
1299
1, MVT::i32, 4, 4, 5, 2, 3,
1302
OPC_CheckPredicate, 57,
1303
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1304
OPC_EmitMergeInputChains1_0,
1305
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
1306
1, MVT::i64, 4, 4, 5, 2, 3,
1308
79, TARGET_OPCODE(ISD::ATOMIC_SWAP),
1313
OPC_SwitchType , 53, MVT::i32,
1315
OPC_CheckPredicate, 58,
1316
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1317
OPC_EmitMergeInputChains1_0,
1318
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
1319
1, MVT::i32, 3, 3, 4, 2,
1321
OPC_CheckPredicate, 59,
1322
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1323
OPC_EmitMergeInputChains1_0,
1324
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
1325
1, MVT::i32, 3, 3, 4, 2,
1327
OPC_CheckPredicate, 60,
1328
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1329
OPC_EmitMergeInputChains1_0,
1330
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
1331
1, MVT::i32, 3, 3, 4, 2,
1334
OPC_CheckPredicate, 61,
1335
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1336
OPC_EmitMergeInputChains1_0,
1337
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
1338
1, MVT::i64, 3, 3, 4, 2,
1340
48, TARGET_OPCODE(PPCISD::DYNALLOC),
1343
OPC_SwitchType , 20, MVT::i32,
1344
OPC_CheckChild1Type, MVT::i32,
1346
OPC_CheckChild2Type, MVT::iPTR,
1347
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1348
OPC_EmitMergeInputChains1_0,
1349
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DYNALLOC), 0|OPFL_Chain,
1350
2, MVT::i32, MVT::i32, 3, 1, 3, 4,
1352
OPC_CheckChild1Type, MVT::i64,
1354
OPC_CheckChild2Type, MVT::iPTR,
1355
OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1356
OPC_EmitMergeInputChains1_0,
1357
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DYNALLOC8), 0|OPFL_Chain,
1358
2, MVT::i64, MVT::i64, 3, 1, 3, 4,
1360
34, TARGET_OPCODE(PPCISD::LARX),
1363
OPC_SwitchType , 13, MVT::i32,
1364
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1365
OPC_EmitMergeInputChains1_0,
1366
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWARX), 0|OPFL_Chain,
1367
1, MVT::i32, 2, 2, 3,
1369
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1370
OPC_EmitMergeInputChains1_0,
1371
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDARX), 0|OPFL_Chain,
1372
1, MVT::i64, 2, 2, 3,
1374
40, TARGET_OPCODE(PPCISD::LBRX),
1379
OPC_CheckValueType, MVT::i16,
1381
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1382
OPC_EmitMergeInputChains1_0,
1383
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHBRX), 0|OPFL_Chain,
1384
1, MVT::i32, 2, 2, 3,
1386
OPC_CheckValueType, MVT::i32,
1388
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1389
OPC_EmitMergeInputChains1_0,
1390
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWBRX), 0|OPFL_Chain,
1391
1, MVT::i32, 2, 2, 3,
1393
37, TARGET_OPCODE(PPCISD::LOAD),
1395
OPC_CaptureFlagInput,
1397
OPC_CheckChild1Type, MVT::iPTR,
1398
OPC_CheckType, MVT::i64,
1400
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
1401
OPC_EmitMergeInputChains1_0,
1402
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LD), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
1403
1, MVT::i64, 2, 2, 3,
1405
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1406
OPC_EmitMergeInputChains1_0,
1407
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
1408
1, MVT::i64, 2, 2, 3,
1410
84|128,4, TARGET_OPCODE(ISD::XOR),
1411
OPC_Scope, 39|128,1,
1413
OPC_SwitchOpcode , 41, TARGET_OPCODE(ISD::AND),
1418
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1420
OPC_SwitchType , 9, MVT::i32,
1421
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NAND), 0,
1422
1, MVT::i32, 2, 0, 1,
1424
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NAND8), 0,
1425
1, MVT::i64, 2, 0, 1,
1427
41, TARGET_OPCODE(ISD::OR),
1432
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1434
OPC_SwitchType , 9, MVT::i32,
1435
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR), 0,
1436
1, MVT::i32, 2, 0, 1,
1438
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR8), 0,
1439
1, MVT::i64, 2, 0, 1,
1441
72, TARGET_OPCODE(ISD::XOR),
1447
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1449
OPC_SwitchType , 9, MVT::i32,
1450
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1451
1, MVT::i32, 2, 0, 1,
1453
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1454
1, MVT::i64, 2, 0, 1,
1458
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1462
OPC_CheckType, MVT::i32,
1463
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1464
1, MVT::i32, 2, 0, 1,
1470
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1473
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1476
OPC_CheckType, MVT::i32,
1477
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1478
1, MVT::i32, 2, 1, 0,
1481
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1484
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1488
OPC_CheckType, MVT::i64,
1489
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1490
1, MVT::i64, 2, 0, 1,
1496
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1499
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1502
OPC_CheckType, MVT::i64,
1503
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1504
1, MVT::i64, 2, 1, 0,
1506
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1508
OPC_CheckType, MVT::i32,
1509
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR), 0,
1510
1, MVT::i32, 2, 0, 0,
1516
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1518
OPC_CheckPredicate, 62,
1520
OPC_CheckType, MVT::i32,
1521
OPC_EmitConvertToTarget, 1,
1522
OPC_EmitNodeXForm, 1, 2,
1523
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORI), 0,
1524
1, MVT::i32, 2, 0, 3,
1526
OPC_CheckPredicate, 63,
1528
OPC_CheckType, MVT::i32,
1529
OPC_EmitConvertToTarget, 1,
1530
OPC_EmitNodeXForm, 0, 2,
1531
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS), 0,
1532
1, MVT::i32, 2, 0, 3,
1534
OPC_CheckPredicate, 62,
1536
OPC_CheckType, MVT::i64,
1537
OPC_EmitConvertToTarget, 1,
1538
OPC_EmitNodeXForm, 1, 2,
1539
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORI8), 0,
1540
1, MVT::i64, 2, 0, 3,
1542
OPC_CheckPredicate, 63,
1544
OPC_CheckType, MVT::i64,
1545
OPC_EmitConvertToTarget, 1,
1546
OPC_EmitNodeXForm, 0, 2,
1547
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS8), 0,
1548
1, MVT::i64, 2, 0, 3,
1551
OPC_CheckType, MVT::i32,
1552
OPC_EmitConvertToTarget, 1,
1553
OPC_EmitNodeXForm, 1, 2,
1554
OPC_EmitNode, TARGET_OPCODE(PPC::XORI), 0,
1555
1, MVT::i32, 2, 0, 3,
1556
OPC_EmitConvertToTarget, 1,
1557
OPC_EmitNodeXForm, 0, 5,
1558
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS), 0,
1559
1, MVT::i32, 2, 4, 6,
1562
OPC_CheckType, MVT::i32,
1563
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XOR), 0,
1564
1, MVT::i32, 2, 0, 1,
1566
OPC_CheckType, MVT::i64,
1567
OPC_MorphNodeTo, TARGET_OPCODE(PPC::XOR8), 0,
1568
1, MVT::i64, 2, 0, 1,
1573
OPC_SwitchOpcode , 30, TARGET_OPCODE(ISD::OR),
1578
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1580
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1581
OPC_CheckPredicate, 64,
1582
OPC_CheckType, MVT::v16i8,
1585
OPC_CheckType, MVT::v4i32,
1586
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1587
1, MVT::v4i32, 2, 0, 1,
1588
30, TARGET_OPCODE(ISD::BIT_CONVERT),
1590
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1591
OPC_CheckPredicate, 64,
1592
OPC_CheckType, MVT::v16i8,
1596
OPC_CheckOpcode, TARGET_OPCODE(ISD::OR),
1600
OPC_CheckType, MVT::v4i32,
1601
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1602
1, MVT::v4i32, 2, 0, 1,
1607
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1609
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1610
OPC_CheckPredicate, 64,
1611
OPC_CheckType, MVT::v16i8,
1614
OPC_CheckType, MVT::v4i32,
1615
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1616
1, MVT::v4i32, 2, 0, 0,
1619
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1621
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1622
OPC_CheckPredicate, 64,
1623
OPC_CheckType, MVT::v16i8,
1627
OPC_CheckType, MVT::v4i32,
1628
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1629
1, MVT::v4i32, 2, 0, 0,
1633
OPC_CheckType, MVT::v4i32,
1634
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VXOR), 0,
1635
1, MVT::v4i32, 2, 0, 1,
1637
9|128,4, TARGET_OPCODE(ISD::AND),
1641
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1644
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1647
OPC_SwitchType , 9, MVT::i32,
1648
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC), 0,
1649
1, MVT::i32, 2, 0, 1,
1651
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC8), 0,
1652
1, MVT::i64, 2, 0, 1,
1656
OPC_SwitchOpcode , 41, TARGET_OPCODE(ISD::XOR),
1659
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1663
OPC_SwitchType , 9, MVT::i32,
1664
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC), 0,
1665
1, MVT::i32, 2, 1, 0,
1667
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC8), 0,
1668
1, MVT::i64, 2, 1, 0,
1670
37, TARGET_OPCODE(ISD::ROTL),
1673
OPC_CheckChild1Type, MVT::i32,
1677
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1678
OPC_CheckPredicate, 65,
1680
OPC_CheckType, MVT::i32,
1681
OPC_EmitConvertToTarget, 2,
1682
OPC_EmitNodeXForm, 3, 3,
1683
OPC_EmitConvertToTarget, 2,
1684
OPC_EmitNodeXForm, 4, 5,
1685
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWNM), 0,
1686
1, MVT::i32, 4, 0, 1, 4, 6,
1694
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1696
OPC_CheckPredicate, 62,
1698
OPC_CheckType, MVT::i32,
1699
OPC_EmitConvertToTarget, 1,
1700
OPC_EmitNodeXForm, 1, 2,
1701
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDIo), 0,
1702
2, MVT::i32, MVT::i32, 2, 0, 3,
1704
OPC_CheckPredicate, 63,
1706
OPC_CheckType, MVT::i32,
1707
OPC_EmitConvertToTarget, 1,
1708
OPC_EmitNodeXForm, 0, 2,
1709
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDISo), 0,
1710
2, MVT::i32, MVT::i32, 2, 0, 3,
1712
OPC_CheckPredicate, 62,
1714
OPC_CheckType, MVT::i64,
1715
OPC_EmitConvertToTarget, 1,
1716
OPC_EmitNodeXForm, 1, 2,
1717
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDIo8), 0,
1718
2, MVT::i64, MVT::i32, 2, 0, 3,
1720
OPC_CheckPredicate, 63,
1722
OPC_CheckType, MVT::i64,
1723
OPC_EmitConvertToTarget, 1,
1724
OPC_EmitNodeXForm, 0, 2,
1725
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDISo8), 0,
1726
2, MVT::i64, MVT::i32, 2, 0, 3,
1729
OPC_CheckType, MVT::i32,
1730
OPC_MorphNodeTo, TARGET_OPCODE(PPC::AND), 0,
1731
1, MVT::i32, 2, 0, 1,
1733
OPC_CheckType, MVT::i64,
1734
OPC_MorphNodeTo, TARGET_OPCODE(PPC::AND8), 0,
1735
1, MVT::i64, 2, 0, 1,
1739
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1743
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1745
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1746
OPC_CheckPredicate, 64,
1747
OPC_CheckType, MVT::v16i8,
1751
OPC_CheckType, MVT::v4i32,
1752
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1753
1, MVT::v4i32, 2, 0, 1,
1756
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1758
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1759
OPC_CheckPredicate, 64,
1760
OPC_CheckType, MVT::v16i8,
1765
OPC_CheckType, MVT::v4i32,
1766
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1767
1, MVT::v4i32, 2, 0, 1,
1772
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1776
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1778
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1779
OPC_CheckPredicate, 64,
1780
OPC_CheckType, MVT::v16i8,
1785
OPC_CheckType, MVT::v4i32,
1786
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1787
1, MVT::v4i32, 2, 1, 0,
1790
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1792
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1793
OPC_CheckPredicate, 64,
1794
OPC_CheckType, MVT::v16i8,
1800
OPC_CheckType, MVT::v4i32,
1801
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1802
1, MVT::v4i32, 2, 1, 0,
1807
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1809
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1811
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1812
OPC_CheckPredicate, 64,
1813
OPC_CheckType, MVT::v16i8,
1818
OPC_CheckType, MVT::v4i32,
1819
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1820
1, MVT::v4i32, 2, 0, 1,
1823
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1827
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1829
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1830
OPC_CheckPredicate, 64,
1831
OPC_CheckType, MVT::v16i8,
1836
OPC_CheckType, MVT::v4i32,
1837
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1838
1, MVT::v4i32, 2, 1, 0,
1841
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1843
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1844
OPC_CheckPredicate, 64,
1845
OPC_CheckType, MVT::v16i8,
1851
OPC_CheckType, MVT::v4i32,
1852
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1853
1, MVT::v4i32, 2, 1, 0,
1858
OPC_CheckType, MVT::v4i32,
1859
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAND), 0,
1860
1, MVT::v4i32, 2, 0, 1,
1862
2|128,2, TARGET_OPCODE(ISD::OR),
1866
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1869
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1872
OPC_SwitchType , 9, MVT::i32,
1873
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC), 0,
1874
1, MVT::i32, 2, 0, 1,
1876
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC8), 0,
1877
1, MVT::i64, 2, 0, 1,
1881
OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1884
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
1888
OPC_SwitchType , 9, MVT::i32,
1889
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC), 0,
1890
1, MVT::i32, 2, 1, 0,
1892
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC8), 0,
1893
1, MVT::i64, 2, 1, 0,
1900
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1902
OPC_CheckPredicate, 62,
1904
OPC_CheckType, MVT::i32,
1905
OPC_EmitConvertToTarget, 1,
1906
OPC_EmitNodeXForm, 1, 2,
1907
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI), 0,
1908
1, MVT::i32, 2, 0, 3,
1910
OPC_CheckPredicate, 63,
1912
OPC_CheckType, MVT::i32,
1913
OPC_EmitConvertToTarget, 1,
1914
OPC_EmitNodeXForm, 0, 2,
1915
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS), 0,
1916
1, MVT::i32, 2, 0, 3,
1918
OPC_CheckPredicate, 62,
1920
OPC_CheckType, MVT::i64,
1921
OPC_EmitConvertToTarget, 1,
1922
OPC_EmitNodeXForm, 1, 2,
1923
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI8), 0,
1924
1, MVT::i64, 2, 0, 3,
1926
OPC_CheckPredicate, 63,
1928
OPC_CheckType, MVT::i64,
1929
OPC_EmitConvertToTarget, 1,
1930
OPC_EmitNodeXForm, 0, 2,
1931
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS8), 0,
1932
1, MVT::i64, 2, 0, 3,
1935
OPC_CheckType, MVT::i32,
1936
OPC_EmitConvertToTarget, 1,
1937
OPC_EmitNodeXForm, 1, 2,
1938
OPC_EmitNode, TARGET_OPCODE(PPC::ORI), 0,
1939
1, MVT::i32, 2, 0, 3,
1940
OPC_EmitConvertToTarget, 1,
1941
OPC_EmitNodeXForm, 0, 5,
1942
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS), 0,
1943
1, MVT::i32, 2, 4, 6,
1946
OPC_CheckType, MVT::i32,
1947
OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR), 0,
1948
1, MVT::i32, 2, 0, 1,
1950
OPC_CheckType, MVT::i64,
1951
OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR8), 0,
1952
1, MVT::i64, 2, 0, 1,
1954
OPC_CheckType, MVT::v4i32,
1955
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VOR), 0,
1956
1, MVT::v4i32, 2, 0, 1,
1959
1|128,1, TARGET_OPCODE(PPCISD::Hi),
1962
OPC_SwitchOpcode , 28, TARGET_OPCODE(ISD::TargetGlobalAddress),
1965
OPC_CheckInteger, 0,
1967
OPC_SwitchType , 8, MVT::i32,
1968
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1971
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1974
28, TARGET_OPCODE(ISD::TargetConstantPool),
1977
OPC_CheckInteger, 0,
1979
OPC_SwitchType , 8, MVT::i32,
1980
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1983
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1986
28, TARGET_OPCODE(ISD::TargetJumpTable),
1989
OPC_CheckInteger, 0,
1991
OPC_SwitchType , 8, MVT::i32,
1992
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1995
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1998
28, TARGET_OPCODE(ISD::TargetBlockAddress),
2001
OPC_CheckInteger, 0,
2003
OPC_SwitchType , 8, MVT::i32,
2004
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
2007
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
2011
1|128,1, TARGET_OPCODE(PPCISD::Lo),
2014
OPC_SwitchOpcode , 28, TARGET_OPCODE(ISD::TargetGlobalAddress),
2017
OPC_CheckInteger, 0,
2019
OPC_SwitchType , 8, MVT::i32,
2020
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2023
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2026
28, TARGET_OPCODE(ISD::TargetConstantPool),
2029
OPC_CheckInteger, 0,
2031
OPC_SwitchType , 8, MVT::i32,
2032
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2035
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2038
28, TARGET_OPCODE(ISD::TargetJumpTable),
2041
OPC_CheckInteger, 0,
2043
OPC_SwitchType , 8, MVT::i32,
2044
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2047
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2050
28, TARGET_OPCODE(ISD::TargetBlockAddress),
2053
OPC_CheckInteger, 0,
2055
OPC_SwitchType , 8, MVT::i32,
2056
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2059
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2063
118, TARGET_OPCODE(ISD::SUB),
2066
OPC_CheckInteger, 0,
2069
OPC_SwitchType , 8, MVT::i32,
2070
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NEG), 0,
2073
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NEG8), 0,
2080
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2081
OPC_CheckPredicate, 0,
2084
OPC_CheckType, MVT::i32,
2085
OPC_EmitConvertToTarget, 0,
2086
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC), 0,
2087
2, MVT::i32, MVT::i32, 2, 1, 2,
2090
OPC_SwitchType , 9, MVT::i32,
2091
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBF), 0,
2092
1, MVT::i32, 2, 1, 0,
2094
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBF8), 0,
2095
1, MVT::i64, 2, 1, 0,
2097
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUBM), 0,
2098
1, MVT::v16i8, 2, 0, 1,
2100
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUHM), 0,
2101
1, MVT::v8i16, 2, 0, 1,
2103
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUWM), 0,
2104
1, MVT::v4i32, 2, 0, 1,
2108
102, TARGET_OPCODE(ISD::ADDE),
2109
OPC_CaptureFlagInput,
2114
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
2116
OPC_SwitchType , 9, MVT::i32,
2117
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDME), 0|OPFL_FlagInput|OPFL_FlagOutput,
2118
2, MVT::i32, MVT::i32, 1, 0,
2120
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDME8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2121
2, MVT::i64, MVT::i32, 1, 0,
2124
OPC_CheckInteger, 0,
2126
OPC_SwitchType , 9, MVT::i32,
2127
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDZE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2128
2, MVT::i32, MVT::i32, 1, 0,
2130
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDZE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2131
2, MVT::i64, MVT::i32, 1, 0,
2136
OPC_SwitchType , 10, MVT::i32,
2137
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2138
2, MVT::i32, MVT::i32, 2, 0, 1,
2140
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2141
2, MVT::i64, MVT::i32, 2, 0, 1,
2144
104, TARGET_OPCODE(ISD::SUBE),
2145
OPC_CaptureFlagInput,
2149
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
2152
OPC_SwitchType , 9, MVT::i32,
2153
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFME), 0|OPFL_FlagInput|OPFL_FlagOutput,
2154
2, MVT::i32, MVT::i32, 1, 0,
2156
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFME8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2157
2, MVT::i64, MVT::i32, 1, 0,
2160
OPC_CheckInteger, 0,
2163
OPC_SwitchType , 9, MVT::i32,
2164
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFZE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2165
2, MVT::i32, MVT::i32, 1, 0,
2167
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFZE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2168
2, MVT::i64, MVT::i32, 1, 0,
2174
OPC_SwitchType , 10, MVT::i32,
2175
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2176
2, MVT::i32, MVT::i32, 2, 1, 0,
2178
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2179
2, MVT::i64, MVT::i32, 2, 1, 0,
2182
69, TARGET_OPCODE(ISD::ADDC),
2187
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2188
OPC_CheckPredicate, 0,
2190
OPC_SwitchType , 12, MVT::i32,
2191
OPC_EmitConvertToTarget, 1,
2192
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIC), 0|OPFL_FlagOutput,
2193
2, MVT::i32, MVT::i32, 2, 0, 2,
2195
OPC_EmitConvertToTarget, 1,
2196
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIC8), 0|OPFL_FlagOutput,
2197
2, MVT::i64, MVT::i32, 2, 0, 2,
2200
OPC_CheckType, MVT::i32,
2201
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDC), 0|OPFL_FlagOutput,
2202
2, MVT::i32, MVT::i32, 2, 0, 1,
2204
OPC_CheckType, MVT::i64,
2205
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDC8), 0|OPFL_FlagOutput,
2206
2, MVT::i64, MVT::i32, 2, 0, 1,
2208
50, TARGET_OPCODE(ISD::MUL),
2213
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2214
OPC_CheckPredicate, 0,
2216
OPC_CheckType, MVT::i32,
2217
OPC_EmitConvertToTarget, 1,
2218
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLI), 0,
2219
1, MVT::i32, 2, 0, 2,
2221
OPC_CheckType, MVT::i32,
2222
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLW), 0,
2223
1, MVT::i32, 2, 0, 1,
2225
OPC_CheckType, MVT::i64,
2226
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLD), 0,
2227
1, MVT::i64, 2, 0, 1,
2229
71, TARGET_OPCODE(ISD::SUBC),
2233
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2234
OPC_CheckPredicate, 0,
2237
OPC_SwitchType , 12, MVT::i32,
2238
OPC_EmitConvertToTarget, 0,
2239
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC), 0|OPFL_FlagOutput,
2240
2, MVT::i32, MVT::i32, 2, 1, 2,
2242
OPC_EmitConvertToTarget, 0,
2243
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC8), 0|OPFL_FlagOutput,
2244
2, MVT::i64, MVT::i32, 2, 1, 2,
2248
OPC_SwitchType , 10, MVT::i32,
2249
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFC), 0|OPFL_FlagOutput,
2250
2, MVT::i32, MVT::i32, 2, 1, 0,
2252
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFC8), 0|OPFL_FlagOutput,
2253
2, MVT::i64, MVT::i32, 2, 1, 0,
2256
114, TARGET_OPCODE(ISD::SRA),
2261
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2262
OPC_CheckType, MVT::i32,
2264
OPC_SwitchType , 12, MVT::i32,
2265
OPC_EmitConvertToTarget, 1,
2266
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAWI), 0,
2267
2, MVT::i32, MVT::i32, 2, 0, 2,
2269
OPC_EmitConvertToTarget, 1,
2270
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRADI), 0,
2271
2, MVT::i64, MVT::i32, 2, 0, 2,
2274
OPC_CheckChild1Type, MVT::i32,
2275
OPC_SwitchType , 10, MVT::i32,
2276
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAW), 0,
2277
2, MVT::i32, MVT::i32, 2, 0, 1,
2279
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAD), 0,
2280
2, MVT::i64, MVT::i32, 2, 0, 1,
2283
OPC_CheckChild1Type, MVT::v16i8,
2284
OPC_CheckType, MVT::v16i8,
2285
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAB), 0,
2286
1, MVT::v16i8, 2, 0, 1,
2288
OPC_CheckChild1Type, MVT::v8i16,
2289
OPC_CheckType, MVT::v8i16,
2290
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAH), 0,
2291
1, MVT::v8i16, 2, 0, 1,
2293
OPC_CheckChild1Type, MVT::v4i32,
2294
OPC_CheckType, MVT::v4i32,
2295
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAW), 0,
2296
1, MVT::v4i32, 2, 0, 1,
2298
126, TARGET_OPCODE(ISD::SHL),
2303
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2304
OPC_CheckType, MVT::i32,
2306
OPC_SwitchType , 21, MVT::i32,
2307
OPC_EmitConvertToTarget, 1,
2308
OPC_EmitInteger, MVT::i32, 0,
2309
OPC_EmitConvertToTarget, 1,
2310
OPC_EmitNodeXForm, 5, 4,
2311
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2312
1, MVT::i32, 4, 0, 2, 3, 5,
2314
OPC_EmitConvertToTarget, 1,
2315
OPC_EmitConvertToTarget, 1,
2316
OPC_EmitNodeXForm, 6, 3,
2317
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICR), 0,
2318
1, MVT::i64, 3, 0, 2, 4,
2321
OPC_CheckChild1Type, MVT::i32,
2322
OPC_SwitchType , 9, MVT::i32,
2323
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLW), 0,
2324
1, MVT::i32, 2, 0, 1,
2326
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLD), 0,
2327
1, MVT::i64, 2, 0, 1,
2330
OPC_CheckChild1Type, MVT::v16i8,
2331
OPC_CheckType, MVT::v16i8,
2332
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLB), 0,
2333
1, MVT::v16i8, 2, 0, 1,
2335
OPC_CheckChild1Type, MVT::v8i16,
2336
OPC_CheckType, MVT::v8i16,
2337
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLH), 0,
2338
1, MVT::v8i16, 2, 0, 1,
2340
OPC_CheckChild1Type, MVT::v4i32,
2341
OPC_CheckType, MVT::v4i32,
2342
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLW), 0,
2343
1, MVT::v4i32, 2, 0, 1,
2345
126, TARGET_OPCODE(ISD::SRL),
2350
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2351
OPC_CheckType, MVT::i32,
2353
OPC_SwitchType , 21, MVT::i32,
2354
OPC_EmitConvertToTarget, 1,
2355
OPC_EmitNodeXForm, 7, 2,
2356
OPC_EmitConvertToTarget, 1,
2357
OPC_EmitInteger, MVT::i32, 31,
2358
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2359
1, MVT::i32, 4, 0, 3, 4, 5,
2361
OPC_EmitConvertToTarget, 1,
2362
OPC_EmitNodeXForm, 8, 2,
2363
OPC_EmitConvertToTarget, 1,
2364
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2365
1, MVT::i64, 3, 0, 3, 4,
2368
OPC_CheckChild1Type, MVT::i32,
2369
OPC_SwitchType , 9, MVT::i32,
2370
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRW), 0,
2371
1, MVT::i32, 2, 0, 1,
2373
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRD), 0,
2374
1, MVT::i64, 2, 0, 1,
2377
OPC_CheckChild1Type, MVT::v16i8,
2378
OPC_CheckType, MVT::v16i8,
2379
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRB), 0,
2380
1, MVT::v16i8, 2, 0, 1,
2382
OPC_CheckChild1Type, MVT::v8i16,
2383
OPC_CheckType, MVT::v8i16,
2384
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRH), 0,
2385
1, MVT::v8i16, 2, 0, 1,
2387
OPC_CheckChild1Type, MVT::v4i32,
2388
OPC_CheckType, MVT::v4i32,
2389
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRW), 0,
2390
1, MVT::v4i32, 2, 0, 1,
2392
92, TARGET_OPCODE(ISD::ROTL),
2397
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2398
OPC_CheckType, MVT::i32,
2400
OPC_SwitchType , 19, MVT::i32,
2401
OPC_EmitConvertToTarget, 1,
2402
OPC_EmitInteger, MVT::i32, 0,
2403
OPC_EmitInteger, MVT::i32, 31,
2404
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2405
1, MVT::i32, 4, 0, 2, 3, 4,
2407
OPC_EmitConvertToTarget, 1,
2408
OPC_EmitInteger, MVT::i32, 0,
2409
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2410
1, MVT::i64, 3, 0, 2, 3,
2413
OPC_CheckChild1Type, MVT::i32,
2414
OPC_SwitchType , 17, MVT::i32,
2415
OPC_EmitInteger, MVT::i32, 0,
2416
OPC_EmitInteger, MVT::i32, 31,
2417
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWNM), 0,
2418
1, MVT::i32, 4, 0, 1, 2, 3,
2420
OPC_EmitInteger, MVT::i32, 0,
2421
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDCL), 0,
2422
1, MVT::i64, 3, 0, 1, 2,
2425
19, TARGET_OPCODE(PPCISD::TOC_ENTRY),
2428
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
2431
OPC_CheckType, MVT::i64,
2432
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDtoc), 0,
2433
1, MVT::i64, 2, 0, 1,
2434
97, TARGET_OPCODE(ISD::Constant),
2436
OPC_SwitchType , 59, MVT::i32,
2438
OPC_CheckPredicate, 0,
2439
OPC_EmitConvertToTarget, 0,
2440
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2443
OPC_CheckPredicate, 1,
2444
OPC_EmitConvertToTarget, 0,
2445
OPC_EmitNodeXForm, 0, 1,
2446
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
2449
OPC_EmitConvertToTarget, 0,
2450
OPC_EmitNodeXForm, 0, 1,
2451
OPC_EmitNode, TARGET_OPCODE(PPC::LIS), 0,
2453
OPC_EmitConvertToTarget, 0,
2454
OPC_EmitNodeXForm, 1, 4,
2455
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI), 0,
2456
1, MVT::i32, 2, 3, 5,
2460
OPC_CheckPredicate, 0,
2461
OPC_EmitConvertToTarget, 0,
2462
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2465
OPC_CheckPredicate, 1,
2466
OPC_EmitConvertToTarget, 0,
2467
OPC_EmitNodeXForm, 0, 1,
2468
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
2472
28, TARGET_OPCODE(PPCISD::SHL),
2475
OPC_CheckChild1Type, MVT::i32,
2476
OPC_SwitchType , 9, MVT::i32,
2477
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLW), 0,
2478
1, MVT::i32, 2, 0, 1,
2480
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLD), 0,
2481
1, MVT::i64, 2, 0, 1,
2483
28, TARGET_OPCODE(PPCISD::SRL),
2486
OPC_CheckChild1Type, MVT::i32,
2487
OPC_SwitchType , 9, MVT::i32,
2488
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRW), 0,
2489
1, MVT::i32, 2, 0, 1,
2491
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRD), 0,
2492
1, MVT::i64, 2, 0, 1,
2494
30, TARGET_OPCODE(PPCISD::SRA),
2497
OPC_CheckChild1Type, MVT::i32,
2498
OPC_SwitchType , 10, MVT::i32,
2499
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAW), 0,
2500
2, MVT::i32, MVT::i32, 2, 0, 1,
2502
OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAD), 0,
2503
2, MVT::i64, MVT::i32, 2, 0, 1,
2505
23, TARGET_OPCODE(ISD::CTLZ),
2507
OPC_SwitchType , 8, MVT::i32,
2508
OPC_MorphNodeTo, TARGET_OPCODE(PPC::CNTLZW), 0,
2511
OPC_MorphNodeTo, TARGET_OPCODE(PPC::CNTLZD), 0,
2514
69, TARGET_OPCODE(ISD::SIGN_EXTEND_INREG),
2518
OPC_CheckValueType, MVT::i8,
2520
OPC_SwitchType , 8, MVT::i32,
2521
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSB), 0,
2524
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSB8), 0,
2528
OPC_CheckValueType, MVT::i16,
2530
OPC_SwitchType , 8, MVT::i32,
2531
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSH), 0,
2534
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSH8), 0,
2538
OPC_CheckValueType, MVT::i32,
2540
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW), 0,
2543
26, TARGET_OPCODE(ISD::SDIV),
2546
OPC_SwitchType , 9, MVT::i32,
2547
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVW), 0,
2548
1, MVT::i32, 2, 0, 1,
2550
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVD), 0,
2551
1, MVT::i64, 2, 0, 1,
2553
26, TARGET_OPCODE(ISD::UDIV),
2556
OPC_SwitchType , 9, MVT::i32,
2557
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVWU), 0,
2558
1, MVT::i32, 2, 0, 1,
2560
OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVDU), 0,
2561
1, MVT::i64, 2, 0, 1,
2563
26, TARGET_OPCODE(ISD::MULHS),
2566
OPC_SwitchType , 9, MVT::i32,
2567
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHW), 0,
2568
1, MVT::i32, 2, 0, 1,
2570
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHD), 0,
2571
1, MVT::i64, 2, 0, 1,
2573
26, TARGET_OPCODE(ISD::MULHU),
2576
OPC_SwitchType , 9, MVT::i32,
2577
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHWU), 0,
2578
1, MVT::i32, 2, 0, 1,
2580
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHDU), 0,
2581
1, MVT::i64, 2, 0, 1,
2583
11, TARGET_OPCODE(PPCISD::EXTSW_32),
2585
OPC_CheckType, MVT::i32,
2586
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW_32), 0,
2588
13, TARGET_OPCODE(ISD::SIGN_EXTEND),
2590
OPC_CheckChild0Type, MVT::i32,
2591
OPC_CheckType, MVT::i64,
2592
OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW_32_64), 0,
2594
14, TARGET_OPCODE(ISD::ANY_EXTEND),
2596
OPC_CheckChild0Type, MVT::i32,
2597
OPC_CheckType, MVT::i64,
2598
OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR4To8), 0,
2599
1, MVT::i64, 2, 0, 0,
2600
12, TARGET_OPCODE(ISD::TRUNCATE),
2602
OPC_CheckType, MVT::i32,
2603
OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR8To4), 0,
2604
1, MVT::i32, 2, 0, 0,
2605
30, TARGET_OPCODE(ISD::ZERO_EXTEND),
2607
OPC_CheckChild0Type, MVT::i32,
2608
OPC_CheckType, MVT::i64,
2609
OPC_EmitNode, TARGET_OPCODE(PPC::OR4To8), 0,
2610
1, MVT::i64, 2, 0, 0,
2611
OPC_EmitInteger, MVT::i32, 0,
2612
OPC_EmitInteger, MVT::i32, 32,
2613
OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2614
1, MVT::i64, 3, 1, 2, 3,
2615
61|128,1, TARGET_OPCODE(ISD::FNEG),
2616
OPC_Scope, 33|128,1,
2618
OPC_SwitchOpcode , 84, TARGET_OPCODE(ISD::FADD),
2621
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2627
OPC_SwitchType , 12, MVT::f64,
2628
OPC_CheckPatternPredicate, 0,
2629
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADD), 0,
2630
1, MVT::f64, 3, 0, 1, 2,
2632
OPC_CheckPatternPredicate, 0,
2633
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADDS), 0,
2634
1, MVT::f32, 3, 0, 1, 2,
2639
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2644
OPC_SwitchType , 12, MVT::f64,
2645
OPC_CheckPatternPredicate, 0,
2646
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADD), 0,
2647
1, MVT::f64, 3, 1, 2, 0,
2649
OPC_CheckPatternPredicate, 0,
2650
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADDS), 0,
2651
1, MVT::f32, 3, 1, 2, 0,
2654
40, TARGET_OPCODE(ISD::FSUB),
2656
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2662
OPC_SwitchType , 12, MVT::f64,
2663
OPC_CheckPatternPredicate, 0,
2664
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUB), 0,
2665
1, MVT::f64, 3, 0, 1, 2,
2667
OPC_CheckPatternPredicate, 0,
2668
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUBS), 0,
2669
1, MVT::f32, 3, 0, 1, 2,
2671
24, TARGET_OPCODE(ISD::FABS),
2674
OPC_SwitchType , 8, MVT::f32,
2675
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNABSS), 0,
2678
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNABSD), 0,
2684
OPC_SwitchType , 8, MVT::f32,
2685
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNEGS), 0,
2688
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNEGD), 0,
2692
24, TARGET_OPCODE(PPCISD::MTFSF),
2693
OPC_CaptureFlagInput,
2696
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2697
OPC_CheckType, MVT::i32,
2701
OPC_EmitConvertToTarget, 0,
2702
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSF), 0|OPFL_FlagInput,
2703
1, MVT::f64, 3, 3, 1, 2,
2704
47|128,1, TARGET_OPCODE(ISD::FADD),
2707
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2712
OPC_SwitchType , 12, MVT::f64,
2713
OPC_CheckPatternPredicate, 0,
2714
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADD), 0,
2715
1, MVT::f64, 3, 0, 1, 2,
2717
OPC_CheckPatternPredicate, 0,
2718
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADDS), 0,
2719
1, MVT::f32, 3, 0, 1, 2,
2725
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2729
OPC_SwitchType , 12, MVT::f64,
2730
OPC_CheckPatternPredicate, 0,
2731
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADD), 0,
2732
1, MVT::f64, 3, 1, 2, 0,
2734
OPC_CheckPatternPredicate, 0,
2735
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADDS), 0,
2736
1, MVT::f32, 3, 1, 2, 0,
2740
OPC_SwitchType , 9, MVT::f64,
2741
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADD), 0,
2742
1, MVT::f64, 2, 0, 1,
2744
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADDS), 0,
2745
1, MVT::f32, 2, 0, 1,
2750
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2755
OPC_CheckType, MVT::v4f32,
2756
OPC_CheckPatternPredicate, 0,
2757
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2758
1, MVT::v4f32, 3, 0, 1, 2,
2763
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2767
OPC_CheckType, MVT::v4f32,
2768
OPC_CheckPatternPredicate, 0,
2769
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2770
1, MVT::v4f32, 3, 1, 2, 0,
2773
OPC_CheckType, MVT::v4f32,
2774
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDFP), 0,
2775
1, MVT::v4f32, 2, 0, 1,
2778
35|128,1, TARGET_OPCODE(ISD::FSUB),
2781
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2786
OPC_SwitchType , 12, MVT::f64,
2787
OPC_CheckPatternPredicate, 0,
2788
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMSUB), 0,
2789
1, MVT::f64, 3, 0, 1, 2,
2791
OPC_CheckPatternPredicate, 0,
2792
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMSUBS), 0,
2793
1, MVT::f32, 3, 0, 1, 2,
2799
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2803
OPC_SwitchType , 12, MVT::f64,
2804
OPC_CheckPatternPredicate, 0,
2805
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUB), 0,
2806
1, MVT::f64, 3, 1, 2, 0,
2808
OPC_CheckPatternPredicate, 0,
2809
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUBS), 0,
2810
1, MVT::f32, 3, 1, 2, 0,
2814
OPC_SwitchType , 9, MVT::f64,
2815
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSUB), 0,
2816
1, MVT::f64, 2, 0, 1,
2818
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSUBS), 0,
2819
1, MVT::f32, 2, 0, 1,
2824
OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
2825
OPC_CheckPredicate, 66,
2828
OPC_CheckOpcode, TARGET_OPCODE(ISD::FSUB),
2830
OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2836
OPC_CheckType, MVT::v4f32,
2837
OPC_CheckPatternPredicate, 0,
2838
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
2839
1, MVT::v4f32, 3, 0, 1, 2,
2843
OPC_CheckType, MVT::v4f32,
2844
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBFP), 0,
2845
1, MVT::v4f32, 2, 0, 1,
2847
11, TARGET_OPCODE(PPCISD::FCTIWZ),
2849
OPC_CheckType, MVT::f64,
2850
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCTIWZ), 0,
2852
9, TARGET_OPCODE(ISD::FP_ROUND),
2854
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FRSP), 0,
2856
23, TARGET_OPCODE(ISD::FSQRT),
2858
OPC_SwitchType , 8, MVT::f64,
2859
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSQRT), 0,
2862
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSQRTS), 0,
2865
23, TARGET_OPCODE(ISD::FABS),
2867
OPC_SwitchType , 8, MVT::f32,
2868
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FABSS), 0,
2871
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FABSD), 0,
2874
7, TARGET_OPCODE(PPCISD::MFFS),
2875
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MFFS), 0|OPFL_FlagOutput,
2877
14, TARGET_OPCODE(PPCISD::FADDRTZ),
2878
OPC_CaptureFlagInput,
2881
OPC_CheckType, MVT::f64,
2882
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADDrtz), 0|OPFL_FlagInput|OPFL_FlagOutput,
2883
1, MVT::f64, 2, 0, 1,
2884
29, TARGET_OPCODE(PPCISD::FSEL),
2888
OPC_SwitchType , 10, MVT::f64,
2889
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSELD), 0,
2890
1, MVT::f64, 3, 0, 1, 2,
2892
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSELS), 0,
2893
1, MVT::f32, 3, 0, 1, 2,
2895
26, TARGET_OPCODE(ISD::FDIV),
2898
OPC_SwitchType , 9, MVT::f64,
2899
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FDIV), 0,
2900
1, MVT::f64, 2, 0, 1,
2902
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FDIVS), 0,
2903
1, MVT::f32, 2, 0, 1,
2905
45, TARGET_OPCODE(ISD::FMUL),
2908
OPC_SwitchType , 9, MVT::f64,
2909
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMUL), 0,
2910
1, MVT::f64, 2, 0, 1,
2912
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMULS), 0,
2913
1, MVT::f32, 2, 0, 1,
2915
OPC_EmitNode, TARGET_OPCODE(PPC::V_SET0), 0,
2917
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2918
1, MVT::v4f32, 3, 0, 1, 2,
2920
13, TARGET_OPCODE(ISD::FP_EXTEND),
2922
OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
2923
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
2924
1, MVT::f64, 2, 0, 1,
2925
11, TARGET_OPCODE(PPCISD::FCFID),
2927
OPC_CheckType, MVT::f64,
2928
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCFID), 0,
2930
11, TARGET_OPCODE(PPCISD::FCTIDZ),
2932
OPC_CheckType, MVT::f64,
2933
OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCTIDZ), 0,
2935
113, TARGET_OPCODE(ISD::INTRINSIC_W_CHAIN),
2939
OPC_CheckInteger, 54|128,1,
2942
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2943
OPC_EmitMergeInputChains1_0,
2944
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEBX), 0|OPFL_Chain,
2945
1, MVT::v16i8, 2, 2, 3,
2947
OPC_CheckInteger, 55|128,1,
2950
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2951
OPC_EmitMergeInputChains1_0,
2952
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEHX), 0|OPFL_Chain,
2953
1, MVT::v8i16, 2, 2, 3,
2955
OPC_CheckInteger, 56|128,1,
2958
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2959
OPC_EmitMergeInputChains1_0,
2960
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEWX), 0|OPFL_Chain,
2961
1, MVT::v4i32, 2, 2, 3,
2963
OPC_CheckInteger, 59|128,1,
2966
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2967
OPC_EmitMergeInputChains1_0,
2968
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVX), 0|OPFL_Chain,
2969
1, MVT::v4i32, 2, 2, 3,
2971
OPC_CheckInteger, 60|128,1,
2974
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2975
OPC_EmitMergeInputChains1_0,
2976
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVXL), 0|OPFL_Chain,
2977
1, MVT::v4i32, 2, 2, 3,
2979
OPC_CheckInteger, 61|128,1,
2981
OPC_EmitMergeInputChains1_0,
2982
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MFVSCR), 0|OPFL_Chain,
2985
22|128,13, TARGET_OPCODE(ISD::INTRINSIC_WO_CHAIN),
2988
OPC_CheckInteger, 57|128,1,
2991
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
2992
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVSL), 0,
2993
1, MVT::v16i8, 2, 1, 2,
2995
OPC_CheckInteger, 58|128,1,
2998
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
2999
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVSR), 0,
3000
1, MVT::v16i8, 2, 1, 2,
3002
OPC_CheckInteger, 109|128,1,
3007
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3009
OPC_EmitConvertToTarget, 1,
3010
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCTSXS), 0,
3011
1, MVT::v4i32, 2, 2, 0,
3013
OPC_CheckInteger, 110|128,1,
3018
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3020
OPC_EmitConvertToTarget, 1,
3021
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCTUXS), 0,
3022
1, MVT::v4i32, 2, 2, 0,
3024
OPC_CheckInteger, 121|128,1,
3029
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMHADDSHS), 0,
3030
1, MVT::v8i16, 3, 0, 1, 2,
3032
OPC_CheckInteger, 122|128,1,
3037
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMHRADDSHS), 0,
3038
1, MVT::v8i16, 3, 0, 1, 2,
3040
OPC_CheckInteger, 2|128,2,
3045
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMLADDUHM), 0,
3046
1, MVT::v8i16, 3, 0, 1, 2,
3048
OPC_CheckInteger, 18|128,2,
3053
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPERM), 0,
3054
1, MVT::v4i32, 3, 0, 1, 2,
3056
OPC_CheckInteger, 35|128,2,
3061
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSEL), 0,
3062
1, MVT::v4i32, 3, 0, 1, 2,
3064
OPC_CheckInteger, 68|128,1,
3068
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDCUW), 0,
3069
1, MVT::v4i32, 2, 0, 1,
3071
OPC_CheckInteger, 69|128,1,
3075
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSBS), 0,
3076
1, MVT::v16i8, 2, 0, 1,
3078
OPC_CheckInteger, 70|128,1,
3082
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSHS), 0,
3083
1, MVT::v8i16, 2, 0, 1,
3085
OPC_CheckInteger, 71|128,1,
3089
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSWS), 0,
3090
1, MVT::v4i32, 2, 0, 1,
3092
OPC_CheckInteger, 72|128,1,
3096
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUBS), 0,
3097
1, MVT::v16i8, 2, 0, 1,
3099
OPC_CheckInteger, 73|128,1,
3103
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUHS), 0,
3104
1, MVT::v8i16, 2, 0, 1,
3106
OPC_CheckInteger, 74|128,1,
3110
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUWS), 0,
3111
1, MVT::v4i32, 2, 0, 1,
3113
OPC_CheckInteger, 75|128,1,
3117
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSB), 0,
3118
1, MVT::v16i8, 2, 0, 1,
3120
OPC_CheckInteger, 76|128,1,
3124
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSH), 0,
3125
1, MVT::v8i16, 2, 0, 1,
3127
OPC_CheckInteger, 77|128,1,
3131
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSW), 0,
3132
1, MVT::v4i32, 2, 0, 1,
3134
OPC_CheckInteger, 78|128,1,
3138
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUB), 0,
3139
1, MVT::v16i8, 2, 0, 1,
3141
OPC_CheckInteger, 79|128,1,
3145
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUH), 0,
3146
1, MVT::v8i16, 2, 0, 1,
3148
OPC_CheckInteger, 80|128,1,
3152
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUW), 0,
3153
1, MVT::v4i32, 2, 0, 1,
3155
OPC_CheckInteger, 115|128,1,
3159
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSB), 0,
3160
1, MVT::v16i8, 2, 0, 1,
3162
OPC_CheckInteger, 116|128,1,
3166
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSH), 0,
3167
1, MVT::v8i16, 2, 0, 1,
3169
OPC_CheckInteger, 117|128,1,
3173
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSW), 0,
3174
1, MVT::v4i32, 2, 0, 1,
3176
OPC_CheckInteger, 118|128,1,
3180
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUB), 0,
3181
1, MVT::v16i8, 2, 0, 1,
3183
OPC_CheckInteger, 119|128,1,
3187
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUH), 0,
3188
1, MVT::v8i16, 2, 0, 1,
3190
OPC_CheckInteger, 120|128,1,
3194
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUW), 0,
3195
1, MVT::v4i32, 2, 0, 1,
3197
OPC_CheckInteger, 124|128,1,
3201
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSB), 0,
3202
1, MVT::v16i8, 2, 0, 1,
3204
OPC_CheckInteger, 125|128,1,
3208
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSH), 0,
3209
1, MVT::v8i16, 2, 0, 1,
3211
OPC_CheckInteger, 126|128,1,
3215
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSW), 0,
3216
1, MVT::v4i32, 2, 0, 1,
3218
OPC_CheckInteger, 127|128,1,
3222
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUB), 0,
3223
1, MVT::v16i8, 2, 0, 1,
3225
OPC_CheckInteger, 0|128,2,
3229
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUH), 0,
3230
1, MVT::v8i16, 2, 0, 1,
3232
OPC_CheckInteger, 1|128,2,
3236
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUW), 0,
3237
1, MVT::v4i32, 2, 0, 1,
3239
OPC_CheckInteger, 3|128,2,
3244
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMMBM), 0,
3245
1, MVT::v4i32, 3, 0, 1, 2,
3247
OPC_CheckInteger, 4|128,2,
3252
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMSHM), 0,
3253
1, MVT::v4i32, 3, 0, 1, 2,
3255
OPC_CheckInteger, 5|128,2,
3260
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMSHS), 0,
3261
1, MVT::v4i32, 3, 0, 1, 2,
3263
OPC_CheckInteger, 6|128,2,
3268
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUBM), 0,
3269
1, MVT::v4i32, 3, 0, 1, 2,
3271
OPC_CheckInteger, 7|128,2,
3276
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUHM), 0,
3277
1, MVT::v4i32, 3, 0, 1, 2,
3279
OPC_CheckInteger, 8|128,2,
3284
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUHS), 0,
3285
1, MVT::v4i32, 3, 0, 1, 2,
3287
OPC_CheckInteger, 9|128,2,
3291
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULESB), 0,
3292
1, MVT::v8i16, 2, 0, 1,
3294
OPC_CheckInteger, 10|128,2,
3298
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULESH), 0,
3299
1, MVT::v4i32, 2, 0, 1,
3301
OPC_CheckInteger, 11|128,2,
3305
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULEUB), 0,
3306
1, MVT::v8i16, 2, 0, 1,
3308
OPC_CheckInteger, 12|128,2,
3312
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULEUH), 0,
3313
1, MVT::v4i32, 2, 0, 1,
3315
OPC_CheckInteger, 13|128,2,
3319
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOSB), 0,
3320
1, MVT::v8i16, 2, 0, 1,
3322
OPC_CheckInteger, 14|128,2,
3326
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOSH), 0,
3327
1, MVT::v4i32, 2, 0, 1,
3329
OPC_CheckInteger, 15|128,2,
3333
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOUB), 0,
3334
1, MVT::v8i16, 2, 0, 1,
3336
OPC_CheckInteger, 16|128,2,
3340
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOUH), 0,
3341
1, MVT::v4i32, 2, 0, 1,
3343
OPC_CheckInteger, 49|128,2,
3347
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBCUW), 0,
3348
1, MVT::v4i32, 2, 0, 1,
3350
OPC_CheckInteger, 50|128,2,
3354
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSBS), 0,
3355
1, MVT::v16i8, 2, 0, 1,
3357
OPC_CheckInteger, 51|128,2,
3361
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSHS), 0,
3362
1, MVT::v8i16, 2, 0, 1,
3364
OPC_CheckInteger, 52|128,2,
3368
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSWS), 0,
3369
1, MVT::v4i32, 2, 0, 1,
3371
OPC_CheckInteger, 53|128,2,
3375
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUBS), 0,
3376
1, MVT::v16i8, 2, 0, 1,
3378
OPC_CheckInteger, 54|128,2,
3382
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUHS), 0,
3383
1, MVT::v8i16, 2, 0, 1,
3385
OPC_CheckInteger, 55|128,2,
3389
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUWS), 0,
3390
1, MVT::v4i32, 2, 0, 1,
3392
OPC_CheckInteger, 60|128,2,
3396
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUMSWS), 0,
3397
1, MVT::v4i32, 2, 0, 1,
3399
OPC_CheckInteger, 56|128,2,
3403
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM2SWS), 0,
3404
1, MVT::v4i32, 2, 0, 1,
3406
OPC_CheckInteger, 57|128,2,
3410
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4SBS), 0,
3411
1, MVT::v4i32, 2, 0, 1,
3413
OPC_CheckInteger, 58|128,2,
3417
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4SHS), 0,
3418
1, MVT::v4i32, 2, 0, 1,
3420
OPC_CheckInteger, 59|128,2,
3424
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4UBS), 0,
3425
1, MVT::v4i32, 2, 0, 1,
3427
OPC_CheckInteger, 31|128,2,
3431
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLB), 0,
3432
1, MVT::v16i8, 2, 0, 1,
3434
OPC_CheckInteger, 32|128,2,
3438
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLH), 0,
3439
1, MVT::v8i16, 2, 0, 1,
3441
OPC_CheckInteger, 33|128,2,
3445
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLW), 0,
3446
1, MVT::v4i32, 2, 0, 1,
3448
OPC_CheckInteger, 36|128,2,
3452
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSL), 0,
3453
1, MVT::v4i32, 2, 0, 1,
3455
OPC_CheckInteger, 39|128,2,
3459
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLO), 0,
3460
1, MVT::v4i32, 2, 0, 1,
3462
OPC_CheckInteger, 37|128,2,
3466
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLB), 0,
3467
1, MVT::v16i8, 2, 0, 1,
3469
OPC_CheckInteger, 38|128,2,
3473
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLH), 0,
3474
1, MVT::v8i16, 2, 0, 1,
3476
OPC_CheckInteger, 40|128,2,
3480
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLW), 0,
3481
1, MVT::v4i32, 2, 0, 1,
3483
OPC_CheckInteger, 41|128,2,
3487
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSR), 0,
3488
1, MVT::v4i32, 2, 0, 1,
3490
OPC_CheckInteger, 47|128,2,
3494
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRO), 0,
3495
1, MVT::v4i32, 2, 0, 1,
3497
OPC_CheckInteger, 42|128,2,
3501
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAB), 0,
3502
1, MVT::v16i8, 2, 0, 1,
3504
OPC_CheckInteger, 43|128,2,
3508
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAH), 0,
3509
1, MVT::v8i16, 2, 0, 1,
3511
OPC_CheckInteger, 44|128,2,
3515
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAW), 0,
3516
1, MVT::v4i32, 2, 0, 1,
3518
OPC_CheckInteger, 45|128,2,
3522
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRB), 0,
3523
1, MVT::v16i8, 2, 0, 1,
3525
OPC_CheckInteger, 46|128,2,
3529
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRH), 0,
3530
1, MVT::v8i16, 2, 0, 1,
3532
OPC_CheckInteger, 48|128,2,
3536
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRW), 0,
3537
1, MVT::v4i32, 2, 0, 1,
3539
OPC_CheckInteger, 19|128,2,
3543
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKPX), 0,
3544
1, MVT::v8i16, 2, 0, 1,
3546
OPC_CheckInteger, 20|128,2,
3550
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSHSS), 0,
3551
1, MVT::v16i8, 2, 0, 1,
3553
OPC_CheckInteger, 21|128,2,
3557
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSHUS), 0,
3558
1, MVT::v16i8, 2, 0, 1,
3560
OPC_CheckInteger, 22|128,2,
3564
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSWSS), 0,
3565
1, MVT::v16i8, 2, 0, 1,
3567
OPC_CheckInteger, 23|128,2,
3571
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSWUS), 0,
3572
1, MVT::v8i16, 2, 0, 1,
3574
OPC_CheckInteger, 24|128,2,
3578
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUS), 0,
3579
1, MVT::v16i8, 2, 0, 1,
3581
OPC_CheckInteger, 25|128,2,
3585
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUS), 0,
3586
1, MVT::v8i16, 2, 0, 1,
3588
OPC_CheckInteger, 61|128,2,
3591
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHPX), 0,
3592
1, MVT::v4i32, 1, 0,
3594
OPC_CheckInteger, 62|128,2,
3597
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHSB), 0,
3598
1, MVT::v8i16, 1, 0,
3600
OPC_CheckInteger, 63|128,2,
3603
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHSH), 0,
3604
1, MVT::v4i32, 1, 0,
3606
OPC_CheckInteger, 64|128,2,
3609
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLPX), 0,
3610
1, MVT::v4i32, 1, 0,
3612
OPC_CheckInteger, 65|128,2,
3615
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLSB), 0,
3616
1, MVT::v8i16, 1, 0,
3618
OPC_CheckInteger, 66|128,2,
3621
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLSH), 0,
3622
1, MVT::v4i32, 1, 0,
3624
OPC_CheckInteger, 81|128,1,
3629
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3631
OPC_EmitConvertToTarget, 1,
3632
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCFSX), 0,
3633
1, MVT::v4f32, 2, 2, 0,
3635
OPC_CheckInteger, 82|128,1,
3640
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3642
OPC_EmitConvertToTarget, 1,
3643
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCFUX), 0,
3644
1, MVT::v4f32, 2, 2, 0,
3646
OPC_CheckInteger, 111|128,1,
3649
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VEXPTEFP), 0,
3650
1, MVT::v4f32, 1, 0,
3652
OPC_CheckInteger, 112|128,1,
3655
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VLOGEFP), 0,
3656
1, MVT::v4f32, 1, 0,
3658
OPC_CheckInteger, 114|128,1,
3662
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXFP), 0,
3663
1, MVT::v4f32, 2, 0, 1,
3665
OPC_CheckInteger, 123|128,1,
3669
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINFP), 0,
3670
1, MVT::v4f32, 2, 0, 1,
3672
OPC_CheckInteger, 26|128,2,
3675
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VREFP), 0,
3676
1, MVT::v4f32, 1, 0,
3678
OPC_CheckInteger, 27|128,2,
3681
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIM), 0,
3682
1, MVT::v4f32, 1, 0,
3684
OPC_CheckInteger, 28|128,2,
3687
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIN), 0,
3688
1, MVT::v4f32, 1, 0,
3690
OPC_CheckInteger, 29|128,2,
3693
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIP), 0,
3694
1, MVT::v4f32, 1, 0,
3696
OPC_CheckInteger, 30|128,2,
3699
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIZ), 0,
3700
1, MVT::v4f32, 1, 0,
3702
OPC_CheckInteger, 34|128,2,
3705
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRSQRTEFP), 0,
3706
1, MVT::v4f32, 1, 0,
3708
OPC_CheckInteger, 113|128,1,
3713
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
3714
1, MVT::v4f32, 3, 0, 1, 2,
3716
OPC_CheckInteger, 17|128,2,
3721
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
3722
1, MVT::v4f32, 3, 0, 1, 2,
3724
40, TARGET_OPCODE(PPCISD::STCX),
3728
OPC_CheckChild1Type, MVT::i32,
3730
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3731
OPC_EmitMergeInputChains1_0,
3732
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWCX), 0|OPFL_Chain,
3733
1, MVT::i32, 3, 1, 3, 4,
3735
OPC_CheckChild1Type, MVT::i64,
3737
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3738
OPC_EmitMergeInputChains1_0,
3739
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDCX), 0|OPFL_Chain,
3740
1, MVT::i32, 3, 1, 3, 4,
3742
41, TARGET_OPCODE(PPCISD::STBRX),
3748
OPC_CheckValueType, MVT::i16,
3750
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3751
OPC_EmitMergeInputChains1_0,
3752
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHBRX), 0|OPFL_Chain,
3755
OPC_CheckValueType, MVT::i32,
3757
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3758
OPC_EmitMergeInputChains1_0,
3759
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWBRX), 0|OPFL_Chain,
3762
16, TARGET_OPCODE(PPCISD::STFIWX),
3766
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3767
OPC_EmitMergeInputChains1_0,
3768
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFIWX), 0|OPFL_Chain,
3770
35, TARGET_OPCODE(PPCISD::STD_32),
3773
OPC_CheckChild1Type, MVT::i32,
3776
OPC_CheckComplexPat, /*CP*/3, /*#*/2,
3777
OPC_EmitMergeInputChains1_0,
3778
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STD_32), 0|OPFL_Chain,
3781
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
3782
OPC_EmitMergeInputChains1_0,
3783
OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDX_32), 0|OPFL_Chain,
3786
26, TARGET_OPCODE(ISD::CALLSEQ_END),
3788
OPC_CaptureFlagInput,
3791
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
3795
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
3797
OPC_EmitMergeInputChains1_0,
3798
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
3799
1, MVT::i32, 2, 1, 2,
3800
70|128,1, TARGET_OPCODE(PPCISD::TC_RETURN),
3802
OPC_CaptureFlagInput,
3804
OPC_Scope, 21|128,1,
3806
OPC_SwitchOpcode , 48, TARGET_OPCODE(ISD::Constant),
3807
OPC_SwitchType , 21, MVT::i32,
3811
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3813
OPC_EmitMergeInputChains1_0,
3814
OPC_EmitConvertToTarget, 1,
3815
OPC_EmitConvertToTarget, 2,
3816
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNai), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3822
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3824
OPC_EmitMergeInputChains1_0,
3825
OPC_EmitConvertToTarget, 1,
3826
OPC_EmitConvertToTarget, 2,
3827
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNai8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3830
44, TARGET_OPCODE(ISD::TargetGlobalAddress),
3831
OPC_SwitchType , 19, MVT::i32,
3835
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3837
OPC_EmitMergeInputChains1_0,
3838
OPC_EmitConvertToTarget, 2,
3839
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3845
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3847
OPC_EmitMergeInputChains1_0,
3848
OPC_EmitConvertToTarget, 2,
3849
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3852
44, TARGET_OPCODE(ISD::TargetExternalSymbol),
3853
OPC_SwitchType , 19, MVT::i32,
3857
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3859
OPC_EmitMergeInputChains1_0,
3860
OPC_EmitConvertToTarget, 2,
3861
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3867
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3869
OPC_EmitMergeInputChains1_0,
3870
OPC_EmitConvertToTarget, 2,
3871
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3876
OPC_CheckChild1Type, MVT::i32,
3879
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3881
OPC_EmitMergeInputChains1_0,
3882
OPC_EmitConvertToTarget, 2,
3883
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNri), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3886
OPC_CheckChild1Type, MVT::i64,
3889
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3891
OPC_EmitMergeInputChains1_0,
3892
OPC_EmitConvertToTarget, 2,
3893
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNri8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3896
84|128,1, TARGET_OPCODE(PPCISD::VCMP),
3901
OPC_CheckInteger, 6,
3903
OPC_CheckType, MVT::v16i8,
3904
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUB), 0,
3905
1, MVT::v16i8, 2, 0, 1,
3907
OPC_CheckInteger, 6|128,6,
3909
OPC_CheckType, MVT::v16i8,
3910
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSB), 0,
3911
1, MVT::v16i8, 2, 0, 1,
3913
OPC_CheckInteger, 6|128,4,
3915
OPC_CheckType, MVT::v16i8,
3916
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUB), 0,
3917
1, MVT::v16i8, 2, 0, 1,
3919
OPC_CheckInteger, 70,
3921
OPC_CheckType, MVT::v8i16,
3922
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUH), 0,
3923
1, MVT::v8i16, 2, 0, 1,
3925
OPC_CheckInteger, 70|128,6,
3927
OPC_CheckType, MVT::v8i16,
3928
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSH), 0,
3929
1, MVT::v8i16, 2, 0, 1,
3931
OPC_CheckInteger, 70|128,4,
3933
OPC_CheckType, MVT::v8i16,
3934
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUH), 0,
3935
1, MVT::v8i16, 2, 0, 1,
3937
OPC_CheckInteger, 6|128,1,
3939
OPC_CheckType, MVT::v4i32,
3940
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUW), 0,
3941
1, MVT::v4i32, 2, 0, 1,
3943
OPC_CheckInteger, 6|128,7,
3945
OPC_CheckType, MVT::v4i32,
3946
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSW), 0,
3947
1, MVT::v4i32, 2, 0, 1,
3949
OPC_CheckInteger, 6|128,5,
3951
OPC_CheckType, MVT::v4i32,
3952
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUW), 0,
3953
1, MVT::v4i32, 2, 0, 1,
3955
OPC_CheckInteger, 70|128,7,
3957
OPC_CheckType, MVT::v4f32,
3958
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPBFP), 0,
3959
1, MVT::v4f32, 2, 0, 1,
3961
OPC_CheckInteger, 70|128,1,
3963
OPC_CheckType, MVT::v4f32,
3964
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQFP), 0,
3965
1, MVT::v4f32, 2, 0, 1,
3967
OPC_CheckInteger, 70|128,3,
3969
OPC_CheckType, MVT::v4f32,
3970
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGEFP), 0,
3971
1, MVT::v4f32, 2, 0, 1,
3973
OPC_CheckInteger, 70|128,5,
3975
OPC_CheckType, MVT::v4f32,
3976
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTFP), 0,
3977
1, MVT::v4f32, 2, 0, 1,
3979
97|128,1, TARGET_OPCODE(PPCISD::VCMPo),
3984
OPC_CheckInteger, 6,
3986
OPC_CheckType, MVT::v16i8,
3987
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUBo), 0|OPFL_FlagOutput,
3988
2, MVT::v16i8, MVT::i32, 2, 0, 1,
3990
OPC_CheckInteger, 6|128,6,
3992
OPC_CheckType, MVT::v16i8,
3993
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSBo), 0|OPFL_FlagOutput,
3994
2, MVT::v16i8, MVT::i32, 2, 0, 1,
3996
OPC_CheckInteger, 6|128,4,
3998
OPC_CheckType, MVT::v16i8,
3999
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUBo), 0|OPFL_FlagOutput,
4000
2, MVT::v16i8, MVT::i32, 2, 0, 1,
4002
OPC_CheckInteger, 70,
4004
OPC_CheckType, MVT::v8i16,
4005
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUHo), 0|OPFL_FlagOutput,
4006
2, MVT::v8i16, MVT::i32, 2, 0, 1,
4008
OPC_CheckInteger, 70|128,6,
4010
OPC_CheckType, MVT::v8i16,
4011
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSHo), 0|OPFL_FlagOutput,
4012
2, MVT::v8i16, MVT::i32, 2, 0, 1,
4014
OPC_CheckInteger, 70|128,4,
4016
OPC_CheckType, MVT::v8i16,
4017
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUHo), 0|OPFL_FlagOutput,
4018
2, MVT::v8i16, MVT::i32, 2, 0, 1,
4020
OPC_CheckInteger, 6|128,1,
4022
OPC_CheckType, MVT::v4i32,
4023
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUWo), 0|OPFL_FlagOutput,
4024
2, MVT::v4i32, MVT::i32, 2, 0, 1,
4026
OPC_CheckInteger, 6|128,7,
4028
OPC_CheckType, MVT::v4i32,
4029
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSWo), 0|OPFL_FlagOutput,
4030
2, MVT::v4i32, MVT::i32, 2, 0, 1,
4032
OPC_CheckInteger, 6|128,5,
4034
OPC_CheckType, MVT::v4i32,
4035
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUWo), 0|OPFL_FlagOutput,
4036
2, MVT::v4i32, MVT::i32, 2, 0, 1,
4038
OPC_CheckInteger, 70|128,7,
4040
OPC_CheckType, MVT::v4f32,
4041
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPBFPo), 0|OPFL_FlagOutput,
4042
2, MVT::v4f32, MVT::i32, 2, 0, 1,
4044
OPC_CheckInteger, 70|128,1,
4046
OPC_CheckType, MVT::v4f32,
4047
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQFPo), 0|OPFL_FlagOutput,
4048
2, MVT::v4f32, MVT::i32, 2, 0, 1,
4050
OPC_CheckInteger, 70|128,3,
4052
OPC_CheckType, MVT::v4f32,
4053
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGEFPo), 0|OPFL_FlagOutput,
4054
2, MVT::v4f32, MVT::i32, 2, 0, 1,
4056
OPC_CheckInteger, 70|128,5,
4058
OPC_CheckType, MVT::v4f32,
4059
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTFPo), 0|OPFL_FlagOutput,
4060
2, MVT::v4f32, MVT::i32, 2, 0, 1,
4062
52|128,2, TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
4067
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
4069
OPC_CheckType, MVT::v16i8,
4071
OPC_CheckPredicate, 67,
4072
OPC_EmitNodeXForm, 9, 0,
4073
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTB), 0,
4074
1, MVT::v16i8, 2, 2, 1,
4076
OPC_CheckPredicate, 68,
4077
OPC_EmitNodeXForm, 10, 0,
4078
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTH), 0,
4079
1, MVT::v16i8, 2, 2, 1,
4081
OPC_CheckPredicate, 69,
4082
OPC_EmitNodeXForm, 11, 0,
4083
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTW), 0,
4084
1, MVT::v16i8, 2, 2, 1,
4086
OPC_CheckPredicate, 70,
4087
OPC_EmitNodeXForm, 12, 0,
4088
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLDOI), 0,
4089
1, MVT::v16i8, 3, 1, 1, 2,
4094
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
4096
OPC_CheckType, MVT::v16i8,
4098
OPC_CheckPredicate, 71,
4099
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUM), 0,
4100
1, MVT::v16i8, 2, 0, 0,
4102
OPC_CheckPredicate, 72,
4103
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUM), 0,
4104
1, MVT::v16i8, 2, 0, 0,
4106
OPC_CheckPredicate, 73,
4107
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLB), 0,
4108
1, MVT::v16i8, 2, 0, 0,
4110
OPC_CheckPredicate, 74,
4111
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLH), 0,
4112
1, MVT::v16i8, 2, 0, 0,
4114
OPC_CheckPredicate, 75,
4115
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLW), 0,
4116
1, MVT::v16i8, 2, 0, 0,
4118
OPC_CheckPredicate, 76,
4119
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHB), 0,
4120
1, MVT::v16i8, 2, 0, 0,
4122
OPC_CheckPredicate, 77,
4123
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHH), 0,
4124
1, MVT::v16i8, 2, 0, 0,
4126
OPC_CheckPredicate, 78,
4127
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHW), 0,
4128
1, MVT::v16i8, 2, 0, 0,
4134
OPC_CheckPredicate, 79,
4135
OPC_CheckType, MVT::v16i8,
4136
OPC_EmitNodeXForm, 13, 0,
4137
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLDOI), 0,
4138
1, MVT::v16i8, 3, 1, 2, 3,
4142
OPC_CheckType, MVT::v16i8,
4144
OPC_CheckPredicate, 80,
4145
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHB), 0,
4146
1, MVT::v16i8, 2, 0, 1,
4148
OPC_CheckPredicate, 81,
4149
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHH), 0,
4150
1, MVT::v16i8, 2, 0, 1,
4152
OPC_CheckPredicate, 82,
4153
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHW), 0,
4154
1, MVT::v16i8, 2, 0, 1,
4156
OPC_CheckPredicate, 83,
4157
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLB), 0,
4158
1, MVT::v16i8, 2, 0, 1,
4160
OPC_CheckPredicate, 84,
4161
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLH), 0,
4162
1, MVT::v16i8, 2, 0, 1,
4164
OPC_CheckPredicate, 85,
4165
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLW), 0,
4166
1, MVT::v16i8, 2, 0, 1,
4168
OPC_CheckPredicate, 86,
4169
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUM), 0,
4170
1, MVT::v16i8, 2, 0, 1,
4172
OPC_CheckPredicate, 87,
4173
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUM), 0,
4174
1, MVT::v16i8, 2, 0, 1,
4177
17, TARGET_OPCODE(ISD::CALLSEQ_START),
4181
OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
4183
OPC_EmitMergeInputChains1_0,
4184
OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
4186
98, TARGET_OPCODE(PPCISD::CALL_Darwin),
4188
OPC_CaptureFlagInput,
4191
OPC_SwitchOpcode , 30, TARGET_OPCODE(ISD::Constant),
4192
OPC_SwitchType , 12, MVT::i32,
4194
OPC_EmitMergeInputChains1_0,
4195
OPC_EmitConvertToTarget, 1,
4196
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4200
OPC_EmitMergeInputChains1_0,
4201
OPC_EmitConvertToTarget, 1,
4202
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4205
26, TARGET_OPCODE(ISD::TargetGlobalAddress),
4206
OPC_SwitchType , 10, MVT::i32,
4208
OPC_EmitMergeInputChains1_0,
4209
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4213
OPC_EmitMergeInputChains1_0,
4214
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4217
26, TARGET_OPCODE(ISD::TargetExternalSymbol),
4218
OPC_SwitchType , 10, MVT::i32,
4220
OPC_EmitMergeInputChains1_0,
4221
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4225
OPC_EmitMergeInputChains1_0,
4226
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4230
98, TARGET_OPCODE(PPCISD::CALL_SVR4),
4232
OPC_CaptureFlagInput,
4235
OPC_SwitchOpcode , 30, TARGET_OPCODE(ISD::Constant),
4236
OPC_SwitchType , 12, MVT::i32,
4238
OPC_EmitMergeInputChains1_0,
4239
OPC_EmitConvertToTarget, 1,
4240
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4244
OPC_EmitMergeInputChains1_0,
4245
OPC_EmitConvertToTarget, 1,
4246
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4249
26, TARGET_OPCODE(ISD::TargetGlobalAddress),
4250
OPC_SwitchType , 10, MVT::i32,
4252
OPC_EmitMergeInputChains1_0,
4253
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4257
OPC_EmitMergeInputChains1_0,
4258
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4261
26, TARGET_OPCODE(ISD::TargetExternalSymbol),
4262
OPC_SwitchType , 10, MVT::i32,
4264
OPC_EmitMergeInputChains1_0,
4265
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4269
OPC_EmitMergeInputChains1_0,
4270
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4274
19, TARGET_OPCODE(PPCISD::MTFSB0),
4275
OPC_CaptureFlagInput,
4278
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
4279
OPC_CheckType, MVT::i32,
4281
OPC_EmitConvertToTarget, 0,
4282
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSB0), 0|OPFL_FlagInput|OPFL_FlagOutput,
4284
19, TARGET_OPCODE(PPCISD::MTFSB1),
4285
OPC_CaptureFlagInput,
4288
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
4289
OPC_CheckType, MVT::i32,
4291
OPC_EmitConvertToTarget, 0,
4292
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSB1), 0|OPFL_FlagInput|OPFL_FlagOutput,
4294
63, TARGET_OPCODE(ISD::BUILD_VECTOR),
4297
OPC_SwitchType , 13, MVT::v16i8,
4298
OPC_CheckPredicate, 88,
4299
OPC_EmitNodeXForm, 14, 0,
4300
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISB), 0,
4301
1, MVT::v16i8, 1, 1,
4303
OPC_CheckPredicate, 89,
4304
OPC_EmitNodeXForm, 15, 0,
4305
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISH), 0,
4306
1, MVT::v8i16, 1, 1,
4308
OPC_CheckPredicate, 90,
4309
OPC_EmitNodeXForm, 16, 0,
4310
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISW), 0,
4311
1, MVT::v4i32, 1, 1,
4314
OPC_CheckPredicate, 91,
4315
OPC_CheckType, MVT::v4i32,
4316
OPC_MorphNodeTo, TARGET_OPCODE(PPC::V_SET0), 0,
4319
83, TARGET_OPCODE(ISD::BIT_CONVERT),
4322
OPC_CheckChild0Type, MVT::v8i16,
4323
OPC_SwitchType , 3, MVT::v16i8,
4324
OPC_CompleteMatch, 1, 0,
4327
OPC_CompleteMatch, 1, 0,
4330
OPC_CompleteMatch, 1, 0,
4334
OPC_CheckChild0Type, MVT::v4i32,
4335
OPC_SwitchType , 3, MVT::v16i8,
4336
OPC_CompleteMatch, 1, 0,
4339
OPC_CompleteMatch, 1, 0,
4342
OPC_CompleteMatch, 1, 0,
4346
OPC_CheckChild0Type, MVT::v4f32,
4347
OPC_SwitchType , 3, MVT::v16i8,
4348
OPC_CompleteMatch, 1, 0,
4351
OPC_CompleteMatch, 1, 0,
4354
OPC_CompleteMatch, 1, 0,
4358
OPC_CheckChild0Type, MVT::v16i8,
4359
OPC_SwitchType , 3, MVT::v8i16,
4360
OPC_CompleteMatch, 1, 0,
4363
OPC_CompleteMatch, 1, 0,
4366
OPC_CompleteMatch, 1, 0,
4370
17, TARGET_OPCODE(PPCISD::RET_FLAG),
4372
OPC_CaptureFlagInput,
4373
OPC_EmitMergeInputChains1_0,
4374
OPC_EmitInteger, MVT::i32, 20,
4375
OPC_EmitRegister, MVT::i32, 0 ,
4376
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLR), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic0,
4378
16, TARGET_OPCODE(ISD::BR),
4382
OPC_CheckOpcode, TARGET_OPCODE(ISD::BasicBlock),
4384
OPC_EmitMergeInputChains1_0,
4385
OPC_MorphNodeTo, TARGET_OPCODE(PPC::B), 0|OPFL_Chain,
4387
26, TARGET_OPCODE(PPCISD::BCTRL_Darwin),
4389
OPC_CaptureFlagInput,
4391
OPC_CheckPatternPredicate, 1,
4392
OPC_EmitMergeInputChains1_0,
4393
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4396
OPC_CheckPatternPredicate, 2,
4397
OPC_EmitMergeInputChains1_0,
4398
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4401
26, TARGET_OPCODE(PPCISD::BCTRL_SVR4),
4403
OPC_CaptureFlagInput,
4405
OPC_CheckPatternPredicate, 1,
4406
OPC_EmitMergeInputChains1_0,
4407
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4410
OPC_CheckPatternPredicate, 2,
4411
OPC_EmitMergeInputChains1_0,
4412
OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4415
8, TARGET_OPCODE(ISD::TRAP),
4417
OPC_EmitMergeInputChains1_0,
4418
OPC_MorphNodeTo, TARGET_OPCODE(PPC::TRAP), 0|OPFL_Chain,
4420
29, TARGET_OPCODE(PPCISD::MTCTR),
4422
OPC_CaptureFlagInput,
4425
OPC_CheckChild1Type, MVT::i32,
4426
OPC_EmitMergeInputChains1_0,
4427
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTCTR), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4430
OPC_CheckChild1Type, MVT::i64,
4431
OPC_EmitMergeInputChains1_0,
4432
OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTCTR8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4435
15, TARGET_OPCODE(PPCISD::VPERM),
4439
OPC_CheckType, MVT::v16i8,
4440
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPERM), 0,
4441
1, MVT::v16i8, 3, 0, 1, 2,
4442
15, TARGET_OPCODE(PPCISD::VMADDFP),
4446
OPC_CheckType, MVT::v4f32,
4447
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
4448
1, MVT::v4f32, 3, 0, 1, 2,
4449
15, TARGET_OPCODE(PPCISD::VNMSUBFP),
4453
OPC_CheckType, MVT::v4f32,
4454
OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
4455
1, MVT::v4f32, 3, 0, 1, 2,
4456
7, TARGET_OPCODE(PPCISD::NOP),
4457
OPC_CaptureFlagInput,
4458
OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOP), 0|OPFL_FlagInput|OPFL_FlagOutput,
4460
13, TARGET_OPCODE(PPCISD::LOAD_TOC),
4462
OPC_CaptureFlagInput,
4464
OPC_CheckChild1Type, MVT::i64,
4465
OPC_EmitMergeInputChains1_0,
4466
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDinto_toc), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4468
9, TARGET_OPCODE(PPCISD::TOC_RESTORE),
4470
OPC_CaptureFlagInput,
4471
OPC_EmitMergeInputChains1_0,
4472
OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDtoc_restore), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4476
}; // Total Array size is 10997 bytes
4478
#undef TARGET_OPCODE
4479
return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
4482
bool CheckPatternPredicate(unsigned PredNo) const {
4484
default: assert(0 && "Invalid predicate in table?");
4485
case 0: return (!NoExcessFPPrecision);
4486
case 1: return (!PPCSubTarget.isPPC64());
4487
case 2: return (PPCSubTarget.isPPC64());
4491
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
4493
default: assert(0 && "Invalid predicate in table?");
4494
case 0: { // Predicate_immSExt16
4495
ConstantSDNode*N = cast<ConstantSDNode>(Node);
4497
// immSExt16 predicate - True if the immediate fits in a 16-bit sign extended
4498
// field. Used by instructions like 'addi'.
4499
if (N->getValueType(0) == MVT::i32)
4500
return (int32_t)N->getZExtValue() == (short)N->getZExtValue();
4502
return (int64_t)N->getZExtValue() == (short)N->getZExtValue();
4505
case 1: { // Predicate_imm16ShiftedSExt
4506
ConstantSDNode*N = cast<ConstantSDNode>(Node);
4508
// imm16ShiftedSExt predicate - True if only bits in the top 16-bits of the
4509
// immediate are set. Used by instructions like 'addis'. Identical to
4510
// imm16ShiftedZExt in 32-bit mode.
4511
if (N->getZExtValue() & 0xFFFF) return false;
4512
if (N->getValueType(0) == MVT::i32)
4514
// For 64-bit, make sure it is sext right.
4515
return N->getZExtValue() == (uint64_t)(int)N->getZExtValue();
4518
case 2: { // Predicate_unindexedload
4521
return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
4524
case 3: { // Predicate_zextload
4527
return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
4530
case 4: { // Predicate_zextloadi8
4533
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
4536
case 5: { // Predicate_sextload
4539
return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
4542
case 6: { // Predicate_sextloadi16
4545
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4548
case 7: { // Predicate_zextloadi16
4551
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4554
case 8: { // Predicate_load
4557
return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
4560
case 9: { // Predicate_zextloadi1
4563
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
4566
case 10: { // Predicate_extload
4569
return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
4572
case 11: { // Predicate_extloadi1
4575
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
4578
case 12: { // Predicate_extloadi8
4581
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
4584
case 13: { // Predicate_extloadi16
4587
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4590
case 14: { // Predicate_sextloadi32
4593
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4596
case 15: { // Predicate_zextloadi32
4599
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4602
case 16: { // Predicate_extloadi32
4605
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4608
case 17: { // Predicate_extloadf32
4611
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
4614
case 18: { // Predicate_unindexedstore
4617
return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
4620
case 19: { // Predicate_truncstore
4623
return cast<StoreSDNode>(N)->isTruncatingStore();
4626
case 20: { // Predicate_truncstorei8
4629
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
4632
case 21: { // Predicate_truncstorei16
4635
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
4638
case 22: { // Predicate_store
4641
return !cast<StoreSDNode>(N)->isTruncatingStore();
4644
case 23: { // Predicate_itruncstore
4647
return cast<StoreSDNode>(N)->isTruncatingStore();
4650
case 24: { // Predicate_pre_truncst
4653
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
4654
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
4657
case 25: { // Predicate_pre_truncsti8
4660
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
4663
case 26: { // Predicate_pre_truncsti16
4666
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
4669
case 27: { // Predicate_istore
4672
return !cast<StoreSDNode>(N)->isTruncatingStore();
4675
case 28: { // Predicate_pre_store
4678
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
4679
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
4682
case 29: { // Predicate_truncstorei32
4685
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
4688
case 30: { // Predicate_atomic_load_add_8
4691
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4694
case 31: { // Predicate_atomic_load_add_16
4697
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4700
case 32: { // Predicate_atomic_load_add_32
4703
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4706
case 33: { // Predicate_atomic_load_add_64
4709
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4712
case 34: { // Predicate_atomic_load_sub_8
4715
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4718
case 35: { // Predicate_atomic_load_sub_16
4721
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4724
case 36: { // Predicate_atomic_load_sub_32
4727
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4730
case 37: { // Predicate_atomic_load_sub_64
4733
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4736
case 38: { // Predicate_atomic_load_and_8
4739
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4742
case 39: { // Predicate_atomic_load_and_16
4745
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4748
case 40: { // Predicate_atomic_load_and_32
4751
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4754
case 41: { // Predicate_atomic_load_and_64
4757
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4760
case 42: { // Predicate_atomic_load_or_8
4763
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4766
case 43: { // Predicate_atomic_load_or_16
4769
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4772
case 44: { // Predicate_atomic_load_or_32
4775
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4778
case 45: { // Predicate_atomic_load_or_64
4781
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4784
case 46: { // Predicate_atomic_load_xor_8
4787
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4790
case 47: { // Predicate_atomic_load_xor_16
4793
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4796
case 48: { // Predicate_atomic_load_xor_32
4799
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4802
case 49: { // Predicate_atomic_load_xor_64
4805
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4808
case 50: { // Predicate_atomic_load_nand_8
4811
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4814
case 51: { // Predicate_atomic_load_nand_16
4817
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4820
case 52: { // Predicate_atomic_load_nand_32
4823
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4826
case 53: { // Predicate_atomic_load_nand_64
4829
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4832
case 54: { // Predicate_atomic_cmp_swap_8
4835
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4838
case 55: { // Predicate_atomic_cmp_swap_16
4841
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4844
case 56: { // Predicate_atomic_cmp_swap_32
4847
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4850
case 57: { // Predicate_atomic_cmp_swap_64
4853
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4856
case 58: { // Predicate_atomic_swap_8
4859
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4862
case 59: { // Predicate_atomic_swap_16
4865
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4868
case 60: { // Predicate_atomic_swap_32
4871
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4874
case 61: { // Predicate_atomic_swap_64
4877
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4880
case 62: { // Predicate_immZExt16
4881
ConstantSDNode*N = cast<ConstantSDNode>(Node);
4883
// immZExt16 predicate - True if the immediate fits in a 16-bit zero extended
4884
// field. Used by instructions like 'ori'.
4885
return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
4888
case 63: { // Predicate_imm16ShiftedZExt
4889
ConstantSDNode*N = cast<ConstantSDNode>(Node);
4891
// imm16ShiftedZExt predicate - True if only bits in the top 16-bits of the
4892
// immediate are set. Used by instructions like 'xoris'.
4893
return (N->getZExtValue() & ~uint64_t(0xFFFF0000)) == 0;
4896
case 64: { // Predicate_immAllOnesV
4899
return ISD::isBuildVectorAllOnes(N);
4902
case 65: { // Predicate_maskimm32
4903
ConstantSDNode*N = cast<ConstantSDNode>(Node);
4905
// maskImm predicate - True if immediate is a run of ones.
4907
if (N->getValueType(0) == MVT::i32)
4908
return isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
4913
case 66: { // Predicate_V_immneg0
4916
return PPC::isAllNegativeZeroVector(N);
4919
case 67: { // Predicate_vspltb_shuffle
4922
return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 1);
4925
case 68: { // Predicate_vsplth_shuffle
4928
return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 2);
4931
case 69: { // Predicate_vspltw_shuffle
4934
return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 4);
4937
case 70: { // Predicate_vsldoi_unary_shuffle
4940
return PPC::isVSLDOIShuffleMask(N, true) != -1;
4943
case 71: { // Predicate_vpkuwum_unary_shuffle
4946
return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), true);
4949
case 72: { // Predicate_vpkuhum_unary_shuffle
4952
return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), true);
4955
case 73: { // Predicate_vmrglb_unary_shuffle
4958
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, true);
4961
case 74: { // Predicate_vmrglh_unary_shuffle
4964
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, true);
4967
case 75: { // Predicate_vmrglw_unary_shuffle
4970
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, true);
4973
case 76: { // Predicate_vmrghb_unary_shuffle
4976
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, true);
4979
case 77: { // Predicate_vmrghh_unary_shuffle
4982
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, true);
4985
case 78: { // Predicate_vmrghw_unary_shuffle
4988
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, true);
4991
case 79: { // Predicate_vsldoi_shuffle
4994
return PPC::isVSLDOIShuffleMask(N, false) != -1;
4997
case 80: { // Predicate_vmrghb_shuffle
5000
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, false);
5003
case 81: { // Predicate_vmrghh_shuffle
5006
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, false);
5009
case 82: { // Predicate_vmrghw_shuffle
5012
return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, false);
5015
case 83: { // Predicate_vmrglb_shuffle
5018
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, false);
5021
case 84: { // Predicate_vmrglh_shuffle
5024
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, false);
5027
case 85: { // Predicate_vmrglw_shuffle
5030
return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, false);
5033
case 86: { // Predicate_vpkuhum_shuffle
5036
return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), false);
5039
case 87: { // Predicate_vpkuwum_shuffle
5042
return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), false);
5045
case 88: { // Predicate_vecspltisb
5048
return PPC::get_VSPLTI_elt(N, 1, *CurDAG).getNode() != 0;
5051
case 89: { // Predicate_vecspltish
5054
return PPC::get_VSPLTI_elt(N, 2, *CurDAG).getNode() != 0;
5057
case 90: { // Predicate_vecspltisw
5060
return PPC::get_VSPLTI_elt(N, 4, *CurDAG).getNode() != 0;
5063
case 91: { // Predicate_immAllZerosV
5066
return ISD::isBuildVectorAllZeros(N);
5072
bool CheckComplexPattern(SDNode *Root, SDValue N,
5073
unsigned PatternNo, SmallVectorImpl<SDValue> &Result) {
5074
unsigned NextRes = Result.size();
5075
switch (PatternNo) {
5076
default: assert(0 && "Invalid pattern # in table?");
5078
Result.resize(NextRes+2);
5079
return SelectAddrIdxOnly(Root, N, Result[NextRes+0], Result[NextRes+1]);
5081
Result.resize(NextRes+2);
5082
return SelectAddrImm(Root, N, Result[NextRes+0], Result[NextRes+1]);
5084
Result.resize(NextRes+2);
5085
return SelectAddrIdx(Root, N, Result[NextRes+0], Result[NextRes+1]);
5087
Result.resize(NextRes+2);
5088
return SelectAddrImmShift(Root, N, Result[NextRes+0], Result[NextRes+1]);
5090
Result.resize(NextRes+1);
5091
return SelectAddrImmOffs(Root, N, Result[NextRes+0]);
5095
SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
5097
default: assert(0 && "Invalid xform # in table?");
5099
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5101
// Transformation function: shift the immediate value down into the low bits.
5102
return getI32Imm((unsigned)N->getZExtValue() >> 16);
5106
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5108
// Transformation function: get the low 16 bits.
5109
return getI32Imm((unsigned short)N->getZExtValue());
5113
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5115
// Transformation function: shift the immediate value down into the low bits.
5116
signed int Val = N->getZExtValue();
5117
return getI32Imm((Val - (signed short)Val) >> 16);
5121
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5123
// Transformation function: get the start bit of a mask
5124
unsigned mb = 0, me;
5125
(void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
5126
return getI32Imm(mb);
5130
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5132
// Transformation function: get the end bit of a mask
5133
unsigned mb, me = 0;
5134
(void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
5135
return getI32Imm(me);
5139
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5141
// Transformation function: 31 - imm
5142
return getI32Imm(31 - N->getZExtValue());
5146
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5148
// Transformation function: 63 - imm
5149
return getI32Imm(63 - N->getZExtValue());
5153
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5155
// Transformation function: 32 - imm
5156
return N->getZExtValue() ? getI32Imm(32 - N->getZExtValue()) : getI32Imm(0);
5160
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5162
// Transformation function: 64 - imm
5163
return N->getZExtValue() ? getI32Imm(64 - N->getZExtValue()) : getI32Imm(0);
5167
SDNode *N = V.getNode();
5169
return getI32Imm(PPC::getVSPLTImmediate(N, 1));
5173
SDNode *N = V.getNode();
5175
return getI32Imm(PPC::getVSPLTImmediate(N, 2));
5179
SDNode *N = V.getNode();
5181
return getI32Imm(PPC::getVSPLTImmediate(N, 4));
5185
SDNode *N = V.getNode();
5187
return getI32Imm(PPC::isVSLDOIShuffleMask(N, true));
5191
SDNode *N = V.getNode();
5193
return getI32Imm(PPC::isVSLDOIShuffleMask(N, false));
5197
SDNode *N = V.getNode();
5199
return PPC::get_VSPLTI_elt(N, 1, *CurDAG);
5203
SDNode *N = V.getNode();
5205
return PPC::get_VSPLTI_elt(N, 2, *CurDAG);
5209
SDNode *N = V.getNode();
5211
return PPC::get_VSPLTI_elt(N, 4, *CurDAG);