1
//===- TableGen'erated file -------------------------------------*- C++ -*-===//
3
// DAG Instruction Selector for the ARM 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.
13
// Predicate functions.
14
inline bool Predicate_adde_dead_carry(SDNode *N) const {
15
return !N->hasAnyUseOfValue(1);
17
inline bool Predicate_adde_live_carry(SDNode *N) const {
18
return N->hasAnyUseOfValue(1);
20
inline bool Predicate_atomic_cmp_swap_16(SDNode *N) const {
22
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
25
inline bool Predicate_atomic_cmp_swap_32(SDNode *N) const {
27
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
30
inline bool Predicate_atomic_cmp_swap_64(SDNode *N) const {
32
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
35
inline bool Predicate_atomic_cmp_swap_8(SDNode *N) const {
37
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
40
inline bool Predicate_atomic_load_add_16(SDNode *N) const {
42
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
45
inline bool Predicate_atomic_load_add_32(SDNode *N) const {
47
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
50
inline bool Predicate_atomic_load_add_64(SDNode *N) const {
52
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
55
inline bool Predicate_atomic_load_add_8(SDNode *N) const {
57
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
60
inline bool Predicate_atomic_load_and_16(SDNode *N) const {
62
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
65
inline bool Predicate_atomic_load_and_32(SDNode *N) const {
67
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
70
inline bool Predicate_atomic_load_and_64(SDNode *N) const {
72
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
75
inline bool Predicate_atomic_load_and_8(SDNode *N) const {
77
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
80
inline bool Predicate_atomic_load_max_16(SDNode *N) const {
82
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
85
inline bool Predicate_atomic_load_max_32(SDNode *N) const {
87
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
90
inline bool Predicate_atomic_load_max_64(SDNode *N) const {
92
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
95
inline bool Predicate_atomic_load_max_8(SDNode *N) const {
97
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
100
inline bool Predicate_atomic_load_min_16(SDNode *N) const {
102
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
105
inline bool Predicate_atomic_load_min_32(SDNode *N) const {
107
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
110
inline bool Predicate_atomic_load_min_64(SDNode *N) const {
112
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
115
inline bool Predicate_atomic_load_min_8(SDNode *N) const {
117
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
120
inline bool Predicate_atomic_load_nand_16(SDNode *N) const {
122
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
125
inline bool Predicate_atomic_load_nand_32(SDNode *N) const {
127
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
130
inline bool Predicate_atomic_load_nand_64(SDNode *N) const {
132
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
135
inline bool Predicate_atomic_load_nand_8(SDNode *N) const {
137
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
140
inline bool Predicate_atomic_load_or_16(SDNode *N) const {
142
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
145
inline bool Predicate_atomic_load_or_32(SDNode *N) const {
147
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
150
inline bool Predicate_atomic_load_or_64(SDNode *N) const {
152
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
155
inline bool Predicate_atomic_load_or_8(SDNode *N) const {
157
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
160
inline bool Predicate_atomic_load_sub_16(SDNode *N) const {
162
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
165
inline bool Predicate_atomic_load_sub_32(SDNode *N) const {
167
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
170
inline bool Predicate_atomic_load_sub_64(SDNode *N) const {
172
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
175
inline bool Predicate_atomic_load_sub_8(SDNode *N) const {
177
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
180
inline bool Predicate_atomic_load_umax_16(SDNode *N) const {
182
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
185
inline bool Predicate_atomic_load_umax_32(SDNode *N) const {
187
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
190
inline bool Predicate_atomic_load_umax_64(SDNode *N) const {
192
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
195
inline bool Predicate_atomic_load_umax_8(SDNode *N) const {
197
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
200
inline bool Predicate_atomic_load_umin_16(SDNode *N) const {
202
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
205
inline bool Predicate_atomic_load_umin_32(SDNode *N) const {
207
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
210
inline bool Predicate_atomic_load_umin_64(SDNode *N) const {
212
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
215
inline bool Predicate_atomic_load_umin_8(SDNode *N) const {
217
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
220
inline bool Predicate_atomic_load_xor_16(SDNode *N) const {
222
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
225
inline bool Predicate_atomic_load_xor_32(SDNode *N) const {
227
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
230
inline bool Predicate_atomic_load_xor_64(SDNode *N) const {
232
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
235
inline bool Predicate_atomic_load_xor_8(SDNode *N) const {
237
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
240
inline bool Predicate_atomic_swap_16(SDNode *N) const {
242
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
245
inline bool Predicate_atomic_swap_32(SDNode *N) const {
247
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
250
inline bool Predicate_atomic_swap_64(SDNode *N) const {
252
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
255
inline bool Predicate_atomic_swap_8(SDNode *N) const {
257
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
260
inline bool Predicate_bf_inv_mask_imm(SDNode *inN) const {
261
ConstantSDNode *N = cast<ConstantSDNode>(inN);
263
uint32_t v = (uint32_t)N->getZExtValue();
266
// there can be 1's on either or both "outsides", all the "inside"
268
unsigned int lsb = 0, msb = 31;
269
while (v & (1 << msb)) --msb;
270
while (v & (1 << lsb)) ++lsb;
271
for (unsigned int i = lsb; i <= msb; ++i) {
278
inline bool Predicate_cvtff(SDNode *N) const {
280
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FF;
283
inline bool Predicate_cvtfs(SDNode *N) const {
285
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FS;
288
inline bool Predicate_cvtfu(SDNode *N) const {
290
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FU;
293
inline bool Predicate_cvtsf(SDNode *N) const {
295
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SF;
298
inline bool Predicate_cvtss(SDNode *N) const {
300
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SS;
303
inline bool Predicate_cvtsu(SDNode *N) const {
305
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SU;
308
inline bool Predicate_cvtuf(SDNode *N) const {
310
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_UF;
313
inline bool Predicate_cvtus(SDNode *N) const {
315
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_US;
318
inline bool Predicate_cvtuu(SDNode *N) const {
320
return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_UU;
323
inline bool Predicate_extload(SDNode *N) const {
325
return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
328
inline bool Predicate_extloadf32(SDNode *N) const {
330
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
333
inline bool Predicate_extloadf64(SDNode *N) const {
335
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;
338
inline bool Predicate_extloadi1(SDNode *N) const {
340
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
343
inline bool Predicate_extloadi16(SDNode *N) const {
345
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
348
inline bool Predicate_extloadi32(SDNode *N) const {
350
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
353
inline bool Predicate_extloadi8(SDNode *N) const {
355
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
358
inline bool Predicate_imm0_255(SDNode *inN) const {
359
ConstantSDNode *N = cast<ConstantSDNode>(inN);
361
return (uint32_t)N->getZExtValue() < 256;
364
inline bool Predicate_imm0_255_comp(SDNode *inN) const {
365
ConstantSDNode *N = cast<ConstantSDNode>(inN);
367
return ~((uint32_t)N->getZExtValue()) < 256;
370
inline bool Predicate_imm0_255_neg(SDNode *inN) const {
371
ConstantSDNode *N = cast<ConstantSDNode>(inN);
373
return (uint32_t)(-N->getZExtValue()) < 255;
376
inline bool Predicate_imm0_31(SDNode *inN) const {
377
ConstantSDNode *N = cast<ConstantSDNode>(inN);
379
return (int32_t)N->getZExtValue() < 32;
382
inline bool Predicate_imm0_4095(SDNode *inN) const {
383
ConstantSDNode *N = cast<ConstantSDNode>(inN);
385
return (uint32_t)N->getZExtValue() < 4096;
388
inline bool Predicate_imm0_4095_neg(SDNode *inN) const {
389
ConstantSDNode *N = cast<ConstantSDNode>(inN);
391
return (uint32_t)(-N->getZExtValue()) < 4096;
394
inline bool Predicate_imm0_65535(SDNode *inN) const {
395
ConstantSDNode *N = cast<ConstantSDNode>(inN);
397
return (uint32_t)N->getZExtValue() < 65536;
400
inline bool Predicate_imm0_7(SDNode *inN) const {
401
ConstantSDNode *N = cast<ConstantSDNode>(inN);
403
return (uint32_t)N->getZExtValue() < 8;
406
inline bool Predicate_imm0_7_neg(SDNode *inN) const {
407
ConstantSDNode *N = cast<ConstantSDNode>(inN);
409
return (uint32_t)-N->getZExtValue() < 8;
412
inline bool Predicate_imm16_31(SDNode *inN) const {
413
ConstantSDNode *N = cast<ConstantSDNode>(inN);
415
return (int32_t)N->getZExtValue() >= 16 && (int32_t)N->getZExtValue() < 32;
418
inline bool Predicate_imm1_15(SDNode *inN) const {
419
ConstantSDNode *N = cast<ConstantSDNode>(inN);
421
return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 16;
424
inline bool Predicate_imm1_31(SDNode *inN) const {
425
ConstantSDNode *N = cast<ConstantSDNode>(inN);
427
return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 32;
430
inline bool Predicate_imm8_255(SDNode *inN) const {
431
ConstantSDNode *N = cast<ConstantSDNode>(inN);
433
return (uint32_t)N->getZExtValue() >= 8 && (uint32_t)N->getZExtValue() < 256;
436
inline bool Predicate_imm8_255_neg(SDNode *inN) const {
437
ConstantSDNode *N = cast<ConstantSDNode>(inN);
439
unsigned Val = -N->getZExtValue();
440
return Val >= 8 && Val < 256;
443
inline bool Predicate_immAllOnesV(SDNode *N) const {
445
return ISD::isBuildVectorAllOnes(N);
448
inline bool Predicate_immAllOnesV_bc(SDNode *N) const {
450
return ISD::isBuildVectorAllOnes(N);
453
inline bool Predicate_immAllZerosV(SDNode *N) const {
455
return ISD::isBuildVectorAllZeros(N);
458
inline bool Predicate_immAllZerosV_bc(SDNode *N) const {
460
return ISD::isBuildVectorAllZeros(N);
463
inline bool Predicate_istore(SDNode *N) const {
465
return !cast<StoreSDNode>(N)->isTruncatingStore();
468
inline bool Predicate_itruncstore(SDNode *N) const {
470
return cast<StoreSDNode>(N)->isTruncatingStore();
473
inline bool Predicate_lo16AllZero(SDNode *inN) const {
474
ConstantSDNode *N = cast<ConstantSDNode>(inN);
476
// Returns true if all low 16-bits are 0.
477
return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0;
480
inline bool Predicate_load(SDNode *N) const {
482
return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
485
inline bool Predicate_post_store(SDNode *N) const {
487
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
488
return AM == ISD::POST_INC || AM == ISD::POST_DEC;
491
inline bool Predicate_post_truncst(SDNode *N) const {
493
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
494
return AM == ISD::POST_INC || AM == ISD::POST_DEC;
497
inline bool Predicate_post_truncstf32(SDNode *N) const {
499
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
502
inline bool Predicate_post_truncsti1(SDNode *N) const {
504
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i1;
507
inline bool Predicate_post_truncsti16(SDNode *N) const {
509
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
512
inline bool Predicate_post_truncsti32(SDNode *N) const {
514
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
517
inline bool Predicate_post_truncsti8(SDNode *N) const {
519
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
522
inline bool Predicate_pre_store(SDNode *N) const {
524
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
525
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
528
inline bool Predicate_pre_truncst(SDNode *N) const {
530
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
531
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
534
inline bool Predicate_pre_truncstf32(SDNode *N) const {
536
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
539
inline bool Predicate_pre_truncsti1(SDNode *N) const {
541
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i1;
544
inline bool Predicate_pre_truncsti16(SDNode *N) const {
546
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
549
inline bool Predicate_pre_truncsti32(SDNode *N) const {
551
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
554
inline bool Predicate_pre_truncsti8(SDNode *N) const {
556
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
559
inline bool Predicate_rot_imm(SDNode *inN) const {
560
ConstantSDNode *N = cast<ConstantSDNode>(inN);
562
int32_t v = (int32_t)N->getZExtValue();
563
return v == 8 || v == 16 || v == 24;
566
inline bool Predicate_sext_16_node(SDNode *N) const {
568
return CurDAG->ComputeNumSignBits(SDValue(N,0)) >= 17;
571
inline bool Predicate_sextload(SDNode *N) const {
573
return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
576
inline bool Predicate_sextloadi1(SDNode *N) const {
578
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
581
inline bool Predicate_sextloadi16(SDNode *N) const {
583
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
586
inline bool Predicate_sextloadi32(SDNode *N) const {
588
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
591
inline bool Predicate_sextloadi8(SDNode *N) const {
593
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
596
inline bool Predicate_so_imm(SDNode *inN) const {
597
ConstantSDNode *N = cast<ConstantSDNode>(inN);
599
return ARM_AM::getSOImmVal(N->getZExtValue()) != -1;
602
inline bool Predicate_so_imm2part(SDNode *inN) const {
603
ConstantSDNode *N = cast<ConstantSDNode>(inN);
605
return ARM_AM::isSOImmTwoPartVal((unsigned)N->getZExtValue());
608
inline bool Predicate_so_imm_neg(SDNode *inN) const {
609
ConstantSDNode *N = cast<ConstantSDNode>(inN);
611
return ARM_AM::getSOImmVal(-(int)N->getZExtValue()) != -1;
614
inline bool Predicate_so_imm_not(SDNode *inN) const {
615
ConstantSDNode *N = cast<ConstantSDNode>(inN);
617
return ARM_AM::getSOImmVal(~(int)N->getZExtValue()) != -1;
620
inline bool Predicate_so_neg_imm2part(SDNode *inN) const {
621
ConstantSDNode *N = cast<ConstantSDNode>(inN);
623
return ARM_AM::isSOImmTwoPartVal(-(int)N->getZExtValue());
626
inline bool Predicate_store(SDNode *N) const {
628
return !cast<StoreSDNode>(N)->isTruncatingStore();
631
inline bool Predicate_sube_dead_carry(SDNode *N) const {
632
return !N->hasAnyUseOfValue(1);
634
inline bool Predicate_sube_live_carry(SDNode *N) const {
635
return N->hasAnyUseOfValue(1);
637
inline bool Predicate_t2_so_imm(SDNode *inN) const {
638
ConstantSDNode *N = cast<ConstantSDNode>(inN);
640
return ARM_AM::getT2SOImmVal((uint32_t)N->getZExtValue()) != -1;
643
inline bool Predicate_t2_so_imm2part(SDNode *inN) const {
644
ConstantSDNode *N = cast<ConstantSDNode>(inN);
646
return ARM_AM::isT2SOImmTwoPartVal((unsigned)N->getZExtValue());
649
inline bool Predicate_t2_so_imm_neg(SDNode *inN) const {
650
ConstantSDNode *N = cast<ConstantSDNode>(inN);
652
return ARM_AM::getT2SOImmVal(-((int)N->getZExtValue())) != -1;
655
inline bool Predicate_t2_so_imm_not(SDNode *inN) const {
656
ConstantSDNode *N = cast<ConstantSDNode>(inN);
658
return ARM_AM::getT2SOImmVal(~((uint32_t)N->getZExtValue())) != -1;
661
inline bool Predicate_t2_so_neg_imm2part(SDNode *inN) const {
662
ConstantSDNode *N = cast<ConstantSDNode>(inN);
664
return ARM_AM::isT2SOImmTwoPartVal(-(int)N->getZExtValue());
667
inline bool Predicate_thumb_immshifted(SDNode *inN) const {
668
ConstantSDNode *N = cast<ConstantSDNode>(inN);
670
return ARM_AM::isThumbImmShiftedVal((unsigned)N->getZExtValue());
673
inline bool Predicate_truncstore(SDNode *N) const {
675
return cast<StoreSDNode>(N)->isTruncatingStore();
678
inline bool Predicate_truncstoref32(SDNode *N) const {
680
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
683
inline bool Predicate_truncstoref64(SDNode *N) const {
685
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f64;
688
inline bool Predicate_truncstorei16(SDNode *N) const {
690
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
693
inline bool Predicate_truncstorei32(SDNode *N) const {
695
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
698
inline bool Predicate_truncstorei8(SDNode *N) const {
700
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
703
inline bool Predicate_unindexedload(SDNode *N) const {
705
return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
708
inline bool Predicate_unindexedstore(SDNode *N) const {
710
return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
713
inline bool Predicate_vfp_f32imm(SDNode *inN) const {
714
ConstantFPSDNode *N = cast<ConstantFPSDNode>(inN);
716
return ARM::getVFPf32Imm(N->getValueAPF()) != -1;
719
inline bool Predicate_vfp_f64imm(SDNode *inN) const {
720
ConstantFPSDNode *N = cast<ConstantFPSDNode>(inN);
722
return ARM::getVFPf64Imm(N->getValueAPF()) != -1;
725
inline bool Predicate_vmovImm16(SDNode *N) const {
727
return ARM::getVMOVImm(N, 2, *CurDAG).getNode() != 0;
730
inline bool Predicate_vmovImm32(SDNode *N) const {
732
return ARM::getVMOVImm(N, 4, *CurDAG).getNode() != 0;
735
inline bool Predicate_vmovImm64(SDNode *N) const {
737
return ARM::getVMOVImm(N, 8, *CurDAG).getNode() != 0;
740
inline bool Predicate_vmovImm8(SDNode *N) const {
742
return ARM::getVMOVImm(N, 1, *CurDAG).getNode() != 0;
745
inline bool Predicate_vtFP(SDNode *inN) const {
746
VTSDNode *N = cast<VTSDNode>(inN);
747
return N->getVT().isFloatingPoint();
749
inline bool Predicate_vtInt(SDNode *inN) const {
750
VTSDNode *N = cast<VTSDNode>(inN);
751
return N->getVT().isInteger();
753
inline bool Predicate_zextload(SDNode *N) const {
755
return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
758
inline bool Predicate_zextloadi1(SDNode *N) const {
760
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
763
inline bool Predicate_zextloadi16(SDNode *N) const {
765
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
768
inline bool Predicate_zextloadi32(SDNode *N) const {
770
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
773
inline bool Predicate_zextloadi8(SDNode *N) const {
775
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
780
// The main instruction selector code.
781
SDNode *SelectCode(SDNode *N) {
782
// Opcodes are emitted as 2 bytes, TARGET_OPCODE handles this.
783
#define TARGET_OPCODE(X) X & 255, unsigned(X) >> 8
784
static const unsigned char MatcherTable[] = {
785
OPC_SwitchOpcode , 94|128,83, ISD::OR,
786
OPC_Scope, 27|128,59,
789
OPC_CheckAndImm, 127|128,1,
791
OPC_CheckOpcode, ISD::SRL,
795
OPC_CheckType, MVT::i32,
800
OPC_CheckOpcode, ISD::OR,
803
OPC_CheckAndImm, 0|128,126|128,3,
805
OPC_CheckOpcode, ISD::SHL,
811
OPC_CheckType, MVT::i32,
816
OPC_CheckOpcode, ISD::OR,
818
OPC_CheckAndImm, 0|128,0|128,124|128,7,
820
OPC_CheckOpcode, ISD::SRL,
826
OPC_CheckType, MVT::i32,
831
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
833
OPC_CheckOpcode, ISD::SHL,
839
OPC_CheckType, MVT::i32,
845
OPC_CheckType, MVT::i32,
847
OPC_CheckPatternPredicate, 0,
848
OPC_EmitInteger, MVT::i32, 14,
849
OPC_EmitRegister, MVT::i32, 0 ,
850
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
851
1, MVT::i32, 3, 0, 1, 2,
853
OPC_CheckPatternPredicate, 1,
854
OPC_EmitInteger, MVT::i32, 14,
855
OPC_EmitRegister, MVT::i32, 0 ,
856
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
857
1, MVT::i32, 3, 0, 1, 2,
859
OPC_CheckPatternPredicate, 2,
860
OPC_EmitInteger, MVT::i32, 14,
861
OPC_EmitRegister, MVT::i32, 0 ,
862
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
863
1, MVT::i32, 3, 0, 1, 2,
866
OPC_CheckOpcode, ISD::OR,
869
OPC_CheckAndImm, 0|128,0|128,124|128,7,
871
OPC_CheckOpcode, ISD::SRL,
877
OPC_CheckType, MVT::i32,
882
OPC_CheckAndImm, 0|128,126|128,3,
884
OPC_CheckOpcode, ISD::SHL,
890
OPC_CheckType, MVT::i32,
896
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
898
OPC_CheckOpcode, ISD::SHL,
904
OPC_CheckType, MVT::i32,
909
OPC_CheckType, MVT::i32,
910
OPC_CheckPatternPredicate, 0,
911
OPC_EmitInteger, MVT::i32, 14,
912
OPC_EmitRegister, MVT::i32, 0 ,
913
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
914
1, MVT::i32, 3, 0, 1, 2,
916
OPC_CheckAndImm, 0|128,126|128,3,
918
OPC_CheckOpcode, ISD::SHL,
924
OPC_CheckType, MVT::i32,
929
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
931
OPC_CheckOpcode, ISD::SHL,
937
OPC_CheckType, MVT::i32,
943
OPC_CheckAndImm, 0|128,0|128,124|128,7,
945
OPC_CheckOpcode, ISD::SRL,
951
OPC_CheckType, MVT::i32,
956
OPC_CheckType, MVT::i32,
957
OPC_CheckPatternPredicate, 0,
958
OPC_EmitInteger, MVT::i32, 14,
959
OPC_EmitRegister, MVT::i32, 0 ,
960
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
961
1, MVT::i32, 3, 0, 1, 2,
963
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
965
OPC_CheckOpcode, ISD::SHL,
971
OPC_CheckType, MVT::i32,
976
OPC_CheckAndImm, 0|128,126|128,3,
978
OPC_CheckOpcode, ISD::SHL,
984
OPC_CheckType, MVT::i32,
990
OPC_CheckAndImm, 0|128,0|128,124|128,7,
992
OPC_CheckOpcode, ISD::SRL,
998
OPC_CheckType, MVT::i32,
1003
OPC_CheckType, MVT::i32,
1004
OPC_CheckPatternPredicate, 0,
1005
OPC_EmitInteger, MVT::i32, 14,
1006
OPC_EmitRegister, MVT::i32, 0 ,
1007
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1008
1, MVT::i32, 3, 0, 1, 2,
1010
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1012
OPC_CheckOpcode, ISD::SRL,
1017
OPC_CheckInteger, 8,
1018
OPC_CheckType, MVT::i32,
1023
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1025
OPC_CheckOpcode, ISD::SHL,
1030
OPC_CheckInteger, 8,
1031
OPC_CheckType, MVT::i32,
1037
OPC_CheckAndImm, 0|128,126|128,3,
1039
OPC_CheckOpcode, ISD::SHL,
1044
OPC_CheckInteger, 8,
1045
OPC_CheckType, MVT::i32,
1050
OPC_CheckType, MVT::i32,
1051
OPC_CheckPatternPredicate, 0,
1052
OPC_EmitInteger, MVT::i32, 14,
1053
OPC_EmitRegister, MVT::i32, 0 ,
1054
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1055
1, MVT::i32, 3, 0, 1, 2,
1057
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1059
OPC_CheckOpcode, ISD::SHL,
1064
OPC_CheckInteger, 8,
1065
OPC_CheckType, MVT::i32,
1070
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1072
OPC_CheckOpcode, ISD::SRL,
1077
OPC_CheckInteger, 8,
1078
OPC_CheckType, MVT::i32,
1084
OPC_CheckAndImm, 0|128,126|128,3,
1086
OPC_CheckOpcode, ISD::SHL,
1091
OPC_CheckInteger, 8,
1092
OPC_CheckType, MVT::i32,
1097
OPC_CheckType, MVT::i32,
1098
OPC_CheckPatternPredicate, 0,
1099
OPC_EmitInteger, MVT::i32, 14,
1100
OPC_EmitRegister, MVT::i32, 0 ,
1101
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1102
1, MVT::i32, 3, 0, 1, 2,
1105
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1107
OPC_CheckOpcode, ISD::SHL,
1112
OPC_CheckInteger, 8,
1113
OPC_CheckType, MVT::i32,
1118
OPC_CheckOpcode, ISD::OR,
1121
OPC_CheckAndImm, 0|128,126|128,3,
1123
OPC_CheckOpcode, ISD::SHL,
1128
OPC_CheckInteger, 8,
1129
OPC_CheckType, MVT::i32,
1134
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1136
OPC_CheckOpcode, ISD::SRL,
1141
OPC_CheckInteger, 8,
1142
OPC_CheckType, MVT::i32,
1148
OPC_CheckType, MVT::i32,
1149
OPC_CheckPatternPredicate, 0,
1150
OPC_EmitInteger, MVT::i32, 14,
1151
OPC_EmitRegister, MVT::i32, 0 ,
1152
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1153
1, MVT::i32, 3, 0, 1, 2,
1155
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1157
OPC_CheckOpcode, ISD::SRL,
1162
OPC_CheckInteger, 8,
1163
OPC_CheckType, MVT::i32,
1168
OPC_CheckAndImm, 0|128,126|128,3,
1170
OPC_CheckOpcode, ISD::SHL,
1175
OPC_CheckInteger, 8,
1176
OPC_CheckType, MVT::i32,
1182
OPC_CheckType, MVT::i32,
1183
OPC_CheckPatternPredicate, 0,
1184
OPC_EmitInteger, MVT::i32, 14,
1185
OPC_EmitRegister, MVT::i32, 0 ,
1186
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1187
1, MVT::i32, 3, 0, 1, 2,
1190
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1192
OPC_CheckOpcode, ISD::SRL,
1197
OPC_CheckInteger, 8,
1198
OPC_CheckType, MVT::i32,
1203
OPC_CheckOpcode, ISD::OR,
1206
OPC_CheckAndImm, 0|128,126|128,3,
1208
OPC_CheckOpcode, ISD::SHL,
1213
OPC_CheckInteger, 8,
1214
OPC_CheckType, MVT::i32,
1219
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1221
OPC_CheckOpcode, ISD::SHL,
1226
OPC_CheckInteger, 8,
1227
OPC_CheckType, MVT::i32,
1233
OPC_CheckType, MVT::i32,
1234
OPC_CheckPatternPredicate, 0,
1235
OPC_EmitInteger, MVT::i32, 14,
1236
OPC_EmitRegister, MVT::i32, 0 ,
1237
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1238
1, MVT::i32, 3, 0, 1, 2,
1240
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1242
OPC_CheckOpcode, ISD::SHL,
1247
OPC_CheckInteger, 8,
1248
OPC_CheckType, MVT::i32,
1253
OPC_CheckAndImm, 0|128,126|128,3,
1255
OPC_CheckOpcode, ISD::SHL,
1260
OPC_CheckInteger, 8,
1261
OPC_CheckType, MVT::i32,
1267
OPC_CheckType, MVT::i32,
1268
OPC_CheckPatternPredicate, 0,
1269
OPC_EmitInteger, MVT::i32, 14,
1270
OPC_EmitRegister, MVT::i32, 0 ,
1271
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1272
1, MVT::i32, 3, 0, 1, 2,
1275
OPC_CheckAndImm, 0|128,126|128,3,
1277
OPC_CheckOpcode, ISD::SHL,
1282
OPC_CheckInteger, 8,
1283
OPC_CheckType, MVT::i32,
1288
OPC_CheckOpcode, ISD::OR,
1290
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1292
OPC_CheckOpcode, ISD::SHL,
1297
OPC_CheckInteger, 8,
1298
OPC_CheckType, MVT::i32,
1303
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1305
OPC_CheckOpcode, ISD::SRL,
1310
OPC_CheckInteger, 8,
1311
OPC_CheckType, MVT::i32,
1317
OPC_CheckType, MVT::i32,
1318
OPC_CheckPatternPredicate, 0,
1319
OPC_EmitInteger, MVT::i32, 14,
1320
OPC_EmitRegister, MVT::i32, 0 ,
1321
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1322
1, MVT::i32, 3, 0, 1, 2,
1325
OPC_CheckOpcode, ISD::OR,
1327
OPC_Scope, 56|128,5,
1328
OPC_CheckOpcode, ISD::OR,
1331
OPC_CheckAndImm, 0|128,126|128,3,
1333
OPC_CheckOpcode, ISD::SHL,
1336
OPC_CheckInteger, 8,
1337
OPC_CheckType, MVT::i32,
1342
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1344
OPC_CheckOpcode, ISD::SRL,
1349
OPC_CheckInteger, 8,
1350
OPC_CheckType, MVT::i32,
1356
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1358
OPC_CheckOpcode, ISD::SHL,
1363
OPC_CheckInteger, 8,
1364
OPC_CheckType, MVT::i32,
1370
OPC_CheckAndImm, 127|128,1,
1372
OPC_CheckOpcode, ISD::SRL,
1377
OPC_CheckInteger, 8,
1378
OPC_CheckType, MVT::i32,
1382
OPC_CheckType, MVT::i32,
1383
OPC_CheckPatternPredicate, 0,
1384
OPC_EmitInteger, MVT::i32, 14,
1385
OPC_EmitRegister, MVT::i32, 0 ,
1386
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1387
1, MVT::i32, 3, 0, 1, 2,
1389
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1391
OPC_CheckOpcode, ISD::SRL,
1394
OPC_CheckInteger, 8,
1395
OPC_CheckType, MVT::i32,
1400
OPC_CheckAndImm, 0|128,126|128,3,
1402
OPC_CheckOpcode, ISD::SHL,
1407
OPC_CheckInteger, 8,
1408
OPC_CheckType, MVT::i32,
1414
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1416
OPC_CheckOpcode, ISD::SHL,
1421
OPC_CheckInteger, 8,
1422
OPC_CheckType, MVT::i32,
1428
OPC_CheckAndImm, 127|128,1,
1430
OPC_CheckOpcode, ISD::SRL,
1435
OPC_CheckInteger, 8,
1436
OPC_CheckType, MVT::i32,
1440
OPC_CheckType, MVT::i32,
1441
OPC_CheckPatternPredicate, 0,
1442
OPC_EmitInteger, MVT::i32, 14,
1443
OPC_EmitRegister, MVT::i32, 0 ,
1444
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1445
1, MVT::i32, 3, 0, 1, 2,
1447
OPC_CheckAndImm, 0|128,126|128,3,
1449
OPC_CheckOpcode, ISD::SHL,
1452
OPC_CheckInteger, 8,
1453
OPC_CheckType, MVT::i32,
1458
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1460
OPC_CheckOpcode, ISD::SHL,
1465
OPC_CheckInteger, 8,
1466
OPC_CheckType, MVT::i32,
1472
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1474
OPC_CheckOpcode, ISD::SRL,
1479
OPC_CheckInteger, 8,
1480
OPC_CheckType, MVT::i32,
1486
OPC_CheckAndImm, 127|128,1,
1488
OPC_CheckOpcode, ISD::SRL,
1493
OPC_CheckInteger, 8,
1494
OPC_CheckType, MVT::i32,
1498
OPC_CheckType, MVT::i32,
1499
OPC_CheckPatternPredicate, 0,
1500
OPC_EmitInteger, MVT::i32, 14,
1501
OPC_EmitRegister, MVT::i32, 0 ,
1502
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1503
1, MVT::i32, 3, 0, 1, 2,
1505
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1507
OPC_CheckOpcode, ISD::SHL,
1510
OPC_CheckInteger, 8,
1511
OPC_CheckType, MVT::i32,
1516
OPC_CheckAndImm, 0|128,126|128,3,
1518
OPC_CheckOpcode, ISD::SHL,
1523
OPC_CheckInteger, 8,
1524
OPC_CheckType, MVT::i32,
1530
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1532
OPC_CheckOpcode, ISD::SRL,
1537
OPC_CheckInteger, 8,
1538
OPC_CheckType, MVT::i32,
1544
OPC_CheckAndImm, 127|128,1,
1546
OPC_CheckOpcode, ISD::SRL,
1551
OPC_CheckInteger, 8,
1552
OPC_CheckType, MVT::i32,
1556
OPC_CheckType, MVT::i32,
1557
OPC_CheckPatternPredicate, 0,
1558
OPC_EmitInteger, MVT::i32, 14,
1559
OPC_EmitRegister, MVT::i32, 0 ,
1560
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1561
1, MVT::i32, 3, 0, 1, 2,
1563
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1565
OPC_CheckOpcode, ISD::SRL,
1568
OPC_CheckInteger, 8,
1569
OPC_CheckType, MVT::i32,
1574
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1576
OPC_CheckOpcode, ISD::SHL,
1581
OPC_CheckInteger, 8,
1582
OPC_CheckType, MVT::i32,
1588
OPC_CheckAndImm, 0|128,126|128,3,
1590
OPC_CheckOpcode, ISD::SHL,
1595
OPC_CheckInteger, 8,
1596
OPC_CheckType, MVT::i32,
1602
OPC_CheckAndImm, 127|128,1,
1604
OPC_CheckOpcode, ISD::SRL,
1609
OPC_CheckInteger, 8,
1610
OPC_CheckType, MVT::i32,
1614
OPC_CheckType, MVT::i32,
1615
OPC_CheckPatternPredicate, 0,
1616
OPC_EmitInteger, MVT::i32, 14,
1617
OPC_EmitRegister, MVT::i32, 0 ,
1618
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1619
1, MVT::i32, 3, 0, 1, 2,
1621
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1623
OPC_CheckOpcode, ISD::SHL,
1626
OPC_CheckInteger, 8,
1627
OPC_CheckType, MVT::i32,
1632
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1634
OPC_CheckOpcode, ISD::SRL,
1639
OPC_CheckInteger, 8,
1640
OPC_CheckType, MVT::i32,
1646
OPC_CheckAndImm, 0|128,126|128,3,
1648
OPC_CheckOpcode, ISD::SHL,
1653
OPC_CheckInteger, 8,
1654
OPC_CheckType, MVT::i32,
1660
OPC_CheckAndImm, 127|128,1,
1662
OPC_CheckOpcode, ISD::SRL,
1667
OPC_CheckInteger, 8,
1668
OPC_CheckType, MVT::i32,
1672
OPC_CheckType, MVT::i32,
1673
OPC_CheckPatternPredicate, 0,
1674
OPC_EmitInteger, MVT::i32, 14,
1675
OPC_EmitRegister, MVT::i32, 0 ,
1676
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1677
1, MVT::i32, 3, 0, 1, 2,
1680
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1682
OPC_CheckOpcode, ISD::SHL,
1685
OPC_CheckInteger, 8,
1686
OPC_CheckType, MVT::i32,
1691
OPC_CheckOpcode, ISD::OR,
1694
OPC_CheckAndImm, 0|128,126|128,3,
1696
OPC_CheckOpcode, ISD::SHL,
1701
OPC_CheckInteger, 8,
1702
OPC_CheckType, MVT::i32,
1707
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1709
OPC_CheckOpcode, ISD::SRL,
1714
OPC_CheckInteger, 8,
1715
OPC_CheckType, MVT::i32,
1722
OPC_CheckAndImm, 127|128,1,
1724
OPC_CheckOpcode, ISD::SRL,
1729
OPC_CheckInteger, 8,
1730
OPC_CheckType, MVT::i32,
1734
OPC_CheckType, MVT::i32,
1735
OPC_CheckPatternPredicate, 0,
1736
OPC_EmitInteger, MVT::i32, 14,
1737
OPC_EmitRegister, MVT::i32, 0 ,
1738
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1739
1, MVT::i32, 3, 0, 1, 2,
1741
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1743
OPC_CheckOpcode, ISD::SRL,
1748
OPC_CheckInteger, 8,
1749
OPC_CheckType, MVT::i32,
1754
OPC_CheckAndImm, 0|128,126|128,3,
1756
OPC_CheckOpcode, ISD::SHL,
1761
OPC_CheckInteger, 8,
1762
OPC_CheckType, MVT::i32,
1769
OPC_CheckAndImm, 127|128,1,
1771
OPC_CheckOpcode, ISD::SRL,
1776
OPC_CheckInteger, 8,
1777
OPC_CheckType, MVT::i32,
1781
OPC_CheckType, MVT::i32,
1782
OPC_CheckPatternPredicate, 0,
1783
OPC_EmitInteger, MVT::i32, 14,
1784
OPC_EmitRegister, MVT::i32, 0 ,
1785
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1786
1, MVT::i32, 3, 0, 1, 2,
1789
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1791
OPC_CheckOpcode, ISD::SRL,
1794
OPC_CheckInteger, 8,
1795
OPC_CheckType, MVT::i32,
1800
OPC_CheckOpcode, ISD::OR,
1803
OPC_CheckAndImm, 0|128,126|128,3,
1805
OPC_CheckOpcode, ISD::SHL,
1810
OPC_CheckInteger, 8,
1811
OPC_CheckType, MVT::i32,
1816
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1818
OPC_CheckOpcode, ISD::SHL,
1823
OPC_CheckInteger, 8,
1824
OPC_CheckType, MVT::i32,
1831
OPC_CheckAndImm, 127|128,1,
1833
OPC_CheckOpcode, ISD::SRL,
1838
OPC_CheckInteger, 8,
1839
OPC_CheckType, MVT::i32,
1843
OPC_CheckType, MVT::i32,
1844
OPC_CheckPatternPredicate, 0,
1845
OPC_EmitInteger, MVT::i32, 14,
1846
OPC_EmitRegister, MVT::i32, 0 ,
1847
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1848
1, MVT::i32, 3, 0, 1, 2,
1850
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1852
OPC_CheckOpcode, ISD::SHL,
1857
OPC_CheckInteger, 8,
1858
OPC_CheckType, MVT::i32,
1863
OPC_CheckAndImm, 0|128,126|128,3,
1865
OPC_CheckOpcode, ISD::SHL,
1870
OPC_CheckInteger, 8,
1871
OPC_CheckType, MVT::i32,
1878
OPC_CheckAndImm, 127|128,1,
1880
OPC_CheckOpcode, ISD::SRL,
1885
OPC_CheckInteger, 8,
1886
OPC_CheckType, MVT::i32,
1890
OPC_CheckType, MVT::i32,
1891
OPC_CheckPatternPredicate, 0,
1892
OPC_EmitInteger, MVT::i32, 14,
1893
OPC_EmitRegister, MVT::i32, 0 ,
1894
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1895
1, MVT::i32, 3, 0, 1, 2,
1898
OPC_CheckAndImm, 0|128,126|128,3,
1900
OPC_CheckOpcode, ISD::SHL,
1903
OPC_CheckInteger, 8,
1904
OPC_CheckType, MVT::i32,
1909
OPC_CheckOpcode, ISD::OR,
1912
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1914
OPC_CheckOpcode, ISD::SRL,
1919
OPC_CheckInteger, 8,
1920
OPC_CheckType, MVT::i32,
1925
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1927
OPC_CheckOpcode, ISD::SHL,
1932
OPC_CheckInteger, 8,
1933
OPC_CheckType, MVT::i32,
1940
OPC_CheckAndImm, 127|128,1,
1942
OPC_CheckOpcode, ISD::SRL,
1947
OPC_CheckInteger, 8,
1948
OPC_CheckType, MVT::i32,
1952
OPC_CheckType, MVT::i32,
1953
OPC_CheckPatternPredicate, 0,
1954
OPC_EmitInteger, MVT::i32, 14,
1955
OPC_EmitRegister, MVT::i32, 0 ,
1956
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
1957
1, MVT::i32, 3, 0, 1, 2,
1959
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
1961
OPC_CheckOpcode, ISD::SHL,
1966
OPC_CheckInteger, 8,
1967
OPC_CheckType, MVT::i32,
1972
OPC_CheckAndImm, 0|128,0|128,124|128,7,
1974
OPC_CheckOpcode, ISD::SRL,
1979
OPC_CheckInteger, 8,
1980
OPC_CheckType, MVT::i32,
1987
OPC_CheckAndImm, 127|128,1,
1989
OPC_CheckOpcode, ISD::SRL,
1994
OPC_CheckInteger, 8,
1995
OPC_CheckType, MVT::i32,
1999
OPC_CheckType, MVT::i32,
2000
OPC_CheckPatternPredicate, 0,
2001
OPC_EmitInteger, MVT::i32, 14,
2002
OPC_EmitRegister, MVT::i32, 0 ,
2003
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
2004
1, MVT::i32, 3, 0, 1, 2,
2008
OPC_CheckAndImm, 127|128,1,
2010
OPC_CheckOpcode, ISD::SRL,
2013
OPC_CheckInteger, 8,
2014
OPC_CheckType, MVT::i32,
2019
OPC_CheckOpcode, ISD::OR,
2021
OPC_Scope, 102|128,3,
2022
OPC_CheckOpcode, ISD::OR,
2025
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2027
OPC_CheckOpcode, ISD::SRL,
2032
OPC_CheckInteger, 8,
2033
OPC_CheckType, MVT::i32,
2038
OPC_CheckAndImm, 0|128,126|128,3,
2040
OPC_CheckOpcode, ISD::SHL,
2045
OPC_CheckInteger, 8,
2046
OPC_CheckType, MVT::i32,
2052
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2054
OPC_CheckOpcode, ISD::SHL,
2059
OPC_CheckInteger, 8,
2060
OPC_CheckType, MVT::i32,
2065
OPC_CheckType, MVT::i32,
2066
OPC_CheckPatternPredicate, 1,
2067
OPC_EmitInteger, MVT::i32, 14,
2068
OPC_EmitRegister, MVT::i32, 0 ,
2069
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2070
1, MVT::i32, 3, 0, 1, 2,
2072
OPC_CheckAndImm, 0|128,126|128,3,
2074
OPC_CheckOpcode, ISD::SHL,
2079
OPC_CheckInteger, 8,
2080
OPC_CheckType, MVT::i32,
2085
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2087
OPC_CheckOpcode, ISD::SHL,
2092
OPC_CheckInteger, 8,
2093
OPC_CheckType, MVT::i32,
2099
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2101
OPC_CheckOpcode, ISD::SRL,
2106
OPC_CheckInteger, 8,
2107
OPC_CheckType, MVT::i32,
2112
OPC_CheckType, MVT::i32,
2113
OPC_CheckPatternPredicate, 1,
2114
OPC_EmitInteger, MVT::i32, 14,
2115
OPC_EmitRegister, MVT::i32, 0 ,
2116
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2117
1, MVT::i32, 3, 0, 1, 2,
2119
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2121
OPC_CheckOpcode, ISD::SHL,
2126
OPC_CheckInteger, 8,
2127
OPC_CheckType, MVT::i32,
2132
OPC_CheckAndImm, 0|128,126|128,3,
2134
OPC_CheckOpcode, ISD::SHL,
2139
OPC_CheckInteger, 8,
2140
OPC_CheckType, MVT::i32,
2146
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2148
OPC_CheckOpcode, ISD::SRL,
2153
OPC_CheckInteger, 8,
2154
OPC_CheckType, MVT::i32,
2159
OPC_CheckType, MVT::i32,
2160
OPC_CheckPatternPredicate, 1,
2161
OPC_EmitInteger, MVT::i32, 14,
2162
OPC_EmitRegister, MVT::i32, 0 ,
2163
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2164
1, MVT::i32, 3, 0, 1, 2,
2166
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2168
OPC_CheckOpcode, ISD::SRL,
2173
OPC_CheckInteger, 8,
2174
OPC_CheckType, MVT::i32,
2179
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2181
OPC_CheckOpcode, ISD::SHL,
2186
OPC_CheckInteger, 8,
2187
OPC_CheckType, MVT::i32,
2193
OPC_CheckAndImm, 0|128,126|128,3,
2195
OPC_CheckOpcode, ISD::SHL,
2200
OPC_CheckInteger, 8,
2201
OPC_CheckType, MVT::i32,
2206
OPC_CheckType, MVT::i32,
2207
OPC_CheckPatternPredicate, 1,
2208
OPC_EmitInteger, MVT::i32, 14,
2209
OPC_EmitRegister, MVT::i32, 0 ,
2210
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2211
1, MVT::i32, 3, 0, 1, 2,
2213
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2215
OPC_CheckOpcode, ISD::SHL,
2220
OPC_CheckInteger, 8,
2221
OPC_CheckType, MVT::i32,
2226
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2228
OPC_CheckOpcode, ISD::SRL,
2233
OPC_CheckInteger, 8,
2234
OPC_CheckType, MVT::i32,
2240
OPC_CheckAndImm, 0|128,126|128,3,
2242
OPC_CheckOpcode, ISD::SHL,
2247
OPC_CheckInteger, 8,
2248
OPC_CheckType, MVT::i32,
2253
OPC_CheckType, MVT::i32,
2254
OPC_CheckPatternPredicate, 1,
2255
OPC_EmitInteger, MVT::i32, 14,
2256
OPC_EmitRegister, MVT::i32, 0 ,
2257
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2258
1, MVT::i32, 3, 0, 1, 2,
2261
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2263
OPC_CheckOpcode, ISD::SHL,
2268
OPC_CheckInteger, 8,
2269
OPC_CheckType, MVT::i32,
2274
OPC_CheckOpcode, ISD::OR,
2277
OPC_CheckAndImm, 0|128,126|128,3,
2279
OPC_CheckOpcode, ISD::SHL,
2284
OPC_CheckInteger, 8,
2285
OPC_CheckType, MVT::i32,
2290
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2292
OPC_CheckOpcode, ISD::SRL,
2297
OPC_CheckInteger, 8,
2298
OPC_CheckType, MVT::i32,
2304
OPC_CheckType, MVT::i32,
2305
OPC_CheckPatternPredicate, 1,
2306
OPC_EmitInteger, MVT::i32, 14,
2307
OPC_EmitRegister, MVT::i32, 0 ,
2308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2309
1, MVT::i32, 3, 0, 1, 2,
2311
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2313
OPC_CheckOpcode, ISD::SRL,
2318
OPC_CheckInteger, 8,
2319
OPC_CheckType, MVT::i32,
2324
OPC_CheckAndImm, 0|128,126|128,3,
2326
OPC_CheckOpcode, ISD::SHL,
2331
OPC_CheckInteger, 8,
2332
OPC_CheckType, MVT::i32,
2338
OPC_CheckType, MVT::i32,
2339
OPC_CheckPatternPredicate, 1,
2340
OPC_EmitInteger, MVT::i32, 14,
2341
OPC_EmitRegister, MVT::i32, 0 ,
2342
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2343
1, MVT::i32, 3, 0, 1, 2,
2346
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2348
OPC_CheckOpcode, ISD::SRL,
2353
OPC_CheckInteger, 8,
2354
OPC_CheckType, MVT::i32,
2359
OPC_CheckOpcode, ISD::OR,
2362
OPC_CheckAndImm, 0|128,126|128,3,
2364
OPC_CheckOpcode, ISD::SHL,
2369
OPC_CheckInteger, 8,
2370
OPC_CheckType, MVT::i32,
2375
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2377
OPC_CheckOpcode, ISD::SHL,
2382
OPC_CheckInteger, 8,
2383
OPC_CheckType, MVT::i32,
2389
OPC_CheckType, MVT::i32,
2390
OPC_CheckPatternPredicate, 1,
2391
OPC_EmitInteger, MVT::i32, 14,
2392
OPC_EmitRegister, MVT::i32, 0 ,
2393
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2394
1, MVT::i32, 3, 0, 1, 2,
2396
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2398
OPC_CheckOpcode, ISD::SHL,
2403
OPC_CheckInteger, 8,
2404
OPC_CheckType, MVT::i32,
2409
OPC_CheckAndImm, 0|128,126|128,3,
2411
OPC_CheckOpcode, ISD::SHL,
2416
OPC_CheckInteger, 8,
2417
OPC_CheckType, MVT::i32,
2423
OPC_CheckType, MVT::i32,
2424
OPC_CheckPatternPredicate, 1,
2425
OPC_EmitInteger, MVT::i32, 14,
2426
OPC_EmitRegister, MVT::i32, 0 ,
2427
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2428
1, MVT::i32, 3, 0, 1, 2,
2431
OPC_CheckAndImm, 0|128,126|128,3,
2433
OPC_CheckOpcode, ISD::SHL,
2438
OPC_CheckInteger, 8,
2439
OPC_CheckType, MVT::i32,
2444
OPC_CheckOpcode, ISD::OR,
2446
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2448
OPC_CheckOpcode, ISD::SHL,
2453
OPC_CheckInteger, 8,
2454
OPC_CheckType, MVT::i32,
2459
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2461
OPC_CheckOpcode, ISD::SRL,
2466
OPC_CheckInteger, 8,
2467
OPC_CheckType, MVT::i32,
2473
OPC_CheckType, MVT::i32,
2474
OPC_CheckPatternPredicate, 1,
2475
OPC_EmitInteger, MVT::i32, 14,
2476
OPC_EmitRegister, MVT::i32, 0 ,
2477
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2478
1, MVT::i32, 3, 0, 1, 2,
2481
OPC_CheckOpcode, ISD::OR,
2483
OPC_Scope, 56|128,5,
2484
OPC_CheckOpcode, ISD::OR,
2487
OPC_CheckAndImm, 0|128,126|128,3,
2489
OPC_CheckOpcode, ISD::SHL,
2492
OPC_CheckInteger, 8,
2493
OPC_CheckType, MVT::i32,
2498
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2500
OPC_CheckOpcode, ISD::SRL,
2505
OPC_CheckInteger, 8,
2506
OPC_CheckType, MVT::i32,
2512
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2514
OPC_CheckOpcode, ISD::SHL,
2519
OPC_CheckInteger, 8,
2520
OPC_CheckType, MVT::i32,
2526
OPC_CheckAndImm, 127|128,1,
2528
OPC_CheckOpcode, ISD::SRL,
2533
OPC_CheckInteger, 8,
2534
OPC_CheckType, MVT::i32,
2538
OPC_CheckType, MVT::i32,
2539
OPC_CheckPatternPredicate, 1,
2540
OPC_EmitInteger, MVT::i32, 14,
2541
OPC_EmitRegister, MVT::i32, 0 ,
2542
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2543
1, MVT::i32, 3, 0, 1, 2,
2545
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2547
OPC_CheckOpcode, ISD::SRL,
2550
OPC_CheckInteger, 8,
2551
OPC_CheckType, MVT::i32,
2556
OPC_CheckAndImm, 0|128,126|128,3,
2558
OPC_CheckOpcode, ISD::SHL,
2563
OPC_CheckInteger, 8,
2564
OPC_CheckType, MVT::i32,
2570
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2572
OPC_CheckOpcode, ISD::SHL,
2577
OPC_CheckInteger, 8,
2578
OPC_CheckType, MVT::i32,
2584
OPC_CheckAndImm, 127|128,1,
2586
OPC_CheckOpcode, ISD::SRL,
2591
OPC_CheckInteger, 8,
2592
OPC_CheckType, MVT::i32,
2596
OPC_CheckType, MVT::i32,
2597
OPC_CheckPatternPredicate, 1,
2598
OPC_EmitInteger, MVT::i32, 14,
2599
OPC_EmitRegister, MVT::i32, 0 ,
2600
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2601
1, MVT::i32, 3, 0, 1, 2,
2603
OPC_CheckAndImm, 0|128,126|128,3,
2605
OPC_CheckOpcode, ISD::SHL,
2608
OPC_CheckInteger, 8,
2609
OPC_CheckType, MVT::i32,
2614
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2616
OPC_CheckOpcode, ISD::SHL,
2621
OPC_CheckInteger, 8,
2622
OPC_CheckType, MVT::i32,
2628
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2630
OPC_CheckOpcode, ISD::SRL,
2635
OPC_CheckInteger, 8,
2636
OPC_CheckType, MVT::i32,
2642
OPC_CheckAndImm, 127|128,1,
2644
OPC_CheckOpcode, ISD::SRL,
2649
OPC_CheckInteger, 8,
2650
OPC_CheckType, MVT::i32,
2654
OPC_CheckType, MVT::i32,
2655
OPC_CheckPatternPredicate, 1,
2656
OPC_EmitInteger, MVT::i32, 14,
2657
OPC_EmitRegister, MVT::i32, 0 ,
2658
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2659
1, MVT::i32, 3, 0, 1, 2,
2661
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2663
OPC_CheckOpcode, ISD::SHL,
2666
OPC_CheckInteger, 8,
2667
OPC_CheckType, MVT::i32,
2672
OPC_CheckAndImm, 0|128,126|128,3,
2674
OPC_CheckOpcode, ISD::SHL,
2679
OPC_CheckInteger, 8,
2680
OPC_CheckType, MVT::i32,
2686
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2688
OPC_CheckOpcode, ISD::SRL,
2693
OPC_CheckInteger, 8,
2694
OPC_CheckType, MVT::i32,
2700
OPC_CheckAndImm, 127|128,1,
2702
OPC_CheckOpcode, ISD::SRL,
2707
OPC_CheckInteger, 8,
2708
OPC_CheckType, MVT::i32,
2712
OPC_CheckType, MVT::i32,
2713
OPC_CheckPatternPredicate, 1,
2714
OPC_EmitInteger, MVT::i32, 14,
2715
OPC_EmitRegister, MVT::i32, 0 ,
2716
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2717
1, MVT::i32, 3, 0, 1, 2,
2719
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2721
OPC_CheckOpcode, ISD::SRL,
2724
OPC_CheckInteger, 8,
2725
OPC_CheckType, MVT::i32,
2730
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2732
OPC_CheckOpcode, ISD::SHL,
2737
OPC_CheckInteger, 8,
2738
OPC_CheckType, MVT::i32,
2744
OPC_CheckAndImm, 0|128,126|128,3,
2746
OPC_CheckOpcode, ISD::SHL,
2751
OPC_CheckInteger, 8,
2752
OPC_CheckType, MVT::i32,
2758
OPC_CheckAndImm, 127|128,1,
2760
OPC_CheckOpcode, ISD::SRL,
2765
OPC_CheckInteger, 8,
2766
OPC_CheckType, MVT::i32,
2770
OPC_CheckType, MVT::i32,
2771
OPC_CheckPatternPredicate, 1,
2772
OPC_EmitInteger, MVT::i32, 14,
2773
OPC_EmitRegister, MVT::i32, 0 ,
2774
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2775
1, MVT::i32, 3, 0, 1, 2,
2777
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2779
OPC_CheckOpcode, ISD::SHL,
2782
OPC_CheckInteger, 8,
2783
OPC_CheckType, MVT::i32,
2788
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2790
OPC_CheckOpcode, ISD::SRL,
2795
OPC_CheckInteger, 8,
2796
OPC_CheckType, MVT::i32,
2802
OPC_CheckAndImm, 0|128,126|128,3,
2804
OPC_CheckOpcode, ISD::SHL,
2809
OPC_CheckInteger, 8,
2810
OPC_CheckType, MVT::i32,
2816
OPC_CheckAndImm, 127|128,1,
2818
OPC_CheckOpcode, ISD::SRL,
2823
OPC_CheckInteger, 8,
2824
OPC_CheckType, MVT::i32,
2828
OPC_CheckType, MVT::i32,
2829
OPC_CheckPatternPredicate, 1,
2830
OPC_EmitInteger, MVT::i32, 14,
2831
OPC_EmitRegister, MVT::i32, 0 ,
2832
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2833
1, MVT::i32, 3, 0, 1, 2,
2836
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2838
OPC_CheckOpcode, ISD::SHL,
2841
OPC_CheckInteger, 8,
2842
OPC_CheckType, MVT::i32,
2847
OPC_CheckOpcode, ISD::OR,
2850
OPC_CheckAndImm, 0|128,126|128,3,
2852
OPC_CheckOpcode, ISD::SHL,
2857
OPC_CheckInteger, 8,
2858
OPC_CheckType, MVT::i32,
2863
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2865
OPC_CheckOpcode, ISD::SRL,
2870
OPC_CheckInteger, 8,
2871
OPC_CheckType, MVT::i32,
2878
OPC_CheckAndImm, 127|128,1,
2880
OPC_CheckOpcode, ISD::SRL,
2885
OPC_CheckInteger, 8,
2886
OPC_CheckType, MVT::i32,
2890
OPC_CheckType, MVT::i32,
2891
OPC_CheckPatternPredicate, 1,
2892
OPC_EmitInteger, MVT::i32, 14,
2893
OPC_EmitRegister, MVT::i32, 0 ,
2894
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2895
1, MVT::i32, 3, 0, 1, 2,
2897
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2899
OPC_CheckOpcode, ISD::SRL,
2904
OPC_CheckInteger, 8,
2905
OPC_CheckType, MVT::i32,
2910
OPC_CheckAndImm, 0|128,126|128,3,
2912
OPC_CheckOpcode, ISD::SHL,
2917
OPC_CheckInteger, 8,
2918
OPC_CheckType, MVT::i32,
2925
OPC_CheckAndImm, 127|128,1,
2927
OPC_CheckOpcode, ISD::SRL,
2932
OPC_CheckInteger, 8,
2933
OPC_CheckType, MVT::i32,
2937
OPC_CheckType, MVT::i32,
2938
OPC_CheckPatternPredicate, 1,
2939
OPC_EmitInteger, MVT::i32, 14,
2940
OPC_EmitRegister, MVT::i32, 0 ,
2941
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
2942
1, MVT::i32, 3, 0, 1, 2,
2945
OPC_CheckAndImm, 0|128,0|128,124|128,7,
2947
OPC_CheckOpcode, ISD::SRL,
2950
OPC_CheckInteger, 8,
2951
OPC_CheckType, MVT::i32,
2956
OPC_CheckOpcode, ISD::OR,
2959
OPC_CheckAndImm, 0|128,126|128,3,
2961
OPC_CheckOpcode, ISD::SHL,
2966
OPC_CheckInteger, 8,
2967
OPC_CheckType, MVT::i32,
2972
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
2974
OPC_CheckOpcode, ISD::SHL,
2979
OPC_CheckInteger, 8,
2980
OPC_CheckType, MVT::i32,
2987
OPC_CheckAndImm, 127|128,1,
2989
OPC_CheckOpcode, ISD::SRL,
2994
OPC_CheckInteger, 8,
2995
OPC_CheckType, MVT::i32,
2999
OPC_CheckType, MVT::i32,
3000
OPC_CheckPatternPredicate, 1,
3001
OPC_EmitInteger, MVT::i32, 14,
3002
OPC_EmitRegister, MVT::i32, 0 ,
3003
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
3004
1, MVT::i32, 3, 0, 1, 2,
3006
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3008
OPC_CheckOpcode, ISD::SHL,
3013
OPC_CheckInteger, 8,
3014
OPC_CheckType, MVT::i32,
3019
OPC_CheckAndImm, 0|128,126|128,3,
3021
OPC_CheckOpcode, ISD::SHL,
3026
OPC_CheckInteger, 8,
3027
OPC_CheckType, MVT::i32,
3034
OPC_CheckAndImm, 127|128,1,
3036
OPC_CheckOpcode, ISD::SRL,
3041
OPC_CheckInteger, 8,
3042
OPC_CheckType, MVT::i32,
3046
OPC_CheckType, MVT::i32,
3047
OPC_CheckPatternPredicate, 1,
3048
OPC_EmitInteger, MVT::i32, 14,
3049
OPC_EmitRegister, MVT::i32, 0 ,
3050
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
3051
1, MVT::i32, 3, 0, 1, 2,
3054
OPC_CheckAndImm, 0|128,126|128,3,
3056
OPC_CheckOpcode, ISD::SHL,
3059
OPC_CheckInteger, 8,
3060
OPC_CheckType, MVT::i32,
3065
OPC_CheckOpcode, ISD::OR,
3068
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3070
OPC_CheckOpcode, ISD::SRL,
3075
OPC_CheckInteger, 8,
3076
OPC_CheckType, MVT::i32,
3081
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3083
OPC_CheckOpcode, ISD::SHL,
3088
OPC_CheckInteger, 8,
3089
OPC_CheckType, MVT::i32,
3096
OPC_CheckAndImm, 127|128,1,
3098
OPC_CheckOpcode, ISD::SRL,
3103
OPC_CheckInteger, 8,
3104
OPC_CheckType, MVT::i32,
3108
OPC_CheckType, MVT::i32,
3109
OPC_CheckPatternPredicate, 1,
3110
OPC_EmitInteger, MVT::i32, 14,
3111
OPC_EmitRegister, MVT::i32, 0 ,
3112
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
3113
1, MVT::i32, 3, 0, 1, 2,
3115
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3117
OPC_CheckOpcode, ISD::SHL,
3122
OPC_CheckInteger, 8,
3123
OPC_CheckType, MVT::i32,
3128
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3130
OPC_CheckOpcode, ISD::SRL,
3135
OPC_CheckInteger, 8,
3136
OPC_CheckType, MVT::i32,
3143
OPC_CheckAndImm, 127|128,1,
3145
OPC_CheckOpcode, ISD::SRL,
3150
OPC_CheckInteger, 8,
3151
OPC_CheckType, MVT::i32,
3155
OPC_CheckType, MVT::i32,
3156
OPC_CheckPatternPredicate, 1,
3157
OPC_EmitInteger, MVT::i32, 14,
3158
OPC_EmitRegister, MVT::i32, 0 ,
3159
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
3160
1, MVT::i32, 3, 0, 1, 2,
3164
OPC_CheckAndImm, 127|128,1,
3166
OPC_CheckOpcode, ISD::SRL,
3169
OPC_CheckInteger, 8,
3170
OPC_CheckType, MVT::i32,
3175
OPC_CheckOpcode, ISD::OR,
3177
OPC_Scope, 102|128,3,
3178
OPC_CheckOpcode, ISD::OR,
3181
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3183
OPC_CheckOpcode, ISD::SRL,
3188
OPC_CheckInteger, 8,
3189
OPC_CheckType, MVT::i32,
3194
OPC_CheckAndImm, 0|128,126|128,3,
3196
OPC_CheckOpcode, ISD::SHL,
3201
OPC_CheckInteger, 8,
3202
OPC_CheckType, MVT::i32,
3208
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3210
OPC_CheckOpcode, ISD::SHL,
3215
OPC_CheckInteger, 8,
3216
OPC_CheckType, MVT::i32,
3221
OPC_CheckType, MVT::i32,
3222
OPC_CheckPatternPredicate, 2,
3223
OPC_EmitInteger, MVT::i32, 14,
3224
OPC_EmitRegister, MVT::i32, 0 ,
3225
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3226
1, MVT::i32, 3, 0, 1, 2,
3228
OPC_CheckAndImm, 0|128,126|128,3,
3230
OPC_CheckOpcode, ISD::SHL,
3235
OPC_CheckInteger, 8,
3236
OPC_CheckType, MVT::i32,
3241
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3243
OPC_CheckOpcode, ISD::SHL,
3248
OPC_CheckInteger, 8,
3249
OPC_CheckType, MVT::i32,
3255
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3257
OPC_CheckOpcode, ISD::SRL,
3262
OPC_CheckInteger, 8,
3263
OPC_CheckType, MVT::i32,
3268
OPC_CheckType, MVT::i32,
3269
OPC_CheckPatternPredicate, 2,
3270
OPC_EmitInteger, MVT::i32, 14,
3271
OPC_EmitRegister, MVT::i32, 0 ,
3272
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3273
1, MVT::i32, 3, 0, 1, 2,
3275
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3277
OPC_CheckOpcode, ISD::SHL,
3282
OPC_CheckInteger, 8,
3283
OPC_CheckType, MVT::i32,
3288
OPC_CheckAndImm, 0|128,126|128,3,
3290
OPC_CheckOpcode, ISD::SHL,
3295
OPC_CheckInteger, 8,
3296
OPC_CheckType, MVT::i32,
3302
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3304
OPC_CheckOpcode, ISD::SRL,
3309
OPC_CheckInteger, 8,
3310
OPC_CheckType, MVT::i32,
3315
OPC_CheckType, MVT::i32,
3316
OPC_CheckPatternPredicate, 2,
3317
OPC_EmitInteger, MVT::i32, 14,
3318
OPC_EmitRegister, MVT::i32, 0 ,
3319
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3320
1, MVT::i32, 3, 0, 1, 2,
3322
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3324
OPC_CheckOpcode, ISD::SRL,
3329
OPC_CheckInteger, 8,
3330
OPC_CheckType, MVT::i32,
3335
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3337
OPC_CheckOpcode, ISD::SHL,
3342
OPC_CheckInteger, 8,
3343
OPC_CheckType, MVT::i32,
3349
OPC_CheckAndImm, 0|128,126|128,3,
3351
OPC_CheckOpcode, ISD::SHL,
3356
OPC_CheckInteger, 8,
3357
OPC_CheckType, MVT::i32,
3362
OPC_CheckType, MVT::i32,
3363
OPC_CheckPatternPredicate, 2,
3364
OPC_EmitInteger, MVT::i32, 14,
3365
OPC_EmitRegister, MVT::i32, 0 ,
3366
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3367
1, MVT::i32, 3, 0, 1, 2,
3369
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3371
OPC_CheckOpcode, ISD::SHL,
3376
OPC_CheckInteger, 8,
3377
OPC_CheckType, MVT::i32,
3382
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3384
OPC_CheckOpcode, ISD::SRL,
3389
OPC_CheckInteger, 8,
3390
OPC_CheckType, MVT::i32,
3396
OPC_CheckAndImm, 0|128,126|128,3,
3398
OPC_CheckOpcode, ISD::SHL,
3403
OPC_CheckInteger, 8,
3404
OPC_CheckType, MVT::i32,
3409
OPC_CheckType, MVT::i32,
3410
OPC_CheckPatternPredicate, 2,
3411
OPC_EmitInteger, MVT::i32, 14,
3412
OPC_EmitRegister, MVT::i32, 0 ,
3413
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3414
1, MVT::i32, 3, 0, 1, 2,
3417
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3419
OPC_CheckOpcode, ISD::SHL,
3424
OPC_CheckInteger, 8,
3425
OPC_CheckType, MVT::i32,
3430
OPC_CheckOpcode, ISD::OR,
3433
OPC_CheckAndImm, 0|128,126|128,3,
3435
OPC_CheckOpcode, ISD::SHL,
3440
OPC_CheckInteger, 8,
3441
OPC_CheckType, MVT::i32,
3446
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3448
OPC_CheckOpcode, ISD::SRL,
3453
OPC_CheckInteger, 8,
3454
OPC_CheckType, MVT::i32,
3460
OPC_CheckType, MVT::i32,
3461
OPC_CheckPatternPredicate, 2,
3462
OPC_EmitInteger, MVT::i32, 14,
3463
OPC_EmitRegister, MVT::i32, 0 ,
3464
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3465
1, MVT::i32, 3, 0, 1, 2,
3467
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3469
OPC_CheckOpcode, ISD::SRL,
3474
OPC_CheckInteger, 8,
3475
OPC_CheckType, MVT::i32,
3480
OPC_CheckAndImm, 0|128,126|128,3,
3482
OPC_CheckOpcode, ISD::SHL,
3487
OPC_CheckInteger, 8,
3488
OPC_CheckType, MVT::i32,
3494
OPC_CheckType, MVT::i32,
3495
OPC_CheckPatternPredicate, 2,
3496
OPC_EmitInteger, MVT::i32, 14,
3497
OPC_EmitRegister, MVT::i32, 0 ,
3498
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3499
1, MVT::i32, 3, 0, 1, 2,
3502
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3504
OPC_CheckOpcode, ISD::SRL,
3509
OPC_CheckInteger, 8,
3510
OPC_CheckType, MVT::i32,
3515
OPC_CheckOpcode, ISD::OR,
3518
OPC_CheckAndImm, 0|128,126|128,3,
3520
OPC_CheckOpcode, ISD::SHL,
3525
OPC_CheckInteger, 8,
3526
OPC_CheckType, MVT::i32,
3531
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3533
OPC_CheckOpcode, ISD::SHL,
3538
OPC_CheckInteger, 8,
3539
OPC_CheckType, MVT::i32,
3545
OPC_CheckType, MVT::i32,
3546
OPC_CheckPatternPredicate, 2,
3547
OPC_EmitInteger, MVT::i32, 14,
3548
OPC_EmitRegister, MVT::i32, 0 ,
3549
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3550
1, MVT::i32, 3, 0, 1, 2,
3552
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3554
OPC_CheckOpcode, ISD::SHL,
3559
OPC_CheckInteger, 8,
3560
OPC_CheckType, MVT::i32,
3565
OPC_CheckAndImm, 0|128,126|128,3,
3567
OPC_CheckOpcode, ISD::SHL,
3572
OPC_CheckInteger, 8,
3573
OPC_CheckType, MVT::i32,
3579
OPC_CheckType, MVT::i32,
3580
OPC_CheckPatternPredicate, 2,
3581
OPC_EmitInteger, MVT::i32, 14,
3582
OPC_EmitRegister, MVT::i32, 0 ,
3583
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3584
1, MVT::i32, 3, 0, 1, 2,
3587
OPC_CheckAndImm, 0|128,126|128,3,
3589
OPC_CheckOpcode, ISD::SHL,
3594
OPC_CheckInteger, 8,
3595
OPC_CheckType, MVT::i32,
3600
OPC_CheckOpcode, ISD::OR,
3602
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3604
OPC_CheckOpcode, ISD::SHL,
3609
OPC_CheckInteger, 8,
3610
OPC_CheckType, MVT::i32,
3615
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3617
OPC_CheckOpcode, ISD::SRL,
3622
OPC_CheckInteger, 8,
3623
OPC_CheckType, MVT::i32,
3629
OPC_CheckType, MVT::i32,
3630
OPC_CheckPatternPredicate, 2,
3631
OPC_EmitInteger, MVT::i32, 14,
3632
OPC_EmitRegister, MVT::i32, 0 ,
3633
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3634
1, MVT::i32, 3, 0, 1, 2,
3637
OPC_CheckOpcode, ISD::OR,
3639
OPC_Scope, 56|128,5,
3640
OPC_CheckOpcode, ISD::OR,
3643
OPC_CheckAndImm, 0|128,126|128,3,
3645
OPC_CheckOpcode, ISD::SHL,
3648
OPC_CheckInteger, 8,
3649
OPC_CheckType, MVT::i32,
3654
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3656
OPC_CheckOpcode, ISD::SRL,
3661
OPC_CheckInteger, 8,
3662
OPC_CheckType, MVT::i32,
3668
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3670
OPC_CheckOpcode, ISD::SHL,
3675
OPC_CheckInteger, 8,
3676
OPC_CheckType, MVT::i32,
3682
OPC_CheckAndImm, 127|128,1,
3684
OPC_CheckOpcode, ISD::SRL,
3689
OPC_CheckInteger, 8,
3690
OPC_CheckType, MVT::i32,
3694
OPC_CheckType, MVT::i32,
3695
OPC_CheckPatternPredicate, 2,
3696
OPC_EmitInteger, MVT::i32, 14,
3697
OPC_EmitRegister, MVT::i32, 0 ,
3698
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3699
1, MVT::i32, 3, 0, 1, 2,
3701
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3703
OPC_CheckOpcode, ISD::SRL,
3706
OPC_CheckInteger, 8,
3707
OPC_CheckType, MVT::i32,
3712
OPC_CheckAndImm, 0|128,126|128,3,
3714
OPC_CheckOpcode, ISD::SHL,
3719
OPC_CheckInteger, 8,
3720
OPC_CheckType, MVT::i32,
3726
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3728
OPC_CheckOpcode, ISD::SHL,
3733
OPC_CheckInteger, 8,
3734
OPC_CheckType, MVT::i32,
3740
OPC_CheckAndImm, 127|128,1,
3742
OPC_CheckOpcode, ISD::SRL,
3747
OPC_CheckInteger, 8,
3748
OPC_CheckType, MVT::i32,
3752
OPC_CheckType, MVT::i32,
3753
OPC_CheckPatternPredicate, 2,
3754
OPC_EmitInteger, MVT::i32, 14,
3755
OPC_EmitRegister, MVT::i32, 0 ,
3756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3757
1, MVT::i32, 3, 0, 1, 2,
3759
OPC_CheckAndImm, 0|128,126|128,3,
3761
OPC_CheckOpcode, ISD::SHL,
3764
OPC_CheckInteger, 8,
3765
OPC_CheckType, MVT::i32,
3770
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3772
OPC_CheckOpcode, ISD::SHL,
3777
OPC_CheckInteger, 8,
3778
OPC_CheckType, MVT::i32,
3784
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3786
OPC_CheckOpcode, ISD::SRL,
3791
OPC_CheckInteger, 8,
3792
OPC_CheckType, MVT::i32,
3798
OPC_CheckAndImm, 127|128,1,
3800
OPC_CheckOpcode, ISD::SRL,
3805
OPC_CheckInteger, 8,
3806
OPC_CheckType, MVT::i32,
3810
OPC_CheckType, MVT::i32,
3811
OPC_CheckPatternPredicate, 2,
3812
OPC_EmitInteger, MVT::i32, 14,
3813
OPC_EmitRegister, MVT::i32, 0 ,
3814
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3815
1, MVT::i32, 3, 0, 1, 2,
3817
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3819
OPC_CheckOpcode, ISD::SHL,
3822
OPC_CheckInteger, 8,
3823
OPC_CheckType, MVT::i32,
3828
OPC_CheckAndImm, 0|128,126|128,3,
3830
OPC_CheckOpcode, ISD::SHL,
3835
OPC_CheckInteger, 8,
3836
OPC_CheckType, MVT::i32,
3842
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3844
OPC_CheckOpcode, ISD::SRL,
3849
OPC_CheckInteger, 8,
3850
OPC_CheckType, MVT::i32,
3856
OPC_CheckAndImm, 127|128,1,
3858
OPC_CheckOpcode, ISD::SRL,
3863
OPC_CheckInteger, 8,
3864
OPC_CheckType, MVT::i32,
3868
OPC_CheckType, MVT::i32,
3869
OPC_CheckPatternPredicate, 2,
3870
OPC_EmitInteger, MVT::i32, 14,
3871
OPC_EmitRegister, MVT::i32, 0 ,
3872
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3873
1, MVT::i32, 3, 0, 1, 2,
3875
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3877
OPC_CheckOpcode, ISD::SRL,
3880
OPC_CheckInteger, 8,
3881
OPC_CheckType, MVT::i32,
3886
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3888
OPC_CheckOpcode, ISD::SHL,
3893
OPC_CheckInteger, 8,
3894
OPC_CheckType, MVT::i32,
3900
OPC_CheckAndImm, 0|128,126|128,3,
3902
OPC_CheckOpcode, ISD::SHL,
3907
OPC_CheckInteger, 8,
3908
OPC_CheckType, MVT::i32,
3914
OPC_CheckAndImm, 127|128,1,
3916
OPC_CheckOpcode, ISD::SRL,
3921
OPC_CheckInteger, 8,
3922
OPC_CheckType, MVT::i32,
3926
OPC_CheckType, MVT::i32,
3927
OPC_CheckPatternPredicate, 2,
3928
OPC_EmitInteger, MVT::i32, 14,
3929
OPC_EmitRegister, MVT::i32, 0 ,
3930
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3931
1, MVT::i32, 3, 0, 1, 2,
3933
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3935
OPC_CheckOpcode, ISD::SHL,
3938
OPC_CheckInteger, 8,
3939
OPC_CheckType, MVT::i32,
3944
OPC_CheckAndImm, 0|128,0|128,124|128,7,
3946
OPC_CheckOpcode, ISD::SRL,
3951
OPC_CheckInteger, 8,
3952
OPC_CheckType, MVT::i32,
3958
OPC_CheckAndImm, 0|128,126|128,3,
3960
OPC_CheckOpcode, ISD::SHL,
3965
OPC_CheckInteger, 8,
3966
OPC_CheckType, MVT::i32,
3972
OPC_CheckAndImm, 127|128,1,
3974
OPC_CheckOpcode, ISD::SRL,
3979
OPC_CheckInteger, 8,
3980
OPC_CheckType, MVT::i32,
3984
OPC_CheckType, MVT::i32,
3985
OPC_CheckPatternPredicate, 2,
3986
OPC_EmitInteger, MVT::i32, 14,
3987
OPC_EmitRegister, MVT::i32, 0 ,
3988
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
3989
1, MVT::i32, 3, 0, 1, 2,
3992
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
3994
OPC_CheckOpcode, ISD::SHL,
3997
OPC_CheckInteger, 8,
3998
OPC_CheckType, MVT::i32,
4003
OPC_CheckOpcode, ISD::OR,
4006
OPC_CheckAndImm, 0|128,126|128,3,
4008
OPC_CheckOpcode, ISD::SHL,
4013
OPC_CheckInteger, 8,
4014
OPC_CheckType, MVT::i32,
4019
OPC_CheckAndImm, 0|128,0|128,124|128,7,
4021
OPC_CheckOpcode, ISD::SRL,
4026
OPC_CheckInteger, 8,
4027
OPC_CheckType, MVT::i32,
4034
OPC_CheckAndImm, 127|128,1,
4036
OPC_CheckOpcode, ISD::SRL,
4041
OPC_CheckInteger, 8,
4042
OPC_CheckType, MVT::i32,
4046
OPC_CheckType, MVT::i32,
4047
OPC_CheckPatternPredicate, 2,
4048
OPC_EmitInteger, MVT::i32, 14,
4049
OPC_EmitRegister, MVT::i32, 0 ,
4050
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4051
1, MVT::i32, 3, 0, 1, 2,
4053
OPC_CheckAndImm, 0|128,0|128,124|128,7,
4055
OPC_CheckOpcode, ISD::SRL,
4060
OPC_CheckInteger, 8,
4061
OPC_CheckType, MVT::i32,
4066
OPC_CheckAndImm, 0|128,126|128,3,
4068
OPC_CheckOpcode, ISD::SHL,
4073
OPC_CheckInteger, 8,
4074
OPC_CheckType, MVT::i32,
4081
OPC_CheckAndImm, 127|128,1,
4083
OPC_CheckOpcode, ISD::SRL,
4088
OPC_CheckInteger, 8,
4089
OPC_CheckType, MVT::i32,
4093
OPC_CheckType, MVT::i32,
4094
OPC_CheckPatternPredicate, 2,
4095
OPC_EmitInteger, MVT::i32, 14,
4096
OPC_EmitRegister, MVT::i32, 0 ,
4097
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4098
1, MVT::i32, 3, 0, 1, 2,
4101
OPC_CheckAndImm, 0|128,0|128,124|128,7,
4103
OPC_CheckOpcode, ISD::SRL,
4106
OPC_CheckInteger, 8,
4107
OPC_CheckType, MVT::i32,
4112
OPC_CheckOpcode, ISD::OR,
4115
OPC_CheckAndImm, 0|128,126|128,3,
4117
OPC_CheckOpcode, ISD::SHL,
4122
OPC_CheckInteger, 8,
4123
OPC_CheckType, MVT::i32,
4128
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
4130
OPC_CheckOpcode, ISD::SHL,
4135
OPC_CheckInteger, 8,
4136
OPC_CheckType, MVT::i32,
4143
OPC_CheckAndImm, 127|128,1,
4145
OPC_CheckOpcode, ISD::SRL,
4150
OPC_CheckInteger, 8,
4151
OPC_CheckType, MVT::i32,
4155
OPC_CheckType, MVT::i32,
4156
OPC_CheckPatternPredicate, 2,
4157
OPC_EmitInteger, MVT::i32, 14,
4158
OPC_EmitRegister, MVT::i32, 0 ,
4159
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4160
1, MVT::i32, 3, 0, 1, 2,
4162
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
4164
OPC_CheckOpcode, ISD::SHL,
4169
OPC_CheckInteger, 8,
4170
OPC_CheckType, MVT::i32,
4175
OPC_CheckAndImm, 0|128,126|128,3,
4177
OPC_CheckOpcode, ISD::SHL,
4182
OPC_CheckInteger, 8,
4183
OPC_CheckType, MVT::i32,
4190
OPC_CheckAndImm, 127|128,1,
4192
OPC_CheckOpcode, ISD::SRL,
4197
OPC_CheckInteger, 8,
4198
OPC_CheckType, MVT::i32,
4202
OPC_CheckType, MVT::i32,
4203
OPC_CheckPatternPredicate, 2,
4204
OPC_EmitInteger, MVT::i32, 14,
4205
OPC_EmitRegister, MVT::i32, 0 ,
4206
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4207
1, MVT::i32, 3, 0, 1, 2,
4210
OPC_CheckAndImm, 0|128,126|128,3,
4212
OPC_CheckOpcode, ISD::SHL,
4215
OPC_CheckInteger, 8,
4216
OPC_CheckType, MVT::i32,
4221
OPC_CheckOpcode, ISD::OR,
4224
OPC_CheckAndImm, 0|128,0|128,124|128,7,
4226
OPC_CheckOpcode, ISD::SRL,
4231
OPC_CheckInteger, 8,
4232
OPC_CheckType, MVT::i32,
4237
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
4239
OPC_CheckOpcode, ISD::SHL,
4244
OPC_CheckInteger, 8,
4245
OPC_CheckType, MVT::i32,
4252
OPC_CheckAndImm, 127|128,1,
4254
OPC_CheckOpcode, ISD::SRL,
4259
OPC_CheckInteger, 8,
4260
OPC_CheckType, MVT::i32,
4264
OPC_CheckType, MVT::i32,
4265
OPC_CheckPatternPredicate, 2,
4266
OPC_EmitInteger, MVT::i32, 14,
4267
OPC_EmitRegister, MVT::i32, 0 ,
4268
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4269
1, MVT::i32, 3, 0, 1, 2,
4271
OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15,
4273
OPC_CheckOpcode, ISD::SHL,
4278
OPC_CheckInteger, 8,
4279
OPC_CheckType, MVT::i32,
4284
OPC_CheckAndImm, 0|128,0|128,124|128,7,
4286
OPC_CheckOpcode, ISD::SRL,
4291
OPC_CheckInteger, 8,
4292
OPC_CheckType, MVT::i32,
4299
OPC_CheckAndImm, 127|128,1,
4301
OPC_CheckOpcode, ISD::SRL,
4306
OPC_CheckInteger, 8,
4307
OPC_CheckType, MVT::i32,
4311
OPC_CheckType, MVT::i32,
4312
OPC_CheckPatternPredicate, 2,
4313
OPC_EmitInteger, MVT::i32, 14,
4314
OPC_EmitRegister, MVT::i32, 0 ,
4315
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
4316
1, MVT::i32, 3, 0, 1, 2,
4320
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4324
OPC_CheckAndImm, 127|128,127|128,3,
4326
OPC_SwitchOpcode , 63, ISD::SRA,
4330
OPC_CheckOpcode, ISD::Constant,
4331
OPC_CheckPredicate, 0,
4332
OPC_CheckType, MVT::i32,
4336
OPC_CheckType, MVT::i32,
4338
OPC_CheckPatternPredicate, 0,
4339
OPC_EmitConvertToTarget, 2,
4340
OPC_EmitInteger, MVT::i32, 14,
4341
OPC_EmitRegister, MVT::i32, 0 ,
4342
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4343
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4345
OPC_CheckPatternPredicate, 2,
4346
OPC_EmitConvertToTarget, 2,
4347
OPC_EmitInteger, MVT::i32, 14,
4348
OPC_EmitRegister, MVT::i32, 0 ,
4349
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4350
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4356
OPC_CheckOpcode, ISD::Constant,
4357
OPC_CheckPredicate, 1,
4358
OPC_CheckType, MVT::i32,
4362
OPC_CheckType, MVT::i32,
4364
OPC_CheckPatternPredicate, 0,
4365
OPC_EmitConvertToTarget, 2,
4366
OPC_EmitInteger, MVT::i32, 14,
4367
OPC_EmitRegister, MVT::i32, 0 ,
4368
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4369
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4371
OPC_CheckPatternPredicate, 2,
4372
OPC_EmitConvertToTarget, 2,
4373
OPC_EmitInteger, MVT::i32, 14,
4374
OPC_EmitRegister, MVT::i32, 0 ,
4375
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4376
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4380
OPC_CheckAndImm, 127|128,127|128,3,
4381
OPC_Scope, 26|128,1,
4383
OPC_SwitchOpcode , 73, ISD::SRA,
4387
OPC_CheckOpcode, ISD::Constant,
4388
OPC_CheckPredicate, 0,
4389
OPC_CheckType, MVT::i32,
4394
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4397
OPC_CheckType, MVT::i32,
4399
OPC_CheckPatternPredicate, 0,
4400
OPC_EmitConvertToTarget, 1,
4401
OPC_EmitInteger, MVT::i32, 14,
4402
OPC_EmitRegister, MVT::i32, 0 ,
4403
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4404
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4406
OPC_CheckPatternPredicate, 2,
4407
OPC_EmitConvertToTarget, 1,
4408
OPC_EmitInteger, MVT::i32, 14,
4409
OPC_EmitRegister, MVT::i32, 0 ,
4410
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4411
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4417
OPC_CheckOpcode, ISD::Constant,
4418
OPC_CheckPredicate, 1,
4419
OPC_CheckType, MVT::i32,
4424
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4427
OPC_CheckType, MVT::i32,
4429
OPC_CheckPatternPredicate, 2,
4430
OPC_EmitConvertToTarget, 1,
4431
OPC_EmitInteger, MVT::i32, 14,
4432
OPC_EmitRegister, MVT::i32, 0 ,
4433
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4434
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4436
OPC_CheckPatternPredicate, 0,
4437
OPC_EmitConvertToTarget, 1,
4438
OPC_EmitInteger, MVT::i32, 14,
4439
OPC_EmitRegister, MVT::i32, 0 ,
4440
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4441
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4448
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4450
OPC_CheckOpcode, ISD::SHL,
4454
OPC_CheckOpcode, ISD::Constant,
4455
OPC_CheckType, MVT::i32,
4459
OPC_CheckType, MVT::i32,
4461
OPC_CheckPatternPredicate, 0,
4462
OPC_EmitConvertToTarget, 2,
4463
OPC_EmitInteger, MVT::i32, 14,
4464
OPC_EmitRegister, MVT::i32, 0 ,
4465
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4466
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4468
OPC_CheckPatternPredicate, 2,
4469
OPC_EmitConvertToTarget, 2,
4470
OPC_EmitInteger, MVT::i32, 14,
4471
OPC_EmitRegister, MVT::i32, 0 ,
4472
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4473
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4477
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4479
OPC_CheckOpcode, ISD::SHL,
4483
OPC_CheckOpcode, ISD::Constant,
4484
OPC_CheckType, MVT::i32,
4489
OPC_CheckAndImm, 127|128,127|128,3,
4492
OPC_CheckType, MVT::i32,
4494
OPC_CheckPatternPredicate, 0,
4495
OPC_EmitConvertToTarget, 1,
4496
OPC_EmitInteger, MVT::i32, 14,
4497
OPC_EmitRegister, MVT::i32, 0 ,
4498
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4499
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4501
OPC_CheckPatternPredicate, 2,
4502
OPC_EmitConvertToTarget, 1,
4503
OPC_EmitInteger, MVT::i32, 14,
4504
OPC_EmitRegister, MVT::i32, 0 ,
4505
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4506
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4512
OPC_CheckOpcode, ISD::XOR,
4515
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
4518
OPC_CheckType, MVT::i32,
4519
OPC_CheckPatternPredicate, 2,
4520
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
4521
OPC_EmitInteger, MVT::i32, 14,
4522
OPC_EmitRegister, MVT::i32, 0 ,
4523
OPC_EmitRegister, MVT::i32, 0 ,
4524
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrs), 0,
4525
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
4529
OPC_CheckOpcode, ISD::XOR,
4532
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
4536
OPC_CheckType, MVT::i32,
4537
OPC_CheckPatternPredicate, 2,
4538
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
4539
OPC_EmitInteger, MVT::i32, 14,
4540
OPC_EmitRegister, MVT::i32, 0 ,
4541
OPC_EmitRegister, MVT::i32, 0 ,
4542
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrs), 0,
4543
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
4545
OPC_CheckAndImm, 127|128,127|128,3,
4549
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4552
OPC_CheckType, MVT::i32,
4553
OPC_CheckPatternPredicate, 0,
4554
OPC_EmitInteger, MVT::i32, 0,
4555
OPC_EmitInteger, MVT::i32, 14,
4556
OPC_EmitRegister, MVT::i32, 0 ,
4557
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4558
1, MVT::i32, 5, 0, 1, 2, 3, 4,
4560
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4564
OPC_CheckOpcode, ISD::SRL,
4567
OPC_CheckInteger, 16,
4568
OPC_CheckType, MVT::i32,
4571
OPC_CheckType, MVT::i32,
4572
OPC_CheckPatternPredicate, 0,
4573
OPC_EmitInteger, MVT::i32, 16,
4574
OPC_EmitInteger, MVT::i32, 14,
4575
OPC_EmitRegister, MVT::i32, 0 ,
4576
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4577
1, MVT::i32, 5, 0, 1, 2, 3, 4,
4579
OPC_CheckAndImm, 127|128,127|128,3,
4583
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4586
OPC_CheckType, MVT::i32,
4587
OPC_CheckPatternPredicate, 2,
4588
OPC_EmitInteger, MVT::i32, 0,
4589
OPC_EmitInteger, MVT::i32, 14,
4590
OPC_EmitRegister, MVT::i32, 0 ,
4591
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4592
1, MVT::i32, 5, 0, 1, 2, 3, 4,
4594
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4599
OPC_CheckOpcode, ISD::SRL,
4602
OPC_CheckInteger, 16,
4603
OPC_CheckType, MVT::i32,
4606
OPC_CheckType, MVT::i32,
4607
OPC_CheckPatternPredicate, 2,
4608
OPC_EmitInteger, MVT::i32, 16,
4609
OPC_EmitInteger, MVT::i32, 14,
4610
OPC_EmitRegister, MVT::i32, 0 ,
4611
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4612
1, MVT::i32, 5, 0, 1, 2, 3, 4,
4614
OPC_CheckAndImm, 127|128,127|128,3,
4617
OPC_CheckType, MVT::i32,
4618
OPC_CheckPatternPredicate, 2,
4619
OPC_EmitInteger, MVT::i32, 0,
4620
OPC_EmitInteger, MVT::i32, 14,
4621
OPC_EmitRegister, MVT::i32, 0 ,
4622
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4623
1, MVT::i32, 5, 1, 0, 2, 3, 4,
4626
OPC_CheckOpcode, ISD::SRL,
4629
OPC_CheckInteger, 16,
4630
OPC_CheckType, MVT::i32,
4634
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4637
OPC_CheckType, MVT::i32,
4638
OPC_CheckPatternPredicate, 2,
4639
OPC_EmitInteger, MVT::i32, 16,
4640
OPC_EmitInteger, MVT::i32, 14,
4641
OPC_EmitRegister, MVT::i32, 0 ,
4642
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
4643
1, MVT::i32, 5, 1, 0, 2, 3, 4,
4645
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4649
OPC_CheckAndImm, 127|128,127|128,3,
4652
OPC_CheckType, MVT::i32,
4653
OPC_CheckPatternPredicate, 0,
4654
OPC_EmitInteger, MVT::i32, 0,
4655
OPC_EmitInteger, MVT::i32, 14,
4656
OPC_EmitRegister, MVT::i32, 0 ,
4657
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4658
1, MVT::i32, 5, 1, 0, 2, 3, 4,
4660
OPC_CheckOpcode, ISD::SRL,
4663
OPC_CheckInteger, 16,
4664
OPC_CheckType, MVT::i32,
4668
OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15,
4671
OPC_CheckType, MVT::i32,
4672
OPC_CheckPatternPredicate, 0,
4673
OPC_EmitInteger, MVT::i32, 16,
4674
OPC_EmitInteger, MVT::i32, 14,
4675
OPC_EmitRegister, MVT::i32, 0 ,
4676
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
4677
1, MVT::i32, 5, 1, 0, 2, 3, 4,
4679
OPC_CheckAndImm, 127|128,127|128,3,
4683
OPC_CheckOpcode, ISD::SHL,
4687
OPC_CheckOpcode, ISD::Constant,
4688
OPC_CheckPredicate, 0,
4689
OPC_CheckType, MVT::i32,
4692
OPC_CheckType, MVT::i32,
4694
OPC_CheckPatternPredicate, 0,
4695
OPC_EmitConvertToTarget, 2,
4696
OPC_EmitInteger, MVT::i32, 14,
4697
OPC_EmitRegister, MVT::i32, 0 ,
4698
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4699
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4701
OPC_CheckPatternPredicate, 2,
4702
OPC_EmitConvertToTarget, 2,
4703
OPC_EmitInteger, MVT::i32, 14,
4704
OPC_EmitRegister, MVT::i32, 0 ,
4705
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4706
1, MVT::i32, 5, 0, 1, 3, 4, 5,
4709
OPC_CheckOpcode, ISD::SHL,
4713
OPC_CheckOpcode, ISD::Constant,
4714
OPC_CheckPredicate, 0,
4715
OPC_CheckType, MVT::i32,
4719
OPC_CheckAndImm, 127|128,127|128,3,
4722
OPC_CheckType, MVT::i32,
4724
OPC_CheckPatternPredicate, 2,
4725
OPC_EmitConvertToTarget, 1,
4726
OPC_EmitInteger, MVT::i32, 14,
4727
OPC_EmitRegister, MVT::i32, 0 ,
4728
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
4729
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4731
OPC_CheckPatternPredicate, 0,
4732
OPC_EmitConvertToTarget, 1,
4733
OPC_EmitInteger, MVT::i32, 14,
4734
OPC_EmitRegister, MVT::i32, 0 ,
4735
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
4736
1, MVT::i32, 5, 2, 0, 3, 4, 5,
4739
OPC_CheckOpcode, ISD::AND,
4742
OPC_Scope, 98|128,2,
4746
OPC_CheckOpcode, ISD::AND,
4750
OPC_CheckOpcode, ISD::XOR,
4756
OPC_CheckOpcode, ISD::BIT_CONVERT,
4757
OPC_CheckPredicate, 2,
4761
OPC_SwitchType , 20, MVT::v2i32,
4762
OPC_CheckPatternPredicate, 3,
4763
OPC_EmitInteger, MVT::i32, 14,
4764
OPC_EmitRegister, MVT::i32, 0 ,
4765
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4766
1, MVT::v2i32, 5, 1, 0, 2, 3, 4,
4768
OPC_CheckPatternPredicate, 3,
4769
OPC_EmitInteger, MVT::i32, 14,
4770
OPC_EmitRegister, MVT::i32, 0 ,
4771
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
4772
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
4775
OPC_CheckOpcode, ISD::BIT_CONVERT,
4776
OPC_CheckPredicate, 2,
4783
OPC_CheckType, MVT::v2i32,
4784
OPC_CheckPatternPredicate, 3,
4785
OPC_EmitInteger, MVT::i32, 14,
4786
OPC_EmitRegister, MVT::i32, 0 ,
4787
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4788
1, MVT::v2i32, 5, 1, 0, 2, 3, 4,
4792
OPC_CheckOpcode, ISD::XOR,
4798
OPC_CheckOpcode, ISD::BIT_CONVERT,
4799
OPC_CheckPredicate, 2,
4804
OPC_CheckType, MVT::v2i32,
4805
OPC_CheckPatternPredicate, 3,
4806
OPC_EmitInteger, MVT::i32, 14,
4807
OPC_EmitRegister, MVT::i32, 0 ,
4808
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4809
1, MVT::v2i32, 5, 1, 0, 2, 3, 4,
4811
OPC_CheckOpcode, ISD::BIT_CONVERT,
4812
OPC_CheckPredicate, 2,
4820
OPC_CheckType, MVT::v2i32,
4821
OPC_CheckPatternPredicate, 3,
4822
OPC_EmitInteger, MVT::i32, 14,
4823
OPC_EmitRegister, MVT::i32, 0 ,
4824
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4825
1, MVT::v2i32, 5, 1, 0, 2, 3, 4,
4830
OPC_CheckOpcode, ISD::XOR,
4836
OPC_CheckOpcode, ISD::BIT_CONVERT,
4837
OPC_CheckPredicate, 2,
4841
OPC_CheckType, MVT::v2i32,
4842
OPC_CheckPatternPredicate, 3,
4843
OPC_EmitInteger, MVT::i32, 14,
4844
OPC_EmitRegister, MVT::i32, 0 ,
4845
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4846
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
4848
OPC_CheckOpcode, ISD::BIT_CONVERT,
4849
OPC_CheckPredicate, 2,
4856
OPC_CheckType, MVT::v2i32,
4857
OPC_CheckPatternPredicate, 3,
4858
OPC_EmitInteger, MVT::i32, 14,
4859
OPC_EmitRegister, MVT::i32, 0 ,
4860
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4861
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
4865
OPC_CheckOpcode, ISD::XOR,
4871
OPC_CheckOpcode, ISD::BIT_CONVERT,
4872
OPC_CheckPredicate, 2,
4877
OPC_CheckType, MVT::v2i32,
4878
OPC_CheckPatternPredicate, 3,
4879
OPC_EmitInteger, MVT::i32, 14,
4880
OPC_EmitRegister, MVT::i32, 0 ,
4881
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4882
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
4884
OPC_CheckOpcode, ISD::BIT_CONVERT,
4885
OPC_CheckPredicate, 2,
4893
OPC_CheckType, MVT::v2i32,
4894
OPC_CheckPatternPredicate, 3,
4895
OPC_EmitInteger, MVT::i32, 14,
4896
OPC_EmitRegister, MVT::i32, 0 ,
4897
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4898
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
4903
OPC_CheckOpcode, ISD::XOR,
4907
OPC_CheckOpcode, ISD::BIT_CONVERT,
4908
OPC_CheckPredicate, 2,
4913
OPC_CheckOpcode, ISD::AND,
4920
OPC_CheckType, MVT::v2i32,
4921
OPC_CheckPatternPredicate, 3,
4922
OPC_EmitInteger, MVT::i32, 14,
4923
OPC_EmitRegister, MVT::i32, 0 ,
4924
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4925
1, MVT::v2i32, 5, 1, 2, 0, 3, 4,
4932
OPC_CheckType, MVT::v2i32,
4933
OPC_CheckPatternPredicate, 3,
4934
OPC_EmitInteger, MVT::i32, 14,
4935
OPC_EmitRegister, MVT::i32, 0 ,
4936
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4937
1, MVT::v2i32, 5, 1, 2, 0, 3, 4,
4941
OPC_CheckOpcode, ISD::BIT_CONVERT,
4942
OPC_CheckPredicate, 2,
4948
OPC_CheckOpcode, ISD::AND,
4955
OPC_CheckType, MVT::v2i32,
4956
OPC_CheckPatternPredicate, 3,
4957
OPC_EmitInteger, MVT::i32, 14,
4958
OPC_EmitRegister, MVT::i32, 0 ,
4959
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4960
1, MVT::v2i32, 5, 1, 2, 0, 3, 4,
4967
OPC_CheckType, MVT::v2i32,
4968
OPC_CheckPatternPredicate, 3,
4969
OPC_EmitInteger, MVT::i32, 14,
4970
OPC_EmitRegister, MVT::i32, 0 ,
4971
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
4972
1, MVT::v2i32, 5, 1, 2, 0, 3, 4,
4978
OPC_CheckOpcode, ISD::XOR,
4982
OPC_CheckOpcode, ISD::BIT_CONVERT,
4983
OPC_CheckPredicate, 2,
4989
OPC_CheckOpcode, ISD::AND,
4996
OPC_CheckType, MVT::v2i32,
4997
OPC_CheckPatternPredicate, 3,
4998
OPC_EmitInteger, MVT::i32, 14,
4999
OPC_EmitRegister, MVT::i32, 0 ,
5000
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
5001
1, MVT::v2i32, 5, 0, 2, 1, 3, 4,
5008
OPC_CheckType, MVT::v2i32,
5009
OPC_CheckPatternPredicate, 3,
5010
OPC_EmitInteger, MVT::i32, 14,
5011
OPC_EmitRegister, MVT::i32, 0 ,
5012
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
5013
1, MVT::v2i32, 5, 0, 2, 1, 3, 4,
5017
OPC_CheckOpcode, ISD::BIT_CONVERT,
5018
OPC_CheckPredicate, 2,
5025
OPC_CheckOpcode, ISD::AND,
5032
OPC_CheckType, MVT::v2i32,
5033
OPC_CheckPatternPredicate, 3,
5034
OPC_EmitInteger, MVT::i32, 14,
5035
OPC_EmitRegister, MVT::i32, 0 ,
5036
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
5037
1, MVT::v2i32, 5, 0, 2, 1, 3, 4,
5044
OPC_CheckType, MVT::v2i32,
5045
OPC_CheckPatternPredicate, 3,
5046
OPC_EmitInteger, MVT::i32, 14,
5047
OPC_EmitRegister, MVT::i32, 0 ,
5048
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
5049
1, MVT::v2i32, 5, 0, 2, 1, 3, 4,
5054
OPC_Scope, 36|128,2,
5058
OPC_CheckOpcode, ISD::AND,
5062
OPC_CheckOpcode, ISD::XOR,
5064
OPC_CheckOpcode, ISD::BIT_CONVERT,
5065
OPC_CheckPredicate, 2,
5072
OPC_CheckType, MVT::v4i32,
5073
OPC_CheckPatternPredicate, 3,
5074
OPC_EmitInteger, MVT::i32, 14,
5075
OPC_EmitRegister, MVT::i32, 0 ,
5076
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5077
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
5080
OPC_CheckOpcode, ISD::XOR,
5086
OPC_CheckOpcode, ISD::BIT_CONVERT,
5087
OPC_CheckPredicate, 2,
5092
OPC_CheckType, MVT::v4i32,
5093
OPC_CheckPatternPredicate, 3,
5094
OPC_EmitInteger, MVT::i32, 14,
5095
OPC_EmitRegister, MVT::i32, 0 ,
5096
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5097
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
5099
OPC_CheckOpcode, ISD::BIT_CONVERT,
5100
OPC_CheckPredicate, 2,
5108
OPC_CheckType, MVT::v4i32,
5109
OPC_CheckPatternPredicate, 3,
5110
OPC_EmitInteger, MVT::i32, 14,
5111
OPC_EmitRegister, MVT::i32, 0 ,
5112
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5113
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
5118
OPC_CheckOpcode, ISD::XOR,
5124
OPC_CheckOpcode, ISD::BIT_CONVERT,
5125
OPC_CheckPredicate, 2,
5129
OPC_CheckType, MVT::v4i32,
5130
OPC_CheckPatternPredicate, 3,
5131
OPC_EmitInteger, MVT::i32, 14,
5132
OPC_EmitRegister, MVT::i32, 0 ,
5133
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5134
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
5136
OPC_CheckOpcode, ISD::BIT_CONVERT,
5137
OPC_CheckPredicate, 2,
5144
OPC_CheckType, MVT::v4i32,
5145
OPC_CheckPatternPredicate, 3,
5146
OPC_EmitInteger, MVT::i32, 14,
5147
OPC_EmitRegister, MVT::i32, 0 ,
5148
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5149
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
5153
OPC_CheckOpcode, ISD::XOR,
5159
OPC_CheckOpcode, ISD::BIT_CONVERT,
5160
OPC_CheckPredicate, 2,
5165
OPC_CheckType, MVT::v4i32,
5166
OPC_CheckPatternPredicate, 3,
5167
OPC_EmitInteger, MVT::i32, 14,
5168
OPC_EmitRegister, MVT::i32, 0 ,
5169
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5170
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
5172
OPC_CheckOpcode, ISD::BIT_CONVERT,
5173
OPC_CheckPredicate, 2,
5181
OPC_CheckType, MVT::v4i32,
5182
OPC_CheckPatternPredicate, 3,
5183
OPC_EmitInteger, MVT::i32, 14,
5184
OPC_EmitRegister, MVT::i32, 0 ,
5185
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5186
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
5191
OPC_CheckOpcode, ISD::XOR,
5195
OPC_CheckOpcode, ISD::BIT_CONVERT,
5196
OPC_CheckPredicate, 2,
5201
OPC_CheckOpcode, ISD::AND,
5208
OPC_CheckType, MVT::v4i32,
5209
OPC_CheckPatternPredicate, 3,
5210
OPC_EmitInteger, MVT::i32, 14,
5211
OPC_EmitRegister, MVT::i32, 0 ,
5212
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5213
1, MVT::v4i32, 5, 1, 2, 0, 3, 4,
5220
OPC_CheckType, MVT::v4i32,
5221
OPC_CheckPatternPredicate, 3,
5222
OPC_EmitInteger, MVT::i32, 14,
5223
OPC_EmitRegister, MVT::i32, 0 ,
5224
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5225
1, MVT::v4i32, 5, 1, 2, 0, 3, 4,
5229
OPC_CheckOpcode, ISD::BIT_CONVERT,
5230
OPC_CheckPredicate, 2,
5236
OPC_CheckOpcode, ISD::AND,
5243
OPC_CheckType, MVT::v4i32,
5244
OPC_CheckPatternPredicate, 3,
5245
OPC_EmitInteger, MVT::i32, 14,
5246
OPC_EmitRegister, MVT::i32, 0 ,
5247
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5248
1, MVT::v4i32, 5, 1, 2, 0, 3, 4,
5255
OPC_CheckType, MVT::v4i32,
5256
OPC_CheckPatternPredicate, 3,
5257
OPC_EmitInteger, MVT::i32, 14,
5258
OPC_EmitRegister, MVT::i32, 0 ,
5259
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5260
1, MVT::v4i32, 5, 1, 2, 0, 3, 4,
5266
OPC_CheckOpcode, ISD::XOR,
5270
OPC_CheckOpcode, ISD::BIT_CONVERT,
5271
OPC_CheckPredicate, 2,
5277
OPC_CheckOpcode, ISD::AND,
5284
OPC_CheckType, MVT::v4i32,
5285
OPC_CheckPatternPredicate, 3,
5286
OPC_EmitInteger, MVT::i32, 14,
5287
OPC_EmitRegister, MVT::i32, 0 ,
5288
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5289
1, MVT::v4i32, 5, 0, 2, 1, 3, 4,
5296
OPC_CheckType, MVT::v4i32,
5297
OPC_CheckPatternPredicate, 3,
5298
OPC_EmitInteger, MVT::i32, 14,
5299
OPC_EmitRegister, MVT::i32, 0 ,
5300
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5301
1, MVT::v4i32, 5, 0, 2, 1, 3, 4,
5305
OPC_CheckOpcode, ISD::BIT_CONVERT,
5306
OPC_CheckPredicate, 2,
5313
OPC_CheckOpcode, ISD::AND,
5320
OPC_CheckType, MVT::v4i32,
5321
OPC_CheckPatternPredicate, 3,
5322
OPC_EmitInteger, MVT::i32, 14,
5323
OPC_EmitRegister, MVT::i32, 0 ,
5324
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5325
1, MVT::v4i32, 5, 0, 2, 1, 3, 4,
5332
OPC_CheckType, MVT::v4i32,
5333
OPC_CheckPatternPredicate, 3,
5334
OPC_EmitInteger, MVT::i32, 14,
5335
OPC_EmitRegister, MVT::i32, 0 ,
5336
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
5337
1, MVT::v4i32, 5, 0, 2, 1, 3, 4,
5342
OPC_CheckAndImm, 127|128,127|128,3,
5347
OPC_CheckOpcode, ISD::Constant,
5348
OPC_CheckPredicate, 3,
5350
OPC_CheckType, MVT::i32,
5351
OPC_CheckPatternPredicate, 4,
5352
OPC_EmitConvertToTarget, 1,
5353
OPC_EmitNodeXForm, 0, 2,
5354
OPC_EmitInteger, MVT::i32, 14,
5355
OPC_EmitRegister, MVT::i32, 0 ,
5356
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVTi16), 0,
5357
1, MVT::i32, 4, 0, 3, 4, 5,
5362
OPC_CheckType, MVT::i32,
5363
OPC_CheckPatternPredicate, 5,
5364
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5365
OPC_EmitInteger, MVT::i32, 14,
5366
OPC_EmitRegister, MVT::i32, 0 ,
5367
OPC_EmitRegister, MVT::i32, 0 ,
5368
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrs), 0,
5369
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
5372
OPC_CheckAndImm, 127|128,127|128,3,
5377
OPC_CheckOpcode, ISD::Constant,
5378
OPC_CheckPredicate, 3,
5380
OPC_CheckType, MVT::i32,
5381
OPC_CheckPatternPredicate, 2,
5382
OPC_EmitConvertToTarget, 1,
5383
OPC_EmitNodeXForm, 0, 2,
5384
OPC_EmitInteger, MVT::i32, 14,
5385
OPC_EmitRegister, MVT::i32, 0 ,
5386
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVTi16), 0,
5387
1, MVT::i32, 4, 0, 3, 4, 5,
5392
OPC_CheckOpcode, ISD::XOR,
5395
OPC_CheckOpcode, ISD::Constant,
5396
OPC_CheckPredicate, 4,
5399
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5402
OPC_CheckType, MVT::i32,
5403
OPC_CheckPatternPredicate, 2,
5404
OPC_EmitConvertToTarget, 1,
5405
OPC_EmitInteger, MVT::i32, 14,
5406
OPC_EmitRegister, MVT::i32, 0 ,
5407
OPC_EmitRegister, MVT::i32, 0 ,
5408
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
5409
1, MVT::i32, 5, 0, 2, 3, 4, 5,
5412
OPC_CheckType, MVT::i32,
5413
OPC_CheckPatternPredicate, 5,
5414
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
5415
OPC_EmitInteger, MVT::i32, 14,
5416
OPC_EmitRegister, MVT::i32, 0 ,
5417
OPC_EmitRegister, MVT::i32, 0 ,
5418
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrs), 0,
5419
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
5422
OPC_CheckOpcode, ISD::XOR,
5424
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5428
OPC_CheckOpcode, ISD::Constant,
5429
OPC_CheckPredicate, 4,
5432
OPC_CheckType, MVT::i32,
5433
OPC_CheckPatternPredicate, 2,
5434
OPC_EmitConvertToTarget, 1,
5435
OPC_EmitInteger, MVT::i32, 14,
5436
OPC_EmitRegister, MVT::i32, 0 ,
5437
OPC_EmitRegister, MVT::i32, 0 ,
5438
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
5439
1, MVT::i32, 5, 0, 2, 3, 4, 5,
5443
OPC_CheckOpcode, ISD::XOR,
5447
OPC_CheckOpcode, ISD::Constant,
5448
OPC_CheckPredicate, 4,
5451
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5455
OPC_CheckType, MVT::i32,
5456
OPC_CheckPatternPredicate, 2,
5457
OPC_EmitConvertToTarget, 0,
5458
OPC_EmitInteger, MVT::i32, 14,
5459
OPC_EmitRegister, MVT::i32, 0 ,
5460
OPC_EmitRegister, MVT::i32, 0 ,
5461
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
5462
1, MVT::i32, 5, 1, 2, 3, 4, 5,
5465
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5469
OPC_CheckOpcode, ISD::Constant,
5470
OPC_CheckPredicate, 4,
5474
OPC_CheckType, MVT::i32,
5475
OPC_CheckPatternPredicate, 2,
5476
OPC_EmitConvertToTarget, 0,
5477
OPC_EmitInteger, MVT::i32, 14,
5478
OPC_EmitRegister, MVT::i32, 0 ,
5479
OPC_EmitRegister, MVT::i32, 0 ,
5480
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
5481
1, MVT::i32, 5, 1, 2, 3, 4, 5,
5487
OPC_CheckType, MVT::i32,
5488
OPC_CheckPatternPredicate, 2,
5490
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
5491
OPC_EmitInteger, MVT::i32, 14,
5492
OPC_EmitRegister, MVT::i32, 0 ,
5493
OPC_EmitRegister, MVT::i32, 0 ,
5494
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrs), 0,
5495
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
5497
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
5498
OPC_EmitInteger, MVT::i32, 14,
5499
OPC_EmitRegister, MVT::i32, 0 ,
5500
OPC_EmitRegister, MVT::i32, 0 ,
5501
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrs), 0,
5502
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
5506
OPC_CheckOpcode, ISD::XOR,
5509
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5512
OPC_CheckType, MVT::i32,
5513
OPC_CheckPatternPredicate, 2,
5514
OPC_EmitInteger, MVT::i32, 14,
5515
OPC_EmitRegister, MVT::i32, 0 ,
5516
OPC_EmitRegister, MVT::i32, 0 ,
5517
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrr), 0,
5518
1, MVT::i32, 5, 0, 1, 2, 3, 4,
5522
OPC_CheckOpcode, ISD::XOR,
5525
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
5529
OPC_CheckType, MVT::i32,
5530
OPC_CheckPatternPredicate, 2,
5531
OPC_EmitInteger, MVT::i32, 14,
5532
OPC_EmitRegister, MVT::i32, 0 ,
5533
OPC_EmitRegister, MVT::i32, 0 ,
5534
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrr), 0,
5535
1, MVT::i32, 5, 1, 0, 2, 3, 4,
5539
OPC_CheckOpcode, ISD::XOR,
5543
OPC_CheckOpcode, ISD::BIT_CONVERT,
5544
OPC_CheckPredicate, 2,
5547
OPC_SwitchType , 19, MVT::v2i32,
5548
OPC_CheckPatternPredicate, 3,
5549
OPC_EmitInteger, MVT::i32, 14,
5550
OPC_EmitRegister, MVT::i32, 0 ,
5551
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
5552
1, MVT::v2i32, 4, 0, 1, 2, 3,
5554
OPC_CheckPatternPredicate, 3,
5555
OPC_EmitInteger, MVT::i32, 14,
5556
OPC_EmitRegister, MVT::i32, 0 ,
5557
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
5558
1, MVT::v4i32, 4, 0, 1, 2, 3,
5562
OPC_CheckOpcode, ISD::BIT_CONVERT,
5563
OPC_CheckPredicate, 2,
5567
OPC_CheckType, MVT::v2i32,
5568
OPC_CheckPatternPredicate, 3,
5569
OPC_EmitInteger, MVT::i32, 14,
5570
OPC_EmitRegister, MVT::i32, 0 ,
5571
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
5572
1, MVT::v2i32, 4, 0, 1, 2, 3,
5576
OPC_CheckOpcode, ISD::XOR,
5580
OPC_CheckOpcode, ISD::BIT_CONVERT,
5581
OPC_CheckPredicate, 2,
5585
OPC_CheckType, MVT::v2i32,
5586
OPC_CheckPatternPredicate, 3,
5587
OPC_EmitInteger, MVT::i32, 14,
5588
OPC_EmitRegister, MVT::i32, 0 ,
5589
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
5590
1, MVT::v2i32, 4, 1, 0, 2, 3,
5593
OPC_CheckOpcode, ISD::BIT_CONVERT,
5594
OPC_CheckPredicate, 2,
5599
OPC_CheckType, MVT::v2i32,
5600
OPC_CheckPatternPredicate, 3,
5601
OPC_EmitInteger, MVT::i32, 14,
5602
OPC_EmitRegister, MVT::i32, 0 ,
5603
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
5604
1, MVT::v2i32, 4, 1, 0, 2, 3,
5609
OPC_CheckOpcode, ISD::XOR,
5611
OPC_CheckOpcode, ISD::BIT_CONVERT,
5612
OPC_CheckPredicate, 2,
5616
OPC_CheckType, MVT::v4i32,
5617
OPC_CheckPatternPredicate, 3,
5618
OPC_EmitInteger, MVT::i32, 14,
5619
OPC_EmitRegister, MVT::i32, 0 ,
5620
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
5621
1, MVT::v4i32, 4, 0, 1, 2, 3,
5624
OPC_CheckOpcode, ISD::XOR,
5628
OPC_CheckOpcode, ISD::BIT_CONVERT,
5629
OPC_CheckPredicate, 2,
5633
OPC_CheckType, MVT::v4i32,
5634
OPC_CheckPatternPredicate, 3,
5635
OPC_EmitInteger, MVT::i32, 14,
5636
OPC_EmitRegister, MVT::i32, 0 ,
5637
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
5638
1, MVT::v4i32, 4, 1, 0, 2, 3,
5641
OPC_CheckOpcode, ISD::BIT_CONVERT,
5642
OPC_CheckPredicate, 2,
5647
OPC_CheckType, MVT::v4i32,
5648
OPC_CheckPatternPredicate, 3,
5649
OPC_EmitInteger, MVT::i32, 14,
5650
OPC_EmitRegister, MVT::i32, 0 ,
5651
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
5652
1, MVT::v4i32, 4, 1, 0, 2, 3,
5655
OPC_CheckOrImm, 0|128,0|128,124|128,127|128,15,
5657
OPC_CheckType, MVT::i32,
5659
OPC_CheckPatternPredicate, 4,
5660
OPC_EmitInteger, MVT::i32, 127|128,127|128,3,
5661
OPC_EmitInteger, MVT::i32, 14,
5662
OPC_EmitRegister, MVT::i32, 0 ,
5663
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVTi16), 0,
5664
1, MVT::i32, 4, 0, 1, 2, 3,
5666
OPC_CheckPatternPredicate, 2,
5667
OPC_EmitInteger, MVT::i32, 127|128,127|128,3,
5668
OPC_EmitInteger, MVT::i32, 14,
5669
OPC_EmitRegister, MVT::i32, 0 ,
5670
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVTi16), 0,
5671
1, MVT::i32, 4, 0, 1, 2, 3,
5676
OPC_Scope, 94|128,1,
5678
OPC_CheckOpcode, ISD::Constant,
5680
OPC_CheckPredicate, 5,
5682
OPC_CheckType, MVT::i32,
5683
OPC_CheckPatternPredicate, 5,
5684
OPC_EmitConvertToTarget, 1,
5685
OPC_EmitInteger, MVT::i32, 14,
5686
OPC_EmitRegister, MVT::i32, 0 ,
5687
OPC_EmitRegister, MVT::i32, 0 ,
5688
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRri), 0,
5689
1, MVT::i32, 5, 0, 2, 3, 4, 5,
5691
OPC_CheckPredicate, 4,
5693
OPC_CheckType, MVT::i32,
5694
OPC_CheckPatternPredicate, 2,
5695
OPC_EmitConvertToTarget, 1,
5696
OPC_EmitInteger, MVT::i32, 14,
5697
OPC_EmitRegister, MVT::i32, 0 ,
5698
OPC_EmitRegister, MVT::i32, 0 ,
5699
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRri), 0,
5700
1, MVT::i32, 5, 0, 2, 3, 4, 5,
5702
OPC_CheckPredicate, 6,
5704
OPC_CheckType, MVT::i32,
5705
OPC_CheckPatternPredicate, 2,
5706
OPC_EmitConvertToTarget, 1,
5707
OPC_EmitNodeXForm, 1, 2,
5708
OPC_EmitInteger, MVT::i32, 14,
5709
OPC_EmitRegister, MVT::i32, 0 ,
5710
OPC_EmitRegister, MVT::i32, 0 ,
5711
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
5712
1, MVT::i32, 5, 0, 3, 4, 5, 6,
5714
OPC_CheckPredicate, 7,
5716
OPC_CheckType, MVT::i32,
5717
OPC_CheckPatternPredicate, 5,
5718
OPC_EmitConvertToTarget, 1,
5719
OPC_EmitNodeXForm, 2, 2,
5720
OPC_EmitInteger, MVT::i32, 14,
5721
OPC_EmitRegister, MVT::i32, 0 ,
5722
OPC_EmitRegister, MVT::i32, 0 ,
5723
OPC_EmitNode, TARGET_OPCODE(ARM::ORRri), 0,
5724
1, MVT::i32, 5, 0, 3, 4, 5, 6,
5725
OPC_EmitConvertToTarget, 1,
5726
OPC_EmitNodeXForm, 3, 8,
5727
OPC_EmitInteger, MVT::i32, 14,
5728
OPC_EmitRegister, MVT::i32, 0 ,
5729
OPC_EmitRegister, MVT::i32, 0 ,
5730
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRri), 0,
5731
1, MVT::i32, 5, 7, 9, 10, 11, 12,
5733
OPC_CheckPredicate, 8,
5735
OPC_CheckType, MVT::i32,
5736
OPC_CheckPatternPredicate, 2,
5737
OPC_EmitConvertToTarget, 1,
5738
OPC_EmitNodeXForm, 4, 2,
5739
OPC_EmitInteger, MVT::i32, 14,
5740
OPC_EmitRegister, MVT::i32, 0 ,
5741
OPC_EmitRegister, MVT::i32, 0 ,
5742
OPC_EmitNode, TARGET_OPCODE(ARM::t2ORRri), 0,
5743
1, MVT::i32, 5, 0, 3, 4, 5, 6,
5744
OPC_EmitConvertToTarget, 1,
5745
OPC_EmitNodeXForm, 5, 8,
5746
OPC_EmitInteger, MVT::i32, 14,
5747
OPC_EmitRegister, MVT::i32, 0 ,
5748
OPC_EmitRegister, MVT::i32, 0 ,
5749
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRri), 0,
5750
1, MVT::i32, 5, 7, 9, 10, 11, 12,
5753
OPC_CheckType, MVT::i32,
5755
OPC_CheckPatternPredicate, 5,
5756
OPC_EmitInteger, MVT::i32, 14,
5757
OPC_EmitRegister, MVT::i32, 0 ,
5758
OPC_EmitRegister, MVT::i32, 0 ,
5759
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrr), 0,
5760
1, MVT::i32, 5, 0, 1, 2, 3, 4,
5762
OPC_CheckPatternPredicate, 6,
5763
OPC_EmitRegister, MVT::i32, ARM::CPSR,
5764
OPC_EmitInteger, MVT::i32, 14,
5765
OPC_EmitRegister, MVT::i32, 0 ,
5766
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tORR), 0,
5767
1, MVT::i32, 5, 2, 0, 1, 3, 4,
5769
OPC_CheckPatternPredicate, 2,
5770
OPC_EmitInteger, MVT::i32, 14,
5771
OPC_EmitRegister, MVT::i32, 0 ,
5772
OPC_EmitRegister, MVT::i32, 0 ,
5773
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrr), 0,
5774
1, MVT::i32, 5, 0, 1, 2, 3, 4,
5777
OPC_CheckType, MVT::v2i32,
5778
OPC_CheckPatternPredicate, 3,
5779
OPC_EmitInteger, MVT::i32, 14,
5780
OPC_EmitRegister, MVT::i32, 0 ,
5781
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORRd), 0,
5782
1, MVT::v2i32, 4, 0, 1, 2, 3,
5784
OPC_CheckType, MVT::v4i32,
5785
OPC_CheckPatternPredicate, 3,
5786
OPC_EmitInteger, MVT::i32, 14,
5787
OPC_EmitRegister, MVT::i32, 0 ,
5788
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORRq), 0,
5789
1, MVT::v4i32, 4, 0, 1, 2, 3,
5792
44|128,71, ISD::ADD,
5796
OPC_CheckOpcode, ISD::MUL,
5798
OPC_CheckOpcode, ISD::SRA,
5800
OPC_CheckOpcode, ISD::SHL,
5803
OPC_CheckInteger, 16,
5804
OPC_CheckType, MVT::i32,
5808
OPC_CheckInteger, 16,
5809
OPC_CheckType, MVT::i32,
5813
OPC_CheckOpcode, ISD::SRA,
5815
OPC_CheckOpcode, ISD::SHL,
5818
OPC_CheckInteger, 16,
5819
OPC_CheckType, MVT::i32,
5823
OPC_CheckInteger, 16,
5824
OPC_CheckType, MVT::i32,
5828
OPC_CheckType, MVT::i32,
5829
OPC_CheckPatternPredicate, 7,
5830
OPC_EmitInteger, MVT::i32, 14,
5831
OPC_EmitRegister, MVT::i32, 0 ,
5833
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
5834
1, MVT::i32, 5, 1, 2, 0, 3, 4,
5836
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
5837
1, MVT::i32, 5, 2, 1, 0, 3, 4,
5841
OPC_CheckOpcode, ISD::MUL,
5843
OPC_CheckOpcode, ISD::SRA,
5845
OPC_CheckOpcode, ISD::SHL,
5848
OPC_CheckInteger, 16,
5849
OPC_CheckType, MVT::i32,
5853
OPC_CheckInteger, 16,
5854
OPC_CheckType, MVT::i32,
5858
OPC_CheckOpcode, ISD::SRA,
5860
OPC_CheckOpcode, ISD::SHL,
5863
OPC_CheckInteger, 16,
5864
OPC_CheckType, MVT::i32,
5868
OPC_CheckInteger, 16,
5869
OPC_CheckType, MVT::i32,
5874
OPC_CheckType, MVT::i32,
5875
OPC_CheckPatternPredicate, 7,
5876
OPC_EmitInteger, MVT::i32, 14,
5877
OPC_EmitRegister, MVT::i32, 0 ,
5879
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
5880
1, MVT::i32, 5, 0, 1, 2, 3, 4,
5882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
5883
1, MVT::i32, 5, 1, 0, 2, 3, 4,
5889
OPC_CheckAndImm, 127|128,1,
5891
OPC_CheckOpcode, ISD::ROTR,
5895
OPC_CheckOpcode, ISD::Constant,
5896
OPC_CheckPredicate, 9,
5897
OPC_CheckType, MVT::i32,
5901
OPC_CheckType, MVT::i32,
5902
OPC_CheckPatternPredicate, 0,
5903
OPC_EmitConvertToTarget, 2,
5904
OPC_EmitInteger, MVT::i32, 14,
5905
OPC_EmitRegister, MVT::i32, 0 ,
5906
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr_rot), 0,
5907
1, MVT::i32, 5, 0, 1, 3, 4, 5,
5909
OPC_CheckAndImm, 127|128,127|128,3,
5911
OPC_CheckOpcode, ISD::ROTR,
5915
OPC_CheckOpcode, ISD::Constant,
5916
OPC_CheckPredicate, 9,
5917
OPC_CheckType, MVT::i32,
5921
OPC_CheckType, MVT::i32,
5922
OPC_CheckPatternPredicate, 0,
5923
OPC_EmitConvertToTarget, 2,
5924
OPC_EmitInteger, MVT::i32, 14,
5925
OPC_EmitRegister, MVT::i32, 0 ,
5926
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr_rot), 0,
5927
1, MVT::i32, 5, 0, 1, 3, 4, 5,
5929
OPC_CheckAndImm, 127|128,1,
5931
OPC_CheckOpcode, ISD::ROTR,
5935
OPC_CheckOpcode, ISD::Constant,
5936
OPC_CheckPredicate, 9,
5937
OPC_CheckType, MVT::i32,
5941
OPC_CheckType, MVT::i32,
5942
OPC_CheckPatternPredicate, 2,
5943
OPC_EmitConvertToTarget, 2,
5944
OPC_EmitInteger, MVT::i32, 14,
5945
OPC_EmitRegister, MVT::i32, 0 ,
5946
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr_rot), 0,
5947
1, MVT::i32, 5, 0, 1, 3, 4, 5,
5949
OPC_CheckAndImm, 127|128,127|128,3,
5951
OPC_CheckOpcode, ISD::ROTR,
5955
OPC_CheckOpcode, ISD::Constant,
5956
OPC_CheckPredicate, 9,
5957
OPC_CheckType, MVT::i32,
5961
OPC_CheckType, MVT::i32,
5962
OPC_CheckPatternPredicate, 2,
5963
OPC_EmitConvertToTarget, 2,
5964
OPC_EmitInteger, MVT::i32, 14,
5965
OPC_EmitRegister, MVT::i32, 0 ,
5966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr_rot), 0,
5967
1, MVT::i32, 5, 0, 1, 3, 4, 5,
5972
OPC_CheckAndImm, 127|128,1,
5974
OPC_CheckOpcode, ISD::ROTR,
5978
OPC_CheckOpcode, ISD::Constant,
5979
OPC_CheckPredicate, 9,
5980
OPC_CheckType, MVT::i32,
5985
OPC_CheckType, MVT::i32,
5986
OPC_CheckPatternPredicate, 0,
5987
OPC_EmitConvertToTarget, 1,
5988
OPC_EmitInteger, MVT::i32, 14,
5989
OPC_EmitRegister, MVT::i32, 0 ,
5990
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr_rot), 0,
5991
1, MVT::i32, 5, 2, 0, 3, 4, 5,
5993
OPC_CheckAndImm, 127|128,127|128,3,
5995
OPC_CheckOpcode, ISD::ROTR,
5999
OPC_CheckOpcode, ISD::Constant,
6000
OPC_CheckPredicate, 9,
6001
OPC_CheckType, MVT::i32,
6006
OPC_CheckType, MVT::i32,
6007
OPC_CheckPatternPredicate, 0,
6008
OPC_EmitConvertToTarget, 1,
6009
OPC_EmitInteger, MVT::i32, 14,
6010
OPC_EmitRegister, MVT::i32, 0 ,
6011
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr_rot), 0,
6012
1, MVT::i32, 5, 2, 0, 3, 4, 5,
6014
OPC_CheckAndImm, 127|128,1,
6016
OPC_CheckOpcode, ISD::ROTR,
6020
OPC_CheckOpcode, ISD::Constant,
6021
OPC_CheckPredicate, 9,
6022
OPC_CheckType, MVT::i32,
6027
OPC_CheckType, MVT::i32,
6028
OPC_CheckPatternPredicate, 2,
6029
OPC_EmitConvertToTarget, 1,
6030
OPC_EmitInteger, MVT::i32, 14,
6031
OPC_EmitRegister, MVT::i32, 0 ,
6032
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr_rot), 0,
6033
1, MVT::i32, 5, 2, 0, 3, 4, 5,
6035
OPC_CheckAndImm, 127|128,127|128,3,
6037
OPC_CheckOpcode, ISD::ROTR,
6041
OPC_CheckOpcode, ISD::Constant,
6042
OPC_CheckPredicate, 9,
6043
OPC_CheckType, MVT::i32,
6048
OPC_CheckType, MVT::i32,
6049
OPC_CheckPatternPredicate, 2,
6050
OPC_EmitConvertToTarget, 1,
6051
OPC_EmitInteger, MVT::i32, 14,
6052
OPC_EmitRegister, MVT::i32, 0 ,
6053
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr_rot), 0,
6054
1, MVT::i32, 5, 2, 0, 3, 4, 5,
6059
OPC_SwitchOpcode , 10|128,1, ISD::MUL,
6061
OPC_CheckOpcode, ISD::SRA,
6064
OPC_CheckOpcode, ISD::SHL,
6067
OPC_CheckInteger, 16,
6068
OPC_CheckType, MVT::i32,
6072
OPC_CheckInteger, 16,
6073
OPC_CheckType, MVT::i32,
6077
OPC_CheckOpcode, ISD::SRA,
6080
OPC_CheckInteger, 16,
6081
OPC_CheckType, MVT::i32,
6085
OPC_CheckType, MVT::i32,
6086
OPC_CheckPatternPredicate, 7,
6087
OPC_EmitInteger, MVT::i32, 14,
6088
OPC_EmitRegister, MVT::i32, 0 ,
6089
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6090
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6094
OPC_CheckInteger, 16,
6095
OPC_CheckType, MVT::i32,
6099
OPC_CheckOpcode, ISD::SRA,
6101
OPC_CheckOpcode, ISD::SHL,
6104
OPC_CheckInteger, 16,
6105
OPC_CheckType, MVT::i32,
6109
OPC_CheckInteger, 16,
6110
OPC_CheckType, MVT::i32,
6114
OPC_CheckType, MVT::i32,
6115
OPC_CheckPatternPredicate, 7,
6116
OPC_EmitInteger, MVT::i32, 14,
6117
OPC_EmitRegister, MVT::i32, 0 ,
6119
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
6120
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6122
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6123
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6128
OPC_CheckOpcode, ISD::MUL,
6131
OPC_CheckOpcode, ISD::SRA,
6133
OPC_CheckOpcode, ISD::SHL,
6136
OPC_CheckInteger, 16,
6137
OPC_CheckType, MVT::i32,
6141
OPC_CheckInteger, 16,
6142
OPC_CheckType, MVT::i32,
6147
OPC_CheckInteger, 16,
6148
OPC_CheckType, MVT::i32,
6151
OPC_CheckType, MVT::i32,
6152
OPC_CheckPatternPredicate, 7,
6153
OPC_EmitInteger, MVT::i32, 14,
6154
OPC_EmitRegister, MVT::i32, 0 ,
6155
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
6156
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6160
OPC_CheckOpcode, ISD::MUL,
6162
OPC_CheckOpcode, ISD::SRA,
6165
OPC_CheckOpcode, ISD::SHL,
6168
OPC_CheckInteger, 16,
6169
OPC_CheckType, MVT::i32,
6173
OPC_CheckInteger, 16,
6174
OPC_CheckType, MVT::i32,
6178
OPC_CheckOpcode, ISD::SRA,
6181
OPC_CheckInteger, 16,
6182
OPC_CheckType, MVT::i32,
6187
OPC_CheckType, MVT::i32,
6188
OPC_CheckPatternPredicate, 7,
6189
OPC_EmitInteger, MVT::i32, 14,
6190
OPC_EmitRegister, MVT::i32, 0 ,
6191
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6192
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6196
OPC_CheckInteger, 16,
6197
OPC_CheckType, MVT::i32,
6201
OPC_CheckOpcode, ISD::SRA,
6203
OPC_CheckOpcode, ISD::SHL,
6206
OPC_CheckInteger, 16,
6207
OPC_CheckType, MVT::i32,
6211
OPC_CheckInteger, 16,
6212
OPC_CheckType, MVT::i32,
6217
OPC_CheckType, MVT::i32,
6218
OPC_CheckPatternPredicate, 7,
6219
OPC_EmitInteger, MVT::i32, 14,
6220
OPC_EmitRegister, MVT::i32, 0 ,
6221
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6222
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6227
OPC_CheckOpcode, ISD::MUL,
6229
OPC_CheckOpcode, ISD::SRA,
6231
OPC_CheckOpcode, ISD::SHL,
6234
OPC_CheckInteger, 16,
6235
OPC_CheckType, MVT::i32,
6239
OPC_CheckInteger, 16,
6240
OPC_CheckType, MVT::i32,
6244
OPC_CheckOpcode, ISD::SRA,
6247
OPC_CheckInteger, 16,
6248
OPC_CheckType, MVT::i32,
6252
OPC_CheckType, MVT::i32,
6253
OPC_CheckPatternPredicate, 7,
6254
OPC_EmitInteger, MVT::i32, 14,
6255
OPC_EmitRegister, MVT::i32, 0 ,
6256
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
6257
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6260
OPC_CheckOpcode, ISD::MUL,
6262
OPC_CheckOpcode, ISD::SRA,
6266
OPC_CheckInteger, 16,
6267
OPC_CheckType, MVT::i32,
6271
OPC_CheckOpcode, ISD::SRA,
6273
OPC_CheckOpcode, ISD::SHL,
6276
OPC_CheckInteger, 16,
6277
OPC_CheckType, MVT::i32,
6281
OPC_CheckInteger, 16,
6282
OPC_CheckType, MVT::i32,
6287
OPC_CheckType, MVT::i32,
6288
OPC_CheckPatternPredicate, 7,
6289
OPC_EmitInteger, MVT::i32, 14,
6290
OPC_EmitRegister, MVT::i32, 0 ,
6291
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
6292
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6295
OPC_CheckOpcode, ISD::SHL,
6298
OPC_CheckInteger, 16,
6299
OPC_CheckType, MVT::i32,
6303
OPC_CheckInteger, 16,
6304
OPC_CheckType, MVT::i32,
6308
OPC_CheckOpcode, ISD::SRA,
6311
OPC_CheckInteger, 16,
6312
OPC_CheckType, MVT::i32,
6317
OPC_CheckType, MVT::i32,
6318
OPC_CheckPatternPredicate, 7,
6319
OPC_EmitInteger, MVT::i32, 14,
6320
OPC_EmitRegister, MVT::i32, 0 ,
6321
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
6322
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6327
OPC_CheckOpcode, ISD::SRA,
6329
OPC_CheckOpcode, ISD::MUL,
6331
OPC_CheckOpcode, ISD::SRA,
6333
OPC_CheckOpcode, ISD::SHL,
6336
OPC_CheckInteger, 16,
6337
OPC_CheckType, MVT::i32,
6341
OPC_CheckInteger, 16,
6342
OPC_CheckType, MVT::i32,
6348
OPC_CheckInteger, 16,
6349
OPC_CheckType, MVT::i32,
6352
OPC_CheckType, MVT::i32,
6353
OPC_CheckPatternPredicate, 7,
6354
OPC_EmitInteger, MVT::i32, 14,
6355
OPC_EmitRegister, MVT::i32, 0 ,
6356
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
6357
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6360
OPC_CheckOpcode, ISD::SRA,
6362
OPC_CheckOpcode, ISD::MUL,
6366
OPC_CheckOpcode, ISD::SRA,
6368
OPC_CheckOpcode, ISD::SHL,
6371
OPC_CheckInteger, 16,
6372
OPC_CheckType, MVT::i32,
6376
OPC_CheckInteger, 16,
6377
OPC_CheckType, MVT::i32,
6382
OPC_CheckInteger, 16,
6383
OPC_CheckType, MVT::i32,
6387
OPC_CheckType, MVT::i32,
6388
OPC_CheckPatternPredicate, 7,
6389
OPC_EmitInteger, MVT::i32, 14,
6390
OPC_EmitRegister, MVT::i32, 0 ,
6391
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
6392
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6395
OPC_CheckOpcode, ISD::SRA,
6397
OPC_CheckOpcode, ISD::SHL,
6400
OPC_CheckInteger, 16,
6401
OPC_CheckType, MVT::i32,
6405
OPC_CheckInteger, 16,
6406
OPC_CheckType, MVT::i32,
6412
OPC_CheckInteger, 16,
6413
OPC_CheckType, MVT::i32,
6417
OPC_CheckType, MVT::i32,
6418
OPC_CheckPatternPredicate, 7,
6419
OPC_EmitInteger, MVT::i32, 14,
6420
OPC_EmitRegister, MVT::i32, 0 ,
6421
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
6422
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6428
OPC_CheckAndImm, 127|128,1,
6431
OPC_CheckType, MVT::i32,
6432
OPC_CheckPatternPredicate, 0,
6433
OPC_EmitInteger, MVT::i32, 14,
6434
OPC_EmitRegister, MVT::i32, 0 ,
6435
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr), 0,
6436
1, MVT::i32, 4, 0, 1, 2, 3,
6438
OPC_CheckAndImm, 127|128,127|128,3,
6441
OPC_CheckType, MVT::i32,
6442
OPC_CheckPatternPredicate, 0,
6443
OPC_EmitInteger, MVT::i32, 14,
6444
OPC_EmitRegister, MVT::i32, 0 ,
6445
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr), 0,
6446
1, MVT::i32, 4, 0, 1, 2, 3,
6448
OPC_CheckAndImm, 127|128,1,
6451
OPC_CheckType, MVT::i32,
6452
OPC_CheckPatternPredicate, 2,
6453
OPC_EmitInteger, MVT::i32, 14,
6454
OPC_EmitRegister, MVT::i32, 0 ,
6455
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr), 0,
6456
1, MVT::i32, 4, 0, 1, 2, 3,
6458
OPC_CheckAndImm, 127|128,127|128,3,
6461
OPC_CheckType, MVT::i32,
6462
OPC_CheckPatternPredicate, 2,
6463
OPC_EmitInteger, MVT::i32, 14,
6464
OPC_EmitRegister, MVT::i32, 0 ,
6465
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr), 0,
6466
1, MVT::i32, 4, 0, 1, 2, 3,
6471
OPC_CheckAndImm, 127|128,1,
6475
OPC_CheckType, MVT::i32,
6476
OPC_CheckPatternPredicate, 0,
6477
OPC_EmitInteger, MVT::i32, 14,
6478
OPC_EmitRegister, MVT::i32, 0 ,
6479
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr), 0,
6480
1, MVT::i32, 4, 1, 0, 2, 3,
6482
OPC_CheckAndImm, 127|128,127|128,3,
6486
OPC_CheckType, MVT::i32,
6487
OPC_CheckPatternPredicate, 0,
6488
OPC_EmitInteger, MVT::i32, 14,
6489
OPC_EmitRegister, MVT::i32, 0 ,
6490
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr), 0,
6491
1, MVT::i32, 4, 1, 0, 2, 3,
6493
OPC_CheckAndImm, 127|128,1,
6497
OPC_CheckType, MVT::i32,
6498
OPC_CheckPatternPredicate, 2,
6499
OPC_EmitInteger, MVT::i32, 14,
6500
OPC_EmitRegister, MVT::i32, 0 ,
6501
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr), 0,
6502
1, MVT::i32, 4, 1, 0, 2, 3,
6504
OPC_CheckAndImm, 127|128,127|128,3,
6508
OPC_CheckType, MVT::i32,
6509
OPC_CheckPatternPredicate, 2,
6510
OPC_EmitInteger, MVT::i32, 14,
6511
OPC_EmitRegister, MVT::i32, 0 ,
6512
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr), 0,
6513
1, MVT::i32, 4, 1, 0, 2, 3,
6518
OPC_SwitchOpcode , 94, ISD::MUL,
6520
OPC_CheckOpcode, ISD::SRA,
6523
OPC_CheckInteger, 16,
6524
OPC_CheckType, MVT::i32,
6528
OPC_CheckOpcode, ISD::SRA,
6531
OPC_CheckInteger, 16,
6532
OPC_CheckType, MVT::i32,
6536
OPC_CheckType, MVT::i32,
6538
OPC_CheckPatternPredicate, 7,
6539
OPC_EmitInteger, MVT::i32, 14,
6540
OPC_EmitRegister, MVT::i32, 0 ,
6541
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
6542
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6544
OPC_CheckPatternPredicate, 2,
6545
OPC_EmitInteger, MVT::i32, 14,
6546
OPC_EmitRegister, MVT::i32, 0 ,
6547
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
6548
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6550
OPC_CheckPatternPredicate, 7,
6551
OPC_EmitInteger, MVT::i32, 14,
6552
OPC_EmitRegister, MVT::i32, 0 ,
6553
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
6554
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6558
OPC_CheckOpcode, ISD::MUL,
6561
OPC_CheckOpcode, ISD::SRA,
6564
OPC_CheckInteger, 16,
6565
OPC_CheckType, MVT::i32,
6570
OPC_CheckInteger, 16,
6571
OPC_CheckType, MVT::i32,
6574
OPC_CheckType, MVT::i32,
6576
OPC_CheckPatternPredicate, 7,
6577
OPC_EmitInteger, MVT::i32, 14,
6578
OPC_EmitRegister, MVT::i32, 0 ,
6579
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
6580
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6582
OPC_CheckPatternPredicate, 2,
6583
OPC_EmitInteger, MVT::i32, 14,
6584
OPC_EmitRegister, MVT::i32, 0 ,
6585
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
6586
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6591
OPC_CheckOpcode, ISD::MUL,
6593
OPC_CheckOpcode, ISD::SRA,
6596
OPC_CheckInteger, 16,
6597
OPC_CheckType, MVT::i32,
6601
OPC_CheckOpcode, ISD::SRA,
6604
OPC_CheckInteger, 16,
6605
OPC_CheckType, MVT::i32,
6610
OPC_CheckType, MVT::i32,
6611
OPC_CheckPatternPredicate, 7,
6612
OPC_EmitInteger, MVT::i32, 14,
6613
OPC_EmitRegister, MVT::i32, 0 ,
6615
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
6616
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6618
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
6619
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6624
OPC_CheckOpcode, ISD::SRA,
6626
OPC_CheckOpcode, ISD::MUL,
6628
OPC_CheckOpcode, ISD::SRA,
6631
OPC_CheckInteger, 16,
6632
OPC_CheckType, MVT::i32,
6638
OPC_CheckInteger, 16,
6639
OPC_CheckType, MVT::i32,
6642
OPC_CheckType, MVT::i32,
6643
OPC_CheckPatternPredicate, 7,
6644
OPC_EmitInteger, MVT::i32, 14,
6645
OPC_EmitRegister, MVT::i32, 0 ,
6646
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
6647
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6650
OPC_CheckOpcode, ISD::SRA,
6652
OPC_CheckOpcode, ISD::MUL,
6656
OPC_CheckOpcode, ISD::SRA,
6659
OPC_CheckInteger, 16,
6660
OPC_CheckType, MVT::i32,
6665
OPC_CheckInteger, 16,
6666
OPC_CheckType, MVT::i32,
6670
OPC_CheckType, MVT::i32,
6671
OPC_CheckPatternPredicate, 7,
6672
OPC_EmitInteger, MVT::i32, 14,
6673
OPC_EmitRegister, MVT::i32, 0 ,
6674
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
6675
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6678
OPC_CheckOpcode, ISD::SRA,
6681
OPC_CheckInteger, 16,
6682
OPC_CheckType, MVT::i32,
6688
OPC_CheckInteger, 16,
6689
OPC_CheckType, MVT::i32,
6693
OPC_CheckType, MVT::i32,
6694
OPC_CheckPatternPredicate, 7,
6695
OPC_EmitInteger, MVT::i32, 14,
6696
OPC_EmitRegister, MVT::i32, 0 ,
6697
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
6698
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6703
OPC_CheckOpcode, ISD::MUL,
6705
OPC_CheckOpcode, ISD::SRA,
6708
OPC_CheckInteger, 16,
6709
OPC_CheckType, MVT::i32,
6713
OPC_CheckOpcode, ISD::SRA,
6716
OPC_CheckInteger, 16,
6717
OPC_CheckType, MVT::i32,
6721
OPC_CheckType, MVT::i32,
6722
OPC_CheckPatternPredicate, 2,
6723
OPC_EmitInteger, MVT::i32, 14,
6724
OPC_EmitRegister, MVT::i32, 0 ,
6725
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
6726
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6729
OPC_CheckOpcode, ISD::MUL,
6731
OPC_CheckOpcode, ISD::SRA,
6734
OPC_CheckInteger, 16,
6735
OPC_CheckType, MVT::i32,
6739
OPC_CheckOpcode, ISD::SRA,
6742
OPC_CheckInteger, 16,
6743
OPC_CheckType, MVT::i32,
6748
OPC_CheckType, MVT::i32,
6749
OPC_CheckPatternPredicate, 2,
6750
OPC_EmitInteger, MVT::i32, 14,
6751
OPC_EmitRegister, MVT::i32, 0 ,
6753
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
6754
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
6757
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6762
OPC_CheckOpcode, ISD::SRA,
6764
OPC_CheckOpcode, ISD::MUL,
6766
OPC_CheckOpcode, ISD::SRA,
6769
OPC_CheckInteger, 16,
6770
OPC_CheckType, MVT::i32,
6776
OPC_CheckInteger, 16,
6777
OPC_CheckType, MVT::i32,
6780
OPC_CheckType, MVT::i32,
6781
OPC_CheckPatternPredicate, 2,
6782
OPC_EmitInteger, MVT::i32, 14,
6783
OPC_EmitRegister, MVT::i32, 0 ,
6784
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
6785
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6788
OPC_CheckOpcode, ISD::SRA,
6790
OPC_CheckOpcode, ISD::MUL,
6794
OPC_CheckOpcode, ISD::SRA,
6797
OPC_CheckInteger, 16,
6798
OPC_CheckType, MVT::i32,
6803
OPC_CheckInteger, 16,
6804
OPC_CheckType, MVT::i32,
6808
OPC_CheckType, MVT::i32,
6809
OPC_CheckPatternPredicate, 2,
6810
OPC_EmitInteger, MVT::i32, 14,
6811
OPC_EmitRegister, MVT::i32, 0 ,
6812
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
6813
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6816
OPC_CheckOpcode, ISD::SRA,
6819
OPC_CheckInteger, 16,
6820
OPC_CheckType, MVT::i32,
6826
OPC_CheckInteger, 16,
6827
OPC_CheckType, MVT::i32,
6831
OPC_CheckType, MVT::i32,
6832
OPC_CheckPatternPredicate, 2,
6833
OPC_EmitInteger, MVT::i32, 14,
6834
OPC_EmitRegister, MVT::i32, 0 ,
6835
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
6836
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6841
OPC_SwitchOpcode , 35|128,1, ISD::MUL,
6843
OPC_SwitchOpcode , 67, ISD::SIGN_EXTEND_INREG,
6846
OPC_CheckValueType, MVT::i16,
6850
OPC_CheckOpcode, ISD::SRA,
6853
OPC_CheckInteger, 16,
6854
OPC_CheckType, MVT::i32,
6858
OPC_CheckType, MVT::i32,
6860
OPC_CheckPatternPredicate, 7,
6861
OPC_EmitInteger, MVT::i32, 14,
6862
OPC_EmitRegister, MVT::i32, 0 ,
6863
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6864
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6866
OPC_CheckPatternPredicate, 2,
6867
OPC_EmitInteger, MVT::i32, 14,
6868
OPC_EmitRegister, MVT::i32, 0 ,
6869
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
6870
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6875
OPC_CheckInteger, 16,
6876
OPC_CheckType, MVT::i32,
6880
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
6883
OPC_CheckValueType, MVT::i16,
6887
OPC_CheckType, MVT::i32,
6889
OPC_CheckPatternPredicate, 7,
6890
OPC_EmitInteger, MVT::i32, 14,
6891
OPC_EmitRegister, MVT::i32, 0 ,
6892
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
6893
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6895
OPC_CheckPatternPredicate, 2,
6896
OPC_EmitInteger, MVT::i32, 14,
6897
OPC_EmitRegister, MVT::i32, 0 ,
6898
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
6899
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6901
OPC_CheckPatternPredicate, 7,
6902
OPC_EmitInteger, MVT::i32, 14,
6903
OPC_EmitRegister, MVT::i32, 0 ,
6904
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6905
1, MVT::i32, 5, 2, 1, 0, 3, 4,
6910
OPC_CheckOpcode, ISD::MUL,
6913
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
6916
OPC_CheckValueType, MVT::i16,
6921
OPC_CheckInteger, 16,
6922
OPC_CheckType, MVT::i32,
6925
OPC_CheckType, MVT::i32,
6927
OPC_CheckPatternPredicate, 7,
6928
OPC_EmitInteger, MVT::i32, 14,
6929
OPC_EmitRegister, MVT::i32, 0 ,
6930
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
6931
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6933
OPC_CheckPatternPredicate, 2,
6934
OPC_EmitInteger, MVT::i32, 14,
6935
OPC_EmitRegister, MVT::i32, 0 ,
6936
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
6937
1, MVT::i32, 5, 1, 2, 0, 3, 4,
6942
OPC_CheckOpcode, ISD::MUL,
6944
OPC_SwitchOpcode , 44, ISD::SIGN_EXTEND_INREG,
6947
OPC_CheckValueType, MVT::i16,
6951
OPC_CheckOpcode, ISD::SRA,
6954
OPC_CheckInteger, 16,
6955
OPC_CheckType, MVT::i32,
6960
OPC_CheckType, MVT::i32,
6961
OPC_CheckPatternPredicate, 7,
6962
OPC_EmitInteger, MVT::i32, 14,
6963
OPC_EmitRegister, MVT::i32, 0 ,
6964
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6965
1, MVT::i32, 5, 0, 1, 2, 3, 4,
6969
OPC_CheckInteger, 16,
6970
OPC_CheckType, MVT::i32,
6974
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
6977
OPC_CheckValueType, MVT::i16,
6982
OPC_CheckType, MVT::i32,
6983
OPC_CheckPatternPredicate, 7,
6984
OPC_EmitInteger, MVT::i32, 14,
6985
OPC_EmitRegister, MVT::i32, 0 ,
6986
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
6987
1, MVT::i32, 5, 1, 0, 2, 3, 4,
6992
OPC_CheckOpcode, ISD::MUL,
6994
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
6997
OPC_CheckValueType, MVT::i16,
7001
OPC_CheckOpcode, ISD::SRA,
7004
OPC_CheckInteger, 16,
7005
OPC_CheckType, MVT::i32,
7009
OPC_CheckType, MVT::i32,
7010
OPC_CheckPatternPredicate, 7,
7011
OPC_EmitInteger, MVT::i32, 14,
7012
OPC_EmitRegister, MVT::i32, 0 ,
7013
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7014
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7017
OPC_CheckOpcode, ISD::MUL,
7019
OPC_SwitchOpcode , 44, ISD::SRA,
7022
OPC_CheckInteger, 16,
7023
OPC_CheckType, MVT::i32,
7027
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7030
OPC_CheckValueType, MVT::i16,
7035
OPC_CheckType, MVT::i32,
7036
OPC_CheckPatternPredicate, 7,
7037
OPC_EmitInteger, MVT::i32, 14,
7038
OPC_EmitRegister, MVT::i32, 0 ,
7039
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7040
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7041
44, ISD::SIGN_EXTEND_INREG,
7044
OPC_CheckValueType, MVT::i16,
7048
OPC_CheckOpcode, ISD::SRA,
7051
OPC_CheckInteger, 16,
7052
OPC_CheckType, MVT::i32,
7057
OPC_CheckType, MVT::i32,
7058
OPC_CheckPatternPredicate, 7,
7059
OPC_EmitInteger, MVT::i32, 14,
7060
OPC_EmitRegister, MVT::i32, 0 ,
7061
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7062
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7067
OPC_CheckOpcode, ISD::SRA,
7069
OPC_CheckOpcode, ISD::MUL,
7071
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7074
OPC_CheckValueType, MVT::i16,
7080
OPC_CheckInteger, 16,
7081
OPC_CheckType, MVT::i32,
7084
OPC_CheckType, MVT::i32,
7085
OPC_CheckPatternPredicate, 7,
7086
OPC_EmitInteger, MVT::i32, 14,
7087
OPC_EmitRegister, MVT::i32, 0 ,
7088
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7089
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7092
OPC_CheckOpcode, ISD::SRA,
7094
OPC_CheckOpcode, ISD::MUL,
7098
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7101
OPC_CheckValueType, MVT::i16,
7106
OPC_CheckInteger, 16,
7107
OPC_CheckType, MVT::i32,
7111
OPC_CheckType, MVT::i32,
7112
OPC_CheckPatternPredicate, 7,
7113
OPC_EmitInteger, MVT::i32, 14,
7114
OPC_EmitRegister, MVT::i32, 0 ,
7115
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7116
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7119
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7122
OPC_CheckValueType, MVT::i16,
7128
OPC_CheckInteger, 16,
7129
OPC_CheckType, MVT::i32,
7133
OPC_CheckType, MVT::i32,
7134
OPC_CheckPatternPredicate, 7,
7135
OPC_EmitInteger, MVT::i32, 14,
7136
OPC_EmitRegister, MVT::i32, 0 ,
7137
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7138
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7143
OPC_CheckOpcode, ISD::MUL,
7145
OPC_CheckOpcode, ISD::SRA,
7148
OPC_CheckInteger, 16,
7149
OPC_CheckType, MVT::i32,
7153
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7156
OPC_CheckValueType, MVT::i16,
7160
OPC_CheckType, MVT::i32,
7161
OPC_CheckPatternPredicate, 2,
7162
OPC_EmitInteger, MVT::i32, 14,
7163
OPC_EmitRegister, MVT::i32, 0 ,
7164
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
7165
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7168
OPC_CheckOpcode, ISD::MUL,
7170
OPC_SwitchOpcode , 44, ISD::SIGN_EXTEND_INREG,
7173
OPC_CheckValueType, MVT::i16,
7177
OPC_CheckOpcode, ISD::SRA,
7180
OPC_CheckInteger, 16,
7181
OPC_CheckType, MVT::i32,
7186
OPC_CheckType, MVT::i32,
7187
OPC_CheckPatternPredicate, 2,
7188
OPC_EmitInteger, MVT::i32, 14,
7189
OPC_EmitRegister, MVT::i32, 0 ,
7190
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
7191
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7195
OPC_CheckInteger, 16,
7196
OPC_CheckType, MVT::i32,
7200
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7203
OPC_CheckValueType, MVT::i16,
7208
OPC_CheckType, MVT::i32,
7209
OPC_CheckPatternPredicate, 2,
7210
OPC_EmitInteger, MVT::i32, 14,
7211
OPC_EmitRegister, MVT::i32, 0 ,
7212
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
7213
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7218
OPC_CheckOpcode, ISD::MUL,
7220
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7223
OPC_CheckValueType, MVT::i16,
7227
OPC_CheckOpcode, ISD::SRA,
7230
OPC_CheckInteger, 16,
7231
OPC_CheckType, MVT::i32,
7235
OPC_CheckType, MVT::i32,
7236
OPC_CheckPatternPredicate, 2,
7237
OPC_EmitInteger, MVT::i32, 14,
7238
OPC_EmitRegister, MVT::i32, 0 ,
7239
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
7240
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7243
OPC_CheckOpcode, ISD::MUL,
7245
OPC_SwitchOpcode , 44, ISD::SRA,
7248
OPC_CheckInteger, 16,
7249
OPC_CheckType, MVT::i32,
7253
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7256
OPC_CheckValueType, MVT::i16,
7261
OPC_CheckType, MVT::i32,
7262
OPC_CheckPatternPredicate, 2,
7263
OPC_EmitInteger, MVT::i32, 14,
7264
OPC_EmitRegister, MVT::i32, 0 ,
7265
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
7266
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7267
44, ISD::SIGN_EXTEND_INREG,
7270
OPC_CheckValueType, MVT::i16,
7274
OPC_CheckOpcode, ISD::SRA,
7277
OPC_CheckInteger, 16,
7278
OPC_CheckType, MVT::i32,
7283
OPC_CheckType, MVT::i32,
7284
OPC_CheckPatternPredicate, 2,
7285
OPC_EmitInteger, MVT::i32, 14,
7286
OPC_EmitRegister, MVT::i32, 0 ,
7287
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
7288
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7293
OPC_CheckOpcode, ISD::SRA,
7295
OPC_CheckOpcode, ISD::MUL,
7297
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7300
OPC_CheckValueType, MVT::i16,
7306
OPC_CheckInteger, 16,
7307
OPC_CheckType, MVT::i32,
7310
OPC_CheckType, MVT::i32,
7311
OPC_CheckPatternPredicate, 2,
7312
OPC_EmitInteger, MVT::i32, 14,
7313
OPC_EmitRegister, MVT::i32, 0 ,
7314
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
7315
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7318
OPC_CheckOpcode, ISD::SRA,
7320
OPC_CheckOpcode, ISD::MUL,
7324
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7327
OPC_CheckValueType, MVT::i16,
7332
OPC_CheckInteger, 16,
7333
OPC_CheckType, MVT::i32,
7337
OPC_CheckType, MVT::i32,
7338
OPC_CheckPatternPredicate, 2,
7339
OPC_EmitInteger, MVT::i32, 14,
7340
OPC_EmitRegister, MVT::i32, 0 ,
7341
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
7342
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7345
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7348
OPC_CheckValueType, MVT::i16,
7354
OPC_CheckInteger, 16,
7355
OPC_CheckType, MVT::i32,
7359
OPC_CheckType, MVT::i32,
7360
OPC_CheckPatternPredicate, 2,
7361
OPC_EmitInteger, MVT::i32, 14,
7362
OPC_EmitRegister, MVT::i32, 0 ,
7363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
7364
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7370
OPC_CheckType, MVT::i32,
7371
OPC_CheckPatternPredicate, 5,
7372
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
7373
OPC_EmitInteger, MVT::i32, 14,
7374
OPC_EmitRegister, MVT::i32, 0 ,
7375
OPC_EmitRegister, MVT::i32, 0 ,
7376
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrs), 0,
7377
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
7380
OPC_SwitchOpcode , 88, ISD::MUL,
7384
OPC_CheckPredicate, 10,
7387
OPC_CheckOpcode, ISD::SRA,
7390
OPC_CheckInteger, 16,
7391
OPC_CheckType, MVT::i32,
7395
OPC_CheckType, MVT::i32,
7396
OPC_CheckPatternPredicate, 7,
7397
OPC_EmitInteger, MVT::i32, 14,
7398
OPC_EmitRegister, MVT::i32, 0 ,
7399
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
7400
1, MVT::i32, 5, 1, 2, 0, 3, 4,
7403
OPC_CheckOpcode, ISD::SRA,
7406
OPC_CheckInteger, 16,
7407
OPC_CheckType, MVT::i32,
7412
OPC_CheckPredicate, 10,
7415
OPC_CheckType, MVT::i32,
7416
OPC_CheckPatternPredicate, 7,
7417
OPC_EmitInteger, MVT::i32, 14,
7418
OPC_EmitRegister, MVT::i32, 0 ,
7419
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7420
1, MVT::i32, 5, 1, 2, 0, 3, 4,
7424
OPC_CheckOpcode, ISD::MUL,
7428
OPC_CheckPredicate, 10,
7432
OPC_CheckInteger, 16,
7433
OPC_CheckType, MVT::i32,
7436
OPC_CheckType, MVT::i32,
7437
OPC_CheckPatternPredicate, 7,
7438
OPC_EmitInteger, MVT::i32, 14,
7439
OPC_EmitRegister, MVT::i32, 0 ,
7440
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7441
1, MVT::i32, 5, 1, 2, 0, 3, 4,
7445
OPC_CheckType, MVT::i32,
7446
OPC_CheckPatternPredicate, 5,
7447
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
7448
OPC_EmitInteger, MVT::i32, 14,
7449
OPC_EmitRegister, MVT::i32, 0 ,
7450
OPC_EmitRegister, MVT::i32, 0 ,
7451
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrs), 0,
7452
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
7455
OPC_CheckOpcode, ISD::MUL,
7457
OPC_CheckOpcode, ISD::SRA,
7460
OPC_CheckInteger, 16,
7461
OPC_CheckType, MVT::i32,
7466
OPC_CheckPredicate, 10,
7469
OPC_CheckType, MVT::i32,
7470
OPC_CheckPatternPredicate, 7,
7471
OPC_EmitInteger, MVT::i32, 14,
7472
OPC_EmitRegister, MVT::i32, 0 ,
7473
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
7474
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7478
OPC_CheckOpcode, ISD::MUL,
7482
OPC_CheckPredicate, 10,
7485
OPC_CheckOpcode, ISD::SRA,
7488
OPC_CheckInteger, 16,
7489
OPC_CheckType, MVT::i32,
7494
OPC_CheckType, MVT::i32,
7495
OPC_CheckPatternPredicate, 7,
7496
OPC_EmitInteger, MVT::i32, 14,
7497
OPC_EmitRegister, MVT::i32, 0 ,
7498
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
7499
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7502
OPC_CheckOpcode, ISD::SRA,
7505
OPC_CheckInteger, 16,
7506
OPC_CheckType, MVT::i32,
7511
OPC_CheckPredicate, 10,
7515
OPC_CheckType, MVT::i32,
7516
OPC_CheckPatternPredicate, 7,
7517
OPC_EmitInteger, MVT::i32, 14,
7518
OPC_EmitRegister, MVT::i32, 0 ,
7519
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
7520
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7525
OPC_CheckOpcode, ISD::MUL,
7528
OPC_CheckPredicate, 10,
7531
OPC_CheckOpcode, ISD::SRA,
7534
OPC_CheckInteger, 16,
7535
OPC_CheckType, MVT::i32,
7539
OPC_CheckType, MVT::i32,
7540
OPC_CheckPatternPredicate, 7,
7541
OPC_EmitInteger, MVT::i32, 14,
7542
OPC_EmitRegister, MVT::i32, 0 ,
7543
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7544
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7547
OPC_CheckOpcode, ISD::MUL,
7550
OPC_CheckOpcode, ISD::SRA,
7553
OPC_CheckInteger, 16,
7554
OPC_CheckType, MVT::i32,
7559
OPC_CheckPredicate, 10,
7563
OPC_CheckType, MVT::i32,
7564
OPC_CheckPatternPredicate, 7,
7565
OPC_EmitInteger, MVT::i32, 14,
7566
OPC_EmitRegister, MVT::i32, 0 ,
7567
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7568
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7572
OPC_CheckPredicate, 10,
7575
OPC_CheckOpcode, ISD::SRA,
7578
OPC_CheckInteger, 16,
7579
OPC_CheckType, MVT::i32,
7584
OPC_CheckType, MVT::i32,
7585
OPC_CheckPatternPredicate, 7,
7586
OPC_EmitInteger, MVT::i32, 14,
7587
OPC_EmitRegister, MVT::i32, 0 ,
7588
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
7589
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7594
OPC_CheckOpcode, ISD::SRA,
7596
OPC_CheckOpcode, ISD::MUL,
7599
OPC_CheckPredicate, 10,
7604
OPC_CheckInteger, 16,
7605
OPC_CheckType, MVT::i32,
7608
OPC_CheckType, MVT::i32,
7609
OPC_CheckPatternPredicate, 7,
7610
OPC_EmitInteger, MVT::i32, 14,
7611
OPC_EmitRegister, MVT::i32, 0 ,
7612
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7613
1, MVT::i32, 5, 2, 1, 0, 3, 4,
7616
OPC_CheckOpcode, ISD::SRA,
7618
OPC_CheckOpcode, ISD::MUL,
7623
OPC_CheckPredicate, 10,
7627
OPC_CheckInteger, 16,
7628
OPC_CheckType, MVT::i32,
7632
OPC_CheckType, MVT::i32,
7633
OPC_CheckPatternPredicate, 7,
7634
OPC_EmitInteger, MVT::i32, 14,
7635
OPC_EmitRegister, MVT::i32, 0 ,
7636
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7637
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7640
OPC_CheckPredicate, 10,
7645
OPC_CheckInteger, 16,
7646
OPC_CheckType, MVT::i32,
7650
OPC_CheckType, MVT::i32,
7651
OPC_CheckPatternPredicate, 7,
7652
OPC_EmitInteger, MVT::i32, 14,
7653
OPC_EmitRegister, MVT::i32, 0 ,
7654
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
7655
1, MVT::i32, 5, 1, 0, 2, 3, 4,
7660
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7662
OPC_CheckOpcode, ISD::ROTR,
7666
OPC_CheckOpcode, ISD::Constant,
7667
OPC_CheckPredicate, 9,
7668
OPC_CheckType, MVT::i32,
7673
OPC_CheckValueType, MVT::i8,
7676
OPC_CheckType, MVT::i32,
7677
OPC_CheckPatternPredicate, 0,
7678
OPC_EmitConvertToTarget, 2,
7679
OPC_EmitInteger, MVT::i32, 14,
7680
OPC_EmitRegister, MVT::i32, 0 ,
7681
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr_rot), 0,
7682
1, MVT::i32, 5, 0, 1, 3, 4, 5,
7684
OPC_CheckValueType, MVT::i16,
7687
OPC_CheckType, MVT::i32,
7688
OPC_CheckPatternPredicate, 0,
7689
OPC_EmitConvertToTarget, 2,
7690
OPC_EmitInteger, MVT::i32, 14,
7691
OPC_EmitRegister, MVT::i32, 0 ,
7692
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr_rot), 0,
7693
1, MVT::i32, 5, 0, 1, 3, 4, 5,
7695
OPC_CheckValueType, MVT::i8,
7698
OPC_CheckType, MVT::i32,
7699
OPC_CheckPatternPredicate, 2,
7700
OPC_EmitConvertToTarget, 2,
7701
OPC_EmitInteger, MVT::i32, 14,
7702
OPC_EmitRegister, MVT::i32, 0 ,
7703
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr_rot), 0,
7704
1, MVT::i32, 5, 0, 1, 3, 4, 5,
7706
OPC_CheckValueType, MVT::i16,
7709
OPC_CheckType, MVT::i32,
7710
OPC_CheckPatternPredicate, 2,
7711
OPC_EmitConvertToTarget, 2,
7712
OPC_EmitInteger, MVT::i32, 14,
7713
OPC_EmitRegister, MVT::i32, 0 ,
7714
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr_rot), 0,
7715
1, MVT::i32, 5, 0, 1, 3, 4, 5,
7719
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7721
OPC_CheckOpcode, ISD::ROTR,
7725
OPC_CheckOpcode, ISD::Constant,
7726
OPC_CheckPredicate, 9,
7727
OPC_CheckType, MVT::i32,
7732
OPC_CheckValueType, MVT::i8,
7736
OPC_CheckType, MVT::i32,
7737
OPC_CheckPatternPredicate, 0,
7738
OPC_EmitConvertToTarget, 1,
7739
OPC_EmitInteger, MVT::i32, 14,
7740
OPC_EmitRegister, MVT::i32, 0 ,
7741
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr_rot), 0,
7742
1, MVT::i32, 5, 2, 0, 3, 4, 5,
7744
OPC_CheckValueType, MVT::i16,
7748
OPC_CheckType, MVT::i32,
7749
OPC_CheckPatternPredicate, 0,
7750
OPC_EmitConvertToTarget, 1,
7751
OPC_EmitInteger, MVT::i32, 14,
7752
OPC_EmitRegister, MVT::i32, 0 ,
7753
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr_rot), 0,
7754
1, MVT::i32, 5, 2, 0, 3, 4, 5,
7756
OPC_CheckValueType, MVT::i8,
7760
OPC_CheckType, MVT::i32,
7761
OPC_CheckPatternPredicate, 2,
7762
OPC_EmitConvertToTarget, 1,
7763
OPC_EmitInteger, MVT::i32, 14,
7764
OPC_EmitRegister, MVT::i32, 0 ,
7765
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr_rot), 0,
7766
1, MVT::i32, 5, 2, 0, 3, 4, 5,
7768
OPC_CheckValueType, MVT::i16,
7772
OPC_CheckType, MVT::i32,
7773
OPC_CheckPatternPredicate, 2,
7774
OPC_EmitConvertToTarget, 1,
7775
OPC_EmitInteger, MVT::i32, 14,
7776
OPC_EmitRegister, MVT::i32, 0 ,
7777
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr_rot), 0,
7778
1, MVT::i32, 5, 2, 0, 3, 4, 5,
7784
OPC_CheckOpcode, ISD::MUL,
7786
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7789
OPC_CheckValueType, MVT::i16,
7793
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7796
OPC_CheckValueType, MVT::i16,
7800
OPC_CheckType, MVT::i32,
7801
OPC_CheckPatternPredicate, 7,
7802
OPC_EmitInteger, MVT::i32, 14,
7803
OPC_EmitRegister, MVT::i32, 0 ,
7804
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
7805
1, MVT::i32, 5, 1, 2, 0, 3, 4,
7808
OPC_CheckType, MVT::i32,
7809
OPC_CheckPatternPredicate, 2,
7810
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
7811
OPC_EmitInteger, MVT::i32, 14,
7812
OPC_EmitRegister, MVT::i32, 0 ,
7813
OPC_EmitRegister, MVT::i32, 0 ,
7814
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrs), 0,
7815
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
7818
OPC_CheckOpcode, ISD::MUL,
7821
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7824
OPC_CheckValueType, MVT::i16,
7828
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7831
OPC_CheckValueType, MVT::i16,
7835
OPC_CheckType, MVT::i32,
7836
OPC_CheckPatternPredicate, 2,
7837
OPC_EmitInteger, MVT::i32, 14,
7838
OPC_EmitRegister, MVT::i32, 0 ,
7839
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABB), 0,
7840
1, MVT::i32, 5, 1, 2, 0, 3, 4,
7844
OPC_CheckOpcode, ARMISD::VDUPLANE,
7847
OPC_CheckChild0Type, MVT::v4i16,
7850
OPC_CheckOpcode, ISD::Constant,
7854
OPC_SwitchType , 23, MVT::v4i16,
7855
OPC_CheckPatternPredicate, 3,
7856
OPC_EmitConvertToTarget, 3,
7857
OPC_EmitInteger, MVT::i32, 14,
7858
OPC_EmitRegister, MVT::i32, 0 ,
7859
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
7860
1, MVT::v4i16, 6, 0, 1, 2, 4, 5, 6,
7862
OPC_CheckPatternPredicate, 3,
7863
OPC_EmitConvertToTarget, 3,
7864
OPC_EmitInteger, MVT::i32, 14,
7865
OPC_EmitRegister, MVT::i32, 0 ,
7866
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
7867
1, MVT::v8i16, 6, 0, 1, 2, 4, 5, 6,
7870
OPC_CheckChild0Type, MVT::v2i32,
7873
OPC_CheckOpcode, ISD::Constant,
7877
OPC_SwitchType , 23, MVT::v2i32,
7878
OPC_CheckPatternPredicate, 3,
7879
OPC_EmitConvertToTarget, 3,
7880
OPC_EmitInteger, MVT::i32, 14,
7881
OPC_EmitRegister, MVT::i32, 0 ,
7882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
7883
1, MVT::v2i32, 6, 0, 1, 2, 4, 5, 6,
7885
OPC_CheckPatternPredicate, 3,
7886
OPC_EmitConvertToTarget, 3,
7887
OPC_EmitInteger, MVT::i32, 14,
7888
OPC_EmitRegister, MVT::i32, 0 ,
7889
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
7890
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
7897
OPC_CheckOpcode, ISD::MUL,
7899
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7902
OPC_CheckValueType, MVT::i16,
7906
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7909
OPC_CheckValueType, MVT::i16,
7914
OPC_CheckType, MVT::i32,
7915
OPC_CheckPatternPredicate, 7,
7916
OPC_EmitInteger, MVT::i32, 14,
7917
OPC_EmitRegister, MVT::i32, 0 ,
7918
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
7919
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7923
OPC_CheckType, MVT::i32,
7924
OPC_CheckPatternPredicate, 2,
7925
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
7926
OPC_EmitInteger, MVT::i32, 14,
7927
OPC_EmitRegister, MVT::i32, 0 ,
7928
OPC_EmitRegister, MVT::i32, 0 ,
7929
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrs), 0,
7930
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
7933
OPC_CheckOpcode, ISD::MUL,
7935
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7938
OPC_CheckValueType, MVT::i16,
7942
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
7945
OPC_CheckValueType, MVT::i16,
7950
OPC_CheckType, MVT::i32,
7951
OPC_CheckPatternPredicate, 2,
7952
OPC_EmitInteger, MVT::i32, 14,
7953
OPC_EmitRegister, MVT::i32, 0 ,
7954
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABB), 0,
7955
1, MVT::i32, 5, 0, 1, 2, 3, 4,
7959
OPC_CheckOpcode, ISD::MUL,
7961
OPC_CheckOpcode, ARMISD::VDUPLANE,
7963
OPC_CheckChild0Type, MVT::v4i16,
7966
OPC_CheckOpcode, ISD::Constant,
7971
OPC_CheckType, MVT::v4i16,
7972
OPC_CheckPatternPredicate, 3,
7973
OPC_EmitConvertToTarget, 2,
7974
OPC_EmitInteger, MVT::i32, 14,
7975
OPC_EmitRegister, MVT::i32, 0 ,
7976
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
7977
1, MVT::v4i16, 6, 0, 3, 1, 4, 5, 6,
7980
OPC_CheckOpcode, ISD::MUL,
7984
OPC_CheckOpcode, ARMISD::VDUPLANE,
7986
OPC_CheckChild0Type, MVT::v4i16,
7989
OPC_CheckOpcode, ISD::Constant,
7994
OPC_CheckType, MVT::v4i16,
7995
OPC_CheckPatternPredicate, 3,
7996
OPC_EmitConvertToTarget, 2,
7997
OPC_EmitInteger, MVT::i32, 14,
7998
OPC_EmitRegister, MVT::i32, 0 ,
7999
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
8000
1, MVT::v4i16, 6, 3, 0, 1, 4, 5, 6,
8003
OPC_CheckOpcode, ARMISD::VDUPLANE,
8005
OPC_CheckChild0Type, MVT::v4i16,
8008
OPC_CheckOpcode, ISD::Constant,
8014
OPC_CheckType, MVT::v4i16,
8015
OPC_CheckPatternPredicate, 3,
8016
OPC_EmitConvertToTarget, 1,
8017
OPC_EmitInteger, MVT::i32, 14,
8018
OPC_EmitRegister, MVT::i32, 0 ,
8019
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
8020
1, MVT::v4i16, 6, 3, 2, 0, 4, 5, 6,
8025
OPC_CheckOpcode, ISD::MUL,
8027
OPC_CheckOpcode, ARMISD::VDUPLANE,
8029
OPC_CheckChild0Type, MVT::v2i32,
8032
OPC_CheckOpcode, ISD::Constant,
8037
OPC_CheckType, MVT::v2i32,
8038
OPC_CheckPatternPredicate, 3,
8039
OPC_EmitConvertToTarget, 2,
8040
OPC_EmitInteger, MVT::i32, 14,
8041
OPC_EmitRegister, MVT::i32, 0 ,
8042
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
8043
1, MVT::v2i32, 6, 0, 3, 1, 4, 5, 6,
8046
OPC_CheckOpcode, ISD::MUL,
8050
OPC_CheckOpcode, ARMISD::VDUPLANE,
8052
OPC_CheckChild0Type, MVT::v2i32,
8055
OPC_CheckOpcode, ISD::Constant,
8060
OPC_CheckType, MVT::v2i32,
8061
OPC_CheckPatternPredicate, 3,
8062
OPC_EmitConvertToTarget, 2,
8063
OPC_EmitInteger, MVT::i32, 14,
8064
OPC_EmitRegister, MVT::i32, 0 ,
8065
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
8066
1, MVT::v2i32, 6, 3, 0, 1, 4, 5, 6,
8069
OPC_CheckOpcode, ARMISD::VDUPLANE,
8071
OPC_CheckChild0Type, MVT::v2i32,
8074
OPC_CheckOpcode, ISD::Constant,
8080
OPC_CheckType, MVT::v2i32,
8081
OPC_CheckPatternPredicate, 3,
8082
OPC_EmitConvertToTarget, 1,
8083
OPC_EmitInteger, MVT::i32, 14,
8084
OPC_EmitRegister, MVT::i32, 0 ,
8085
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
8086
1, MVT::v2i32, 6, 3, 2, 0, 4, 5, 6,
8091
OPC_CheckOpcode, ISD::MUL,
8093
OPC_CheckOpcode, ARMISD::VDUPLANE,
8095
OPC_CheckChild0Type, MVT::v4i16,
8098
OPC_CheckOpcode, ISD::Constant,
8103
OPC_CheckType, MVT::v8i16,
8104
OPC_CheckPatternPredicate, 3,
8105
OPC_EmitConvertToTarget, 2,
8106
OPC_EmitInteger, MVT::i32, 14,
8107
OPC_EmitRegister, MVT::i32, 0 ,
8108
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8109
1, MVT::v8i16, 6, 0, 3, 1, 4, 5, 6,
8112
OPC_CheckOpcode, ISD::MUL,
8116
OPC_CheckOpcode, ARMISD::VDUPLANE,
8118
OPC_CheckChild0Type, MVT::v4i16,
8121
OPC_CheckOpcode, ISD::Constant,
8126
OPC_CheckType, MVT::v8i16,
8127
OPC_CheckPatternPredicate, 3,
8128
OPC_EmitConvertToTarget, 2,
8129
OPC_EmitInteger, MVT::i32, 14,
8130
OPC_EmitRegister, MVT::i32, 0 ,
8131
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8132
1, MVT::v8i16, 6, 3, 0, 1, 4, 5, 6,
8135
OPC_CheckOpcode, ARMISD::VDUPLANE,
8137
OPC_CheckChild0Type, MVT::v4i16,
8140
OPC_CheckOpcode, ISD::Constant,
8146
OPC_CheckType, MVT::v8i16,
8147
OPC_CheckPatternPredicate, 3,
8148
OPC_EmitConvertToTarget, 1,
8149
OPC_EmitInteger, MVT::i32, 14,
8150
OPC_EmitRegister, MVT::i32, 0 ,
8151
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8152
1, MVT::v8i16, 6, 3, 2, 0, 4, 5, 6,
8157
OPC_CheckOpcode, ISD::MUL,
8159
OPC_CheckOpcode, ARMISD::VDUPLANE,
8161
OPC_CheckChild0Type, MVT::v2i32,
8164
OPC_CheckOpcode, ISD::Constant,
8169
OPC_CheckType, MVT::v4i32,
8170
OPC_CheckPatternPredicate, 3,
8171
OPC_EmitConvertToTarget, 2,
8172
OPC_EmitInteger, MVT::i32, 14,
8173
OPC_EmitRegister, MVT::i32, 0 ,
8174
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8175
1, MVT::v4i32, 6, 0, 3, 1, 4, 5, 6,
8178
OPC_CheckOpcode, ISD::MUL,
8182
OPC_CheckOpcode, ARMISD::VDUPLANE,
8184
OPC_CheckChild0Type, MVT::v2i32,
8187
OPC_CheckOpcode, ISD::Constant,
8192
OPC_CheckType, MVT::v4i32,
8193
OPC_CheckPatternPredicate, 3,
8194
OPC_EmitConvertToTarget, 2,
8195
OPC_EmitInteger, MVT::i32, 14,
8196
OPC_EmitRegister, MVT::i32, 0 ,
8197
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8198
1, MVT::v4i32, 6, 3, 0, 1, 4, 5, 6,
8201
OPC_CheckOpcode, ARMISD::VDUPLANE,
8203
OPC_CheckChild0Type, MVT::v2i32,
8206
OPC_CheckOpcode, ISD::Constant,
8212
OPC_CheckType, MVT::v4i32,
8213
OPC_CheckPatternPredicate, 3,
8214
OPC_EmitConvertToTarget, 1,
8215
OPC_EmitInteger, MVT::i32, 14,
8216
OPC_EmitRegister, MVT::i32, 0 ,
8217
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8218
1, MVT::v4i32, 6, 3, 2, 0, 4, 5, 6,
8223
OPC_CheckOpcode, ISD::MUL,
8227
OPC_CheckOpcode, ARMISD::VDUPLANE,
8230
OPC_CheckChild0Type, MVT::v8i16,
8233
OPC_CheckOpcode, ISD::Constant,
8237
OPC_CheckType, MVT::v8i16,
8238
OPC_EmitConvertToTarget, 3,
8239
OPC_EmitNodeXForm, 6, 4,
8240
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8241
1, MVT::v4i16, 2, 2, 5,
8242
OPC_EmitConvertToTarget, 3,
8243
OPC_EmitNodeXForm, 7, 7,
8244
OPC_EmitInteger, MVT::i32, 14,
8245
OPC_EmitRegister, MVT::i32, 0 ,
8246
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8247
1, MVT::v8i16, 6, 0, 1, 6, 8, 9, 10,
8249
OPC_CheckChild0Type, MVT::v4i32,
8252
OPC_CheckOpcode, ISD::Constant,
8256
OPC_CheckType, MVT::v4i32,
8257
OPC_EmitConvertToTarget, 3,
8258
OPC_EmitNodeXForm, 8, 4,
8259
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8260
1, MVT::v2i32, 2, 2, 5,
8261
OPC_EmitConvertToTarget, 3,
8262
OPC_EmitNodeXForm, 9, 7,
8263
OPC_EmitInteger, MVT::i32, 14,
8264
OPC_EmitRegister, MVT::i32, 0 ,
8265
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8266
1, MVT::v4i32, 6, 0, 1, 6, 8, 9, 10,
8270
OPC_CheckOpcode, ARMISD::VDUPLANE,
8272
OPC_CheckChild0Type, MVT::v8i16,
8275
OPC_CheckOpcode, ISD::Constant,
8280
OPC_CheckType, MVT::v8i16,
8281
OPC_EmitConvertToTarget, 2,
8282
OPC_EmitNodeXForm, 6, 4,
8283
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8284
1, MVT::v4i16, 2, 1, 5,
8285
OPC_EmitConvertToTarget, 2,
8286
OPC_EmitNodeXForm, 7, 7,
8287
OPC_EmitInteger, MVT::i32, 14,
8288
OPC_EmitRegister, MVT::i32, 0 ,
8289
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8290
1, MVT::v8i16, 6, 0, 3, 6, 8, 9, 10,
8294
OPC_CheckOpcode, ISD::MUL,
8298
OPC_CheckOpcode, ARMISD::VDUPLANE,
8300
OPC_CheckChild0Type, MVT::v8i16,
8303
OPC_CheckOpcode, ISD::Constant,
8308
OPC_CheckType, MVT::v8i16,
8309
OPC_EmitConvertToTarget, 2,
8310
OPC_EmitNodeXForm, 6, 4,
8311
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8312
1, MVT::v4i16, 2, 1, 5,
8313
OPC_EmitConvertToTarget, 2,
8314
OPC_EmitNodeXForm, 7, 7,
8315
OPC_EmitInteger, MVT::i32, 14,
8316
OPC_EmitRegister, MVT::i32, 0 ,
8317
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8318
1, MVT::v8i16, 6, 3, 0, 6, 8, 9, 10,
8321
OPC_CheckOpcode, ARMISD::VDUPLANE,
8323
OPC_CheckChild0Type, MVT::v8i16,
8326
OPC_CheckOpcode, ISD::Constant,
8332
OPC_CheckType, MVT::v8i16,
8333
OPC_EmitConvertToTarget, 1,
8334
OPC_EmitNodeXForm, 6, 4,
8335
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8336
1, MVT::v4i16, 2, 0, 5,
8337
OPC_EmitConvertToTarget, 1,
8338
OPC_EmitNodeXForm, 7, 7,
8339
OPC_EmitInteger, MVT::i32, 14,
8340
OPC_EmitRegister, MVT::i32, 0 ,
8341
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
8342
1, MVT::v8i16, 6, 3, 2, 6, 8, 9, 10,
8347
OPC_CheckOpcode, ISD::MUL,
8349
OPC_CheckOpcode, ARMISD::VDUPLANE,
8351
OPC_CheckChild0Type, MVT::v4i32,
8354
OPC_CheckOpcode, ISD::Constant,
8359
OPC_CheckType, MVT::v4i32,
8360
OPC_EmitConvertToTarget, 2,
8361
OPC_EmitNodeXForm, 8, 4,
8362
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8363
1, MVT::v2i32, 2, 1, 5,
8364
OPC_EmitConvertToTarget, 2,
8365
OPC_EmitNodeXForm, 9, 7,
8366
OPC_EmitInteger, MVT::i32, 14,
8367
OPC_EmitRegister, MVT::i32, 0 ,
8368
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8369
1, MVT::v4i32, 6, 0, 3, 6, 8, 9, 10,
8372
OPC_CheckOpcode, ISD::MUL,
8376
OPC_CheckOpcode, ARMISD::VDUPLANE,
8378
OPC_CheckChild0Type, MVT::v4i32,
8381
OPC_CheckOpcode, ISD::Constant,
8386
OPC_CheckType, MVT::v4i32,
8387
OPC_EmitConvertToTarget, 2,
8388
OPC_EmitNodeXForm, 8, 4,
8389
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8390
1, MVT::v2i32, 2, 1, 5,
8391
OPC_EmitConvertToTarget, 2,
8392
OPC_EmitNodeXForm, 9, 7,
8393
OPC_EmitInteger, MVT::i32, 14,
8394
OPC_EmitRegister, MVT::i32, 0 ,
8395
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8396
1, MVT::v4i32, 6, 3, 0, 6, 8, 9, 10,
8399
OPC_CheckOpcode, ARMISD::VDUPLANE,
8401
OPC_CheckChild0Type, MVT::v4i32,
8404
OPC_CheckOpcode, ISD::Constant,
8410
OPC_CheckType, MVT::v4i32,
8411
OPC_EmitConvertToTarget, 1,
8412
OPC_EmitNodeXForm, 8, 4,
8413
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
8414
1, MVT::v2i32, 2, 0, 5,
8415
OPC_EmitConvertToTarget, 1,
8416
OPC_EmitNodeXForm, 9, 7,
8417
OPC_EmitInteger, MVT::i32, 14,
8418
OPC_EmitRegister, MVT::i32, 0 ,
8419
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
8420
1, MVT::v4i32, 6, 3, 2, 6, 8, 9, 10,
8425
OPC_SwitchOpcode , 74|128,1, ARMISD::VSHRs,
8429
OPC_CheckOpcode, ISD::Constant,
8432
OPC_SwitchType , 22, MVT::v8i8,
8433
OPC_CheckPatternPredicate, 3,
8434
OPC_EmitConvertToTarget, 2,
8435
OPC_EmitInteger, MVT::i32, 14,
8436
OPC_EmitRegister, MVT::i32, 0 ,
8437
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i8), 0,
8438
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
8440
OPC_CheckPatternPredicate, 3,
8441
OPC_EmitConvertToTarget, 2,
8442
OPC_EmitInteger, MVT::i32, 14,
8443
OPC_EmitRegister, MVT::i32, 0 ,
8444
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i16), 0,
8445
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
8447
OPC_CheckPatternPredicate, 3,
8448
OPC_EmitConvertToTarget, 2,
8449
OPC_EmitInteger, MVT::i32, 14,
8450
OPC_EmitRegister, MVT::i32, 0 ,
8451
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i32), 0,
8452
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
8454
OPC_CheckPatternPredicate, 3,
8455
OPC_EmitConvertToTarget, 2,
8456
OPC_EmitInteger, MVT::i32, 14,
8457
OPC_EmitRegister, MVT::i32, 0 ,
8458
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv1i64), 0,
8459
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
8461
OPC_CheckPatternPredicate, 3,
8462
OPC_EmitConvertToTarget, 2,
8463
OPC_EmitInteger, MVT::i32, 14,
8464
OPC_EmitRegister, MVT::i32, 0 ,
8465
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv16i8), 0,
8466
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
8468
OPC_CheckPatternPredicate, 3,
8469
OPC_EmitConvertToTarget, 2,
8470
OPC_EmitInteger, MVT::i32, 14,
8471
OPC_EmitRegister, MVT::i32, 0 ,
8472
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i16), 0,
8473
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
8475
OPC_CheckPatternPredicate, 3,
8476
OPC_EmitConvertToTarget, 2,
8477
OPC_EmitInteger, MVT::i32, 14,
8478
OPC_EmitRegister, MVT::i32, 0 ,
8479
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i32), 0,
8480
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
8482
OPC_CheckPatternPredicate, 3,
8483
OPC_EmitConvertToTarget, 2,
8484
OPC_EmitInteger, MVT::i32, 14,
8485
OPC_EmitRegister, MVT::i32, 0 ,
8486
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i64), 0,
8487
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
8489
74|128,1, ARMISD::VSHRu,
8493
OPC_CheckOpcode, ISD::Constant,
8496
OPC_SwitchType , 22, MVT::v8i8,
8497
OPC_CheckPatternPredicate, 3,
8498
OPC_EmitConvertToTarget, 2,
8499
OPC_EmitInteger, MVT::i32, 14,
8500
OPC_EmitRegister, MVT::i32, 0 ,
8501
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i8), 0,
8502
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
8504
OPC_CheckPatternPredicate, 3,
8505
OPC_EmitConvertToTarget, 2,
8506
OPC_EmitInteger, MVT::i32, 14,
8507
OPC_EmitRegister, MVT::i32, 0 ,
8508
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i16), 0,
8509
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
8511
OPC_CheckPatternPredicate, 3,
8512
OPC_EmitConvertToTarget, 2,
8513
OPC_EmitInteger, MVT::i32, 14,
8514
OPC_EmitRegister, MVT::i32, 0 ,
8515
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i32), 0,
8516
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
8518
OPC_CheckPatternPredicate, 3,
8519
OPC_EmitConvertToTarget, 2,
8520
OPC_EmitInteger, MVT::i32, 14,
8521
OPC_EmitRegister, MVT::i32, 0 ,
8522
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv1i64), 0,
8523
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
8525
OPC_CheckPatternPredicate, 3,
8526
OPC_EmitConvertToTarget, 2,
8527
OPC_EmitInteger, MVT::i32, 14,
8528
OPC_EmitRegister, MVT::i32, 0 ,
8529
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv16i8), 0,
8530
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
8532
OPC_CheckPatternPredicate, 3,
8533
OPC_EmitConvertToTarget, 2,
8534
OPC_EmitInteger, MVT::i32, 14,
8535
OPC_EmitRegister, MVT::i32, 0 ,
8536
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i16), 0,
8537
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
8539
OPC_CheckPatternPredicate, 3,
8540
OPC_EmitConvertToTarget, 2,
8541
OPC_EmitInteger, MVT::i32, 14,
8542
OPC_EmitRegister, MVT::i32, 0 ,
8543
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i32), 0,
8544
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
8546
OPC_CheckPatternPredicate, 3,
8547
OPC_EmitConvertToTarget, 2,
8548
OPC_EmitInteger, MVT::i32, 14,
8549
OPC_EmitRegister, MVT::i32, 0 ,
8550
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i64), 0,
8551
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
8553
74|128,1, ARMISD::VRSHRs,
8557
OPC_CheckOpcode, ISD::Constant,
8560
OPC_SwitchType , 22, MVT::v8i8,
8561
OPC_CheckPatternPredicate, 3,
8562
OPC_EmitConvertToTarget, 2,
8563
OPC_EmitInteger, MVT::i32, 14,
8564
OPC_EmitRegister, MVT::i32, 0 ,
8565
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i8), 0,
8566
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
8568
OPC_CheckPatternPredicate, 3,
8569
OPC_EmitConvertToTarget, 2,
8570
OPC_EmitInteger, MVT::i32, 14,
8571
OPC_EmitRegister, MVT::i32, 0 ,
8572
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i16), 0,
8573
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
8575
OPC_CheckPatternPredicate, 3,
8576
OPC_EmitConvertToTarget, 2,
8577
OPC_EmitInteger, MVT::i32, 14,
8578
OPC_EmitRegister, MVT::i32, 0 ,
8579
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i32), 0,
8580
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
8582
OPC_CheckPatternPredicate, 3,
8583
OPC_EmitConvertToTarget, 2,
8584
OPC_EmitInteger, MVT::i32, 14,
8585
OPC_EmitRegister, MVT::i32, 0 ,
8586
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv1i64), 0,
8587
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
8589
OPC_CheckPatternPredicate, 3,
8590
OPC_EmitConvertToTarget, 2,
8591
OPC_EmitInteger, MVT::i32, 14,
8592
OPC_EmitRegister, MVT::i32, 0 ,
8593
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv16i8), 0,
8594
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
8596
OPC_CheckPatternPredicate, 3,
8597
OPC_EmitConvertToTarget, 2,
8598
OPC_EmitInteger, MVT::i32, 14,
8599
OPC_EmitRegister, MVT::i32, 0 ,
8600
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i16), 0,
8601
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
8603
OPC_CheckPatternPredicate, 3,
8604
OPC_EmitConvertToTarget, 2,
8605
OPC_EmitInteger, MVT::i32, 14,
8606
OPC_EmitRegister, MVT::i32, 0 ,
8607
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i32), 0,
8608
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
8610
OPC_CheckPatternPredicate, 3,
8611
OPC_EmitConvertToTarget, 2,
8612
OPC_EmitInteger, MVT::i32, 14,
8613
OPC_EmitRegister, MVT::i32, 0 ,
8614
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i64), 0,
8615
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
8617
74|128,1, ARMISD::VRSHRu,
8621
OPC_CheckOpcode, ISD::Constant,
8624
OPC_SwitchType , 22, MVT::v8i8,
8625
OPC_CheckPatternPredicate, 3,
8626
OPC_EmitConvertToTarget, 2,
8627
OPC_EmitInteger, MVT::i32, 14,
8628
OPC_EmitRegister, MVT::i32, 0 ,
8629
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i8), 0,
8630
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
8632
OPC_CheckPatternPredicate, 3,
8633
OPC_EmitConvertToTarget, 2,
8634
OPC_EmitInteger, MVT::i32, 14,
8635
OPC_EmitRegister, MVT::i32, 0 ,
8636
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i16), 0,
8637
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
8639
OPC_CheckPatternPredicate, 3,
8640
OPC_EmitConvertToTarget, 2,
8641
OPC_EmitInteger, MVT::i32, 14,
8642
OPC_EmitRegister, MVT::i32, 0 ,
8643
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i32), 0,
8644
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
8646
OPC_CheckPatternPredicate, 3,
8647
OPC_EmitConvertToTarget, 2,
8648
OPC_EmitInteger, MVT::i32, 14,
8649
OPC_EmitRegister, MVT::i32, 0 ,
8650
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv1i64), 0,
8651
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
8653
OPC_CheckPatternPredicate, 3,
8654
OPC_EmitConvertToTarget, 2,
8655
OPC_EmitInteger, MVT::i32, 14,
8656
OPC_EmitRegister, MVT::i32, 0 ,
8657
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv16i8), 0,
8658
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
8660
OPC_CheckPatternPredicate, 3,
8661
OPC_EmitConvertToTarget, 2,
8662
OPC_EmitInteger, MVT::i32, 14,
8663
OPC_EmitRegister, MVT::i32, 0 ,
8664
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i16), 0,
8665
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
8667
OPC_CheckPatternPredicate, 3,
8668
OPC_EmitConvertToTarget, 2,
8669
OPC_EmitInteger, MVT::i32, 14,
8670
OPC_EmitRegister, MVT::i32, 0 ,
8671
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i32), 0,
8672
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
8674
OPC_CheckPatternPredicate, 3,
8675
OPC_EmitConvertToTarget, 2,
8676
OPC_EmitInteger, MVT::i32, 14,
8677
OPC_EmitRegister, MVT::i32, 0 ,
8678
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i64), 0,
8679
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
8684
OPC_SwitchOpcode , 75|128,1, ARMISD::VSHRs,
8688
OPC_CheckOpcode, ISD::Constant,
8692
OPC_SwitchType , 22, MVT::v8i8,
8693
OPC_CheckPatternPredicate, 3,
8694
OPC_EmitConvertToTarget, 1,
8695
OPC_EmitInteger, MVT::i32, 14,
8696
OPC_EmitRegister, MVT::i32, 0 ,
8697
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i8), 0,
8698
1, MVT::v8i8, 5, 2, 0, 3, 4, 5,
8700
OPC_CheckPatternPredicate, 3,
8701
OPC_EmitConvertToTarget, 1,
8702
OPC_EmitInteger, MVT::i32, 14,
8703
OPC_EmitRegister, MVT::i32, 0 ,
8704
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i16), 0,
8705
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
8707
OPC_CheckPatternPredicate, 3,
8708
OPC_EmitConvertToTarget, 1,
8709
OPC_EmitInteger, MVT::i32, 14,
8710
OPC_EmitRegister, MVT::i32, 0 ,
8711
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i32), 0,
8712
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
8714
OPC_CheckPatternPredicate, 3,
8715
OPC_EmitConvertToTarget, 1,
8716
OPC_EmitInteger, MVT::i32, 14,
8717
OPC_EmitRegister, MVT::i32, 0 ,
8718
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv1i64), 0,
8719
1, MVT::v1i64, 5, 2, 0, 3, 4, 5,
8721
OPC_CheckPatternPredicate, 3,
8722
OPC_EmitConvertToTarget, 1,
8723
OPC_EmitInteger, MVT::i32, 14,
8724
OPC_EmitRegister, MVT::i32, 0 ,
8725
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv16i8), 0,
8726
1, MVT::v16i8, 5, 2, 0, 3, 4, 5,
8728
OPC_CheckPatternPredicate, 3,
8729
OPC_EmitConvertToTarget, 1,
8730
OPC_EmitInteger, MVT::i32, 14,
8731
OPC_EmitRegister, MVT::i32, 0 ,
8732
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i16), 0,
8733
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
8735
OPC_CheckPatternPredicate, 3,
8736
OPC_EmitConvertToTarget, 1,
8737
OPC_EmitInteger, MVT::i32, 14,
8738
OPC_EmitRegister, MVT::i32, 0 ,
8739
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i32), 0,
8740
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
8742
OPC_CheckPatternPredicate, 3,
8743
OPC_EmitConvertToTarget, 1,
8744
OPC_EmitInteger, MVT::i32, 14,
8745
OPC_EmitRegister, MVT::i32, 0 ,
8746
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i64), 0,
8747
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
8749
75|128,1, ARMISD::VSHRu,
8753
OPC_CheckOpcode, ISD::Constant,
8757
OPC_SwitchType , 22, MVT::v8i8,
8758
OPC_CheckPatternPredicate, 3,
8759
OPC_EmitConvertToTarget, 1,
8760
OPC_EmitInteger, MVT::i32, 14,
8761
OPC_EmitRegister, MVT::i32, 0 ,
8762
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i8), 0,
8763
1, MVT::v8i8, 5, 2, 0, 3, 4, 5,
8765
OPC_CheckPatternPredicate, 3,
8766
OPC_EmitConvertToTarget, 1,
8767
OPC_EmitInteger, MVT::i32, 14,
8768
OPC_EmitRegister, MVT::i32, 0 ,
8769
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i16), 0,
8770
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
8772
OPC_CheckPatternPredicate, 3,
8773
OPC_EmitConvertToTarget, 1,
8774
OPC_EmitInteger, MVT::i32, 14,
8775
OPC_EmitRegister, MVT::i32, 0 ,
8776
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i32), 0,
8777
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
8779
OPC_CheckPatternPredicate, 3,
8780
OPC_EmitConvertToTarget, 1,
8781
OPC_EmitInteger, MVT::i32, 14,
8782
OPC_EmitRegister, MVT::i32, 0 ,
8783
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv1i64), 0,
8784
1, MVT::v1i64, 5, 2, 0, 3, 4, 5,
8786
OPC_CheckPatternPredicate, 3,
8787
OPC_EmitConvertToTarget, 1,
8788
OPC_EmitInteger, MVT::i32, 14,
8789
OPC_EmitRegister, MVT::i32, 0 ,
8790
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv16i8), 0,
8791
1, MVT::v16i8, 5, 2, 0, 3, 4, 5,
8793
OPC_CheckPatternPredicate, 3,
8794
OPC_EmitConvertToTarget, 1,
8795
OPC_EmitInteger, MVT::i32, 14,
8796
OPC_EmitRegister, MVT::i32, 0 ,
8797
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i16), 0,
8798
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
8800
OPC_CheckPatternPredicate, 3,
8801
OPC_EmitConvertToTarget, 1,
8802
OPC_EmitInteger, MVT::i32, 14,
8803
OPC_EmitRegister, MVT::i32, 0 ,
8804
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i32), 0,
8805
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
8807
OPC_CheckPatternPredicate, 3,
8808
OPC_EmitConvertToTarget, 1,
8809
OPC_EmitInteger, MVT::i32, 14,
8810
OPC_EmitRegister, MVT::i32, 0 ,
8811
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i64), 0,
8812
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
8814
75|128,1, ARMISD::VRSHRs,
8818
OPC_CheckOpcode, ISD::Constant,
8822
OPC_SwitchType , 22, MVT::v8i8,
8823
OPC_CheckPatternPredicate, 3,
8824
OPC_EmitConvertToTarget, 1,
8825
OPC_EmitInteger, MVT::i32, 14,
8826
OPC_EmitRegister, MVT::i32, 0 ,
8827
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i8), 0,
8828
1, MVT::v8i8, 5, 2, 0, 3, 4, 5,
8830
OPC_CheckPatternPredicate, 3,
8831
OPC_EmitConvertToTarget, 1,
8832
OPC_EmitInteger, MVT::i32, 14,
8833
OPC_EmitRegister, MVT::i32, 0 ,
8834
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i16), 0,
8835
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
8837
OPC_CheckPatternPredicate, 3,
8838
OPC_EmitConvertToTarget, 1,
8839
OPC_EmitInteger, MVT::i32, 14,
8840
OPC_EmitRegister, MVT::i32, 0 ,
8841
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i32), 0,
8842
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
8844
OPC_CheckPatternPredicate, 3,
8845
OPC_EmitConvertToTarget, 1,
8846
OPC_EmitInteger, MVT::i32, 14,
8847
OPC_EmitRegister, MVT::i32, 0 ,
8848
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv1i64), 0,
8849
1, MVT::v1i64, 5, 2, 0, 3, 4, 5,
8851
OPC_CheckPatternPredicate, 3,
8852
OPC_EmitConvertToTarget, 1,
8853
OPC_EmitInteger, MVT::i32, 14,
8854
OPC_EmitRegister, MVT::i32, 0 ,
8855
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv16i8), 0,
8856
1, MVT::v16i8, 5, 2, 0, 3, 4, 5,
8858
OPC_CheckPatternPredicate, 3,
8859
OPC_EmitConvertToTarget, 1,
8860
OPC_EmitInteger, MVT::i32, 14,
8861
OPC_EmitRegister, MVT::i32, 0 ,
8862
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i16), 0,
8863
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
8865
OPC_CheckPatternPredicate, 3,
8866
OPC_EmitConvertToTarget, 1,
8867
OPC_EmitInteger, MVT::i32, 14,
8868
OPC_EmitRegister, MVT::i32, 0 ,
8869
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i32), 0,
8870
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
8872
OPC_CheckPatternPredicate, 3,
8873
OPC_EmitConvertToTarget, 1,
8874
OPC_EmitInteger, MVT::i32, 14,
8875
OPC_EmitRegister, MVT::i32, 0 ,
8876
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i64), 0,
8877
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
8879
75|128,1, ARMISD::VRSHRu,
8883
OPC_CheckOpcode, ISD::Constant,
8887
OPC_SwitchType , 22, MVT::v8i8,
8888
OPC_CheckPatternPredicate, 3,
8889
OPC_EmitConvertToTarget, 1,
8890
OPC_EmitInteger, MVT::i32, 14,
8891
OPC_EmitRegister, MVT::i32, 0 ,
8892
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i8), 0,
8893
1, MVT::v8i8, 5, 2, 0, 3, 4, 5,
8895
OPC_CheckPatternPredicate, 3,
8896
OPC_EmitConvertToTarget, 1,
8897
OPC_EmitInteger, MVT::i32, 14,
8898
OPC_EmitRegister, MVT::i32, 0 ,
8899
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i16), 0,
8900
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
8902
OPC_CheckPatternPredicate, 3,
8903
OPC_EmitConvertToTarget, 1,
8904
OPC_EmitInteger, MVT::i32, 14,
8905
OPC_EmitRegister, MVT::i32, 0 ,
8906
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i32), 0,
8907
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
8909
OPC_CheckPatternPredicate, 3,
8910
OPC_EmitConvertToTarget, 1,
8911
OPC_EmitInteger, MVT::i32, 14,
8912
OPC_EmitRegister, MVT::i32, 0 ,
8913
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv1i64), 0,
8914
1, MVT::v1i64, 5, 2, 0, 3, 4, 5,
8916
OPC_CheckPatternPredicate, 3,
8917
OPC_EmitConvertToTarget, 1,
8918
OPC_EmitInteger, MVT::i32, 14,
8919
OPC_EmitRegister, MVT::i32, 0 ,
8920
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv16i8), 0,
8921
1, MVT::v16i8, 5, 2, 0, 3, 4, 5,
8923
OPC_CheckPatternPredicate, 3,
8924
OPC_EmitConvertToTarget, 1,
8925
OPC_EmitInteger, MVT::i32, 14,
8926
OPC_EmitRegister, MVT::i32, 0 ,
8927
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i16), 0,
8928
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
8930
OPC_CheckPatternPredicate, 3,
8931
OPC_EmitConvertToTarget, 1,
8932
OPC_EmitInteger, MVT::i32, 14,
8933
OPC_EmitRegister, MVT::i32, 0 ,
8934
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i32), 0,
8935
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
8937
OPC_CheckPatternPredicate, 3,
8938
OPC_EmitConvertToTarget, 1,
8939
OPC_EmitInteger, MVT::i32, 14,
8940
OPC_EmitRegister, MVT::i32, 0 ,
8941
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i64), 0,
8942
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
8949
OPC_CheckOpcode, ISD::MUL,
8952
OPC_CheckPredicate, 10,
8956
OPC_CheckPredicate, 10,
8959
OPC_CheckType, MVT::i32,
8960
OPC_CheckPatternPredicate, 7,
8961
OPC_EmitInteger, MVT::i32, 14,
8962
OPC_EmitRegister, MVT::i32, 0 ,
8963
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
8964
1, MVT::i32, 5, 1, 2, 0, 3, 4,
8968
OPC_CheckOpcode, ISD::Constant,
8969
OPC_CheckPredicate, 11,
8971
OPC_CheckType, MVT::i32,
8972
OPC_CheckPatternPredicate, 2,
8973
OPC_EmitConvertToTarget, 1,
8974
OPC_EmitNodeXForm, 10, 2,
8975
OPC_EmitInteger, MVT::i32, 14,
8976
OPC_EmitRegister, MVT::i32, 0 ,
8977
OPC_EmitRegister, MVT::i32, 0 ,
8978
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
8979
1, MVT::i32, 5, 0, 3, 4, 5, 6,
8983
OPC_CheckOpcode, ISD::MUL,
8986
OPC_CheckPredicate, 10,
8990
OPC_CheckPredicate, 10,
8994
OPC_CheckType, MVT::i32,
8995
OPC_CheckPatternPredicate, 7,
8996
OPC_EmitInteger, MVT::i32, 14,
8997
OPC_EmitRegister, MVT::i32, 0 ,
8998
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
8999
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9002
OPC_Scope, 60|128,4,
9005
OPC_CheckOpcode, ISD::Constant,
9007
OPC_CheckPredicate, 5,
9009
OPC_CheckType, MVT::i32,
9010
OPC_CheckPatternPredicate, 5,
9011
OPC_EmitConvertToTarget, 1,
9012
OPC_EmitInteger, MVT::i32, 14,
9013
OPC_EmitRegister, MVT::i32, 0 ,
9014
OPC_EmitRegister, MVT::i32, 0 ,
9015
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDri), 0,
9016
1, MVT::i32, 5, 0, 2, 3, 4, 5,
9018
OPC_CheckPredicate, 12,
9020
OPC_CheckType, MVT::i32,
9021
OPC_CheckPatternPredicate, 5,
9022
OPC_EmitConvertToTarget, 1,
9023
OPC_EmitNodeXForm, 11, 2,
9024
OPC_EmitInteger, MVT::i32, 14,
9025
OPC_EmitRegister, MVT::i32, 0 ,
9026
OPC_EmitRegister, MVT::i32, 0 ,
9027
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
9028
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9030
OPC_CheckPredicate, 13,
9032
OPC_CheckType, MVT::i32,
9033
OPC_CheckPatternPredicate, 6,
9034
OPC_EmitRegister, MVT::i32, ARM::CPSR,
9035
OPC_EmitConvertToTarget, 1,
9036
OPC_EmitInteger, MVT::i32, 14,
9037
OPC_EmitRegister, MVT::i32, 0 ,
9038
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi3), 0,
9039
1, MVT::i32, 5, 2, 0, 3, 4, 5,
9041
OPC_CheckPredicate, 14,
9043
OPC_CheckType, MVT::i32,
9044
OPC_CheckPatternPredicate, 6,
9045
OPC_EmitRegister, MVT::i32, ARM::CPSR,
9046
OPC_EmitConvertToTarget, 1,
9047
OPC_EmitInteger, MVT::i32, 14,
9048
OPC_EmitRegister, MVT::i32, 0 ,
9049
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi8), 0,
9050
1, MVT::i32, 5, 2, 0, 3, 4, 5,
9052
OPC_CheckPredicate, 15,
9054
OPC_CheckType, MVT::i32,
9055
OPC_CheckPatternPredicate, 6,
9056
OPC_EmitRegister, MVT::i32, ARM::CPSR,
9057
OPC_EmitConvertToTarget, 1,
9058
OPC_EmitNodeXForm, 10, 3,
9059
OPC_EmitInteger, MVT::i32, 14,
9060
OPC_EmitRegister, MVT::i32, 0 ,
9061
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi3), 0,
9062
1, MVT::i32, 5, 2, 0, 4, 5, 6,
9064
OPC_CheckPredicate, 16,
9066
OPC_CheckType, MVT::i32,
9067
OPC_CheckPatternPredicate, 6,
9068
OPC_EmitRegister, MVT::i32, ARM::CPSR,
9069
OPC_EmitConvertToTarget, 1,
9070
OPC_EmitNodeXForm, 10, 3,
9071
OPC_EmitInteger, MVT::i32, 14,
9072
OPC_EmitRegister, MVT::i32, 0 ,
9073
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi8), 0,
9074
1, MVT::i32, 5, 2, 0, 4, 5, 6,
9076
OPC_CheckPredicate, 4,
9078
OPC_CheckType, MVT::i32,
9079
OPC_CheckPatternPredicate, 2,
9080
OPC_EmitConvertToTarget, 1,
9081
OPC_EmitInteger, MVT::i32, 14,
9082
OPC_EmitRegister, MVT::i32, 0 ,
9083
OPC_EmitRegister, MVT::i32, 0 ,
9084
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri), 0,
9085
1, MVT::i32, 5, 0, 2, 3, 4, 5,
9087
OPC_CheckPredicate, 17,
9089
OPC_CheckType, MVT::i32,
9090
OPC_CheckPatternPredicate, 2,
9091
OPC_EmitConvertToTarget, 1,
9092
OPC_EmitInteger, MVT::i32, 14,
9093
OPC_EmitRegister, MVT::i32, 0 ,
9094
OPC_EmitRegister, MVT::i32, 0 ,
9095
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri12), 0,
9096
1, MVT::i32, 5, 0, 2, 3, 4, 5,
9098
OPC_CheckPredicate, 18,
9100
OPC_CheckType, MVT::i32,
9101
OPC_CheckPatternPredicate, 2,
9102
OPC_EmitConvertToTarget, 1,
9103
OPC_EmitNodeXForm, 12, 2,
9104
OPC_EmitInteger, MVT::i32, 14,
9105
OPC_EmitRegister, MVT::i32, 0 ,
9106
OPC_EmitRegister, MVT::i32, 0 ,
9107
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
9108
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9110
OPC_CheckPredicate, 19,
9112
OPC_CheckType, MVT::i32,
9113
OPC_CheckPatternPredicate, 2,
9114
OPC_EmitConvertToTarget, 1,
9115
OPC_EmitNodeXForm, 10, 2,
9116
OPC_EmitInteger, MVT::i32, 14,
9117
OPC_EmitRegister, MVT::i32, 0 ,
9118
OPC_EmitRegister, MVT::i32, 0 ,
9119
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri12), 0,
9120
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9122
OPC_CheckPredicate, 7,
9124
OPC_CheckType, MVT::i32,
9125
OPC_CheckPatternPredicate, 5,
9126
OPC_EmitConvertToTarget, 1,
9127
OPC_EmitNodeXForm, 2, 2,
9128
OPC_EmitInteger, MVT::i32, 14,
9129
OPC_EmitRegister, MVT::i32, 0 ,
9130
OPC_EmitRegister, MVT::i32, 0 ,
9131
OPC_EmitNode, TARGET_OPCODE(ARM::ADDri), 0,
9132
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9133
OPC_EmitConvertToTarget, 1,
9134
OPC_EmitNodeXForm, 3, 8,
9135
OPC_EmitInteger, MVT::i32, 14,
9136
OPC_EmitRegister, MVT::i32, 0 ,
9137
OPC_EmitRegister, MVT::i32, 0 ,
9138
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDri), 0,
9139
1, MVT::i32, 5, 7, 9, 10, 11, 12,
9141
OPC_CheckPredicate, 20,
9143
OPC_CheckType, MVT::i32,
9144
OPC_CheckPatternPredicate, 5,
9145
OPC_EmitConvertToTarget, 1,
9146
OPC_EmitNodeXForm, 13, 2,
9147
OPC_EmitInteger, MVT::i32, 14,
9148
OPC_EmitRegister, MVT::i32, 0 ,
9149
OPC_EmitRegister, MVT::i32, 0 ,
9150
OPC_EmitNode, TARGET_OPCODE(ARM::SUBri), 0,
9151
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9152
OPC_EmitConvertToTarget, 1,
9153
OPC_EmitNodeXForm, 14, 8,
9154
OPC_EmitInteger, MVT::i32, 14,
9155
OPC_EmitRegister, MVT::i32, 0 ,
9156
OPC_EmitRegister, MVT::i32, 0 ,
9157
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
9158
1, MVT::i32, 5, 7, 9, 10, 11, 12,
9160
OPC_CheckPredicate, 8,
9162
OPC_CheckType, MVT::i32,
9163
OPC_CheckPatternPredicate, 2,
9164
OPC_EmitConvertToTarget, 1,
9165
OPC_EmitNodeXForm, 4, 2,
9166
OPC_EmitInteger, MVT::i32, 14,
9167
OPC_EmitRegister, MVT::i32, 0 ,
9168
OPC_EmitRegister, MVT::i32, 0 ,
9169
OPC_EmitNode, TARGET_OPCODE(ARM::t2ADDri), 0,
9170
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9171
OPC_EmitConvertToTarget, 1,
9172
OPC_EmitNodeXForm, 5, 8,
9173
OPC_EmitInteger, MVT::i32, 14,
9174
OPC_EmitRegister, MVT::i32, 0 ,
9175
OPC_EmitRegister, MVT::i32, 0 ,
9176
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri), 0,
9177
1, MVT::i32, 5, 7, 9, 10, 11, 12,
9179
OPC_CheckPredicate, 21,
9181
OPC_CheckType, MVT::i32,
9182
OPC_CheckPatternPredicate, 2,
9183
OPC_EmitConvertToTarget, 1,
9184
OPC_EmitNodeXForm, 15, 2,
9185
OPC_EmitInteger, MVT::i32, 14,
9186
OPC_EmitRegister, MVT::i32, 0 ,
9187
OPC_EmitRegister, MVT::i32, 0 ,
9188
OPC_EmitNode, TARGET_OPCODE(ARM::t2SUBri), 0,
9189
1, MVT::i32, 5, 0, 3, 4, 5, 6,
9190
OPC_EmitConvertToTarget, 1,
9191
OPC_EmitNodeXForm, 16, 8,
9192
OPC_EmitInteger, MVT::i32, 14,
9193
OPC_EmitRegister, MVT::i32, 0 ,
9194
OPC_EmitRegister, MVT::i32, 0 ,
9195
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
9196
1, MVT::i32, 5, 7, 9, 10, 11, 12,
9200
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9204
OPC_CheckValueType, MVT::i8,
9207
OPC_CheckType, MVT::i32,
9208
OPC_CheckPatternPredicate, 0,
9209
OPC_EmitInteger, MVT::i32, 14,
9210
OPC_EmitRegister, MVT::i32, 0 ,
9211
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr), 0,
9212
1, MVT::i32, 4, 0, 1, 2, 3,
9214
OPC_CheckValueType, MVT::i16,
9217
OPC_CheckType, MVT::i32,
9218
OPC_CheckPatternPredicate, 0,
9219
OPC_EmitInteger, MVT::i32, 14,
9220
OPC_EmitRegister, MVT::i32, 0 ,
9221
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr), 0,
9222
1, MVT::i32, 4, 0, 1, 2, 3,
9227
OPC_SwitchOpcode , 30, ISD::MUL,
9232
OPC_CheckType, MVT::i32,
9233
OPC_CheckPatternPredicate, 5,
9234
OPC_EmitInteger, MVT::i32, 14,
9235
OPC_EmitRegister, MVT::i32, 0 ,
9236
OPC_EmitRegister, MVT::i32, 0 ,
9237
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLA), 0,
9238
1, MVT::i32, 6, 0, 1, 2, 3, 4, 5,
9244
OPC_CheckType, MVT::i32,
9245
OPC_CheckPatternPredicate, 0,
9246
OPC_EmitInteger, MVT::i32, 14,
9247
OPC_EmitRegister, MVT::i32, 0 ,
9248
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLA), 0,
9249
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9254
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9258
OPC_CheckValueType, MVT::i8,
9261
OPC_CheckType, MVT::i32,
9262
OPC_CheckPatternPredicate, 2,
9263
OPC_EmitInteger, MVT::i32, 14,
9264
OPC_EmitRegister, MVT::i32, 0 ,
9265
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr), 0,
9266
1, MVT::i32, 4, 0, 1, 2, 3,
9268
OPC_CheckValueType, MVT::i16,
9271
OPC_CheckType, MVT::i32,
9272
OPC_CheckPatternPredicate, 2,
9273
OPC_EmitInteger, MVT::i32, 14,
9274
OPC_EmitRegister, MVT::i32, 0 ,
9275
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr), 0,
9276
1, MVT::i32, 4, 0, 1, 2, 3,
9280
OPC_SwitchOpcode , 26, ISD::MUL,
9285
OPC_CheckType, MVT::i32,
9286
OPC_CheckPatternPredicate, 2,
9287
OPC_EmitInteger, MVT::i32, 14,
9288
OPC_EmitRegister, MVT::i32, 0 ,
9289
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLA), 0,
9290
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9296
OPC_CheckType, MVT::i32,
9297
OPC_CheckPatternPredicate, 2,
9298
OPC_EmitInteger, MVT::i32, 14,
9299
OPC_EmitRegister, MVT::i32, 0 ,
9300
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLA), 0,
9301
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9306
OPC_CheckOpcode, ISD::MUL,
9310
OPC_SwitchType , 20, MVT::v8i8,
9311
OPC_CheckPatternPredicate, 3,
9312
OPC_EmitInteger, MVT::i32, 14,
9313
OPC_EmitRegister, MVT::i32, 0 ,
9314
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i8), 0,
9315
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
9317
OPC_CheckPatternPredicate, 3,
9318
OPC_EmitInteger, MVT::i32, 14,
9319
OPC_EmitRegister, MVT::i32, 0 ,
9320
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i16), 0,
9321
1, MVT::v4i16, 5, 0, 1, 2, 3, 4,
9323
OPC_CheckPatternPredicate, 3,
9324
OPC_EmitInteger, MVT::i32, 14,
9325
OPC_EmitRegister, MVT::i32, 0 ,
9326
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv2i32), 0,
9327
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
9329
OPC_CheckPatternPredicate, 3,
9330
OPC_EmitInteger, MVT::i32, 14,
9331
OPC_EmitRegister, MVT::i32, 0 ,
9332
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv16i8), 0,
9333
1, MVT::v16i8, 5, 0, 1, 2, 3, 4,
9335
OPC_CheckPatternPredicate, 3,
9336
OPC_EmitInteger, MVT::i32, 14,
9337
OPC_EmitRegister, MVT::i32, 0 ,
9338
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i16), 0,
9339
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
9341
OPC_CheckPatternPredicate, 3,
9342
OPC_EmitInteger, MVT::i32, 14,
9343
OPC_EmitRegister, MVT::i32, 0 ,
9344
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i32), 0,
9345
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
9349
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9353
OPC_CheckValueType, MVT::i8,
9357
OPC_CheckType, MVT::i32,
9358
OPC_CheckPatternPredicate, 0,
9359
OPC_EmitInteger, MVT::i32, 14,
9360
OPC_EmitRegister, MVT::i32, 0 ,
9361
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr), 0,
9362
1, MVT::i32, 4, 1, 0, 2, 3,
9364
OPC_CheckValueType, MVT::i16,
9368
OPC_CheckType, MVT::i32,
9369
OPC_CheckPatternPredicate, 0,
9370
OPC_EmitInteger, MVT::i32, 14,
9371
OPC_EmitRegister, MVT::i32, 0 ,
9372
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr), 0,
9373
1, MVT::i32, 4, 1, 0, 2, 3,
9378
OPC_SwitchOpcode , 29, ISD::MUL,
9382
OPC_CheckType, MVT::i32,
9383
OPC_CheckPatternPredicate, 5,
9384
OPC_EmitInteger, MVT::i32, 14,
9385
OPC_EmitRegister, MVT::i32, 0 ,
9386
OPC_EmitRegister, MVT::i32, 0 ,
9387
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLA), 0,
9388
1, MVT::i32, 6, 1, 2, 0, 3, 4, 5,
9393
OPC_CheckType, MVT::i32,
9394
OPC_CheckPatternPredicate, 0,
9395
OPC_EmitInteger, MVT::i32, 14,
9396
OPC_EmitRegister, MVT::i32, 0 ,
9397
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLA), 0,
9398
1, MVT::i32, 5, 1, 2, 0, 3, 4,
9402
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9406
OPC_CheckValueType, MVT::i8,
9410
OPC_CheckType, MVT::i32,
9411
OPC_CheckPatternPredicate, 2,
9412
OPC_EmitInteger, MVT::i32, 14,
9413
OPC_EmitRegister, MVT::i32, 0 ,
9414
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr), 0,
9415
1, MVT::i32, 4, 1, 0, 2, 3,
9417
OPC_CheckValueType, MVT::i16,
9421
OPC_CheckType, MVT::i32,
9422
OPC_CheckPatternPredicate, 2,
9423
OPC_EmitInteger, MVT::i32, 14,
9424
OPC_EmitRegister, MVT::i32, 0 ,
9425
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr), 0,
9426
1, MVT::i32, 4, 1, 0, 2, 3,
9431
OPC_SwitchOpcode , 25, ISD::MUL,
9435
OPC_CheckType, MVT::i32,
9436
OPC_CheckPatternPredicate, 2,
9437
OPC_EmitInteger, MVT::i32, 14,
9438
OPC_EmitRegister, MVT::i32, 0 ,
9439
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLA), 0,
9440
1, MVT::i32, 5, 1, 2, 0, 3, 4,
9445
OPC_CheckType, MVT::i32,
9446
OPC_CheckPatternPredicate, 2,
9447
OPC_EmitInteger, MVT::i32, 14,
9448
OPC_EmitRegister, MVT::i32, 0 ,
9449
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLA), 0,
9450
1, MVT::i32, 5, 1, 2, 0, 3, 4,
9454
OPC_CheckOpcode, ISD::MUL,
9459
OPC_SwitchType , 20, MVT::v8i8,
9460
OPC_CheckPatternPredicate, 3,
9461
OPC_EmitInteger, MVT::i32, 14,
9462
OPC_EmitRegister, MVT::i32, 0 ,
9463
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i8), 0,
9464
1, MVT::v8i8, 5, 2, 0, 1, 3, 4,
9466
OPC_CheckPatternPredicate, 3,
9467
OPC_EmitInteger, MVT::i32, 14,
9468
OPC_EmitRegister, MVT::i32, 0 ,
9469
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i16), 0,
9470
1, MVT::v4i16, 5, 2, 0, 1, 3, 4,
9472
OPC_CheckPatternPredicate, 3,
9473
OPC_EmitInteger, MVT::i32, 14,
9474
OPC_EmitRegister, MVT::i32, 0 ,
9475
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv2i32), 0,
9476
1, MVT::v2i32, 5, 2, 0, 1, 3, 4,
9478
OPC_CheckPatternPredicate, 3,
9479
OPC_EmitInteger, MVT::i32, 14,
9480
OPC_EmitRegister, MVT::i32, 0 ,
9481
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv16i8), 0,
9482
1, MVT::v16i8, 5, 2, 0, 1, 3, 4,
9484
OPC_CheckPatternPredicate, 3,
9485
OPC_EmitInteger, MVT::i32, 14,
9486
OPC_EmitRegister, MVT::i32, 0 ,
9487
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i16), 0,
9488
1, MVT::v8i16, 5, 2, 0, 1, 3, 4,
9490
OPC_CheckPatternPredicate, 3,
9491
OPC_EmitInteger, MVT::i32, 14,
9492
OPC_EmitRegister, MVT::i32, 0 ,
9493
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i32), 0,
9494
1, MVT::v4i32, 5, 2, 0, 1, 3, 4,
9499
OPC_SwitchType , 74, MVT::i32,
9501
OPC_CheckPatternPredicate, 5,
9502
OPC_EmitInteger, MVT::i32, 14,
9503
OPC_EmitRegister, MVT::i32, 0 ,
9504
OPC_EmitRegister, MVT::i32, 0 ,
9505
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrr), 0,
9506
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9508
OPC_CheckPatternPredicate, 6,
9509
OPC_EmitRegister, MVT::i32, ARM::CPSR,
9510
OPC_EmitInteger, MVT::i32, 14,
9511
OPC_EmitRegister, MVT::i32, 0 ,
9512
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDrr), 0,
9513
1, MVT::i32, 5, 2, 0, 1, 3, 4,
9515
OPC_CheckPatternPredicate, 2,
9516
OPC_EmitInteger, MVT::i32, 14,
9517
OPC_EmitRegister, MVT::i32, 0 ,
9518
OPC_EmitRegister, MVT::i32, 0 ,
9519
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrr), 0,
9520
1, MVT::i32, 5, 0, 1, 2, 3, 4,
9523
OPC_CheckPatternPredicate, 3,
9524
OPC_EmitInteger, MVT::i32, 14,
9525
OPC_EmitRegister, MVT::i32, 0 ,
9526
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv8i8), 0,
9527
1, MVT::v8i8, 4, 0, 1, 2, 3,
9529
OPC_CheckPatternPredicate, 3,
9530
OPC_EmitInteger, MVT::i32, 14,
9531
OPC_EmitRegister, MVT::i32, 0 ,
9532
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv4i16), 0,
9533
1, MVT::v4i16, 4, 0, 1, 2, 3,
9535
OPC_CheckPatternPredicate, 3,
9536
OPC_EmitInteger, MVT::i32, 14,
9537
OPC_EmitRegister, MVT::i32, 0 ,
9538
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv2i32), 0,
9539
1, MVT::v2i32, 4, 0, 1, 2, 3,
9541
OPC_CheckPatternPredicate, 3,
9542
OPC_EmitInteger, MVT::i32, 14,
9543
OPC_EmitRegister, MVT::i32, 0 ,
9544
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv16i8), 0,
9545
1, MVT::v16i8, 4, 0, 1, 2, 3,
9547
OPC_CheckPatternPredicate, 3,
9548
OPC_EmitInteger, MVT::i32, 14,
9549
OPC_EmitRegister, MVT::i32, 0 ,
9550
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv8i16), 0,
9551
1, MVT::v8i16, 4, 0, 1, 2, 3,
9553
OPC_CheckPatternPredicate, 3,
9554
OPC_EmitInteger, MVT::i32, 14,
9555
OPC_EmitRegister, MVT::i32, 0 ,
9556
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv4i32), 0,
9557
1, MVT::v4i32, 4, 0, 1, 2, 3,
9559
OPC_CheckPatternPredicate, 3,
9560
OPC_EmitInteger, MVT::i32, 14,
9561
OPC_EmitRegister, MVT::i32, 0 ,
9562
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv1i64), 0,
9563
1, MVT::v1i64, 4, 0, 1, 2, 3,
9565
OPC_CheckPatternPredicate, 3,
9566
OPC_EmitInteger, MVT::i32, 14,
9567
OPC_EmitRegister, MVT::i32, 0 ,
9568
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv2i64), 0,
9569
1, MVT::v2i64, 4, 0, 1, 2, 3,
9572
80|128,11, ISD::MUL,
9573
OPC_Scope, 50|128,4,
9575
OPC_SwitchOpcode , 65|128,3, ISD::SRA,
9578
OPC_CheckOpcode, ISD::SHL,
9581
OPC_CheckInteger, 16,
9582
OPC_CheckType, MVT::i32,
9586
OPC_CheckInteger, 16,
9587
OPC_CheckType, MVT::i32,
9591
OPC_CheckOpcode, ISD::SRA,
9594
OPC_CheckOpcode, ISD::SHL,
9597
OPC_CheckInteger, 16,
9598
OPC_CheckType, MVT::i32,
9602
OPC_CheckInteger, 16,
9603
OPC_CheckType, MVT::i32,
9606
OPC_CheckType, MVT::i32,
9607
OPC_CheckPatternPredicate, 7,
9608
OPC_EmitInteger, MVT::i32, 14,
9609
OPC_EmitRegister, MVT::i32, 0 ,
9611
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
9612
1, MVT::i32, 4, 0, 1, 2, 3,
9614
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
9615
1, MVT::i32, 4, 1, 0, 2, 3,
9620
OPC_CheckInteger, 16,
9621
OPC_CheckType, MVT::i32,
9624
OPC_CheckType, MVT::i32,
9625
OPC_CheckPatternPredicate, 7,
9626
OPC_EmitInteger, MVT::i32, 14,
9627
OPC_EmitRegister, MVT::i32, 0 ,
9628
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9629
1, MVT::i32, 4, 0, 1, 2, 3,
9634
OPC_CheckInteger, 16,
9635
OPC_CheckType, MVT::i32,
9639
OPC_CheckOpcode, ISD::SRA,
9641
OPC_CheckOpcode, ISD::SHL,
9644
OPC_CheckInteger, 16,
9645
OPC_CheckType, MVT::i32,
9649
OPC_CheckInteger, 16,
9650
OPC_CheckType, MVT::i32,
9653
OPC_CheckType, MVT::i32,
9654
OPC_CheckPatternPredicate, 7,
9655
OPC_EmitInteger, MVT::i32, 14,
9656
OPC_EmitRegister, MVT::i32, 0 ,
9658
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9659
1, MVT::i32, 4, 0, 1, 2, 3,
9661
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9662
1, MVT::i32, 4, 1, 0, 2, 3,
9666
OPC_CheckOpcode, ISD::SHL,
9669
OPC_CheckInteger, 16,
9670
OPC_CheckType, MVT::i32,
9674
OPC_CheckInteger, 16,
9675
OPC_CheckType, MVT::i32,
9679
OPC_CheckOpcode, ISD::SRA,
9682
OPC_CheckInteger, 16,
9683
OPC_CheckType, MVT::i32,
9686
OPC_CheckType, MVT::i32,
9687
OPC_CheckPatternPredicate, 7,
9688
OPC_EmitInteger, MVT::i32, 14,
9689
OPC_EmitRegister, MVT::i32, 0 ,
9690
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9691
1, MVT::i32, 4, 1, 0, 2, 3,
9695
OPC_CheckInteger, 16,
9696
OPC_CheckType, MVT::i32,
9700
OPC_SwitchOpcode , 93, ISD::SRA,
9703
OPC_CheckInteger, 16,
9704
OPC_CheckType, MVT::i32,
9707
OPC_CheckType, MVT::i32,
9709
OPC_CheckPatternPredicate, 7,
9710
OPC_EmitInteger, MVT::i32, 14,
9711
OPC_EmitRegister, MVT::i32, 0 ,
9712
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTT), 0,
9713
1, MVT::i32, 4, 0, 1, 2, 3,
9715
OPC_CheckPatternPredicate, 2,
9716
OPC_EmitInteger, MVT::i32, 14,
9717
OPC_EmitRegister, MVT::i32, 0 ,
9718
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTT), 0,
9719
1, MVT::i32, 4, 0, 1, 2, 3,
9721
OPC_CheckPatternPredicate, 7,
9722
OPC_EmitInteger, MVT::i32, 14,
9723
OPC_EmitRegister, MVT::i32, 0 ,
9724
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTT), 0,
9725
1, MVT::i32, 4, 1, 0, 2, 3,
9727
OPC_CheckPatternPredicate, 2,
9728
OPC_EmitInteger, MVT::i32, 14,
9729
OPC_EmitRegister, MVT::i32, 0 ,
9730
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTT), 0,
9731
1, MVT::i32, 4, 1, 0, 2, 3,
9733
91, ISD::SIGN_EXTEND_INREG,
9736
OPC_CheckValueType, MVT::i16,
9739
OPC_CheckType, MVT::i32,
9741
OPC_CheckPatternPredicate, 7,
9742
OPC_EmitInteger, MVT::i32, 14,
9743
OPC_EmitRegister, MVT::i32, 0 ,
9744
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9745
1, MVT::i32, 4, 0, 1, 2, 3,
9747
OPC_CheckPatternPredicate, 2,
9748
OPC_EmitInteger, MVT::i32, 14,
9749
OPC_EmitRegister, MVT::i32, 0 ,
9750
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTB), 0,
9751
1, MVT::i32, 4, 0, 1, 2, 3,
9753
OPC_CheckPatternPredicate, 7,
9754
OPC_EmitInteger, MVT::i32, 14,
9755
OPC_EmitRegister, MVT::i32, 0 ,
9756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9757
1, MVT::i32, 4, 1, 0, 2, 3,
9759
OPC_CheckPatternPredicate, 2,
9760
OPC_EmitInteger, MVT::i32, 14,
9761
OPC_EmitRegister, MVT::i32, 0 ,
9762
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBT), 0,
9763
1, MVT::i32, 4, 1, 0, 2, 3,
9767
104, ISD::SIGN_EXTEND_INREG,
9770
OPC_CheckValueType, MVT::i16,
9774
OPC_CheckOpcode, ISD::SRA,
9777
OPC_CheckInteger, 16,
9778
OPC_CheckType, MVT::i32,
9781
OPC_CheckType, MVT::i32,
9783
OPC_CheckPatternPredicate, 7,
9784
OPC_EmitInteger, MVT::i32, 14,
9785
OPC_EmitRegister, MVT::i32, 0 ,
9786
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9787
1, MVT::i32, 4, 0, 1, 2, 3,
9789
OPC_CheckPatternPredicate, 2,
9790
OPC_EmitInteger, MVT::i32, 14,
9791
OPC_EmitRegister, MVT::i32, 0 ,
9792
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBT), 0,
9793
1, MVT::i32, 4, 0, 1, 2, 3,
9795
OPC_CheckPatternPredicate, 7,
9796
OPC_EmitInteger, MVT::i32, 14,
9797
OPC_EmitRegister, MVT::i32, 0 ,
9798
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9799
1, MVT::i32, 4, 1, 0, 2, 3,
9801
OPC_CheckPatternPredicate, 2,
9802
OPC_EmitInteger, MVT::i32, 14,
9803
OPC_EmitRegister, MVT::i32, 0 ,
9804
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTB), 0,
9805
1, MVT::i32, 4, 1, 0, 2, 3,
9811
OPC_CheckPredicate, 10,
9814
OPC_CheckOpcode, ISD::SRA,
9817
OPC_CheckInteger, 16,
9818
OPC_CheckType, MVT::i32,
9821
OPC_CheckType, MVT::i32,
9822
OPC_CheckPatternPredicate, 7,
9823
OPC_EmitInteger, MVT::i32, 14,
9824
OPC_EmitRegister, MVT::i32, 0 ,
9825
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9826
1, MVT::i32, 4, 0, 1, 2, 3,
9829
OPC_CheckOpcode, ISD::SRA,
9832
OPC_CheckInteger, 16,
9833
OPC_CheckType, MVT::i32,
9838
OPC_CheckPredicate, 10,
9840
OPC_CheckType, MVT::i32,
9841
OPC_CheckPatternPredicate, 7,
9842
OPC_EmitInteger, MVT::i32, 14,
9843
OPC_EmitRegister, MVT::i32, 0 ,
9845
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9846
1, MVT::i32, 4, 0, 1, 2, 3,
9848
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
9849
1, MVT::i32, 4, 1, 0, 2, 3,
9854
OPC_CheckPredicate, 10,
9857
OPC_CheckOpcode, ISD::SRA,
9860
OPC_CheckInteger, 16,
9861
OPC_CheckType, MVT::i32,
9864
OPC_CheckType, MVT::i32,
9865
OPC_CheckPatternPredicate, 7,
9866
OPC_EmitInteger, MVT::i32, 14,
9867
OPC_EmitRegister, MVT::i32, 0 ,
9868
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
9869
1, MVT::i32, 4, 1, 0, 2, 3,
9872
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9875
OPC_CheckValueType, MVT::i16,
9879
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
9882
OPC_CheckValueType, MVT::i16,
9885
OPC_CheckType, MVT::i32,
9887
OPC_CheckPatternPredicate, 7,
9888
OPC_EmitInteger, MVT::i32, 14,
9889
OPC_EmitRegister, MVT::i32, 0 ,
9890
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
9891
1, MVT::i32, 4, 0, 1, 2, 3,
9893
OPC_CheckPatternPredicate, 2,
9894
OPC_EmitInteger, MVT::i32, 14,
9895
OPC_EmitRegister, MVT::i32, 0 ,
9896
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBB), 0,
9897
1, MVT::i32, 4, 0, 1, 2, 3,
9902
OPC_CheckOpcode, ARMISD::VDUPLANE,
9905
OPC_CheckChild0Type, MVT::v4i16,
9908
OPC_CheckOpcode, ISD::Constant,
9911
OPC_SwitchType , 22, MVT::v4i16,
9912
OPC_CheckPatternPredicate, 3,
9913
OPC_EmitConvertToTarget, 2,
9914
OPC_EmitInteger, MVT::i32, 14,
9915
OPC_EmitRegister, MVT::i32, 0 ,
9916
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i16), 0,
9917
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
9919
OPC_CheckPatternPredicate, 3,
9920
OPC_EmitConvertToTarget, 2,
9921
OPC_EmitInteger, MVT::i32, 14,
9922
OPC_EmitRegister, MVT::i32, 0 ,
9923
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
9924
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
9927
OPC_CheckChild0Type, MVT::v2i32,
9930
OPC_CheckOpcode, ISD::Constant,
9933
OPC_SwitchType , 22, MVT::v2i32,
9934
OPC_CheckPatternPredicate, 3,
9935
OPC_EmitConvertToTarget, 2,
9936
OPC_EmitInteger, MVT::i32, 14,
9937
OPC_EmitRegister, MVT::i32, 0 ,
9938
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv2i32), 0,
9939
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
9941
OPC_CheckPatternPredicate, 3,
9942
OPC_EmitConvertToTarget, 2,
9943
OPC_EmitInteger, MVT::i32, 14,
9944
OPC_EmitRegister, MVT::i32, 0 ,
9945
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
9946
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
9951
OPC_CheckOpcode, ARMISD::VDUPLANE,
9954
OPC_CheckChild0Type, MVT::v4i16,
9957
OPC_CheckOpcode, ISD::Constant,
9961
OPC_SwitchType , 22, MVT::v4i16,
9962
OPC_CheckPatternPredicate, 3,
9963
OPC_EmitConvertToTarget, 1,
9964
OPC_EmitInteger, MVT::i32, 14,
9965
OPC_EmitRegister, MVT::i32, 0 ,
9966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i16), 0,
9967
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
9969
OPC_CheckPatternPredicate, 3,
9970
OPC_EmitConvertToTarget, 1,
9971
OPC_EmitInteger, MVT::i32, 14,
9972
OPC_EmitRegister, MVT::i32, 0 ,
9973
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
9974
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
9977
OPC_CheckChild0Type, MVT::v2i32,
9980
OPC_CheckOpcode, ISD::Constant,
9984
OPC_SwitchType , 22, MVT::v2i32,
9985
OPC_CheckPatternPredicate, 3,
9986
OPC_EmitConvertToTarget, 1,
9987
OPC_EmitInteger, MVT::i32, 14,
9988
OPC_EmitRegister, MVT::i32, 0 ,
9989
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv2i32), 0,
9990
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
9992
OPC_CheckPatternPredicate, 3,
9993
OPC_EmitConvertToTarget, 1,
9994
OPC_EmitInteger, MVT::i32, 14,
9995
OPC_EmitRegister, MVT::i32, 0 ,
9996
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
9997
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
10003
OPC_CheckOpcode, ARMISD::VDUPLANE,
10006
OPC_CheckChild0Type, MVT::v8i16,
10009
OPC_CheckOpcode, ISD::Constant,
10012
OPC_CheckType, MVT::v8i16,
10013
OPC_EmitConvertToTarget, 2,
10014
OPC_EmitNodeXForm, 6, 3,
10015
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
10016
1, MVT::v4i16, 2, 1, 4,
10017
OPC_EmitConvertToTarget, 2,
10018
OPC_EmitNodeXForm, 7, 6,
10019
OPC_EmitInteger, MVT::i32, 14,
10020
OPC_EmitRegister, MVT::i32, 0 ,
10021
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
10022
1, MVT::v8i16, 5, 0, 5, 7, 8, 9,
10024
OPC_CheckChild0Type, MVT::v4i32,
10027
OPC_CheckOpcode, ISD::Constant,
10030
OPC_CheckType, MVT::v4i32,
10031
OPC_EmitConvertToTarget, 2,
10032
OPC_EmitNodeXForm, 8, 3,
10033
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
10034
1, MVT::v2i32, 2, 1, 4,
10035
OPC_EmitConvertToTarget, 2,
10036
OPC_EmitNodeXForm, 9, 6,
10037
OPC_EmitInteger, MVT::i32, 14,
10038
OPC_EmitRegister, MVT::i32, 0 ,
10039
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
10040
1, MVT::v4i32, 5, 0, 5, 7, 8, 9,
10044
OPC_CheckOpcode, ARMISD::VDUPLANE,
10047
OPC_CheckChild0Type, MVT::v8i16,
10050
OPC_CheckOpcode, ISD::Constant,
10054
OPC_CheckType, MVT::v8i16,
10055
OPC_EmitConvertToTarget, 1,
10056
OPC_EmitNodeXForm, 6, 3,
10057
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
10058
1, MVT::v4i16, 2, 0, 4,
10059
OPC_EmitConvertToTarget, 1,
10060
OPC_EmitNodeXForm, 7, 6,
10061
OPC_EmitInteger, MVT::i32, 14,
10062
OPC_EmitRegister, MVT::i32, 0 ,
10063
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
10064
1, MVT::v8i16, 5, 2, 5, 7, 8, 9,
10066
OPC_CheckChild0Type, MVT::v4i32,
10069
OPC_CheckOpcode, ISD::Constant,
10073
OPC_CheckType, MVT::v4i32,
10074
OPC_EmitConvertToTarget, 1,
10075
OPC_EmitNodeXForm, 8, 3,
10076
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
10077
1, MVT::v2i32, 2, 0, 4,
10078
OPC_EmitConvertToTarget, 1,
10079
OPC_EmitNodeXForm, 9, 6,
10080
OPC_EmitInteger, MVT::i32, 14,
10081
OPC_EmitRegister, MVT::i32, 0 ,
10082
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
10083
1, MVT::v4i32, 5, 2, 5, 7, 8, 9,
10089
OPC_CheckPredicate, 10,
10093
OPC_CheckPredicate, 10,
10095
OPC_CheckType, MVT::i32,
10096
OPC_CheckPatternPredicate, 7,
10097
OPC_EmitInteger, MVT::i32, 14,
10098
OPC_EmitRegister, MVT::i32, 0 ,
10099
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
10100
1, MVT::i32, 4, 0, 1, 2, 3,
10103
OPC_SwitchType , 70, MVT::i32,
10105
OPC_CheckPatternPredicate, 5,
10106
OPC_EmitInteger, MVT::i32, 14,
10107
OPC_EmitRegister, MVT::i32, 0 ,
10108
OPC_EmitRegister, MVT::i32, 0 ,
10109
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MUL), 0,
10110
1, MVT::i32, 5, 0, 1, 2, 3, 4,
10112
OPC_CheckPatternPredicate, 6,
10113
OPC_EmitRegister, MVT::i32, ARM::CPSR,
10114
OPC_EmitInteger, MVT::i32, 14,
10115
OPC_EmitRegister, MVT::i32, 0 ,
10116
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMUL), 0,
10117
1, MVT::i32, 5, 2, 0, 1, 3, 4,
10119
OPC_CheckPatternPredicate, 2,
10120
OPC_EmitInteger, MVT::i32, 14,
10121
OPC_EmitRegister, MVT::i32, 0 ,
10122
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MUL), 0,
10123
1, MVT::i32, 4, 0, 1, 2, 3,
10126
OPC_CheckPatternPredicate, 3,
10127
OPC_EmitInteger, MVT::i32, 14,
10128
OPC_EmitRegister, MVT::i32, 0 ,
10129
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv8i8), 0,
10130
1, MVT::v8i8, 4, 0, 1, 2, 3,
10132
OPC_CheckPatternPredicate, 3,
10133
OPC_EmitInteger, MVT::i32, 14,
10134
OPC_EmitRegister, MVT::i32, 0 ,
10135
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv4i16), 0,
10136
1, MVT::v4i16, 4, 0, 1, 2, 3,
10138
OPC_CheckPatternPredicate, 3,
10139
OPC_EmitInteger, MVT::i32, 14,
10140
OPC_EmitRegister, MVT::i32, 0 ,
10141
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv2i32), 0,
10142
1, MVT::v2i32, 4, 0, 1, 2, 3,
10144
OPC_CheckPatternPredicate, 3,
10145
OPC_EmitInteger, MVT::i32, 14,
10146
OPC_EmitRegister, MVT::i32, 0 ,
10147
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv16i8), 0,
10148
1, MVT::v16i8, 4, 0, 1, 2, 3,
10150
OPC_CheckPatternPredicate, 3,
10151
OPC_EmitInteger, MVT::i32, 14,
10152
OPC_EmitRegister, MVT::i32, 0 ,
10153
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv8i16), 0,
10154
1, MVT::v8i16, 4, 0, 1, 2, 3,
10156
OPC_CheckPatternPredicate, 3,
10157
OPC_EmitInteger, MVT::i32, 14,
10158
OPC_EmitRegister, MVT::i32, 0 ,
10159
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv4i32), 0,
10160
1, MVT::v4i32, 4, 0, 1, 2, 3,
10164
120|128,16, ISD::AND,
10165
OPC_Scope, 3|128,1,
10166
OPC_CheckAndImm, 127|128,1|128,124|128,7,
10168
OPC_SwitchOpcode , 59, ISD::SHL,
10171
OPC_CheckInteger, 8,
10172
OPC_CheckType, MVT::i32,
10175
OPC_CheckType, MVT::i32,
10177
OPC_CheckPatternPredicate, 0,
10178
OPC_EmitInteger, MVT::i32, 24,
10179
OPC_EmitInteger, MVT::i32, 14,
10180
OPC_EmitRegister, MVT::i32, 0 ,
10181
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
10182
1, MVT::i32, 4, 0, 1, 2, 3,
10184
OPC_CheckPatternPredicate, 2,
10185
OPC_EmitInteger, MVT::i32, 24,
10186
OPC_EmitInteger, MVT::i32, 14,
10187
OPC_EmitRegister, MVT::i32, 0 ,
10188
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
10189
1, MVT::i32, 4, 0, 1, 2, 3,
10194
OPC_CheckInteger, 8,
10195
OPC_CheckType, MVT::i32,
10198
OPC_CheckType, MVT::i32,
10200
OPC_CheckPatternPredicate, 0,
10201
OPC_EmitInteger, MVT::i32, 8,
10202
OPC_EmitInteger, MVT::i32, 14,
10203
OPC_EmitRegister, MVT::i32, 0 ,
10204
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
10205
1, MVT::i32, 4, 0, 1, 2, 3,
10207
OPC_CheckPatternPredicate, 2,
10208
OPC_EmitInteger, MVT::i32, 8,
10209
OPC_EmitInteger, MVT::i32, 14,
10210
OPC_EmitRegister, MVT::i32, 0 ,
10211
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
10212
1, MVT::i32, 4, 0, 1, 2, 3,
10216
OPC_CheckAndImm, 127|128,1,
10218
OPC_CheckOpcode, ISD::ROTR,
10222
OPC_CheckOpcode, ISD::Constant,
10223
OPC_CheckPredicate, 9,
10224
OPC_CheckType, MVT::i32,
10227
OPC_CheckType, MVT::i32,
10228
OPC_CheckPatternPredicate, 0,
10229
OPC_EmitConvertToTarget, 1,
10230
OPC_EmitInteger, MVT::i32, 14,
10231
OPC_EmitRegister, MVT::i32, 0 ,
10232
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTBr_rot), 0,
10233
1, MVT::i32, 4, 0, 2, 3, 4,
10235
OPC_CheckAndImm, 127|128,127|128,3,
10237
OPC_CheckOpcode, ISD::ROTR,
10241
OPC_CheckOpcode, ISD::Constant,
10242
OPC_CheckPredicate, 9,
10243
OPC_CheckType, MVT::i32,
10246
OPC_CheckType, MVT::i32,
10247
OPC_CheckPatternPredicate, 0,
10248
OPC_EmitConvertToTarget, 1,
10249
OPC_EmitInteger, MVT::i32, 14,
10250
OPC_EmitRegister, MVT::i32, 0 ,
10251
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTHr_rot), 0,
10252
1, MVT::i32, 4, 0, 2, 3, 4,
10254
OPC_CheckAndImm, 127|128,1|128,124|128,7,
10256
OPC_CheckOpcode, ISD::ROTR,
10260
OPC_CheckOpcode, ISD::Constant,
10261
OPC_CheckPredicate, 9,
10262
OPC_CheckType, MVT::i32,
10265
OPC_CheckType, MVT::i32,
10266
OPC_CheckPatternPredicate, 0,
10267
OPC_EmitConvertToTarget, 1,
10268
OPC_EmitInteger, MVT::i32, 14,
10269
OPC_EmitRegister, MVT::i32, 0 ,
10270
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
10271
1, MVT::i32, 4, 0, 2, 3, 4,
10273
OPC_CheckAndImm, 127|128,1,
10275
OPC_CheckOpcode, ISD::ROTR,
10279
OPC_CheckOpcode, ISD::Constant,
10280
OPC_CheckPredicate, 9,
10281
OPC_CheckType, MVT::i32,
10284
OPC_CheckType, MVT::i32,
10285
OPC_CheckPatternPredicate, 2,
10286
OPC_EmitConvertToTarget, 1,
10287
OPC_EmitInteger, MVT::i32, 14,
10288
OPC_EmitRegister, MVT::i32, 0 ,
10289
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTBr_rot), 0,
10290
1, MVT::i32, 4, 0, 2, 3, 4,
10292
OPC_CheckAndImm, 127|128,127|128,3,
10294
OPC_CheckOpcode, ISD::ROTR,
10298
OPC_CheckOpcode, ISD::Constant,
10299
OPC_CheckPredicate, 9,
10300
OPC_CheckType, MVT::i32,
10303
OPC_CheckType, MVT::i32,
10304
OPC_CheckPatternPredicate, 2,
10305
OPC_EmitConvertToTarget, 1,
10306
OPC_EmitInteger, MVT::i32, 14,
10307
OPC_EmitRegister, MVT::i32, 0 ,
10308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTHr_rot), 0,
10309
1, MVT::i32, 4, 0, 2, 3, 4,
10311
OPC_CheckAndImm, 127|128,1|128,124|128,7,
10313
OPC_CheckOpcode, ISD::ROTR,
10317
OPC_CheckOpcode, ISD::Constant,
10318
OPC_CheckPredicate, 9,
10319
OPC_CheckType, MVT::i32,
10322
OPC_CheckType, MVT::i32,
10323
OPC_CheckPatternPredicate, 2,
10324
OPC_EmitConvertToTarget, 1,
10325
OPC_EmitInteger, MVT::i32, 14,
10326
OPC_EmitRegister, MVT::i32, 0 ,
10327
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
10328
1, MVT::i32, 4, 0, 2, 3, 4,
10330
OPC_CheckAndImm, 127|128,1,
10332
OPC_CheckType, MVT::i32,
10333
OPC_CheckPatternPredicate, 0,
10334
OPC_EmitInteger, MVT::i32, 14,
10335
OPC_EmitRegister, MVT::i32, 0 ,
10336
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTBr), 0,
10337
1, MVT::i32, 3, 0, 1, 2,
10339
OPC_CheckAndImm, 127|128,127|128,3,
10341
OPC_CheckType, MVT::i32,
10342
OPC_CheckPatternPredicate, 0,
10343
OPC_EmitInteger, MVT::i32, 14,
10344
OPC_EmitRegister, MVT::i32, 0 ,
10345
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTHr), 0,
10346
1, MVT::i32, 3, 0, 1, 2,
10348
OPC_CheckAndImm, 127|128,1|128,124|128,7,
10350
OPC_CheckType, MVT::i32,
10351
OPC_CheckPatternPredicate, 0,
10352
OPC_EmitInteger, MVT::i32, 14,
10353
OPC_EmitRegister, MVT::i32, 0 ,
10354
OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r), 0,
10355
1, MVT::i32, 3, 0, 1, 2,
10357
OPC_CheckAndImm, 127|128,1,
10359
OPC_CheckType, MVT::i32,
10360
OPC_CheckPatternPredicate, 2,
10361
OPC_EmitInteger, MVT::i32, 14,
10362
OPC_EmitRegister, MVT::i32, 0 ,
10363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTBr), 0,
10364
1, MVT::i32, 3, 0, 1, 2,
10366
OPC_CheckAndImm, 127|128,127|128,3,
10368
OPC_CheckType, MVT::i32,
10369
OPC_CheckPatternPredicate, 2,
10370
OPC_EmitInteger, MVT::i32, 14,
10371
OPC_EmitRegister, MVT::i32, 0 ,
10372
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTHr), 0,
10373
1, MVT::i32, 3, 0, 1, 2,
10375
OPC_CheckAndImm, 127|128,1|128,124|128,7,
10377
OPC_CheckType, MVT::i32,
10378
OPC_CheckPatternPredicate, 2,
10379
OPC_EmitInteger, MVT::i32, 14,
10380
OPC_EmitRegister, MVT::i32, 0 ,
10381
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r), 0,
10382
1, MVT::i32, 3, 0, 1, 2,
10386
OPC_CheckOpcode, ISD::XOR,
10389
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10392
OPC_CheckType, MVT::i32,
10393
OPC_CheckPatternPredicate, 5,
10394
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
10395
OPC_EmitInteger, MVT::i32, 14,
10396
OPC_EmitRegister, MVT::i32, 0 ,
10397
OPC_EmitRegister, MVT::i32, 0 ,
10398
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrs), 0,
10399
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
10402
OPC_CheckOpcode, ISD::XOR,
10405
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10409
OPC_CheckType, MVT::i32,
10410
OPC_CheckPatternPredicate, 5,
10411
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
10412
OPC_EmitInteger, MVT::i32, 14,
10413
OPC_EmitRegister, MVT::i32, 0 ,
10414
OPC_EmitRegister, MVT::i32, 0 ,
10415
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrs), 0,
10416
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
10420
OPC_CheckOpcode, ISD::XOR,
10423
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10426
OPC_CheckType, MVT::i32,
10427
OPC_CheckPatternPredicate, 2,
10428
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
10429
OPC_EmitInteger, MVT::i32, 14,
10430
OPC_EmitRegister, MVT::i32, 0 ,
10431
OPC_EmitRegister, MVT::i32, 0 ,
10432
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrs), 0,
10433
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
10436
OPC_CheckOpcode, ISD::XOR,
10439
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10443
OPC_CheckType, MVT::i32,
10444
OPC_CheckPatternPredicate, 2,
10445
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
10446
OPC_EmitInteger, MVT::i32, 14,
10447
OPC_EmitRegister, MVT::i32, 0 ,
10448
OPC_EmitRegister, MVT::i32, 0 ,
10449
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrs), 0,
10450
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
10455
OPC_CheckType, MVT::i32,
10456
OPC_CheckPatternPredicate, 5,
10457
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
10458
OPC_EmitInteger, MVT::i32, 14,
10459
OPC_EmitRegister, MVT::i32, 0 ,
10460
OPC_EmitRegister, MVT::i32, 0 ,
10461
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrs), 0,
10462
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
10465
OPC_CheckOpcode, ISD::XOR,
10468
OPC_CheckOpcode, ISD::Constant,
10470
OPC_CheckPredicate, 5,
10473
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10476
OPC_CheckType, MVT::i32,
10477
OPC_CheckPatternPredicate, 5,
10478
OPC_EmitConvertToTarget, 1,
10479
OPC_EmitInteger, MVT::i32, 14,
10480
OPC_EmitRegister, MVT::i32, 0 ,
10481
OPC_EmitRegister, MVT::i32, 0 ,
10482
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
10483
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10485
OPC_CheckPredicate, 4,
10488
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10491
OPC_CheckType, MVT::i32,
10492
OPC_CheckPatternPredicate, 2,
10493
OPC_EmitConvertToTarget, 1,
10494
OPC_EmitInteger, MVT::i32, 14,
10495
OPC_EmitRegister, MVT::i32, 0 ,
10496
OPC_EmitRegister, MVT::i32, 0 ,
10497
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
10498
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10502
OPC_CheckType, MVT::i32,
10503
OPC_CheckPatternPredicate, 5,
10504
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
10505
OPC_EmitInteger, MVT::i32, 14,
10506
OPC_EmitRegister, MVT::i32, 0 ,
10507
OPC_EmitRegister, MVT::i32, 0 ,
10508
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrs), 0,
10509
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
10512
OPC_CheckOpcode, ISD::XOR,
10514
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10518
OPC_CheckOpcode, ISD::Constant,
10519
OPC_CheckPredicate, 5,
10522
OPC_CheckType, MVT::i32,
10523
OPC_CheckPatternPredicate, 5,
10524
OPC_EmitConvertToTarget, 1,
10525
OPC_EmitInteger, MVT::i32, 14,
10526
OPC_EmitRegister, MVT::i32, 0 ,
10527
OPC_EmitRegister, MVT::i32, 0 ,
10528
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
10529
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10533
OPC_CheckOpcode, ISD::XOR,
10537
OPC_CheckOpcode, ISD::Constant,
10538
OPC_CheckPredicate, 5,
10541
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10545
OPC_CheckType, MVT::i32,
10546
OPC_CheckPatternPredicate, 5,
10547
OPC_EmitConvertToTarget, 0,
10548
OPC_EmitInteger, MVT::i32, 14,
10549
OPC_EmitRegister, MVT::i32, 0 ,
10550
OPC_EmitRegister, MVT::i32, 0 ,
10551
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
10552
1, MVT::i32, 5, 1, 2, 3, 4, 5,
10555
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10559
OPC_CheckOpcode, ISD::Constant,
10560
OPC_CheckPredicate, 5,
10564
OPC_CheckType, MVT::i32,
10565
OPC_CheckPatternPredicate, 5,
10566
OPC_EmitConvertToTarget, 0,
10567
OPC_EmitInteger, MVT::i32, 14,
10568
OPC_EmitRegister, MVT::i32, 0 ,
10569
OPC_EmitRegister, MVT::i32, 0 ,
10570
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
10571
1, MVT::i32, 5, 1, 2, 3, 4, 5,
10576
OPC_CheckOpcode, ISD::XOR,
10578
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10582
OPC_CheckOpcode, ISD::Constant,
10583
OPC_CheckPredicate, 4,
10586
OPC_CheckType, MVT::i32,
10587
OPC_CheckPatternPredicate, 2,
10588
OPC_EmitConvertToTarget, 1,
10589
OPC_EmitInteger, MVT::i32, 14,
10590
OPC_EmitRegister, MVT::i32, 0 ,
10591
OPC_EmitRegister, MVT::i32, 0 ,
10592
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
10593
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10596
OPC_CheckOpcode, ISD::XOR,
10600
OPC_CheckOpcode, ISD::Constant,
10601
OPC_CheckPredicate, 4,
10604
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10608
OPC_CheckType, MVT::i32,
10609
OPC_CheckPatternPredicate, 2,
10610
OPC_EmitConvertToTarget, 0,
10611
OPC_EmitInteger, MVT::i32, 14,
10612
OPC_EmitRegister, MVT::i32, 0 ,
10613
OPC_EmitRegister, MVT::i32, 0 ,
10614
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
10615
1, MVT::i32, 5, 1, 2, 3, 4, 5,
10618
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10622
OPC_CheckOpcode, ISD::Constant,
10623
OPC_CheckPredicate, 4,
10627
OPC_CheckType, MVT::i32,
10628
OPC_CheckPatternPredicate, 2,
10629
OPC_EmitConvertToTarget, 0,
10630
OPC_EmitInteger, MVT::i32, 14,
10631
OPC_EmitRegister, MVT::i32, 0 ,
10632
OPC_EmitRegister, MVT::i32, 0 ,
10633
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
10634
1, MVT::i32, 5, 1, 2, 3, 4, 5,
10640
OPC_CheckType, MVT::i32,
10641
OPC_CheckPatternPredicate, 2,
10643
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
10644
OPC_EmitInteger, MVT::i32, 14,
10645
OPC_EmitRegister, MVT::i32, 0 ,
10646
OPC_EmitRegister, MVT::i32, 0 ,
10647
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrs), 0,
10648
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
10650
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
10651
OPC_EmitInteger, MVT::i32, 14,
10652
OPC_EmitRegister, MVT::i32, 0 ,
10653
OPC_EmitRegister, MVT::i32, 0 ,
10654
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrs), 0,
10655
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
10659
OPC_CheckOpcode, ISD::XOR,
10662
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10665
OPC_CheckType, MVT::i32,
10667
OPC_CheckPatternPredicate, 5,
10668
OPC_EmitInteger, MVT::i32, 14,
10669
OPC_EmitRegister, MVT::i32, 0 ,
10670
OPC_EmitRegister, MVT::i32, 0 ,
10671
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrr), 0,
10672
1, MVT::i32, 5, 0, 1, 2, 3, 4,
10674
OPC_CheckPatternPredicate, 6,
10675
OPC_EmitRegister, MVT::i32, ARM::CPSR,
10676
OPC_EmitInteger, MVT::i32, 14,
10677
OPC_EmitRegister, MVT::i32, 0 ,
10678
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBIC), 0,
10679
1, MVT::i32, 5, 2, 0, 1, 3, 4,
10681
OPC_CheckPatternPredicate, 2,
10682
OPC_EmitInteger, MVT::i32, 14,
10683
OPC_EmitRegister, MVT::i32, 0 ,
10684
OPC_EmitRegister, MVT::i32, 0 ,
10685
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrr), 0,
10686
1, MVT::i32, 5, 0, 1, 2, 3, 4,
10691
OPC_CheckOpcode, ISD::XOR,
10694
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
10698
OPC_CheckType, MVT::i32,
10700
OPC_CheckPatternPredicate, 5,
10701
OPC_EmitInteger, MVT::i32, 14,
10702
OPC_EmitRegister, MVT::i32, 0 ,
10703
OPC_EmitRegister, MVT::i32, 0 ,
10704
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrr), 0,
10705
1, MVT::i32, 5, 1, 0, 2, 3, 4,
10707
OPC_CheckPatternPredicate, 6,
10708
OPC_EmitRegister, MVT::i32, ARM::CPSR,
10709
OPC_EmitInteger, MVT::i32, 14,
10710
OPC_EmitRegister, MVT::i32, 0 ,
10711
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBIC), 0,
10712
1, MVT::i32, 5, 2, 1, 0, 3, 4,
10714
OPC_CheckPatternPredicate, 2,
10715
OPC_EmitInteger, MVT::i32, 14,
10716
OPC_EmitRegister, MVT::i32, 0 ,
10717
OPC_EmitRegister, MVT::i32, 0 ,
10718
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrr), 0,
10719
1, MVT::i32, 5, 1, 0, 2, 3, 4,
10724
OPC_CheckOpcode, ISD::XOR,
10728
OPC_CheckOpcode, ISD::BIT_CONVERT,
10729
OPC_CheckPredicate, 2,
10732
OPC_SwitchType , 19, MVT::v2i32,
10733
OPC_CheckPatternPredicate, 3,
10734
OPC_EmitInteger, MVT::i32, 14,
10735
OPC_EmitRegister, MVT::i32, 0 ,
10736
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
10737
1, MVT::v2i32, 4, 0, 1, 2, 3,
10739
OPC_CheckPatternPredicate, 3,
10740
OPC_EmitInteger, MVT::i32, 14,
10741
OPC_EmitRegister, MVT::i32, 0 ,
10742
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
10743
1, MVT::v4i32, 4, 0, 1, 2, 3,
10747
OPC_CheckOpcode, ISD::BIT_CONVERT,
10748
OPC_CheckPredicate, 2,
10752
OPC_CheckType, MVT::v2i32,
10753
OPC_CheckPatternPredicate, 3,
10754
OPC_EmitInteger, MVT::i32, 14,
10755
OPC_EmitRegister, MVT::i32, 0 ,
10756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
10757
1, MVT::v2i32, 4, 0, 1, 2, 3,
10761
OPC_CheckOpcode, ISD::XOR,
10765
OPC_CheckOpcode, ISD::BIT_CONVERT,
10766
OPC_CheckPredicate, 2,
10770
OPC_CheckType, MVT::v2i32,
10771
OPC_CheckPatternPredicate, 3,
10772
OPC_EmitInteger, MVT::i32, 14,
10773
OPC_EmitRegister, MVT::i32, 0 ,
10774
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
10775
1, MVT::v2i32, 4, 1, 0, 2, 3,
10778
OPC_CheckOpcode, ISD::BIT_CONVERT,
10779
OPC_CheckPredicate, 2,
10784
OPC_CheckType, MVT::v2i32,
10785
OPC_CheckPatternPredicate, 3,
10786
OPC_EmitInteger, MVT::i32, 14,
10787
OPC_EmitRegister, MVT::i32, 0 ,
10788
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
10789
1, MVT::v2i32, 4, 1, 0, 2, 3,
10794
OPC_CheckOpcode, ISD::XOR,
10796
OPC_CheckOpcode, ISD::BIT_CONVERT,
10797
OPC_CheckPredicate, 2,
10801
OPC_CheckType, MVT::v4i32,
10802
OPC_CheckPatternPredicate, 3,
10803
OPC_EmitInteger, MVT::i32, 14,
10804
OPC_EmitRegister, MVT::i32, 0 ,
10805
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
10806
1, MVT::v4i32, 4, 0, 1, 2, 3,
10809
OPC_CheckOpcode, ISD::XOR,
10813
OPC_CheckOpcode, ISD::BIT_CONVERT,
10814
OPC_CheckPredicate, 2,
10818
OPC_CheckType, MVT::v4i32,
10819
OPC_CheckPatternPredicate, 3,
10820
OPC_EmitInteger, MVT::i32, 14,
10821
OPC_EmitRegister, MVT::i32, 0 ,
10822
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
10823
1, MVT::v4i32, 4, 1, 0, 2, 3,
10826
OPC_CheckOpcode, ISD::BIT_CONVERT,
10827
OPC_CheckPredicate, 2,
10832
OPC_CheckType, MVT::v4i32,
10833
OPC_CheckPatternPredicate, 3,
10834
OPC_EmitInteger, MVT::i32, 14,
10835
OPC_EmitRegister, MVT::i32, 0 ,
10836
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
10837
1, MVT::v4i32, 4, 1, 0, 2, 3,
10840
OPC_CheckAndImm, 127|128,1,
10842
OPC_CheckType, MVT::i32,
10843
OPC_CheckPatternPredicate, 1,
10844
OPC_EmitInteger, MVT::i32, 14,
10845
OPC_EmitRegister, MVT::i32, 0 ,
10846
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tUXTB), 0,
10847
1, MVT::i32, 3, 0, 1, 2,
10849
OPC_CheckAndImm, 127|128,127|128,3,
10851
OPC_CheckType, MVT::i32,
10852
OPC_CheckPatternPredicate, 1,
10853
OPC_EmitInteger, MVT::i32, 14,
10854
OPC_EmitRegister, MVT::i32, 0 ,
10855
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tUXTH), 0,
10856
1, MVT::i32, 3, 0, 1, 2,
10860
OPC_Scope, 62|128,1,
10862
OPC_CheckOpcode, ISD::Constant,
10864
OPC_CheckPredicate, 5,
10866
OPC_CheckType, MVT::i32,
10867
OPC_CheckPatternPredicate, 5,
10868
OPC_EmitConvertToTarget, 1,
10869
OPC_EmitInteger, MVT::i32, 14,
10870
OPC_EmitRegister, MVT::i32, 0 ,
10871
OPC_EmitRegister, MVT::i32, 0 ,
10872
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDri), 0,
10873
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10875
OPC_CheckPredicate, 22,
10877
OPC_CheckType, MVT::i32,
10878
OPC_CheckPatternPredicate, 4,
10879
OPC_EmitConvertToTarget, 1,
10880
OPC_EmitInteger, MVT::i32, 14,
10881
OPC_EmitRegister, MVT::i32, 0 ,
10882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BFC), 0,
10883
1, MVT::i32, 4, 0, 2, 3, 4,
10885
OPC_CheckPredicate, 23,
10887
OPC_CheckType, MVT::i32,
10888
OPC_CheckPatternPredicate, 5,
10889
OPC_EmitConvertToTarget, 1,
10890
OPC_EmitNodeXForm, 17, 2,
10891
OPC_EmitInteger, MVT::i32, 14,
10892
OPC_EmitRegister, MVT::i32, 0 ,
10893
OPC_EmitRegister, MVT::i32, 0 ,
10894
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
10895
1, MVT::i32, 5, 0, 3, 4, 5, 6,
10897
OPC_CheckPredicate, 4,
10899
OPC_CheckType, MVT::i32,
10900
OPC_CheckPatternPredicate, 2,
10901
OPC_EmitConvertToTarget, 1,
10902
OPC_EmitInteger, MVT::i32, 14,
10903
OPC_EmitRegister, MVT::i32, 0 ,
10904
OPC_EmitRegister, MVT::i32, 0 ,
10905
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDri), 0,
10906
1, MVT::i32, 5, 0, 2, 3, 4, 5,
10908
OPC_CheckPredicate, 22,
10910
OPC_CheckType, MVT::i32,
10911
OPC_CheckPatternPredicate, 2,
10912
OPC_EmitConvertToTarget, 1,
10913
OPC_EmitInteger, MVT::i32, 14,
10914
OPC_EmitRegister, MVT::i32, 0 ,
10915
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BFC), 0,
10916
1, MVT::i32, 4, 0, 2, 3, 4,
10918
OPC_CheckPredicate, 6,
10920
OPC_CheckType, MVT::i32,
10921
OPC_CheckPatternPredicate, 2,
10922
OPC_EmitConvertToTarget, 1,
10923
OPC_EmitNodeXForm, 1, 2,
10924
OPC_EmitInteger, MVT::i32, 14,
10925
OPC_EmitRegister, MVT::i32, 0 ,
10926
OPC_EmitRegister, MVT::i32, 0 ,
10927
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
10928
1, MVT::i32, 5, 0, 3, 4, 5, 6,
10931
OPC_CheckType, MVT::i32,
10933
OPC_CheckPatternPredicate, 5,
10934
OPC_EmitInteger, MVT::i32, 14,
10935
OPC_EmitRegister, MVT::i32, 0 ,
10936
OPC_EmitRegister, MVT::i32, 0 ,
10937
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrr), 0,
10938
1, MVT::i32, 5, 0, 1, 2, 3, 4,
10940
OPC_CheckPatternPredicate, 6,
10941
OPC_EmitRegister, MVT::i32, ARM::CPSR,
10942
OPC_EmitInteger, MVT::i32, 14,
10943
OPC_EmitRegister, MVT::i32, 0 ,
10944
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tAND), 0,
10945
1, MVT::i32, 5, 2, 0, 1, 3, 4,
10947
OPC_CheckPatternPredicate, 2,
10948
OPC_EmitInteger, MVT::i32, 14,
10949
OPC_EmitRegister, MVT::i32, 0 ,
10950
OPC_EmitRegister, MVT::i32, 0 ,
10951
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrr), 0,
10952
1, MVT::i32, 5, 0, 1, 2, 3, 4,
10955
OPC_CheckType, MVT::v2i32,
10956
OPC_CheckPatternPredicate, 3,
10957
OPC_EmitInteger, MVT::i32, 14,
10958
OPC_EmitRegister, MVT::i32, 0 ,
10959
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VANDd), 0,
10960
1, MVT::v2i32, 4, 0, 1, 2, 3,
10962
OPC_CheckType, MVT::v4i32,
10963
OPC_CheckPatternPredicate, 3,
10964
OPC_EmitInteger, MVT::i32, 14,
10965
OPC_EmitRegister, MVT::i32, 0 ,
10966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VANDq), 0,
10967
1, MVT::v4i32, 4, 0, 1, 2, 3,
10970
112|128,3, ISD::SIGN_EXTEND_INREG,
10971
OPC_Scope, 85|128,2,
10973
OPC_SwitchOpcode , 80|128,1, ISD::OR,
10975
OPC_SwitchOpcode , 100, ISD::SRL,
10977
OPC_CheckAndImm, 0|128,126|128,3,
10981
OPC_CheckInteger, 8,
10982
OPC_CheckType, MVT::i32,
10986
OPC_CheckOpcode, ISD::SHL,
10991
OPC_CheckInteger, 8,
10992
OPC_CheckType, MVT::i32,
10997
OPC_CheckValueType, MVT::i16,
10999
OPC_CheckType, MVT::i32,
11001
OPC_CheckPatternPredicate, 0,
11002
OPC_EmitInteger, MVT::i32, 14,
11003
OPC_EmitRegister, MVT::i32, 0 ,
11004
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REVSH), 0,
11005
1, MVT::i32, 3, 0, 1, 2,
11007
OPC_CheckPatternPredicate, 1,
11008
OPC_EmitInteger, MVT::i32, 14,
11009
OPC_EmitRegister, MVT::i32, 0 ,
11010
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREVSH), 0,
11011
1, MVT::i32, 3, 0, 1, 2,
11013
OPC_CheckPatternPredicate, 2,
11014
OPC_EmitInteger, MVT::i32, 14,
11015
OPC_EmitRegister, MVT::i32, 0 ,
11016
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REVSH), 0,
11017
1, MVT::i32, 3, 0, 1, 2,
11022
OPC_CheckInteger, 8,
11023
OPC_CheckType, MVT::i32,
11027
OPC_CheckOpcode, ISD::SRL,
11029
OPC_CheckAndImm, 0|128,126|128,3,
11035
OPC_CheckInteger, 8,
11036
OPC_CheckType, MVT::i32,
11041
OPC_CheckValueType, MVT::i16,
11043
OPC_CheckType, MVT::i32,
11045
OPC_CheckPatternPredicate, 0,
11046
OPC_EmitInteger, MVT::i32, 14,
11047
OPC_EmitRegister, MVT::i32, 0 ,
11048
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REVSH), 0,
11049
1, MVT::i32, 3, 0, 1, 2,
11051
OPC_CheckPatternPredicate, 1,
11052
OPC_EmitInteger, MVT::i32, 14,
11053
OPC_EmitRegister, MVT::i32, 0 ,
11054
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREVSH), 0,
11055
1, MVT::i32, 3, 0, 1, 2,
11057
OPC_CheckPatternPredicate, 2,
11058
OPC_EmitInteger, MVT::i32, 14,
11059
OPC_EmitRegister, MVT::i32, 0 ,
11060
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REVSH), 0,
11061
1, MVT::i32, 3, 0, 1, 2,
11068
OPC_CheckOpcode, ISD::Constant,
11069
OPC_CheckPredicate, 9,
11070
OPC_CheckType, MVT::i32,
11075
OPC_CheckValueType, MVT::i8,
11077
OPC_CheckType, MVT::i32,
11078
OPC_CheckPatternPredicate, 0,
11079
OPC_EmitConvertToTarget, 1,
11080
OPC_EmitInteger, MVT::i32, 14,
11081
OPC_EmitRegister, MVT::i32, 0 ,
11082
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTBr_rot), 0,
11083
1, MVT::i32, 4, 0, 2, 3, 4,
11085
OPC_CheckValueType, MVT::i16,
11087
OPC_CheckType, MVT::i32,
11088
OPC_CheckPatternPredicate, 0,
11089
OPC_EmitConvertToTarget, 1,
11090
OPC_EmitInteger, MVT::i32, 14,
11091
OPC_EmitRegister, MVT::i32, 0 ,
11092
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTHr_rot), 0,
11093
1, MVT::i32, 4, 0, 2, 3, 4,
11095
OPC_CheckValueType, MVT::i8,
11097
OPC_CheckType, MVT::i32,
11098
OPC_CheckPatternPredicate, 2,
11099
OPC_EmitConvertToTarget, 1,
11100
OPC_EmitInteger, MVT::i32, 14,
11101
OPC_EmitRegister, MVT::i32, 0 ,
11102
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTBr_rot), 0,
11103
1, MVT::i32, 4, 0, 2, 3, 4,
11105
OPC_CheckValueType, MVT::i16,
11107
OPC_CheckType, MVT::i32,
11108
OPC_CheckPatternPredicate, 2,
11109
OPC_EmitConvertToTarget, 1,
11110
OPC_EmitInteger, MVT::i32, 14,
11111
OPC_EmitRegister, MVT::i32, 0 ,
11112
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTHr_rot), 0,
11113
1, MVT::i32, 4, 0, 2, 3, 4,
11120
OPC_CheckValueType, MVT::i8,
11122
OPC_CheckType, MVT::i32,
11123
OPC_CheckPatternPredicate, 0,
11124
OPC_EmitInteger, MVT::i32, 14,
11125
OPC_EmitRegister, MVT::i32, 0 ,
11126
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTBr), 0,
11127
1, MVT::i32, 3, 0, 1, 2,
11129
OPC_CheckValueType, MVT::i16,
11131
OPC_CheckType, MVT::i32,
11132
OPC_CheckPatternPredicate, 0,
11133
OPC_EmitInteger, MVT::i32, 14,
11134
OPC_EmitRegister, MVT::i32, 0 ,
11135
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTHr), 0,
11136
1, MVT::i32, 3, 0, 1, 2,
11138
OPC_CheckValueType, MVT::i8,
11140
OPC_CheckType, MVT::i32,
11141
OPC_CheckPatternPredicate, 1,
11142
OPC_EmitInteger, MVT::i32, 14,
11143
OPC_EmitRegister, MVT::i32, 0 ,
11144
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSXTB), 0,
11145
1, MVT::i32, 3, 0, 1, 2,
11147
OPC_CheckValueType, MVT::i16,
11149
OPC_CheckType, MVT::i32,
11150
OPC_CheckPatternPredicate, 1,
11151
OPC_EmitInteger, MVT::i32, 14,
11152
OPC_EmitRegister, MVT::i32, 0 ,
11153
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSXTH), 0,
11154
1, MVT::i32, 3, 0, 1, 2,
11156
OPC_CheckValueType, MVT::i8,
11158
OPC_CheckType, MVT::i32,
11159
OPC_CheckPatternPredicate, 2,
11160
OPC_EmitInteger, MVT::i32, 14,
11161
OPC_EmitRegister, MVT::i32, 0 ,
11162
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTBr), 0,
11163
1, MVT::i32, 3, 0, 1, 2,
11165
OPC_CheckValueType, MVT::i16,
11167
OPC_CheckType, MVT::i32,
11168
OPC_CheckPatternPredicate, 2,
11169
OPC_EmitInteger, MVT::i32, 14,
11170
OPC_EmitRegister, MVT::i32, 0 ,
11171
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTHr), 0,
11172
1, MVT::i32, 3, 0, 1, 2,
11175
117|128,4, ISD::SRA,
11176
OPC_Scope, 126|128,2,
11178
OPC_CheckOpcode, ISD::MUL,
11182
OPC_CheckOpcode, ISD::SRA,
11184
OPC_CheckOpcode, ISD::SHL,
11187
OPC_CheckInteger, 16,
11188
OPC_CheckType, MVT::i32,
11192
OPC_CheckInteger, 16,
11193
OPC_CheckType, MVT::i32,
11198
OPC_CheckInteger, 16,
11199
OPC_CheckType, MVT::i32,
11201
OPC_CheckType, MVT::i32,
11202
OPC_CheckPatternPredicate, 7,
11203
OPC_EmitInteger, MVT::i32, 14,
11204
OPC_EmitRegister, MVT::i32, 0 ,
11205
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11206
1, MVT::i32, 4, 0, 1, 2, 3,
11209
OPC_CheckOpcode, ISD::SRA,
11211
OPC_CheckOpcode, ISD::SHL,
11214
OPC_CheckInteger, 16,
11215
OPC_CheckType, MVT::i32,
11219
OPC_CheckInteger, 16,
11220
OPC_CheckType, MVT::i32,
11226
OPC_CheckInteger, 16,
11227
OPC_CheckType, MVT::i32,
11229
OPC_CheckType, MVT::i32,
11230
OPC_CheckPatternPredicate, 7,
11231
OPC_EmitInteger, MVT::i32, 14,
11232
OPC_EmitRegister, MVT::i32, 0 ,
11233
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11234
1, MVT::i32, 4, 1, 0, 2, 3,
11238
OPC_CheckOpcode, ISD::SRA,
11241
OPC_CheckInteger, 16,
11242
OPC_CheckType, MVT::i32,
11247
OPC_CheckInteger, 16,
11248
OPC_CheckType, MVT::i32,
11250
OPC_CheckType, MVT::i32,
11252
OPC_CheckPatternPredicate, 7,
11253
OPC_EmitInteger, MVT::i32, 14,
11254
OPC_EmitRegister, MVT::i32, 0 ,
11255
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWT), 0,
11256
1, MVT::i32, 4, 0, 1, 2, 3,
11258
OPC_CheckPatternPredicate, 2,
11259
OPC_EmitInteger, MVT::i32, 14,
11260
OPC_EmitRegister, MVT::i32, 0 ,
11261
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWT), 0,
11262
1, MVT::i32, 4, 0, 1, 2, 3,
11266
OPC_CheckOpcode, ISD::SRA,
11269
OPC_CheckInteger, 16,
11270
OPC_CheckType, MVT::i32,
11276
OPC_CheckInteger, 16,
11277
OPC_CheckType, MVT::i32,
11279
OPC_CheckType, MVT::i32,
11281
OPC_CheckPatternPredicate, 7,
11282
OPC_EmitInteger, MVT::i32, 14,
11283
OPC_EmitRegister, MVT::i32, 0 ,
11284
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWT), 0,
11285
1, MVT::i32, 4, 1, 0, 2, 3,
11287
OPC_CheckPatternPredicate, 2,
11288
OPC_EmitInteger, MVT::i32, 14,
11289
OPC_EmitRegister, MVT::i32, 0 ,
11290
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWT), 0,
11291
1, MVT::i32, 4, 1, 0, 2, 3,
11296
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
11299
OPC_CheckValueType, MVT::i16,
11304
OPC_CheckInteger, 16,
11305
OPC_CheckType, MVT::i32,
11307
OPC_CheckType, MVT::i32,
11309
OPC_CheckPatternPredicate, 7,
11310
OPC_EmitInteger, MVT::i32, 14,
11311
OPC_EmitRegister, MVT::i32, 0 ,
11312
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11313
1, MVT::i32, 4, 0, 1, 2, 3,
11315
OPC_CheckPatternPredicate, 2,
11316
OPC_EmitInteger, MVT::i32, 14,
11317
OPC_EmitRegister, MVT::i32, 0 ,
11318
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWB), 0,
11319
1, MVT::i32, 4, 0, 1, 2, 3,
11323
OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
11326
OPC_CheckValueType, MVT::i16,
11332
OPC_CheckInteger, 16,
11333
OPC_CheckType, MVT::i32,
11335
OPC_CheckType, MVT::i32,
11337
OPC_CheckPatternPredicate, 7,
11338
OPC_EmitInteger, MVT::i32, 14,
11339
OPC_EmitRegister, MVT::i32, 0 ,
11340
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11341
1, MVT::i32, 4, 1, 0, 2, 3,
11343
OPC_CheckPatternPredicate, 2,
11344
OPC_EmitInteger, MVT::i32, 14,
11345
OPC_EmitRegister, MVT::i32, 0 ,
11346
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWB), 0,
11347
1, MVT::i32, 4, 1, 0, 2, 3,
11352
OPC_CheckType, MVT::i32,
11353
OPC_CheckPatternPredicate, 5,
11354
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
11355
OPC_EmitInteger, MVT::i32, 14,
11356
OPC_EmitRegister, MVT::i32, 0 ,
11357
OPC_EmitRegister, MVT::i32, 0 ,
11358
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
11359
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
11362
OPC_CheckOpcode, ISD::MUL,
11367
OPC_CheckPredicate, 10,
11371
OPC_CheckInteger, 16,
11372
OPC_CheckType, MVT::i32,
11374
OPC_CheckType, MVT::i32,
11375
OPC_CheckPatternPredicate, 7,
11376
OPC_EmitInteger, MVT::i32, 14,
11377
OPC_EmitRegister, MVT::i32, 0 ,
11378
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11379
1, MVT::i32, 4, 0, 1, 2, 3,
11382
OPC_CheckPredicate, 10,
11387
OPC_CheckInteger, 16,
11388
OPC_CheckType, MVT::i32,
11390
OPC_CheckType, MVT::i32,
11391
OPC_CheckPatternPredicate, 7,
11392
OPC_EmitInteger, MVT::i32, 14,
11393
OPC_EmitRegister, MVT::i32, 0 ,
11394
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
11395
1, MVT::i32, 4, 1, 0, 2, 3,
11402
OPC_CheckOpcode, ISD::Constant,
11404
OPC_CheckPredicate, 24,
11405
OPC_CheckType, MVT::i32,
11407
OPC_CheckType, MVT::i32,
11408
OPC_CheckPatternPredicate, 2,
11409
OPC_EmitConvertToTarget, 1,
11410
OPC_EmitInteger, MVT::i32, 14,
11411
OPC_EmitRegister, MVT::i32, 0 ,
11412
OPC_EmitRegister, MVT::i32, 0 ,
11413
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ASRri), 0,
11414
1, MVT::i32, 5, 0, 2, 3, 4, 5,
11416
OPC_CheckType, MVT::i32,
11418
OPC_CheckType, MVT::i32,
11419
OPC_CheckPatternPredicate, 6,
11420
OPC_EmitRegister, MVT::i32, ARM::CPSR,
11421
OPC_EmitConvertToTarget, 1,
11422
OPC_EmitInteger, MVT::i32, 14,
11423
OPC_EmitRegister, MVT::i32, 0 ,
11424
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tASRri), 0,
11425
1, MVT::i32, 5, 2, 0, 3, 4, 5,
11428
OPC_CheckChild1Type, MVT::i32,
11429
OPC_CheckType, MVT::i32,
11431
OPC_CheckPatternPredicate, 6,
11432
OPC_EmitRegister, MVT::i32, ARM::CPSR,
11433
OPC_EmitInteger, MVT::i32, 14,
11434
OPC_EmitRegister, MVT::i32, 0 ,
11435
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tASRrr), 0,
11436
1, MVT::i32, 5, 2, 0, 1, 3, 4,
11438
OPC_CheckPatternPredicate, 2,
11439
OPC_EmitInteger, MVT::i32, 14,
11440
OPC_EmitRegister, MVT::i32, 0 ,
11441
OPC_EmitRegister, MVT::i32, 0 ,
11442
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ASRrr), 0,
11443
1, MVT::i32, 5, 0, 1, 2, 3, 4,
11447
17|128,1, ARMISD::BR_JT,
11451
OPC_SwitchOpcode , 47, ISD::LOAD,
11452
OPC_CheckPredicate, 25,
11453
OPC_CheckPredicate, 26,
11456
OPC_CheckFoldableChainNode,
11458
OPC_CheckChild1Type, MVT::i32,
11459
OPC_CheckType, MVT::i32,
11463
OPC_CheckOpcode, ISD::TargetJumpTable,
11467
OPC_CheckOpcode, ISD::Constant,
11469
OPC_CheckPatternPredicate, 5,
11470
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
11471
OPC_EmitMergeInputChains, 2, 0, 1,
11472
OPC_EmitConvertToTarget, 4,
11473
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTm), 0|OPFL_Chain|OPFL_MemRefs,
11474
0, 5, 5, 6, 7, 3, 8,
11478
OPC_CheckType, MVT::i32,
11482
OPC_CheckOpcode, ISD::TargetJumpTable,
11486
OPC_CheckOpcode, ISD::Constant,
11488
OPC_CheckPatternPredicate, 5,
11489
OPC_EmitMergeInputChains, 1, 0,
11490
OPC_EmitConvertToTarget, 4,
11491
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTadd), 0|OPFL_Chain,
11496
OPC_CheckChild1Type, MVT::i32,
11499
OPC_CheckOpcode, ISD::TargetJumpTable,
11503
OPC_CheckOpcode, ISD::Constant,
11506
OPC_CheckPatternPredicate, 5,
11507
OPC_EmitMergeInputChains, 1, 0,
11508
OPC_EmitConvertToTarget, 3,
11509
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTr), 0|OPFL_Chain,
11512
OPC_CheckPatternPredicate, 6,
11513
OPC_EmitMergeInputChains, 1, 0,
11514
OPC_EmitConvertToTarget, 3,
11515
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBR_JTr), 0|OPFL_Chain,
11519
94|128,20, ISD::LOAD,
11520
OPC_CheckPredicate, 25,
11522
OPC_CheckPredicate, 26,
11526
OPC_CheckChild1Type, MVT::i32,
11527
OPC_CheckType, MVT::i32,
11528
OPC_CheckPatternPredicate, 5,
11529
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
11530
OPC_EmitMergeInputChains, 1, 0,
11531
OPC_EmitInteger, MVT::i32, 14,
11532
OPC_EmitRegister, MVT::i32, 0 ,
11533
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDR), 0|OPFL_Chain|OPFL_MemRefs,
11534
1, MVT::i32, 4, 2, 3, 4, 5,
11536
OPC_CheckPredicate, 27,
11538
OPC_CheckPredicate, 28,
11542
OPC_CheckChild1Type, MVT::i32,
11543
OPC_CheckType, MVT::i32,
11544
OPC_CheckPatternPredicate, 5,
11545
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
11546
OPC_EmitMergeInputChains, 1, 0,
11547
OPC_EmitInteger, MVT::i32, 14,
11548
OPC_EmitRegister, MVT::i32, 0 ,
11549
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
11550
1, MVT::i32, 4, 2, 3, 4, 5,
11552
OPC_CheckPredicate, 29,
11556
OPC_CheckChild1Type, MVT::i32,
11557
OPC_CheckType, MVT::i32,
11558
OPC_CheckPatternPredicate, 5,
11559
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
11560
OPC_EmitMergeInputChains, 1, 0,
11561
OPC_EmitInteger, MVT::i32, 14,
11562
OPC_EmitRegister, MVT::i32, 0 ,
11563
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
11564
1, MVT::i32, 4, 2, 3, 4, 5,
11567
OPC_CheckPredicate, 30,
11569
OPC_CheckPredicate, 31,
11573
OPC_CheckChild1Type, MVT::i32,
11574
OPC_CheckType, MVT::i32,
11575
OPC_CheckPatternPredicate, 5,
11576
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
11577
OPC_EmitMergeInputChains, 1, 0,
11578
OPC_EmitInteger, MVT::i32, 14,
11579
OPC_EmitRegister, MVT::i32, 0 ,
11580
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
11581
1, MVT::i32, 4, 2, 3, 4, 5,
11583
OPC_CheckPredicate, 32,
11587
OPC_CheckChild1Type, MVT::i32,
11588
OPC_CheckType, MVT::i32,
11590
OPC_CheckPatternPredicate, 5,
11591
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
11592
OPC_EmitMergeInputChains, 1, 0,
11593
OPC_EmitInteger, MVT::i32, 14,
11594
OPC_EmitRegister, MVT::i32, 0 ,
11595
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
11596
1, MVT::i32, 4, 2, 3, 4, 5,
11598
OPC_CheckPatternPredicate, 6,
11599
OPC_CheckComplexPat, /*CP*/4, /*#*/1,
11600
OPC_EmitMergeInputChains, 1, 0,
11601
OPC_EmitInteger, MVT::i32, 14,
11602
OPC_EmitRegister, MVT::i32, 0 ,
11603
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
11604
1, MVT::i32, 4, 2, 3, 4, 5,
11607
OPC_CheckPredicate, 31,
11611
OPC_CheckChild1Type, MVT::i32,
11612
OPC_CheckType, MVT::i32,
11613
OPC_CheckPatternPredicate, 6,
11614
OPC_CheckComplexPat, /*CP*/4, /*#*/1,
11615
OPC_EmitMergeInputChains, 1, 0,
11616
OPC_EmitInteger, MVT::i32, 14,
11617
OPC_EmitRegister, MVT::i32, 0 ,
11618
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
11619
1, MVT::i32, 4, 2, 3, 4, 5,
11622
OPC_CheckPredicate, 26,
11626
OPC_CheckChild1Type, MVT::i32,
11627
OPC_CheckType, MVT::i32,
11628
OPC_CheckPatternPredicate, 5,
11629
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
11630
OPC_EmitMergeInputChains, 1, 0,
11631
OPC_EmitInteger, MVT::i32, 14,
11632
OPC_EmitRegister, MVT::i32, 0 ,
11633
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDR), 0|OPFL_Chain|OPFL_MemRefs,
11634
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11636
OPC_CheckPredicate, 27,
11638
OPC_CheckPredicate, 28,
11642
OPC_CheckChild1Type, MVT::i32,
11643
OPC_CheckType, MVT::i32,
11644
OPC_CheckPatternPredicate, 5,
11645
OPC_CheckComplexPat, /*CP*/5, /*#*/1,
11646
OPC_EmitMergeInputChains, 1, 0,
11647
OPC_EmitInteger, MVT::i32, 14,
11648
OPC_EmitRegister, MVT::i32, 0 ,
11649
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
11650
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11652
OPC_CheckPredicate, 29,
11656
OPC_CheckChild1Type, MVT::i32,
11657
OPC_CheckType, MVT::i32,
11658
OPC_CheckPatternPredicate, 5,
11659
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
11660
OPC_EmitMergeInputChains, 1, 0,
11661
OPC_EmitInteger, MVT::i32, 14,
11662
OPC_EmitRegister, MVT::i32, 0 ,
11663
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
11664
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11667
OPC_CheckPredicate, 30,
11669
OPC_CheckPredicate, 31,
11673
OPC_CheckChild1Type, MVT::i32,
11674
OPC_CheckType, MVT::i32,
11675
OPC_CheckPatternPredicate, 5,
11676
OPC_CheckComplexPat, /*CP*/5, /*#*/1,
11677
OPC_EmitMergeInputChains, 1, 0,
11678
OPC_EmitInteger, MVT::i32, 14,
11679
OPC_EmitRegister, MVT::i32, 0 ,
11680
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRSH), 0|OPFL_Chain|OPFL_MemRefs,
11681
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11683
OPC_CheckPredicate, 32,
11687
OPC_CheckChild1Type, MVT::i32,
11688
OPC_CheckType, MVT::i32,
11689
OPC_CheckPatternPredicate, 5,
11690
OPC_CheckComplexPat, /*CP*/5, /*#*/1,
11691
OPC_EmitMergeInputChains, 1, 0,
11692
OPC_EmitInteger, MVT::i32, 14,
11693
OPC_EmitRegister, MVT::i32, 0 ,
11694
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRSB), 0|OPFL_Chain|OPFL_MemRefs,
11695
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11698
OPC_CheckPredicate, 27,
11699
OPC_CheckPredicate, 33,
11703
OPC_CheckChild1Type, MVT::i32,
11704
OPC_CheckType, MVT::i32,
11705
OPC_CheckPatternPredicate, 5,
11706
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
11707
OPC_EmitMergeInputChains, 1, 0,
11708
OPC_EmitInteger, MVT::i32, 14,
11709
OPC_EmitRegister, MVT::i32, 0 ,
11710
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
11711
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11713
OPC_CheckPredicate, 34,
11715
OPC_CheckPredicate, 35,
11719
OPC_CheckChild1Type, MVT::i32,
11720
OPC_CheckType, MVT::i32,
11721
OPC_CheckPatternPredicate, 5,
11722
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
11723
OPC_EmitMergeInputChains, 1, 0,
11724
OPC_EmitInteger, MVT::i32, 14,
11725
OPC_EmitRegister, MVT::i32, 0 ,
11726
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
11727
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11729
OPC_CheckPredicate, 36,
11733
OPC_CheckChild1Type, MVT::i32,
11734
OPC_CheckType, MVT::i32,
11735
OPC_CheckPatternPredicate, 5,
11736
OPC_CheckComplexPat, /*CP*/2, /*#*/1,
11737
OPC_EmitMergeInputChains, 1, 0,
11738
OPC_EmitInteger, MVT::i32, 14,
11739
OPC_EmitRegister, MVT::i32, 0 ,
11740
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
11741
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11743
OPC_CheckPredicate, 37,
11747
OPC_CheckChild1Type, MVT::i32,
11748
OPC_CheckType, MVT::i32,
11749
OPC_CheckPatternPredicate, 5,
11750
OPC_CheckComplexPat, /*CP*/5, /*#*/1,
11751
OPC_EmitMergeInputChains, 1, 0,
11752
OPC_EmitInteger, MVT::i32, 14,
11753
OPC_EmitRegister, MVT::i32, 0 ,
11754
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
11755
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11758
OPC_CheckPredicate, 26,
11762
OPC_CheckChild1Type, MVT::i32,
11763
OPC_CheckType, MVT::i32,
11764
OPC_CheckPatternPredicate, 6,
11765
OPC_CheckComplexPat, /*CP*/6, /*#*/1,
11766
OPC_EmitMergeInputChains, 1, 0,
11767
OPC_EmitInteger, MVT::i32, 14,
11768
OPC_EmitRegister, MVT::i32, 0 ,
11769
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDR), 0|OPFL_Chain|OPFL_MemRefs,
11770
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11772
OPC_CheckPredicate, 27,
11774
OPC_CheckPredicate, 29,
11778
OPC_CheckChild1Type, MVT::i32,
11779
OPC_CheckType, MVT::i32,
11780
OPC_CheckPatternPredicate, 6,
11781
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
11782
OPC_EmitMergeInputChains, 1, 0,
11783
OPC_EmitInteger, MVT::i32, 14,
11784
OPC_EmitRegister, MVT::i32, 0 ,
11785
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
11786
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11788
OPC_CheckPredicate, 28,
11792
OPC_CheckChild1Type, MVT::i32,
11793
OPC_CheckType, MVT::i32,
11794
OPC_CheckPatternPredicate, 6,
11795
OPC_CheckComplexPat, /*CP*/8, /*#*/1,
11796
OPC_EmitMergeInputChains, 1, 0,
11797
OPC_EmitInteger, MVT::i32, 14,
11798
OPC_EmitRegister, MVT::i32, 0 ,
11799
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain|OPFL_MemRefs,
11800
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11802
OPC_CheckPredicate, 33,
11806
OPC_CheckChild1Type, MVT::i32,
11807
OPC_CheckType, MVT::i32,
11808
OPC_CheckPatternPredicate, 6,
11809
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
11810
OPC_EmitMergeInputChains, 1, 0,
11811
OPC_EmitInteger, MVT::i32, 14,
11812
OPC_EmitRegister, MVT::i32, 0 ,
11813
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
11814
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11817
OPC_CheckPredicate, 34,
11819
OPC_CheckPredicate, 35,
11823
OPC_CheckChild1Type, MVT::i32,
11824
OPC_CheckType, MVT::i32,
11825
OPC_CheckPatternPredicate, 6,
11826
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
11827
OPC_EmitMergeInputChains, 1, 0,
11828
OPC_EmitInteger, MVT::i32, 14,
11829
OPC_EmitRegister, MVT::i32, 0 ,
11830
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
11831
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11833
OPC_CheckPredicate, 36,
11837
OPC_CheckChild1Type, MVT::i32,
11838
OPC_CheckType, MVT::i32,
11839
OPC_CheckPatternPredicate, 6,
11840
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
11841
OPC_EmitMergeInputChains, 1, 0,
11842
OPC_EmitInteger, MVT::i32, 14,
11843
OPC_EmitRegister, MVT::i32, 0 ,
11844
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
11845
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11847
OPC_CheckPredicate, 37,
11851
OPC_CheckChild1Type, MVT::i32,
11852
OPC_CheckType, MVT::i32,
11853
OPC_CheckPatternPredicate, 6,
11854
OPC_CheckComplexPat, /*CP*/8, /*#*/1,
11855
OPC_EmitMergeInputChains, 1, 0,
11856
OPC_EmitInteger, MVT::i32, 14,
11857
OPC_EmitRegister, MVT::i32, 0 ,
11858
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain|OPFL_MemRefs,
11859
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11862
OPC_CheckPredicate, 26,
11866
OPC_CheckChild1Type, MVT::i32,
11867
OPC_CheckType, MVT::i32,
11868
OPC_CheckPatternPredicate, 2,
11869
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11870
OPC_EmitMergeInputChains, 1, 0,
11871
OPC_EmitInteger, MVT::i32, 14,
11872
OPC_EmitRegister, MVT::i32, 0 ,
11873
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRs), 0|OPFL_Chain|OPFL_MemRefs,
11874
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11876
OPC_CheckPredicate, 27,
11878
OPC_CheckPredicate, 28,
11882
OPC_CheckChild1Type, MVT::i32,
11883
OPC_CheckType, MVT::i32,
11884
OPC_CheckPatternPredicate, 2,
11885
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11886
OPC_EmitMergeInputChains, 1, 0,
11887
OPC_EmitInteger, MVT::i32, 14,
11888
OPC_EmitRegister, MVT::i32, 0 ,
11889
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
11890
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11892
OPC_CheckPredicate, 29,
11896
OPC_CheckChild1Type, MVT::i32,
11897
OPC_CheckType, MVT::i32,
11898
OPC_CheckPatternPredicate, 2,
11899
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11900
OPC_EmitMergeInputChains, 1, 0,
11901
OPC_EmitInteger, MVT::i32, 14,
11902
OPC_EmitRegister, MVT::i32, 0 ,
11903
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
11904
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11907
OPC_CheckPredicate, 30,
11909
OPC_CheckPredicate, 31,
11913
OPC_CheckChild1Type, MVT::i32,
11914
OPC_CheckType, MVT::i32,
11915
OPC_CheckPatternPredicate, 2,
11916
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11917
OPC_EmitMergeInputChains, 1, 0,
11918
OPC_EmitInteger, MVT::i32, 14,
11919
OPC_EmitRegister, MVT::i32, 0 ,
11920
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHs), 0|OPFL_Chain|OPFL_MemRefs,
11921
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11923
OPC_CheckPredicate, 32,
11927
OPC_CheckChild1Type, MVT::i32,
11928
OPC_CheckType, MVT::i32,
11929
OPC_CheckPatternPredicate, 2,
11930
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11931
OPC_EmitMergeInputChains, 1, 0,
11932
OPC_EmitInteger, MVT::i32, 14,
11933
OPC_EmitRegister, MVT::i32, 0 ,
11934
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBs), 0|OPFL_Chain|OPFL_MemRefs,
11935
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11938
OPC_CheckPredicate, 27,
11939
OPC_CheckPredicate, 33,
11943
OPC_CheckChild1Type, MVT::i32,
11944
OPC_CheckType, MVT::i32,
11945
OPC_CheckPatternPredicate, 2,
11946
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11947
OPC_EmitMergeInputChains, 1, 0,
11948
OPC_EmitInteger, MVT::i32, 14,
11949
OPC_EmitRegister, MVT::i32, 0 ,
11950
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
11951
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11953
OPC_CheckPredicate, 34,
11955
OPC_CheckPredicate, 35,
11959
OPC_CheckChild1Type, MVT::i32,
11960
OPC_CheckType, MVT::i32,
11961
OPC_CheckPatternPredicate, 2,
11962
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11963
OPC_EmitMergeInputChains, 1, 0,
11964
OPC_EmitInteger, MVT::i32, 14,
11965
OPC_EmitRegister, MVT::i32, 0 ,
11966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
11967
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11969
OPC_CheckPredicate, 36,
11973
OPC_CheckChild1Type, MVT::i32,
11974
OPC_CheckType, MVT::i32,
11975
OPC_CheckPatternPredicate, 2,
11976
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11977
OPC_EmitMergeInputChains, 1, 0,
11978
OPC_EmitInteger, MVT::i32, 14,
11979
OPC_EmitRegister, MVT::i32, 0 ,
11980
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
11981
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11983
OPC_CheckPredicate, 37,
11987
OPC_CheckChild1Type, MVT::i32,
11988
OPC_CheckType, MVT::i32,
11989
OPC_CheckPatternPredicate, 2,
11990
OPC_CheckComplexPat, /*CP*/9, /*#*/1,
11991
OPC_EmitMergeInputChains, 1, 0,
11992
OPC_EmitInteger, MVT::i32, 14,
11993
OPC_EmitRegister, MVT::i32, 0 ,
11994
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
11995
1, MVT::i32, 5, 2, 3, 4, 5, 6,
11998
OPC_CheckPredicate, 30,
12000
OPC_CheckPredicate, 32,
12004
OPC_CheckChild1Type, MVT::i32,
12005
OPC_CheckType, MVT::i32,
12006
OPC_CheckPatternPredicate, 1,
12007
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
12008
OPC_EmitMergeInputChains, 1, 0,
12009
OPC_EmitInteger, MVT::i32, 14,
12010
OPC_EmitRegister, MVT::i32, 0 ,
12011
OPC_EmitNode, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain,
12012
1, MVT::i32, 5, 2, 3, 4, 5, 6,
12013
OPC_EmitInteger, MVT::i32, 14,
12014
OPC_EmitRegister, MVT::i32, 0 ,
12015
OPC_EmitNode, TARGET_OPCODE(ARM::tSXTB), 0|OPFL_MemRefs,
12016
1, MVT::i32, 3, 7, 8, 9,
12017
OPC_CompleteMatch, 1, 10,
12020
OPC_CheckPredicate, 31,
12024
OPC_CheckChild1Type, MVT::i32,
12025
OPC_CheckType, MVT::i32,
12026
OPC_CheckPatternPredicate, 1,
12027
OPC_CheckComplexPat, /*CP*/8, /*#*/1,
12028
OPC_EmitMergeInputChains, 1, 0,
12029
OPC_EmitInteger, MVT::i32, 14,
12030
OPC_EmitRegister, MVT::i32, 0 ,
12031
OPC_EmitNode, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain,
12032
1, MVT::i32, 5, 2, 3, 4, 5, 6,
12033
OPC_EmitInteger, MVT::i32, 14,
12034
OPC_EmitRegister, MVT::i32, 0 ,
12035
OPC_EmitNode, TARGET_OPCODE(ARM::tSXTH), 0|OPFL_MemRefs,
12036
1, MVT::i32, 3, 7, 8, 9,
12037
OPC_CompleteMatch, 1, 10,
12040
OPC_CheckPredicate, 32,
12044
OPC_CheckChild1Type, MVT::i32,
12045
OPC_CheckType, MVT::i32,
12046
OPC_CheckPatternPredicate, 6,
12047
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
12048
OPC_EmitMergeInputChains, 1, 0,
12049
OPC_EmitRegister, MVT::i32, ARM::CPSR,
12050
OPC_EmitRegister, MVT::i32, ARM::CPSR,
12051
OPC_EmitInteger, MVT::i32, 14,
12052
OPC_EmitRegister, MVT::i32, 0 ,
12053
OPC_EmitNode, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain,
12054
1, MVT::i32, 5, 2, 3, 4, 7, 8,
12055
OPC_EmitInteger, MVT::i32, 24,
12056
OPC_EmitInteger, MVT::i32, 14,
12057
OPC_EmitRegister, MVT::i32, 0 ,
12058
OPC_EmitNode, TARGET_OPCODE(ARM::tLSLri), 0,
12059
1, MVT::i32, 5, 6, 9, 10, 11, 12,
12060
OPC_EmitInteger, MVT::i32, 24,
12061
OPC_EmitInteger, MVT::i32, 14,
12062
OPC_EmitRegister, MVT::i32, 0 ,
12063
OPC_EmitNode, TARGET_OPCODE(ARM::tASRri), 0|OPFL_MemRefs,
12064
1, MVT::i32, 5, 5, 13, 14, 15, 16,
12065
OPC_CompleteMatch, 1, 17,
12068
OPC_CheckPredicate, 31,
12072
OPC_CheckChild1Type, MVT::i32,
12073
OPC_CheckType, MVT::i32,
12074
OPC_CheckPatternPredicate, 6,
12075
OPC_CheckComplexPat, /*CP*/7, /*#*/1,
12076
OPC_EmitMergeInputChains, 1, 0,
12077
OPC_EmitRegister, MVT::i32, ARM::CPSR,
12078
OPC_EmitRegister, MVT::i32, ARM::CPSR,
12079
OPC_EmitInteger, MVT::i32, 14,
12080
OPC_EmitRegister, MVT::i32, 0 ,
12081
OPC_EmitNode, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain,
12082
1, MVT::i32, 5, 2, 3, 4, 7, 8,
12083
OPC_EmitInteger, MVT::i32, 16,
12084
OPC_EmitInteger, MVT::i32, 14,
12085
OPC_EmitRegister, MVT::i32, 0 ,
12086
OPC_EmitNode, TARGET_OPCODE(ARM::tLSLri), 0,
12087
1, MVT::i32, 5, 6, 9, 10, 11, 12,
12088
OPC_EmitInteger, MVT::i32, 16,
12089
OPC_EmitInteger, MVT::i32, 14,
12090
OPC_EmitRegister, MVT::i32, 0 ,
12091
OPC_EmitNode, TARGET_OPCODE(ARM::tASRri), 0|OPFL_MemRefs,
12092
1, MVT::i32, 5, 5, 13, 14, 15, 16,
12093
OPC_CompleteMatch, 1, 17,
12097
OPC_CheckPredicate, 34,
12099
OPC_CheckPredicate, 36,
12103
OPC_CheckChild1Type, MVT::i32,
12104
OPC_CheckType, MVT::i32,
12105
OPC_CheckPatternPredicate, 5,
12106
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
12107
OPC_EmitMergeInputChains, 1, 0,
12108
OPC_EmitInteger, MVT::i32, 14,
12109
OPC_EmitRegister, MVT::i32, 0 ,
12110
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
12111
1, MVT::i32, 4, 2, 3, 4, 5,
12113
OPC_CheckPredicate, 37,
12117
OPC_CheckChild1Type, MVT::i32,
12118
OPC_CheckType, MVT::i32,
12119
OPC_CheckPatternPredicate, 5,
12120
OPC_CheckComplexPat, /*CP*/3, /*#*/1,
12121
OPC_EmitMergeInputChains, 1, 0,
12122
OPC_EmitInteger, MVT::i32, 14,
12123
OPC_EmitRegister, MVT::i32, 0 ,
12124
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
12125
1, MVT::i32, 4, 2, 3, 4, 5,
12128
OPC_CheckPredicate, 26,
12132
OPC_CheckChild1Type, MVT::i32,
12133
OPC_CheckType, MVT::i32,
12135
OPC_CheckPatternPredicate, 6,
12136
OPC_CheckComplexPat, /*CP*/10, /*#*/1,
12137
OPC_EmitMergeInputChains, 1, 0,
12138
OPC_EmitInteger, MVT::i32, 14,
12139
OPC_EmitRegister, MVT::i32, 0 ,
12140
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
12141
1, MVT::i32, 4, 2, 3, 4, 5,
12143
OPC_CheckPatternPredicate, 2,
12145
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12146
OPC_EmitMergeInputChains, 1, 0,
12147
OPC_EmitInteger, MVT::i32, 14,
12148
OPC_EmitRegister, MVT::i32, 0 ,
12149
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
12150
1, MVT::i32, 4, 2, 3, 4, 5,
12152
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12153
OPC_EmitMergeInputChains, 1, 0,
12154
OPC_EmitInteger, MVT::i32, 14,
12155
OPC_EmitRegister, MVT::i32, 0 ,
12156
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRi8), 0|OPFL_Chain|OPFL_MemRefs,
12157
1, MVT::i32, 4, 2, 3, 4, 5,
12161
OPC_CheckPredicate, 27,
12163
OPC_CheckPredicate, 28,
12167
OPC_CheckChild1Type, MVT::i32,
12168
OPC_CheckType, MVT::i32,
12169
OPC_CheckPatternPredicate, 2,
12171
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12172
OPC_EmitMergeInputChains, 1, 0,
12173
OPC_EmitInteger, MVT::i32, 14,
12174
OPC_EmitRegister, MVT::i32, 0 ,
12175
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
12176
1, MVT::i32, 4, 2, 3, 4, 5,
12178
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12179
OPC_EmitMergeInputChains, 1, 0,
12180
OPC_EmitInteger, MVT::i32, 14,
12181
OPC_EmitRegister, MVT::i32, 0 ,
12182
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
12183
1, MVT::i32, 4, 2, 3, 4, 5,
12186
OPC_CheckPredicate, 29,
12190
OPC_CheckChild1Type, MVT::i32,
12191
OPC_CheckType, MVT::i32,
12192
OPC_CheckPatternPredicate, 2,
12194
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12195
OPC_EmitMergeInputChains, 1, 0,
12196
OPC_EmitInteger, MVT::i32, 14,
12197
OPC_EmitRegister, MVT::i32, 0 ,
12198
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
12199
1, MVT::i32, 4, 2, 3, 4, 5,
12201
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12202
OPC_EmitMergeInputChains, 1, 0,
12203
OPC_EmitInteger, MVT::i32, 14,
12204
OPC_EmitRegister, MVT::i32, 0 ,
12205
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
12206
1, MVT::i32, 4, 2, 3, 4, 5,
12210
OPC_CheckPredicate, 30,
12212
OPC_CheckPredicate, 31,
12216
OPC_CheckChild1Type, MVT::i32,
12217
OPC_CheckType, MVT::i32,
12218
OPC_CheckPatternPredicate, 2,
12220
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12221
OPC_EmitMergeInputChains, 1, 0,
12222
OPC_EmitInteger, MVT::i32, 14,
12223
OPC_EmitRegister, MVT::i32, 0 ,
12224
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHi12), 0|OPFL_Chain|OPFL_MemRefs,
12225
1, MVT::i32, 4, 2, 3, 4, 5,
12227
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12228
OPC_EmitMergeInputChains, 1, 0,
12229
OPC_EmitInteger, MVT::i32, 14,
12230
OPC_EmitRegister, MVT::i32, 0 ,
12231
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHi8), 0|OPFL_Chain|OPFL_MemRefs,
12232
1, MVT::i32, 4, 2, 3, 4, 5,
12235
OPC_CheckPredicate, 32,
12239
OPC_CheckChild1Type, MVT::i32,
12240
OPC_CheckType, MVT::i32,
12241
OPC_CheckPatternPredicate, 2,
12243
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12244
OPC_EmitMergeInputChains, 1, 0,
12245
OPC_EmitInteger, MVT::i32, 14,
12246
OPC_EmitRegister, MVT::i32, 0 ,
12247
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBi12), 0|OPFL_Chain|OPFL_MemRefs,
12248
1, MVT::i32, 4, 2, 3, 4, 5,
12250
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12251
OPC_EmitMergeInputChains, 1, 0,
12252
OPC_EmitInteger, MVT::i32, 14,
12253
OPC_EmitRegister, MVT::i32, 0 ,
12254
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBi8), 0|OPFL_Chain|OPFL_MemRefs,
12255
1, MVT::i32, 4, 2, 3, 4, 5,
12259
OPC_CheckPredicate, 27,
12260
OPC_CheckPredicate, 33,
12264
OPC_CheckChild1Type, MVT::i32,
12265
OPC_CheckType, MVT::i32,
12266
OPC_CheckPatternPredicate, 2,
12268
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12269
OPC_EmitMergeInputChains, 1, 0,
12270
OPC_EmitInteger, MVT::i32, 14,
12271
OPC_EmitRegister, MVT::i32, 0 ,
12272
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
12273
1, MVT::i32, 4, 2, 3, 4, 5,
12275
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12276
OPC_EmitMergeInputChains, 1, 0,
12277
OPC_EmitInteger, MVT::i32, 14,
12278
OPC_EmitRegister, MVT::i32, 0 ,
12279
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
12280
1, MVT::i32, 4, 2, 3, 4, 5,
12283
OPC_CheckPredicate, 34,
12285
OPC_CheckPredicate, 35,
12289
OPC_CheckChild1Type, MVT::i32,
12290
OPC_CheckType, MVT::i32,
12291
OPC_CheckPatternPredicate, 2,
12293
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12294
OPC_EmitMergeInputChains, 1, 0,
12295
OPC_EmitInteger, MVT::i32, 14,
12296
OPC_EmitRegister, MVT::i32, 0 ,
12297
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
12298
1, MVT::i32, 4, 2, 3, 4, 5,
12300
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12301
OPC_EmitMergeInputChains, 1, 0,
12302
OPC_EmitInteger, MVT::i32, 14,
12303
OPC_EmitRegister, MVT::i32, 0 ,
12304
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
12305
1, MVT::i32, 4, 2, 3, 4, 5,
12308
OPC_CheckPredicate, 36,
12312
OPC_CheckChild1Type, MVT::i32,
12313
OPC_CheckType, MVT::i32,
12314
OPC_CheckPatternPredicate, 2,
12316
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12317
OPC_EmitMergeInputChains, 1, 0,
12318
OPC_EmitInteger, MVT::i32, 14,
12319
OPC_EmitRegister, MVT::i32, 0 ,
12320
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
12321
1, MVT::i32, 4, 2, 3, 4, 5,
12323
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12324
OPC_EmitMergeInputChains, 1, 0,
12325
OPC_EmitInteger, MVT::i32, 14,
12326
OPC_EmitRegister, MVT::i32, 0 ,
12327
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
12328
1, MVT::i32, 4, 2, 3, 4, 5,
12331
OPC_CheckPredicate, 37,
12335
OPC_CheckChild1Type, MVT::i32,
12336
OPC_CheckType, MVT::i32,
12337
OPC_CheckPatternPredicate, 2,
12339
OPC_CheckComplexPat, /*CP*/11, /*#*/1,
12340
OPC_EmitMergeInputChains, 1, 0,
12341
OPC_EmitInteger, MVT::i32, 14,
12342
OPC_EmitRegister, MVT::i32, 0 ,
12343
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
12344
1, MVT::i32, 4, 2, 3, 4, 5,
12346
OPC_CheckComplexPat, /*CP*/12, /*#*/1,
12347
OPC_EmitMergeInputChains, 1, 0,
12348
OPC_EmitInteger, MVT::i32, 14,
12349
OPC_EmitRegister, MVT::i32, 0 ,
12350
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
12351
1, MVT::i32, 4, 2, 3, 4, 5,
12355
OPC_CheckPredicate, 26,
12360
OPC_CheckChild1Type, MVT::i32,
12361
OPC_SwitchType , 25, MVT::f64,
12362
OPC_CheckPatternPredicate, 8,
12363
OPC_CheckComplexPat, /*CP*/13, /*#*/1,
12364
OPC_EmitMergeInputChains, 1, 0,
12365
OPC_EmitInteger, MVT::i32, 14,
12366
OPC_EmitRegister, MVT::i32, 0 ,
12367
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRD), 0|OPFL_Chain|OPFL_MemRefs,
12368
1, MVT::f64, 4, 2, 3, 4, 5,
12370
OPC_CheckPatternPredicate, 8,
12371
OPC_CheckComplexPat, /*CP*/13, /*#*/1,
12372
OPC_EmitMergeInputChains, 1, 0,
12373
OPC_EmitInteger, MVT::i32, 14,
12374
OPC_EmitRegister, MVT::i32, 0 ,
12375
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
12376
1, MVT::f32, 4, 2, 3, 4, 5,
12378
OPC_CheckPatternPredicate, 3,
12379
OPC_CheckComplexPat, /*CP*/14, /*#*/1,
12380
OPC_EmitMergeInputChains, 1, 0,
12381
OPC_EmitInteger, MVT::i32, 14,
12382
OPC_EmitRegister, MVT::i32, 0 ,
12383
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRQ), 0|OPFL_Chain|OPFL_MemRefs,
12384
1, MVT::v2f64, 4, 2, 3, 4, 5,
12388
OPC_CheckOpcode, ARMISD::Wrapper,
12391
OPC_CheckOpcode, ISD::TargetConstantPool,
12394
OPC_CheckType, MVT::i32,
12396
OPC_CheckPatternPredicate, 6,
12397
OPC_EmitMergeInputChains, 1, 0,
12398
OPC_EmitInteger, MVT::i32, 14,
12399
OPC_EmitRegister, MVT::i32, 0 ,
12400
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRpci), 0|OPFL_Chain|OPFL_MemRefs,
12401
1, MVT::i32, 3, 1, 2, 3,
12403
OPC_CheckPatternPredicate, 2,
12404
OPC_EmitMergeInputChains, 1, 0,
12405
OPC_EmitInteger, MVT::i32, 14,
12406
OPC_EmitRegister, MVT::i32, 0 ,
12407
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRpci), 0|OPFL_Chain|OPFL_MemRefs,
12408
1, MVT::i32, 3, 1, 2, 3,
12412
OPC_CheckPredicate, 27,
12414
OPC_CheckPredicate, 28,
12418
OPC_CheckOpcode, ARMISD::Wrapper,
12421
OPC_CheckOpcode, ISD::TargetConstantPool,
12424
OPC_CheckType, MVT::i32,
12425
OPC_CheckPatternPredicate, 2,
12426
OPC_EmitMergeInputChains, 1, 0,
12427
OPC_EmitInteger, MVT::i32, 14,
12428
OPC_EmitRegister, MVT::i32, 0 ,
12429
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
12430
1, MVT::i32, 3, 1, 2, 3,
12432
OPC_CheckPredicate, 29,
12436
OPC_CheckOpcode, ARMISD::Wrapper,
12439
OPC_CheckOpcode, ISD::TargetConstantPool,
12442
OPC_CheckType, MVT::i32,
12443
OPC_CheckPatternPredicate, 2,
12444
OPC_EmitMergeInputChains, 1, 0,
12445
OPC_EmitInteger, MVT::i32, 14,
12446
OPC_EmitRegister, MVT::i32, 0 ,
12447
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
12448
1, MVT::i32, 3, 1, 2, 3,
12451
OPC_CheckPredicate, 30,
12453
OPC_CheckPredicate, 31,
12457
OPC_CheckOpcode, ARMISD::Wrapper,
12460
OPC_CheckOpcode, ISD::TargetConstantPool,
12463
OPC_CheckType, MVT::i32,
12464
OPC_CheckPatternPredicate, 2,
12465
OPC_EmitMergeInputChains, 1, 0,
12466
OPC_EmitInteger, MVT::i32, 14,
12467
OPC_EmitRegister, MVT::i32, 0 ,
12468
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHpci), 0|OPFL_Chain|OPFL_MemRefs,
12469
1, MVT::i32, 3, 1, 2, 3,
12471
OPC_CheckPredicate, 32,
12475
OPC_CheckOpcode, ARMISD::Wrapper,
12478
OPC_CheckOpcode, ISD::TargetConstantPool,
12481
OPC_CheckType, MVT::i32,
12482
OPC_CheckPatternPredicate, 2,
12483
OPC_EmitMergeInputChains, 1, 0,
12484
OPC_EmitInteger, MVT::i32, 14,
12485
OPC_EmitRegister, MVT::i32, 0 ,
12486
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBpci), 0|OPFL_Chain|OPFL_MemRefs,
12487
1, MVT::i32, 3, 1, 2, 3,
12490
OPC_CheckPredicate, 27,
12491
OPC_CheckPredicate, 33,
12495
OPC_CheckOpcode, ARMISD::Wrapper,
12498
OPC_CheckOpcode, ISD::TargetConstantPool,
12501
OPC_CheckType, MVT::i32,
12502
OPC_CheckPatternPredicate, 2,
12503
OPC_EmitMergeInputChains, 1, 0,
12504
OPC_EmitInteger, MVT::i32, 14,
12505
OPC_EmitRegister, MVT::i32, 0 ,
12506
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
12507
1, MVT::i32, 3, 1, 2, 3,
12509
OPC_CheckPredicate, 34,
12511
OPC_CheckPredicate, 35,
12515
OPC_CheckOpcode, ARMISD::Wrapper,
12518
OPC_CheckOpcode, ISD::TargetConstantPool,
12521
OPC_CheckType, MVT::i32,
12522
OPC_CheckPatternPredicate, 2,
12523
OPC_EmitMergeInputChains, 1, 0,
12524
OPC_EmitInteger, MVT::i32, 14,
12525
OPC_EmitRegister, MVT::i32, 0 ,
12526
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
12527
1, MVT::i32, 3, 1, 2, 3,
12529
OPC_CheckPredicate, 36,
12533
OPC_CheckOpcode, ARMISD::Wrapper,
12536
OPC_CheckOpcode, ISD::TargetConstantPool,
12539
OPC_CheckType, MVT::i32,
12540
OPC_CheckPatternPredicate, 2,
12541
OPC_EmitMergeInputChains, 1, 0,
12542
OPC_EmitInteger, MVT::i32, 14,
12543
OPC_EmitRegister, MVT::i32, 0 ,
12544
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
12545
1, MVT::i32, 3, 1, 2, 3,
12547
OPC_CheckPredicate, 37,
12551
OPC_CheckOpcode, ARMISD::Wrapper,
12554
OPC_CheckOpcode, ISD::TargetConstantPool,
12557
OPC_CheckType, MVT::i32,
12558
OPC_CheckPatternPredicate, 2,
12559
OPC_EmitMergeInputChains, 1, 0,
12560
OPC_EmitInteger, MVT::i32, 14,
12561
OPC_EmitRegister, MVT::i32, 0 ,
12562
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
12563
1, MVT::i32, 3, 1, 2, 3,
12566
44|128,10, ISD::STORE,
12567
OPC_Scope, 81|128,3,
12568
OPC_CheckPredicate, 38,
12570
OPC_CheckPredicate, 39,
12574
OPC_CheckChild1Type, MVT::i32,
12576
OPC_CheckChild2Type, MVT::i32,
12577
OPC_CheckPatternPredicate, 5,
12578
OPC_CheckComplexPat, /*CP*/3, /*#*/2,
12579
OPC_EmitMergeInputChains, 1, 0,
12580
OPC_EmitInteger, MVT::i32, 14,
12581
OPC_EmitRegister, MVT::i32, 0 ,
12582
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTR), 0|OPFL_Chain|OPFL_MemRefs,
12583
0, 5, 1, 3, 4, 5, 6,
12585
OPC_CheckPredicate, 40,
12587
OPC_CheckPredicate, 41,
12591
OPC_CheckChild1Type, MVT::i32,
12593
OPC_CheckChild2Type, MVT::i32,
12594
OPC_CheckPatternPredicate, 5,
12595
OPC_CheckComplexPat, /*CP*/3, /*#*/2,
12596
OPC_EmitMergeInputChains, 1, 0,
12597
OPC_EmitInteger, MVT::i32, 14,
12598
OPC_EmitRegister, MVT::i32, 0 ,
12599
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTRH), 0|OPFL_Chain|OPFL_MemRefs,
12600
0, 5, 1, 3, 4, 5, 6,
12602
OPC_CheckPredicate, 42,
12606
OPC_CheckChild1Type, MVT::i32,
12608
OPC_CheckChild2Type, MVT::i32,
12609
OPC_CheckPatternPredicate, 5,
12610
OPC_CheckComplexPat, /*CP*/3, /*#*/2,
12611
OPC_EmitMergeInputChains, 1, 0,
12612
OPC_EmitInteger, MVT::i32, 14,
12613
OPC_EmitRegister, MVT::i32, 0 ,
12614
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTRB), 0|OPFL_Chain|OPFL_MemRefs,
12615
0, 5, 1, 3, 4, 5, 6,
12618
OPC_CheckPredicate, 39,
12622
OPC_CheckChild1Type, MVT::i32,
12624
OPC_CheckChild2Type, MVT::i32,
12625
OPC_CheckPatternPredicate, 5,
12626
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
12627
OPC_EmitMergeInputChains, 1, 0,
12628
OPC_EmitInteger, MVT::i32, 14,
12629
OPC_EmitRegister, MVT::i32, 0 ,
12630
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR), 0|OPFL_Chain|OPFL_MemRefs,
12631
0, 6, 1, 3, 4, 5, 6, 7,
12633
OPC_CheckPredicate, 40,
12635
OPC_CheckPredicate, 41,
12639
OPC_CheckChild1Type, MVT::i32,
12641
OPC_CheckChild2Type, MVT::i32,
12642
OPC_CheckPatternPredicate, 5,
12643
OPC_CheckComplexPat, /*CP*/5, /*#*/2,
12644
OPC_EmitMergeInputChains, 1, 0,
12645
OPC_EmitInteger, MVT::i32, 14,
12646
OPC_EmitRegister, MVT::i32, 0 ,
12647
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH), 0|OPFL_Chain|OPFL_MemRefs,
12648
0, 6, 1, 3, 4, 5, 6, 7,
12650
OPC_CheckPredicate, 42,
12654
OPC_CheckChild1Type, MVT::i32,
12656
OPC_CheckChild2Type, MVT::i32,
12657
OPC_CheckPatternPredicate, 5,
12658
OPC_CheckComplexPat, /*CP*/2, /*#*/2,
12659
OPC_EmitMergeInputChains, 1, 0,
12660
OPC_EmitInteger, MVT::i32, 14,
12661
OPC_EmitRegister, MVT::i32, 0 ,
12662
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB), 0|OPFL_Chain|OPFL_MemRefs,
12663
0, 6, 1, 3, 4, 5, 6, 7,
12666
OPC_CheckPredicate, 39,
12670
OPC_CheckChild1Type, MVT::i32,
12672
OPC_CheckChild2Type, MVT::i32,
12673
OPC_CheckPatternPredicate, 6,
12674
OPC_CheckComplexPat, /*CP*/6, /*#*/2,
12675
OPC_EmitMergeInputChains, 1, 0,
12676
OPC_EmitInteger, MVT::i32, 14,
12677
OPC_EmitRegister, MVT::i32, 0 ,
12678
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTR), 0|OPFL_Chain|OPFL_MemRefs,
12679
0, 6, 1, 3, 4, 5, 6, 7,
12681
OPC_CheckPredicate, 40,
12683
OPC_CheckPredicate, 42,
12687
OPC_CheckChild1Type, MVT::i32,
12689
OPC_CheckChild2Type, MVT::i32,
12690
OPC_CheckPatternPredicate, 6,
12691
OPC_CheckComplexPat, /*CP*/7, /*#*/2,
12692
OPC_EmitMergeInputChains, 1, 0,
12693
OPC_EmitInteger, MVT::i32, 14,
12694
OPC_EmitRegister, MVT::i32, 0 ,
12695
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRB), 0|OPFL_Chain|OPFL_MemRefs,
12696
0, 6, 1, 3, 4, 5, 6, 7,
12698
OPC_CheckPredicate, 41,
12702
OPC_CheckChild1Type, MVT::i32,
12704
OPC_CheckChild2Type, MVT::i32,
12705
OPC_CheckPatternPredicate, 6,
12706
OPC_CheckComplexPat, /*CP*/8, /*#*/2,
12707
OPC_EmitMergeInputChains, 1, 0,
12708
OPC_EmitInteger, MVT::i32, 14,
12709
OPC_EmitRegister, MVT::i32, 0 ,
12710
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRH), 0|OPFL_Chain|OPFL_MemRefs,
12711
0, 6, 1, 3, 4, 5, 6, 7,
12714
OPC_CheckPredicate, 39,
12718
OPC_CheckChild1Type, MVT::i32,
12720
OPC_CheckChild2Type, MVT::i32,
12721
OPC_CheckPatternPredicate, 2,
12722
OPC_CheckComplexPat, /*CP*/9, /*#*/2,
12723
OPC_EmitMergeInputChains, 1, 0,
12724
OPC_EmitInteger, MVT::i32, 14,
12725
OPC_EmitRegister, MVT::i32, 0 ,
12726
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRs), 0|OPFL_Chain|OPFL_MemRefs,
12727
0, 6, 1, 3, 4, 5, 6, 7,
12729
OPC_CheckPredicate, 40,
12731
OPC_CheckPredicate, 42,
12735
OPC_CheckChild1Type, MVT::i32,
12737
OPC_CheckChild2Type, MVT::i32,
12738
OPC_CheckPatternPredicate, 2,
12739
OPC_CheckComplexPat, /*CP*/9, /*#*/2,
12740
OPC_EmitMergeInputChains, 1, 0,
12741
OPC_EmitInteger, MVT::i32, 14,
12742
OPC_EmitRegister, MVT::i32, 0 ,
12743
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBs), 0|OPFL_Chain|OPFL_MemRefs,
12744
0, 6, 1, 3, 4, 5, 6, 7,
12746
OPC_CheckPredicate, 41,
12750
OPC_CheckChild1Type, MVT::i32,
12752
OPC_CheckChild2Type, MVT::i32,
12753
OPC_CheckPatternPredicate, 2,
12754
OPC_CheckComplexPat, /*CP*/9, /*#*/2,
12755
OPC_EmitMergeInputChains, 1, 0,
12756
OPC_EmitInteger, MVT::i32, 14,
12757
OPC_EmitRegister, MVT::i32, 0 ,
12758
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHs), 0|OPFL_Chain|OPFL_MemRefs,
12759
0, 6, 1, 3, 4, 5, 6, 7,
12763
OPC_CheckPredicate, 43,
12765
OPC_CheckPredicate, 44,
12769
OPC_CheckChild1Type, MVT::i32,
12772
OPC_CheckChild3Type, MVT::i32,
12773
OPC_CheckType, MVT::i32,
12774
OPC_CheckPatternPredicate, 5,
12775
OPC_CheckComplexPat, /*CP*/15, /*#*/3,
12776
OPC_EmitMergeInputChains, 1, 0,
12777
OPC_EmitInteger, MVT::i32, 14,
12778
OPC_EmitRegister, MVT::i32, 0 ,
12779
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR_PRE), 0|OPFL_Chain|OPFL_MemRefs,
12780
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12782
OPC_CheckPredicate, 45,
12786
OPC_CheckChild1Type, MVT::i32,
12789
OPC_CheckChild3Type, MVT::i32,
12790
OPC_CheckType, MVT::i32,
12791
OPC_CheckPatternPredicate, 5,
12792
OPC_CheckComplexPat, /*CP*/15, /*#*/3,
12793
OPC_EmitMergeInputChains, 1, 0,
12794
OPC_EmitInteger, MVT::i32, 14,
12795
OPC_EmitRegister, MVT::i32, 0 ,
12796
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR_POST), 0|OPFL_Chain|OPFL_MemRefs,
12797
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12800
OPC_CheckPredicate, 46,
12802
OPC_CheckPredicate, 47,
12803
OPC_CheckPredicate, 48,
12807
OPC_CheckChild1Type, MVT::i32,
12810
OPC_CheckChild3Type, MVT::i32,
12811
OPC_CheckType, MVT::i32,
12812
OPC_CheckPatternPredicate, 5,
12813
OPC_CheckComplexPat, /*CP*/16, /*#*/3,
12814
OPC_EmitMergeInputChains, 1, 0,
12815
OPC_EmitInteger, MVT::i32, 14,
12816
OPC_EmitRegister, MVT::i32, 0 ,
12817
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH_PRE), 0|OPFL_Chain|OPFL_MemRefs,
12818
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12820
OPC_CheckPredicate, 49,
12821
OPC_CheckPredicate, 50,
12825
OPC_CheckChild1Type, MVT::i32,
12828
OPC_CheckChild3Type, MVT::i32,
12829
OPC_CheckType, MVT::i32,
12830
OPC_CheckPatternPredicate, 5,
12831
OPC_CheckComplexPat, /*CP*/16, /*#*/3,
12832
OPC_EmitMergeInputChains, 1, 0,
12833
OPC_EmitInteger, MVT::i32, 14,
12834
OPC_EmitRegister, MVT::i32, 0 ,
12835
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
12836
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12838
OPC_CheckPredicate, 47,
12839
OPC_CheckPredicate, 51,
12843
OPC_CheckChild1Type, MVT::i32,
12846
OPC_CheckChild3Type, MVT::i32,
12847
OPC_CheckType, MVT::i32,
12848
OPC_CheckPatternPredicate, 5,
12849
OPC_CheckComplexPat, /*CP*/15, /*#*/3,
12850
OPC_EmitMergeInputChains, 1, 0,
12851
OPC_EmitInteger, MVT::i32, 14,
12852
OPC_EmitRegister, MVT::i32, 0 ,
12853
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB_PRE), 0|OPFL_Chain|OPFL_MemRefs,
12854
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12856
OPC_CheckPredicate, 49,
12857
OPC_CheckPredicate, 52,
12861
OPC_CheckChild1Type, MVT::i32,
12864
OPC_CheckChild3Type, MVT::i32,
12865
OPC_CheckType, MVT::i32,
12866
OPC_CheckPatternPredicate, 5,
12867
OPC_CheckComplexPat, /*CP*/15, /*#*/3,
12868
OPC_EmitMergeInputChains, 1, 0,
12869
OPC_EmitInteger, MVT::i32, 14,
12870
OPC_EmitRegister, MVT::i32, 0 ,
12871
OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB_POST), 0|OPFL_Chain|OPFL_MemRefs,
12872
1, MVT::i32, 6, 1, 2, 4, 5, 6, 7,
12875
OPC_CheckPredicate, 38,
12877
OPC_CheckPredicate, 39,
12881
OPC_CheckChild1Type, MVT::i32,
12883
OPC_CheckChild2Type, MVT::i32,
12885
OPC_CheckPatternPredicate, 6,
12886
OPC_CheckComplexPat, /*CP*/10, /*#*/2,
12887
OPC_EmitMergeInputChains, 1, 0,
12888
OPC_EmitInteger, MVT::i32, 14,
12889
OPC_EmitRegister, MVT::i32, 0 ,
12890
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRspi), 0|OPFL_Chain|OPFL_MemRefs,
12891
0, 5, 1, 3, 4, 5, 6,
12893
OPC_CheckPatternPredicate, 2,
12895
OPC_CheckComplexPat, /*CP*/11, /*#*/2,
12896
OPC_EmitMergeInputChains, 1, 0,
12897
OPC_EmitInteger, MVT::i32, 14,
12898
OPC_EmitRegister, MVT::i32, 0 ,
12899
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRi12), 0|OPFL_Chain|OPFL_MemRefs,
12900
0, 5, 1, 3, 4, 5, 6,
12902
OPC_CheckComplexPat, /*CP*/12, /*#*/2,
12903
OPC_EmitMergeInputChains, 1, 0,
12904
OPC_EmitInteger, MVT::i32, 14,
12905
OPC_EmitRegister, MVT::i32, 0 ,
12906
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRi8), 0|OPFL_Chain|OPFL_MemRefs,
12907
0, 5, 1, 3, 4, 5, 6,
12911
OPC_CheckPredicate, 40,
12913
OPC_CheckPredicate, 42,
12917
OPC_CheckChild1Type, MVT::i32,
12919
OPC_CheckChild2Type, MVT::i32,
12920
OPC_CheckPatternPredicate, 2,
12922
OPC_CheckComplexPat, /*CP*/11, /*#*/2,
12923
OPC_EmitMergeInputChains, 1, 0,
12924
OPC_EmitInteger, MVT::i32, 14,
12925
OPC_EmitRegister, MVT::i32, 0 ,
12926
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
12927
0, 5, 1, 3, 4, 5, 6,
12929
OPC_CheckComplexPat, /*CP*/12, /*#*/2,
12930
OPC_EmitMergeInputChains, 1, 0,
12931
OPC_EmitInteger, MVT::i32, 14,
12932
OPC_EmitRegister, MVT::i32, 0 ,
12933
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBi8), 0|OPFL_Chain|OPFL_MemRefs,
12934
0, 5, 1, 3, 4, 5, 6,
12937
OPC_CheckPredicate, 41,
12941
OPC_CheckChild1Type, MVT::i32,
12943
OPC_CheckChild2Type, MVT::i32,
12944
OPC_CheckPatternPredicate, 2,
12946
OPC_CheckComplexPat, /*CP*/11, /*#*/2,
12947
OPC_EmitMergeInputChains, 1, 0,
12948
OPC_EmitInteger, MVT::i32, 14,
12949
OPC_EmitRegister, MVT::i32, 0 ,
12950
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHi12), 0|OPFL_Chain|OPFL_MemRefs,
12951
0, 5, 1, 3, 4, 5, 6,
12953
OPC_CheckComplexPat, /*CP*/12, /*#*/2,
12954
OPC_EmitMergeInputChains, 1, 0,
12955
OPC_EmitInteger, MVT::i32, 14,
12956
OPC_EmitRegister, MVT::i32, 0 ,
12957
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHi8), 0|OPFL_Chain|OPFL_MemRefs,
12958
0, 5, 1, 3, 4, 5, 6,
12962
OPC_CheckPredicate, 39,
12967
OPC_CheckChild1Type, MVT::f64,
12969
OPC_CheckChild2Type, MVT::i32,
12970
OPC_CheckPatternPredicate, 8,
12971
OPC_CheckComplexPat, /*CP*/13, /*#*/2,
12972
OPC_EmitMergeInputChains, 1, 0,
12973
OPC_EmitInteger, MVT::i32, 14,
12974
OPC_EmitRegister, MVT::i32, 0 ,
12975
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRD), 0|OPFL_Chain|OPFL_MemRefs,
12976
0, 5, 1, 3, 4, 5, 6,
12978
OPC_CheckChild1Type, MVT::f32,
12980
OPC_CheckChild2Type, MVT::i32,
12981
OPC_CheckPatternPredicate, 8,
12982
OPC_CheckComplexPat, /*CP*/13, /*#*/2,
12983
OPC_EmitMergeInputChains, 1, 0,
12984
OPC_EmitInteger, MVT::i32, 14,
12985
OPC_EmitRegister, MVT::i32, 0 ,
12986
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
12987
0, 5, 1, 3, 4, 5, 6,
12989
OPC_CheckChild1Type, MVT::v2f64,
12991
OPC_CheckChild2Type, MVT::i32,
12992
OPC_CheckPatternPredicate, 3,
12993
OPC_CheckComplexPat, /*CP*/14, /*#*/2,
12994
OPC_EmitMergeInputChains, 1, 0,
12995
OPC_EmitInteger, MVT::i32, 14,
12996
OPC_EmitRegister, MVT::i32, 0 ,
12997
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRQ), 0|OPFL_Chain|OPFL_MemRefs,
12998
0, 5, 1, 3, 4, 5, 6,
13002
OPC_CheckPredicate, 43,
13004
OPC_CheckPredicate, 44,
13008
OPC_CheckChild1Type, MVT::i32,
13011
OPC_CheckChild3Type, MVT::i32,
13012
OPC_CheckType, MVT::i32,
13013
OPC_CheckPatternPredicate, 2,
13014
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13015
OPC_EmitMergeInputChains, 1, 0,
13016
OPC_EmitInteger, MVT::i32, 14,
13017
OPC_EmitRegister, MVT::i32, 0 ,
13018
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STR_PRE), 0|OPFL_Chain|OPFL_MemRefs,
13019
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13021
OPC_CheckPredicate, 45,
13025
OPC_CheckChild1Type, MVT::i32,
13028
OPC_CheckChild3Type, MVT::i32,
13029
OPC_CheckType, MVT::i32,
13030
OPC_CheckPatternPredicate, 2,
13031
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13032
OPC_EmitMergeInputChains, 1, 0,
13033
OPC_EmitInteger, MVT::i32, 14,
13034
OPC_EmitRegister, MVT::i32, 0 ,
13035
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STR_POST), 0|OPFL_Chain|OPFL_MemRefs,
13036
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13039
OPC_CheckPredicate, 46,
13041
OPC_CheckPredicate, 47,
13042
OPC_CheckPredicate, 48,
13046
OPC_CheckChild1Type, MVT::i32,
13049
OPC_CheckChild3Type, MVT::i32,
13050
OPC_CheckType, MVT::i32,
13051
OPC_CheckPatternPredicate, 2,
13052
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13053
OPC_EmitMergeInputChains, 1, 0,
13054
OPC_EmitInteger, MVT::i32, 14,
13055
OPC_EmitRegister, MVT::i32, 0 ,
13056
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRH_PRE), 0|OPFL_Chain|OPFL_MemRefs,
13057
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13059
OPC_CheckPredicate, 49,
13060
OPC_CheckPredicate, 50,
13064
OPC_CheckChild1Type, MVT::i32,
13067
OPC_CheckChild3Type, MVT::i32,
13068
OPC_CheckType, MVT::i32,
13069
OPC_CheckPatternPredicate, 2,
13070
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13071
OPC_EmitMergeInputChains, 1, 0,
13072
OPC_EmitInteger, MVT::i32, 14,
13073
OPC_EmitRegister, MVT::i32, 0 ,
13074
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
13075
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13077
OPC_CheckPredicate, 47,
13078
OPC_CheckPredicate, 51,
13082
OPC_CheckChild1Type, MVT::i32,
13085
OPC_CheckChild3Type, MVT::i32,
13086
OPC_CheckType, MVT::i32,
13087
OPC_CheckPatternPredicate, 2,
13088
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13089
OPC_EmitMergeInputChains, 1, 0,
13090
OPC_EmitInteger, MVT::i32, 14,
13091
OPC_EmitRegister, MVT::i32, 0 ,
13092
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRB_PRE), 0|OPFL_Chain|OPFL_MemRefs,
13093
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13095
OPC_CheckPredicate, 49,
13096
OPC_CheckPredicate, 52,
13100
OPC_CheckChild1Type, MVT::i32,
13103
OPC_CheckChild3Type, MVT::i32,
13104
OPC_CheckType, MVT::i32,
13105
OPC_CheckPatternPredicate, 2,
13106
OPC_CheckComplexPat, /*CP*/17, /*#*/3,
13107
OPC_EmitMergeInputChains, 1, 0,
13108
OPC_EmitInteger, MVT::i32, 14,
13109
OPC_EmitRegister, MVT::i32, 0 ,
13110
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRB_POST), 0|OPFL_Chain|OPFL_MemRefs,
13111
1, MVT::i32, 5, 1, 2, 4, 5, 6,
13114
71|128,10, ARMISD::CMPZ,
13117
OPC_SwitchOpcode , 33, ISD::AND,
13120
OPC_CheckType, MVT::i32,
13123
OPC_CheckInteger, 0,
13125
OPC_CheckPatternPredicate, 5,
13126
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
13127
OPC_EmitInteger, MVT::i32, 14,
13128
OPC_EmitRegister, MVT::i32, 0 ,
13129
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrs), 0|OPFL_FlagOutput,
13130
0, 6, 0, 2, 3, 4, 5, 6,
13134
OPC_CheckType, MVT::i32,
13137
OPC_CheckInteger, 0,
13139
OPC_CheckPatternPredicate, 5,
13140
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
13141
OPC_EmitInteger, MVT::i32, 14,
13142
OPC_EmitRegister, MVT::i32, 0 ,
13143
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrs), 0|OPFL_FlagOutput,
13144
0, 6, 0, 2, 3, 4, 5, 6,
13148
OPC_CheckChild0Type, MVT::i32,
13150
OPC_CheckOpcode, ISD::SUB,
13152
OPC_CheckInteger, 0,
13156
OPC_CheckPatternPredicate, 5,
13157
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
13158
OPC_EmitInteger, MVT::i32, 14,
13159
OPC_EmitRegister, MVT::i32, 0 ,
13160
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrs), 0|OPFL_FlagOutput,
13161
0, 6, 0, 2, 3, 4, 5, 6,
13164
OPC_SwitchOpcode , 33, ISD::AND,
13167
OPC_CheckType, MVT::i32,
13170
OPC_CheckInteger, 0,
13172
OPC_CheckPatternPredicate, 5,
13173
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13174
OPC_EmitInteger, MVT::i32, 14,
13175
OPC_EmitRegister, MVT::i32, 0 ,
13176
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrs), 0|OPFL_FlagOutput,
13177
0, 6, 1, 2, 3, 4, 5, 6,
13181
OPC_CheckType, MVT::i32,
13184
OPC_CheckInteger, 0,
13186
OPC_CheckPatternPredicate, 5,
13187
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13188
OPC_EmitInteger, MVT::i32, 14,
13189
OPC_EmitRegister, MVT::i32, 0 ,
13190
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrs), 0|OPFL_FlagOutput,
13191
0, 6, 1, 2, 3, 4, 5, 6,
13194
OPC_CheckInteger, 0,
13197
OPC_CheckType, MVT::i32,
13200
OPC_CheckPatternPredicate, 5,
13201
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13202
OPC_EmitInteger, MVT::i32, 14,
13203
OPC_EmitRegister, MVT::i32, 0 ,
13204
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrs), 0|OPFL_FlagOutput,
13205
0, 6, 1, 2, 3, 4, 5, 6,
13209
OPC_CheckChild0Type, MVT::i32,
13211
OPC_CheckOpcode, ISD::SUB,
13213
OPC_CheckInteger, 0,
13217
OPC_CheckPatternPredicate, 2,
13218
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13219
OPC_EmitInteger, MVT::i32, 14,
13220
OPC_EmitRegister, MVT::i32, 0 ,
13221
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrs), 0|OPFL_FlagOutput,
13222
0, 5, 0, 2, 3, 4, 5,
13225
OPC_SwitchOpcode , 95, ISD::AND,
13229
OPC_CheckType, MVT::i32,
13232
OPC_CheckInteger, 0,
13234
OPC_CheckPatternPredicate, 2,
13236
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13237
OPC_EmitInteger, MVT::i32, 14,
13238
OPC_EmitRegister, MVT::i32, 0 ,
13239
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrs), 0|OPFL_FlagOutput,
13240
0, 5, 0, 2, 3, 4, 5,
13242
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13243
OPC_EmitInteger, MVT::i32, 14,
13244
OPC_EmitRegister, MVT::i32, 0 ,
13245
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrs), 0|OPFL_FlagOutput,
13246
0, 5, 1, 2, 3, 4, 5,
13250
OPC_CheckOpcode, ISD::Constant,
13251
OPC_CheckPredicate, 5,
13253
OPC_CheckType, MVT::i32,
13256
OPC_CheckInteger, 0,
13258
OPC_CheckPatternPredicate, 5,
13259
OPC_EmitConvertToTarget, 1,
13260
OPC_EmitInteger, MVT::i32, 14,
13261
OPC_EmitRegister, MVT::i32, 0 ,
13262
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTri), 0|OPFL_FlagOutput,
13269
OPC_CheckType, MVT::i32,
13272
OPC_CheckInteger, 0,
13274
OPC_CheckPatternPredicate, 2,
13276
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13277
OPC_EmitInteger, MVT::i32, 14,
13278
OPC_EmitRegister, MVT::i32, 0 ,
13279
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrs), 0|OPFL_FlagOutput,
13280
0, 5, 0, 2, 3, 4, 5,
13282
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13283
OPC_EmitInteger, MVT::i32, 14,
13284
OPC_EmitRegister, MVT::i32, 0 ,
13285
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrs), 0|OPFL_FlagOutput,
13286
0, 5, 1, 2, 3, 4, 5,
13290
OPC_CheckOpcode, ISD::Constant,
13291
OPC_CheckPredicate, 5,
13293
OPC_CheckType, MVT::i32,
13296
OPC_CheckInteger, 0,
13298
OPC_CheckPatternPredicate, 5,
13299
OPC_EmitConvertToTarget, 1,
13300
OPC_EmitInteger, MVT::i32, 14,
13301
OPC_EmitRegister, MVT::i32, 0 ,
13302
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQri), 0|OPFL_FlagOutput,
13307
OPC_CheckInteger, 0,
13310
OPC_CheckType, MVT::i32,
13313
OPC_CheckPatternPredicate, 2,
13314
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13315
OPC_EmitInteger, MVT::i32, 14,
13316
OPC_EmitRegister, MVT::i32, 0 ,
13317
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrs), 0|OPFL_FlagOutput,
13318
0, 5, 1, 2, 3, 4, 5,
13322
OPC_CheckChild0Type, MVT::i32,
13325
OPC_CheckPatternPredicate, 5,
13326
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
13327
OPC_EmitInteger, MVT::i32, 14,
13328
OPC_EmitRegister, MVT::i32, 0 ,
13329
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrs), 0|OPFL_FlagOutput,
13330
0, 6, 0, 2, 3, 4, 5, 6,
13333
OPC_CheckOpcode, ISD::SUB,
13335
OPC_CheckInteger, 0,
13339
OPC_CheckOpcode, ISD::Constant,
13341
OPC_CheckPredicate, 5,
13344
OPC_CheckPatternPredicate, 5,
13345
OPC_EmitConvertToTarget, 1,
13346
OPC_EmitInteger, MVT::i32, 14,
13347
OPC_EmitRegister, MVT::i32, 0 ,
13348
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
13351
OPC_CheckPredicate, 4,
13354
OPC_CheckPatternPredicate, 2,
13355
OPC_EmitConvertToTarget, 1,
13356
OPC_EmitInteger, MVT::i32, 14,
13357
OPC_EmitRegister, MVT::i32, 0 ,
13358
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
13364
OPC_SwitchOpcode , 37, ISD::AND,
13368
OPC_CheckOpcode, ISD::Constant,
13369
OPC_CheckPredicate, 4,
13371
OPC_CheckType, MVT::i32,
13374
OPC_CheckInteger, 0,
13376
OPC_CheckPatternPredicate, 2,
13377
OPC_EmitConvertToTarget, 1,
13378
OPC_EmitInteger, MVT::i32, 14,
13379
OPC_EmitRegister, MVT::i32, 0 ,
13380
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTri), 0|OPFL_FlagOutput,
13386
OPC_CheckOpcode, ISD::Constant,
13387
OPC_CheckPredicate, 4,
13389
OPC_CheckType, MVT::i32,
13392
OPC_CheckInteger, 0,
13394
OPC_CheckPatternPredicate, 2,
13395
OPC_EmitConvertToTarget, 1,
13396
OPC_EmitInteger, MVT::i32, 14,
13397
OPC_EmitRegister, MVT::i32, 0 ,
13398
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQri), 0|OPFL_FlagOutput,
13403
OPC_CheckChild0Type, MVT::i32,
13405
OPC_CheckPatternPredicate, 5,
13406
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13407
OPC_EmitInteger, MVT::i32, 14,
13408
OPC_EmitRegister, MVT::i32, 0 ,
13409
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrs), 0|OPFL_FlagOutput,
13410
0, 6, 1, 2, 3, 4, 5, 6,
13413
OPC_CheckOpcode, ISD::SUB,
13415
OPC_CheckInteger, 0,
13419
OPC_CheckOpcode, ISD::Constant,
13421
OPC_CheckPredicate, 5,
13423
OPC_CheckType, MVT::i32,
13426
OPC_CheckPatternPredicate, 5,
13427
OPC_EmitConvertToTarget, 0,
13428
OPC_EmitInteger, MVT::i32, 14,
13429
OPC_EmitRegister, MVT::i32, 0 ,
13430
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
13433
OPC_CheckPredicate, 4,
13435
OPC_CheckType, MVT::i32,
13438
OPC_CheckPatternPredicate, 2,
13439
OPC_EmitConvertToTarget, 0,
13440
OPC_EmitInteger, MVT::i32, 14,
13441
OPC_EmitRegister, MVT::i32, 0 ,
13442
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
13447
OPC_CheckChild0Type, MVT::i32,
13449
OPC_CheckPatternPredicate, 2,
13451
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13452
OPC_EmitInteger, MVT::i32, 14,
13453
OPC_EmitRegister, MVT::i32, 0 ,
13454
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrs), 0|OPFL_FlagOutput,
13455
0, 5, 0, 2, 3, 4, 5,
13457
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13458
OPC_EmitInteger, MVT::i32, 14,
13459
OPC_EmitRegister, MVT::i32, 0 ,
13460
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrs), 0|OPFL_FlagOutput,
13461
0, 5, 1, 2, 3, 4, 5,
13465
OPC_SwitchOpcode , 28, ISD::AND,
13468
OPC_CheckType, MVT::i32,
13471
OPC_CheckInteger, 0,
13473
OPC_CheckPatternPredicate, 5,
13474
OPC_EmitInteger, MVT::i32, 14,
13475
OPC_EmitRegister, MVT::i32, 0 ,
13476
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrr), 0|OPFL_FlagOutput,
13481
OPC_CheckType, MVT::i32,
13484
OPC_CheckInteger, 0,
13486
OPC_CheckPatternPredicate, 5,
13487
OPC_EmitInteger, MVT::i32, 14,
13488
OPC_EmitRegister, MVT::i32, 0 ,
13489
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrr), 0|OPFL_FlagOutput,
13494
OPC_CheckChild0Type, MVT::i32,
13496
OPC_CheckOpcode, ISD::SUB,
13498
OPC_CheckInteger, 0,
13503
OPC_CheckPatternPredicate, 5,
13504
OPC_EmitInteger, MVT::i32, 14,
13505
OPC_EmitRegister, MVT::i32, 0 ,
13506
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrr), 0|OPFL_FlagOutput,
13509
OPC_CheckPatternPredicate, 6,
13510
OPC_EmitInteger, MVT::i32, 14,
13511
OPC_EmitRegister, MVT::i32, 0 ,
13512
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMNz), 0|OPFL_FlagOutput,
13517
OPC_CheckOpcode, ISD::AND,
13520
OPC_CheckType, MVT::i32,
13523
OPC_CheckInteger, 0,
13525
OPC_CheckPatternPredicate, 6,
13526
OPC_EmitInteger, MVT::i32, 14,
13527
OPC_EmitRegister, MVT::i32, 0 ,
13528
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tTST), 0|OPFL_FlagOutput,
13532
OPC_CheckChild0Type, MVT::i32,
13534
OPC_CheckOpcode, ISD::SUB,
13536
OPC_CheckInteger, 0,
13540
OPC_CheckPatternPredicate, 2,
13541
OPC_EmitInteger, MVT::i32, 14,
13542
OPC_EmitRegister, MVT::i32, 0 ,
13543
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrr), 0|OPFL_FlagOutput,
13547
OPC_SwitchOpcode , 28, ISD::AND,
13550
OPC_CheckType, MVT::i32,
13553
OPC_CheckInteger, 0,
13555
OPC_CheckPatternPredicate, 2,
13556
OPC_EmitInteger, MVT::i32, 14,
13557
OPC_EmitRegister, MVT::i32, 0 ,
13558
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrr), 0|OPFL_FlagOutput,
13563
OPC_CheckType, MVT::i32,
13566
OPC_CheckInteger, 0,
13568
OPC_CheckPatternPredicate, 2,
13569
OPC_EmitInteger, MVT::i32, 14,
13570
OPC_EmitRegister, MVT::i32, 0 ,
13571
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrr), 0|OPFL_FlagOutput,
13575
OPC_CheckInteger, 0,
13578
OPC_CheckType, MVT::i32,
13582
OPC_CheckPatternPredicate, 5,
13583
OPC_EmitInteger, MVT::i32, 14,
13584
OPC_EmitRegister, MVT::i32, 0 ,
13585
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrr), 0|OPFL_FlagOutput,
13588
OPC_CheckPatternPredicate, 6,
13589
OPC_EmitInteger, MVT::i32, 14,
13590
OPC_EmitRegister, MVT::i32, 0 ,
13591
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMNz), 0|OPFL_FlagOutput,
13594
OPC_CheckPatternPredicate, 2,
13595
OPC_EmitInteger, MVT::i32, 14,
13596
OPC_EmitRegister, MVT::i32, 0 ,
13597
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrr), 0|OPFL_FlagOutput,
13603
OPC_CheckChild0Type, MVT::i32,
13605
OPC_Scope, 4|128,1,
13607
OPC_CheckOpcode, ISD::Constant,
13609
OPC_CheckPredicate, 5,
13611
OPC_CheckPatternPredicate, 5,
13612
OPC_EmitConvertToTarget, 1,
13613
OPC_EmitInteger, MVT::i32, 14,
13614
OPC_EmitRegister, MVT::i32, 0 ,
13615
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzri), 0|OPFL_FlagOutput,
13618
OPC_CheckPredicate, 12,
13620
OPC_CheckPatternPredicate, 5,
13621
OPC_EmitConvertToTarget, 1,
13622
OPC_EmitNodeXForm, 11, 2,
13623
OPC_EmitInteger, MVT::i32, 14,
13624
OPC_EmitRegister, MVT::i32, 0 ,
13625
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
13628
OPC_CheckPredicate, 53,
13630
OPC_CheckPatternPredicate, 6,
13631
OPC_EmitConvertToTarget, 1,
13632
OPC_EmitInteger, MVT::i32, 14,
13633
OPC_EmitRegister, MVT::i32, 0 ,
13634
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPzi8), 0|OPFL_FlagOutput,
13637
OPC_CheckPredicate, 4,
13639
OPC_CheckPatternPredicate, 2,
13640
OPC_EmitConvertToTarget, 1,
13641
OPC_EmitInteger, MVT::i32, 14,
13642
OPC_EmitRegister, MVT::i32, 0 ,
13643
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzri), 0|OPFL_FlagOutput,
13646
OPC_CheckPredicate, 18,
13648
OPC_CheckPatternPredicate, 2,
13649
OPC_EmitConvertToTarget, 1,
13650
OPC_EmitNodeXForm, 12, 2,
13651
OPC_EmitInteger, MVT::i32, 14,
13652
OPC_EmitRegister, MVT::i32, 0 ,
13653
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
13657
OPC_CheckPatternPredicate, 5,
13658
OPC_EmitInteger, MVT::i32, 14,
13659
OPC_EmitRegister, MVT::i32, 0 ,
13660
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrr), 0|OPFL_FlagOutput,
13663
OPC_CheckPatternPredicate, 6,
13664
OPC_EmitInteger, MVT::i32, 14,
13665
OPC_EmitRegister, MVT::i32, 0 ,
13666
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPzr), 0|OPFL_FlagOutput,
13669
OPC_CheckPatternPredicate, 2,
13670
OPC_EmitInteger, MVT::i32, 14,
13671
OPC_EmitRegister, MVT::i32, 0 ,
13672
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrr), 0|OPFL_FlagOutput,
13676
45|128,2, ISD::INTRINSIC_W_CHAIN,
13679
OPC_CheckInteger, 32,
13682
OPC_CheckChild2Type, MVT::i32,
13683
OPC_SwitchType , 27, MVT::v8i8,
13684
OPC_CheckPatternPredicate, 3,
13685
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13686
OPC_EmitMergeInputChains, 1, 0,
13687
OPC_EmitInteger, MVT::i32, 14,
13688
OPC_EmitRegister, MVT::i32, 0 ,
13689
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d8), 0|OPFL_Chain,
13690
1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7,
13692
OPC_CheckPatternPredicate, 3,
13693
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13694
OPC_EmitMergeInputChains, 1, 0,
13695
OPC_EmitInteger, MVT::i32, 14,
13696
OPC_EmitRegister, MVT::i32, 0 ,
13697
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d16), 0|OPFL_Chain,
13698
1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7,
13700
OPC_CheckPatternPredicate, 3,
13701
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13702
OPC_EmitMergeInputChains, 1, 0,
13703
OPC_EmitInteger, MVT::i32, 14,
13704
OPC_EmitRegister, MVT::i32, 0 ,
13705
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d32), 0|OPFL_Chain,
13706
1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7,
13708
OPC_CheckPatternPredicate, 3,
13709
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13710
OPC_EmitMergeInputChains, 1, 0,
13711
OPC_EmitInteger, MVT::i32, 14,
13712
OPC_EmitRegister, MVT::i32, 0 ,
13713
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1df), 0|OPFL_Chain,
13714
1, MVT::v2f32, 6, 2, 3, 4, 5, 6, 7,
13716
OPC_CheckPatternPredicate, 3,
13717
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13718
OPC_EmitMergeInputChains, 1, 0,
13719
OPC_EmitInteger, MVT::i32, 14,
13720
OPC_EmitRegister, MVT::i32, 0 ,
13721
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d64), 0|OPFL_Chain,
13722
1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7,
13724
OPC_CheckPatternPredicate, 3,
13725
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13726
OPC_EmitMergeInputChains, 1, 0,
13727
OPC_EmitInteger, MVT::i32, 14,
13728
OPC_EmitRegister, MVT::i32, 0 ,
13729
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q8), 0|OPFL_Chain,
13730
1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7,
13732
OPC_CheckPatternPredicate, 3,
13733
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13734
OPC_EmitMergeInputChains, 1, 0,
13735
OPC_EmitInteger, MVT::i32, 14,
13736
OPC_EmitRegister, MVT::i32, 0 ,
13737
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q16), 0|OPFL_Chain,
13738
1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7,
13740
OPC_CheckPatternPredicate, 3,
13741
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13742
OPC_EmitMergeInputChains, 1, 0,
13743
OPC_EmitInteger, MVT::i32, 14,
13744
OPC_EmitRegister, MVT::i32, 0 ,
13745
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q32), 0|OPFL_Chain,
13746
1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7,
13748
OPC_CheckPatternPredicate, 3,
13749
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13750
OPC_EmitMergeInputChains, 1, 0,
13751
OPC_EmitInteger, MVT::i32, 14,
13752
OPC_EmitRegister, MVT::i32, 0 ,
13753
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1qf), 0|OPFL_Chain,
13754
1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7,
13756
OPC_CheckPatternPredicate, 3,
13757
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13758
OPC_EmitMergeInputChains, 1, 0,
13759
OPC_EmitInteger, MVT::i32, 14,
13760
OPC_EmitRegister, MVT::i32, 0 ,
13761
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q64), 0|OPFL_Chain,
13762
1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7,
13764
56|128,2, ISD::INTRINSIC_VOID,
13767
OPC_CheckInteger, 105,
13770
OPC_CheckChild2Type, MVT::i32,
13773
OPC_CheckChild3Type, MVT::v8i8,
13774
OPC_CheckPatternPredicate, 3,
13775
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13776
OPC_EmitMergeInputChains, 1, 0,
13777
OPC_EmitInteger, MVT::i32, 14,
13778
OPC_EmitRegister, MVT::i32, 0 ,
13779
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d8), 0|OPFL_Chain,
13780
0, 7, 3, 4, 5, 6, 2, 7, 8,
13782
OPC_CheckChild3Type, MVT::v4i16,
13783
OPC_CheckPatternPredicate, 3,
13784
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13785
OPC_EmitMergeInputChains, 1, 0,
13786
OPC_EmitInteger, MVT::i32, 14,
13787
OPC_EmitRegister, MVT::i32, 0 ,
13788
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d16), 0|OPFL_Chain,
13789
0, 7, 3, 4, 5, 6, 2, 7, 8,
13791
OPC_CheckChild3Type, MVT::v2i32,
13792
OPC_CheckPatternPredicate, 3,
13793
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13794
OPC_EmitMergeInputChains, 1, 0,
13795
OPC_EmitInteger, MVT::i32, 14,
13796
OPC_EmitRegister, MVT::i32, 0 ,
13797
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d32), 0|OPFL_Chain,
13798
0, 7, 3, 4, 5, 6, 2, 7, 8,
13800
OPC_CheckChild3Type, MVT::v2f32,
13801
OPC_CheckPatternPredicate, 3,
13802
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13803
OPC_EmitMergeInputChains, 1, 0,
13804
OPC_EmitInteger, MVT::i32, 14,
13805
OPC_EmitRegister, MVT::i32, 0 ,
13806
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1df), 0|OPFL_Chain,
13807
0, 7, 3, 4, 5, 6, 2, 7, 8,
13809
OPC_CheckChild3Type, MVT::v1i64,
13810
OPC_CheckPatternPredicate, 3,
13811
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13812
OPC_EmitMergeInputChains, 1, 0,
13813
OPC_EmitInteger, MVT::i32, 14,
13814
OPC_EmitRegister, MVT::i32, 0 ,
13815
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d64), 0|OPFL_Chain,
13816
0, 7, 3, 4, 5, 6, 2, 7, 8,
13818
OPC_CheckChild3Type, MVT::v16i8,
13819
OPC_CheckPatternPredicate, 3,
13820
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13821
OPC_EmitMergeInputChains, 1, 0,
13822
OPC_EmitInteger, MVT::i32, 14,
13823
OPC_EmitRegister, MVT::i32, 0 ,
13824
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q8), 0|OPFL_Chain,
13825
0, 7, 3, 4, 5, 6, 2, 7, 8,
13827
OPC_CheckChild3Type, MVT::v8i16,
13828
OPC_CheckPatternPredicate, 3,
13829
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13830
OPC_EmitMergeInputChains, 1, 0,
13831
OPC_EmitInteger, MVT::i32, 14,
13832
OPC_EmitRegister, MVT::i32, 0 ,
13833
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q16), 0|OPFL_Chain,
13834
0, 7, 3, 4, 5, 6, 2, 7, 8,
13836
OPC_CheckChild3Type, MVT::v4i32,
13837
OPC_CheckPatternPredicate, 3,
13838
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13839
OPC_EmitMergeInputChains, 1, 0,
13840
OPC_EmitInteger, MVT::i32, 14,
13841
OPC_EmitRegister, MVT::i32, 0 ,
13842
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q32), 0|OPFL_Chain,
13843
0, 7, 3, 4, 5, 6, 2, 7, 8,
13845
OPC_CheckChild3Type, MVT::v4f32,
13846
OPC_CheckPatternPredicate, 3,
13847
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13848
OPC_EmitMergeInputChains, 1, 0,
13849
OPC_EmitInteger, MVT::i32, 14,
13850
OPC_EmitRegister, MVT::i32, 0 ,
13851
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1qf), 0|OPFL_Chain,
13852
0, 7, 3, 4, 5, 6, 2, 7, 8,
13854
OPC_CheckChild3Type, MVT::v2i64,
13855
OPC_CheckPatternPredicate, 3,
13856
OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13857
OPC_EmitMergeInputChains, 1, 0,
13858
OPC_EmitInteger, MVT::i32, 14,
13859
OPC_EmitRegister, MVT::i32, 0 ,
13860
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q64), 0|OPFL_Chain,
13861
0, 7, 3, 4, 5, 6, 2, 7, 8,
13864
OPC_Scope, 55|128,1,
13868
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
13870
OPC_CheckType, MVT::i32,
13872
OPC_CheckPatternPredicate, 5,
13873
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13874
OPC_EmitInteger, MVT::i32, 14,
13875
OPC_EmitRegister, MVT::i32, 0 ,
13876
OPC_EmitRegister, MVT::i32, 0 ,
13877
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNs), 0,
13878
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
13880
OPC_CheckPatternPredicate, 2,
13881
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13882
OPC_EmitInteger, MVT::i32, 14,
13883
OPC_EmitRegister, MVT::i32, 0 ,
13884
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNs), 0,
13885
1, MVT::i32, 4, 1, 2, 3, 4,
13889
OPC_CheckType, MVT::i32,
13890
OPC_CheckPatternPredicate, 5,
13892
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
13893
OPC_EmitInteger, MVT::i32, 14,
13894
OPC_EmitRegister, MVT::i32, 0 ,
13895
OPC_EmitRegister, MVT::i32, 0 ,
13896
OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrs), 0,
13897
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
13899
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
13900
OPC_EmitInteger, MVT::i32, 14,
13901
OPC_EmitRegister, MVT::i32, 0 ,
13902
OPC_EmitRegister, MVT::i32, 0 ,
13903
OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrs), 0,
13904
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
13908
OPC_CheckOpcode, ISD::Constant,
13909
OPC_CheckPredicate, 4,
13912
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
13914
OPC_CheckType, MVT::i32,
13915
OPC_CheckPatternPredicate, 2,
13916
OPC_EmitConvertToTarget, 0,
13917
OPC_EmitInteger, MVT::i32, 14,
13918
OPC_EmitRegister, MVT::i32, 0 ,
13919
OPC_EmitRegister, MVT::i32, 0 ,
13920
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
13921
1, MVT::i32, 4, 1, 2, 3, 4,
13925
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
13929
OPC_CheckOpcode, ISD::Constant,
13930
OPC_CheckPredicate, 4,
13932
OPC_CheckType, MVT::i32,
13933
OPC_CheckPatternPredicate, 2,
13934
OPC_EmitConvertToTarget, 0,
13935
OPC_EmitInteger, MVT::i32, 14,
13936
OPC_EmitRegister, MVT::i32, 0 ,
13937
OPC_EmitRegister, MVT::i32, 0 ,
13938
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
13939
1, MVT::i32, 4, 1, 2, 3, 4,
13944
OPC_CheckType, MVT::i32,
13945
OPC_CheckPatternPredicate, 2,
13947
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13948
OPC_EmitInteger, MVT::i32, 14,
13949
OPC_EmitRegister, MVT::i32, 0 ,
13950
OPC_EmitRegister, MVT::i32, 0 ,
13951
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrs), 0,
13952
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
13954
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
13955
OPC_EmitInteger, MVT::i32, 14,
13956
OPC_EmitRegister, MVT::i32, 0 ,
13957
OPC_EmitRegister, MVT::i32, 0 ,
13958
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrs), 0,
13959
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
13963
OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1,
13965
OPC_CheckType, MVT::i32,
13967
OPC_CheckPatternPredicate, 2,
13968
OPC_EmitInteger, MVT::i32, 14,
13969
OPC_EmitRegister, MVT::i32, 0 ,
13970
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNr), 0,
13971
1, MVT::i32, 3, 0, 1, 2,
13973
OPC_CheckPatternPredicate, 5,
13974
OPC_EmitInteger, MVT::i32, 14,
13975
OPC_EmitRegister, MVT::i32, 0 ,
13976
OPC_EmitRegister, MVT::i32, 0 ,
13977
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNr), 0,
13978
1, MVT::i32, 4, 0, 1, 2, 3,
13980
OPC_CheckPatternPredicate, 6,
13981
OPC_EmitRegister, MVT::i32, ARM::CPSR,
13982
OPC_EmitInteger, MVT::i32, 14,
13983
OPC_EmitRegister, MVT::i32, 0 ,
13984
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMVN), 0,
13985
1, MVT::i32, 4, 1, 0, 2, 3,
13990
OPC_CheckOpcode, ISD::Constant,
13992
OPC_CheckPredicate, 5,
13994
OPC_CheckType, MVT::i32,
13995
OPC_CheckPatternPredicate, 5,
13996
OPC_EmitConvertToTarget, 1,
13997
OPC_EmitInteger, MVT::i32, 14,
13998
OPC_EmitRegister, MVT::i32, 0 ,
13999
OPC_EmitRegister, MVT::i32, 0 ,
14000
OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORri), 0,
14001
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14003
OPC_CheckPredicate, 4,
14005
OPC_CheckType, MVT::i32,
14006
OPC_CheckPatternPredicate, 2,
14007
OPC_EmitConvertToTarget, 1,
14008
OPC_EmitInteger, MVT::i32, 14,
14009
OPC_EmitRegister, MVT::i32, 0 ,
14010
OPC_EmitRegister, MVT::i32, 0 ,
14011
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORri), 0,
14012
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14016
OPC_SwitchOpcode , 45, ISD::BUILD_VECTOR,
14017
OPC_CheckPredicate, 54,
14019
OPC_SwitchType , 18, MVT::v2i32,
14020
OPC_CheckPatternPredicate, 3,
14021
OPC_EmitInteger, MVT::i32, 14,
14022
OPC_EmitRegister, MVT::i32, 0 ,
14023
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
14024
1, MVT::v2i32, 3, 0, 1, 2,
14026
OPC_CheckPatternPredicate, 3,
14027
OPC_EmitInteger, MVT::i32, 14,
14028
OPC_EmitRegister, MVT::i32, 0 ,
14029
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
14030
1, MVT::v4i32, 3, 0, 1, 2,
14032
41, ISD::BIT_CONVERT,
14033
OPC_CheckPredicate, 2,
14035
OPC_SwitchType , 16, MVT::v2i32,
14036
OPC_EmitInteger, MVT::i32, 14,
14037
OPC_EmitRegister, MVT::i32, 0 ,
14038
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
14039
1, MVT::v2i32, 3, 0, 1, 2,
14041
OPC_EmitInteger, MVT::i32, 14,
14042
OPC_EmitRegister, MVT::i32, 0 ,
14043
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
14044
1, MVT::v4i32, 3, 0, 1, 2,
14050
OPC_SwitchOpcode , 46, ISD::BUILD_VECTOR,
14051
OPC_CheckPredicate, 54,
14054
OPC_SwitchType , 18, MVT::v2i32,
14055
OPC_CheckPatternPredicate, 3,
14056
OPC_EmitInteger, MVT::i32, 14,
14057
OPC_EmitRegister, MVT::i32, 0 ,
14058
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
14059
1, MVT::v2i32, 3, 0, 1, 2,
14061
OPC_CheckPatternPredicate, 3,
14062
OPC_EmitInteger, MVT::i32, 14,
14063
OPC_EmitRegister, MVT::i32, 0 ,
14064
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
14065
1, MVT::v4i32, 3, 0, 1, 2,
14067
42, ISD::BIT_CONVERT,
14068
OPC_CheckPredicate, 2,
14071
OPC_SwitchType , 16, MVT::v2i32,
14072
OPC_EmitInteger, MVT::i32, 14,
14073
OPC_EmitRegister, MVT::i32, 0 ,
14074
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
14075
1, MVT::v2i32, 3, 0, 1, 2,
14077
OPC_EmitInteger, MVT::i32, 14,
14078
OPC_EmitRegister, MVT::i32, 0 ,
14079
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
14080
1, MVT::v4i32, 3, 0, 1, 2,
14088
OPC_CheckOpcode, ISD::Constant,
14090
OPC_CheckPredicate, 7,
14092
OPC_CheckType, MVT::i32,
14093
OPC_CheckPatternPredicate, 5,
14094
OPC_EmitConvertToTarget, 1,
14095
OPC_EmitNodeXForm, 2, 2,
14096
OPC_EmitInteger, MVT::i32, 14,
14097
OPC_EmitRegister, MVT::i32, 0 ,
14098
OPC_EmitRegister, MVT::i32, 0 ,
14099
OPC_EmitNode, TARGET_OPCODE(ARM::EORri), 0,
14100
1, MVT::i32, 5, 0, 3, 4, 5, 6,
14101
OPC_EmitConvertToTarget, 1,
14102
OPC_EmitNodeXForm, 3, 8,
14103
OPC_EmitInteger, MVT::i32, 14,
14104
OPC_EmitRegister, MVT::i32, 0 ,
14105
OPC_EmitRegister, MVT::i32, 0 ,
14106
OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORri), 0,
14107
1, MVT::i32, 5, 7, 9, 10, 11, 12,
14109
OPC_CheckPredicate, 8,
14111
OPC_CheckType, MVT::i32,
14112
OPC_CheckPatternPredicate, 2,
14113
OPC_EmitConvertToTarget, 1,
14114
OPC_EmitNodeXForm, 4, 2,
14115
OPC_EmitInteger, MVT::i32, 14,
14116
OPC_EmitRegister, MVT::i32, 0 ,
14117
OPC_EmitRegister, MVT::i32, 0 ,
14118
OPC_EmitNode, TARGET_OPCODE(ARM::t2EORri), 0,
14119
1, MVT::i32, 5, 0, 3, 4, 5, 6,
14120
OPC_EmitConvertToTarget, 1,
14121
OPC_EmitNodeXForm, 5, 8,
14122
OPC_EmitInteger, MVT::i32, 14,
14123
OPC_EmitRegister, MVT::i32, 0 ,
14124
OPC_EmitRegister, MVT::i32, 0 ,
14125
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORri), 0,
14126
1, MVT::i32, 5, 7, 9, 10, 11, 12,
14129
OPC_CheckType, MVT::i32,
14131
OPC_CheckPatternPredicate, 5,
14132
OPC_EmitInteger, MVT::i32, 14,
14133
OPC_EmitRegister, MVT::i32, 0 ,
14134
OPC_EmitRegister, MVT::i32, 0 ,
14135
OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrr), 0,
14136
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14138
OPC_CheckPatternPredicate, 6,
14139
OPC_EmitRegister, MVT::i32, ARM::CPSR,
14140
OPC_EmitInteger, MVT::i32, 14,
14141
OPC_EmitRegister, MVT::i32, 0 ,
14142
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tEOR), 0,
14143
1, MVT::i32, 5, 2, 0, 1, 3, 4,
14145
OPC_CheckPatternPredicate, 2,
14146
OPC_EmitInteger, MVT::i32, 14,
14147
OPC_EmitRegister, MVT::i32, 0 ,
14148
OPC_EmitRegister, MVT::i32, 0 ,
14149
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrr), 0,
14150
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14153
OPC_CheckType, MVT::v2i32,
14154
OPC_CheckPatternPredicate, 3,
14155
OPC_EmitInteger, MVT::i32, 14,
14156
OPC_EmitRegister, MVT::i32, 0 ,
14157
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEORd), 0,
14158
1, MVT::v2i32, 4, 0, 1, 2, 3,
14160
OPC_CheckType, MVT::v4i32,
14161
OPC_CheckPatternPredicate, 3,
14162
OPC_EmitInteger, MVT::i32, 14,
14163
OPC_EmitRegister, MVT::i32, 0 ,
14164
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEORq), 0,
14165
1, MVT::v4i32, 4, 0, 1, 2, 3,
14168
39|128,4, ISD::ADDE,
14170
OPC_CheckPredicate, 55,
14171
OPC_CaptureFlagInput,
14174
OPC_CheckType, MVT::i32,
14175
OPC_CheckPatternPredicate, 5,
14176
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
14177
OPC_EmitInteger, MVT::i32, 14,
14178
OPC_EmitRegister, MVT::i32, 0 ,
14179
OPC_EmitRegister, MVT::i32, 0 ,
14180
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14181
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
14183
OPC_CheckPredicate, 56,
14184
OPC_CaptureFlagInput,
14187
OPC_CheckType, MVT::i32,
14188
OPC_CheckPatternPredicate, 5,
14189
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
14190
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14191
1, MVT::i32, 4, 0, 2, 3, 4,
14193
OPC_CheckPredicate, 55,
14194
OPC_CaptureFlagInput,
14197
OPC_CheckType, MVT::i32,
14198
OPC_CheckPatternPredicate, 5,
14199
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
14200
OPC_EmitInteger, MVT::i32, 14,
14201
OPC_EmitRegister, MVT::i32, 0 ,
14202
OPC_EmitRegister, MVT::i32, 0 ,
14203
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14204
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
14206
OPC_CheckPredicate, 56,
14207
OPC_CaptureFlagInput,
14210
OPC_CheckType, MVT::i32,
14211
OPC_CheckPatternPredicate, 5,
14212
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
14213
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14214
1, MVT::i32, 4, 1, 2, 3, 4,
14216
OPC_CheckPredicate, 55,
14217
OPC_CaptureFlagInput,
14220
OPC_CheckType, MVT::i32,
14221
OPC_CheckPatternPredicate, 2,
14222
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14223
OPC_EmitInteger, MVT::i32, 14,
14224
OPC_EmitRegister, MVT::i32, 0 ,
14225
OPC_EmitRegister, MVT::i32, 0 ,
14226
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14227
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
14229
OPC_CheckPredicate, 56,
14230
OPC_CaptureFlagInput,
14233
OPC_CheckType, MVT::i32,
14234
OPC_CheckPatternPredicate, 2,
14235
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14236
OPC_EmitInteger, MVT::i32, 14,
14237
OPC_EmitRegister, MVT::i32, 0 ,
14238
OPC_EmitRegister, MVT::i32, 0 ,
14239
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14240
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
14242
OPC_CheckPredicate, 55,
14243
OPC_CaptureFlagInput,
14246
OPC_CheckType, MVT::i32,
14247
OPC_CheckPatternPredicate, 2,
14248
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
14249
OPC_EmitInteger, MVT::i32, 14,
14250
OPC_EmitRegister, MVT::i32, 0 ,
14251
OPC_EmitRegister, MVT::i32, 0 ,
14252
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14253
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
14255
OPC_CheckPredicate, 56,
14256
OPC_CaptureFlagInput,
14259
OPC_CheckType, MVT::i32,
14260
OPC_CheckPatternPredicate, 2,
14261
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
14262
OPC_EmitInteger, MVT::i32, 14,
14263
OPC_EmitRegister, MVT::i32, 0 ,
14264
OPC_EmitRegister, MVT::i32, 0 ,
14265
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14266
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
14268
OPC_CheckPredicate, 55,
14269
OPC_CaptureFlagInput,
14273
OPC_CheckOpcode, ISD::Constant,
14274
OPC_CheckPredicate, 5,
14276
OPC_CheckType, MVT::i32,
14277
OPC_CheckPatternPredicate, 5,
14278
OPC_EmitConvertToTarget, 1,
14279
OPC_EmitInteger, MVT::i32, 14,
14280
OPC_EmitRegister, MVT::i32, 0 ,
14281
OPC_EmitRegister, MVT::i32, 0 ,
14282
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14283
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14285
OPC_CheckPredicate, 56,
14286
OPC_CaptureFlagInput,
14290
OPC_CheckOpcode, ISD::Constant,
14291
OPC_CheckPredicate, 5,
14293
OPC_CheckType, MVT::i32,
14294
OPC_CheckPatternPredicate, 5,
14295
OPC_EmitConvertToTarget, 1,
14296
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14297
1, MVT::i32, 2, 0, 2,
14299
OPC_CheckPredicate, 55,
14300
OPC_CaptureFlagInput,
14304
OPC_CheckOpcode, ISD::Constant,
14305
OPC_CheckPredicate, 4,
14307
OPC_CheckType, MVT::i32,
14308
OPC_CheckPatternPredicate, 2,
14309
OPC_EmitConvertToTarget, 1,
14310
OPC_EmitInteger, MVT::i32, 14,
14311
OPC_EmitRegister, MVT::i32, 0 ,
14312
OPC_EmitRegister, MVT::i32, 0 ,
14313
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14314
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14316
OPC_CheckPredicate, 56,
14317
OPC_CaptureFlagInput,
14321
OPC_CheckOpcode, ISD::Constant,
14322
OPC_CheckPredicate, 4,
14324
OPC_CheckType, MVT::i32,
14325
OPC_CheckPatternPredicate, 2,
14326
OPC_EmitConvertToTarget, 1,
14327
OPC_EmitInteger, MVT::i32, 14,
14328
OPC_EmitRegister, MVT::i32, 0 ,
14329
OPC_EmitRegister, MVT::i32, 0 ,
14330
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14331
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14333
OPC_CheckPredicate, 55,
14334
OPC_CaptureFlagInput,
14337
OPC_CheckType, MVT::i32,
14338
OPC_CheckPatternPredicate, 5,
14339
OPC_EmitInteger, MVT::i32, 14,
14340
OPC_EmitRegister, MVT::i32, 0 ,
14341
OPC_EmitRegister, MVT::i32, 0 ,
14342
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14343
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14345
OPC_CheckPredicate, 56,
14346
OPC_CaptureFlagInput,
14349
OPC_CheckType, MVT::i32,
14350
OPC_CheckPatternPredicate, 5,
14351
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14352
1, MVT::i32, 2, 0, 1,
14354
OPC_CheckPredicate, 55,
14355
OPC_CaptureFlagInput,
14358
OPC_CheckType, MVT::i32,
14359
OPC_CheckPatternPredicate, 2,
14360
OPC_EmitInteger, MVT::i32, 14,
14361
OPC_EmitRegister, MVT::i32, 0 ,
14362
OPC_EmitRegister, MVT::i32, 0 ,
14363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14364
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14366
OPC_CheckPredicate, 56,
14367
OPC_CaptureFlagInput,
14370
OPC_CheckType, MVT::i32,
14371
OPC_CheckPatternPredicate, 2,
14372
OPC_EmitInteger, MVT::i32, 14,
14373
OPC_EmitRegister, MVT::i32, 0 ,
14374
OPC_EmitRegister, MVT::i32, 0 ,
14375
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14376
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14378
OPC_CaptureFlagInput,
14381
OPC_CheckType, MVT::i32,
14382
OPC_CheckPatternPredicate, 6,
14383
OPC_EmitRegister, MVT::i32, ARM::CPSR,
14384
OPC_EmitInteger, MVT::i32, 14,
14385
OPC_EmitRegister, MVT::i32, 0 ,
14386
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADC), 0|OPFL_FlagInput|OPFL_FlagOutput,
14387
1, MVT::i32, 5, 2, 0, 1, 3, 4,
14389
8|128,4, ISD::SUBE,
14391
OPC_CheckPredicate, 57,
14392
OPC_CaptureFlagInput,
14395
OPC_CheckType, MVT::i32,
14396
OPC_CheckPatternPredicate, 5,
14397
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
14398
OPC_EmitInteger, MVT::i32, 14,
14399
OPC_EmitRegister, MVT::i32, 0 ,
14400
OPC_EmitRegister, MVT::i32, 0 ,
14401
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14402
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
14404
OPC_CheckPredicate, 58,
14405
OPC_CaptureFlagInput,
14408
OPC_CheckType, MVT::i32,
14409
OPC_CheckPatternPredicate, 5,
14410
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
14411
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14412
1, MVT::i32, 4, 0, 2, 3, 4,
14414
OPC_CheckPredicate, 57,
14415
OPC_CaptureFlagInput,
14418
OPC_CheckType, MVT::i32,
14420
OPC_CheckPatternPredicate, 5,
14421
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
14423
OPC_EmitInteger, MVT::i32, 14,
14424
OPC_EmitRegister, MVT::i32, 0 ,
14425
OPC_EmitRegister, MVT::i32, 0 ,
14426
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14427
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
14429
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14430
1, MVT::i32, 4, 1, 2, 3, 4,
14433
OPC_CheckPatternPredicate, 2,
14434
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14435
OPC_EmitInteger, MVT::i32, 14,
14436
OPC_EmitRegister, MVT::i32, 0 ,
14437
OPC_EmitRegister, MVT::i32, 0 ,
14438
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14439
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
14442
OPC_CheckPredicate, 58,
14443
OPC_CaptureFlagInput,
14446
OPC_CheckType, MVT::i32,
14447
OPC_CheckPatternPredicate, 2,
14448
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14449
OPC_EmitInteger, MVT::i32, 14,
14450
OPC_EmitRegister, MVT::i32, 0 ,
14451
OPC_EmitRegister, MVT::i32, 0 ,
14452
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
14453
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
14455
OPC_CheckPredicate, 57,
14456
OPC_CaptureFlagInput,
14460
OPC_CheckOpcode, ISD::Constant,
14461
OPC_CheckPredicate, 5,
14463
OPC_CheckType, MVT::i32,
14464
OPC_CheckPatternPredicate, 5,
14465
OPC_EmitConvertToTarget, 1,
14466
OPC_EmitInteger, MVT::i32, 14,
14467
OPC_EmitRegister, MVT::i32, 0 ,
14468
OPC_EmitRegister, MVT::i32, 0 ,
14469
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14470
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14472
OPC_CheckPredicate, 58,
14473
OPC_CaptureFlagInput,
14477
OPC_CheckOpcode, ISD::Constant,
14478
OPC_CheckPredicate, 5,
14480
OPC_CheckType, MVT::i32,
14481
OPC_CheckPatternPredicate, 5,
14482
OPC_EmitConvertToTarget, 1,
14483
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14484
1, MVT::i32, 2, 0, 2,
14486
OPC_CheckPredicate, 57,
14487
OPC_CaptureFlagInput,
14491
OPC_CheckOpcode, ISD::Constant,
14492
OPC_CheckPredicate, 5,
14495
OPC_CheckType, MVT::i32,
14496
OPC_CheckPatternPredicate, 5,
14497
OPC_EmitConvertToTarget, 0,
14499
OPC_EmitInteger, MVT::i32, 14,
14500
OPC_EmitRegister, MVT::i32, 0 ,
14501
OPC_EmitRegister, MVT::i32, 0 ,
14502
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14503
1, MVT::i32, 5, 1, 2, 3, 4, 5,
14505
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14506
1, MVT::i32, 2, 1, 2,
14511
OPC_CheckOpcode, ISD::Constant,
14512
OPC_CheckPredicate, 4,
14514
OPC_CheckType, MVT::i32,
14515
OPC_CheckPatternPredicate, 2,
14516
OPC_EmitConvertToTarget, 1,
14517
OPC_EmitInteger, MVT::i32, 14,
14518
OPC_EmitRegister, MVT::i32, 0 ,
14519
OPC_EmitRegister, MVT::i32, 0 ,
14520
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14521
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14524
OPC_CheckPredicate, 58,
14525
OPC_CaptureFlagInput,
14529
OPC_CheckOpcode, ISD::Constant,
14530
OPC_CheckPredicate, 4,
14532
OPC_CheckType, MVT::i32,
14533
OPC_CheckPatternPredicate, 2,
14534
OPC_EmitConvertToTarget, 1,
14535
OPC_EmitInteger, MVT::i32, 14,
14536
OPC_EmitRegister, MVT::i32, 0 ,
14537
OPC_EmitRegister, MVT::i32, 0 ,
14538
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
14539
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14541
OPC_CheckPredicate, 57,
14542
OPC_CaptureFlagInput,
14545
OPC_CheckType, MVT::i32,
14546
OPC_CheckPatternPredicate, 5,
14547
OPC_EmitInteger, MVT::i32, 14,
14548
OPC_EmitRegister, MVT::i32, 0 ,
14549
OPC_EmitRegister, MVT::i32, 0 ,
14550
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14551
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14553
OPC_CheckPredicate, 58,
14554
OPC_CaptureFlagInput,
14557
OPC_CheckType, MVT::i32,
14558
OPC_CheckPatternPredicate, 5,
14559
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14560
1, MVT::i32, 2, 0, 1,
14562
OPC_CheckPredicate, 57,
14563
OPC_CaptureFlagInput,
14566
OPC_CheckType, MVT::i32,
14567
OPC_CheckPatternPredicate, 2,
14568
OPC_EmitInteger, MVT::i32, 14,
14569
OPC_EmitRegister, MVT::i32, 0 ,
14570
OPC_EmitRegister, MVT::i32, 0 ,
14571
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14572
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14574
OPC_CheckPredicate, 58,
14575
OPC_CaptureFlagInput,
14578
OPC_CheckType, MVT::i32,
14579
OPC_CheckPatternPredicate, 2,
14580
OPC_EmitInteger, MVT::i32, 14,
14581
OPC_EmitRegister, MVT::i32, 0 ,
14582
OPC_EmitRegister, MVT::i32, 0 ,
14583
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
14584
1, MVT::i32, 5, 0, 1, 2, 3, 4,
14586
OPC_CaptureFlagInput,
14589
OPC_CheckType, MVT::i32,
14590
OPC_CheckPatternPredicate, 6,
14591
OPC_EmitRegister, MVT::i32, ARM::CPSR,
14592
OPC_EmitInteger, MVT::i32, 14,
14593
OPC_EmitRegister, MVT::i32, 0 ,
14594
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSBC), 0|OPFL_FlagInput|OPFL_FlagOutput,
14595
1, MVT::i32, 5, 2, 0, 1, 3, 4,
14597
118, ARMISD::PIC_ADD,
14600
OPC_CheckOpcode, ISD::LOAD,
14601
OPC_CheckPredicate, 25,
14602
OPC_CheckPredicate, 26,
14605
OPC_CheckFoldableChainNode,
14607
OPC_CheckOpcode, ARMISD::Wrapper,
14610
OPC_CheckOpcode, ISD::TargetConstantPool,
14616
OPC_CheckOpcode, ISD::Constant,
14618
OPC_CheckType, MVT::i32,
14620
OPC_CheckPatternPredicate, 6,
14621
OPC_EmitMergeInputChains, 1, 0,
14622
OPC_EmitConvertToTarget, 2,
14623
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
14624
1, MVT::i32, 2, 1, 3,
14626
OPC_CheckPatternPredicate, 2,
14627
OPC_EmitMergeInputChains, 1, 0,
14628
OPC_EmitConvertToTarget, 2,
14629
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
14630
1, MVT::i32, 2, 1, 3,
14636
OPC_CheckOpcode, ISD::Constant,
14638
OPC_CheckType, MVT::i32,
14640
OPC_CheckPatternPredicate, 5,
14641
OPC_EmitConvertToTarget, 1,
14642
OPC_EmitInteger, MVT::i32, 14,
14643
OPC_EmitRegister, MVT::i32, 0 ,
14644
OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICADD), 0,
14645
1, MVT::i32, 4, 0, 2, 3, 4,
14647
OPC_CheckPatternPredicate, 9,
14648
OPC_EmitConvertToTarget, 1,
14649
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tPICADD), 0,
14650
1, MVT::i32, 2, 0, 2,
14653
50|128,12, ISD::SUB,
14654
OPC_Scope, 113|128,4,
14658
OPC_CheckType, MVT::i32,
14660
OPC_CheckPatternPredicate, 5,
14662
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
14663
OPC_EmitInteger, MVT::i32, 14,
14664
OPC_EmitRegister, MVT::i32, 0 ,
14665
OPC_EmitRegister, MVT::i32, 0 ,
14666
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBrs), 0,
14667
1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7,
14669
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
14670
OPC_EmitInteger, MVT::i32, 14,
14671
OPC_EmitRegister, MVT::i32, 0 ,
14672
OPC_EmitRegister, MVT::i32, 0 ,
14673
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBrs), 0,
14674
1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7,
14677
OPC_CheckPatternPredicate, 2,
14679
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14680
OPC_EmitInteger, MVT::i32, 14,
14681
OPC_EmitRegister, MVT::i32, 0 ,
14682
OPC_EmitRegister, MVT::i32, 0 ,
14683
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBrs), 0,
14684
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
14686
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
14687
OPC_EmitInteger, MVT::i32, 14,
14688
OPC_EmitRegister, MVT::i32, 0 ,
14689
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBrs), 0,
14690
1, MVT::i32, 5, 1, 2, 3, 4, 5,
14695
OPC_CheckOpcode, ISD::MUL,
14696
OPC_Scope, 6|128,1,
14699
OPC_CheckOpcode, ARMISD::VDUPLANE,
14702
OPC_CheckChild0Type, MVT::v4i16,
14705
OPC_CheckOpcode, ISD::Constant,
14709
OPC_SwitchType , 23, MVT::v4i16,
14710
OPC_CheckPatternPredicate, 3,
14711
OPC_EmitConvertToTarget, 3,
14712
OPC_EmitInteger, MVT::i32, 14,
14713
OPC_EmitRegister, MVT::i32, 0 ,
14714
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i16), 0,
14715
1, MVT::v4i16, 6, 0, 1, 2, 4, 5, 6,
14717
OPC_CheckPatternPredicate, 3,
14718
OPC_EmitConvertToTarget, 3,
14719
OPC_EmitInteger, MVT::i32, 14,
14720
OPC_EmitRegister, MVT::i32, 0 ,
14721
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
14722
1, MVT::v8i16, 6, 0, 1, 2, 4, 5, 6,
14725
OPC_CheckChild0Type, MVT::v2i32,
14728
OPC_CheckOpcode, ISD::Constant,
14732
OPC_SwitchType , 23, MVT::v2i32,
14733
OPC_CheckPatternPredicate, 3,
14734
OPC_EmitConvertToTarget, 3,
14735
OPC_EmitInteger, MVT::i32, 14,
14736
OPC_EmitRegister, MVT::i32, 0 ,
14737
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv2i32), 0,
14738
1, MVT::v2i32, 6, 0, 1, 2, 4, 5, 6,
14740
OPC_CheckPatternPredicate, 3,
14741
OPC_EmitConvertToTarget, 3,
14742
OPC_EmitInteger, MVT::i32, 14,
14743
OPC_EmitRegister, MVT::i32, 0 ,
14744
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
14745
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
14750
OPC_CheckOpcode, ARMISD::VDUPLANE,
14753
OPC_CheckChild0Type, MVT::v4i16,
14756
OPC_CheckOpcode, ISD::Constant,
14761
OPC_SwitchType , 23, MVT::v4i16,
14762
OPC_CheckPatternPredicate, 3,
14763
OPC_EmitConvertToTarget, 2,
14764
OPC_EmitInteger, MVT::i32, 14,
14765
OPC_EmitRegister, MVT::i32, 0 ,
14766
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i16), 0,
14767
1, MVT::v4i16, 6, 0, 3, 1, 4, 5, 6,
14769
OPC_CheckPatternPredicate, 3,
14770
OPC_EmitConvertToTarget, 2,
14771
OPC_EmitInteger, MVT::i32, 14,
14772
OPC_EmitRegister, MVT::i32, 0 ,
14773
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
14774
1, MVT::v8i16, 6, 0, 3, 1, 4, 5, 6,
14777
OPC_CheckChild0Type, MVT::v2i32,
14780
OPC_CheckOpcode, ISD::Constant,
14785
OPC_SwitchType , 23, MVT::v2i32,
14786
OPC_CheckPatternPredicate, 3,
14787
OPC_EmitConvertToTarget, 2,
14788
OPC_EmitInteger, MVT::i32, 14,
14789
OPC_EmitRegister, MVT::i32, 0 ,
14790
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv2i32), 0,
14791
1, MVT::v2i32, 6, 0, 3, 1, 4, 5, 6,
14793
OPC_CheckPatternPredicate, 3,
14794
OPC_EmitConvertToTarget, 2,
14795
OPC_EmitInteger, MVT::i32, 14,
14796
OPC_EmitRegister, MVT::i32, 0 ,
14797
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
14798
1, MVT::v4i32, 6, 0, 3, 1, 4, 5, 6,
14804
OPC_CheckOpcode, ARMISD::VDUPLANE,
14807
OPC_CheckChild0Type, MVT::v8i16,
14810
OPC_CheckOpcode, ISD::Constant,
14814
OPC_CheckType, MVT::v8i16,
14815
OPC_EmitConvertToTarget, 3,
14816
OPC_EmitNodeXForm, 6, 4,
14817
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
14818
1, MVT::v4i16, 2, 2, 5,
14819
OPC_EmitConvertToTarget, 3,
14820
OPC_EmitNodeXForm, 7, 7,
14821
OPC_EmitInteger, MVT::i32, 14,
14822
OPC_EmitRegister, MVT::i32, 0 ,
14823
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
14824
1, MVT::v8i16, 6, 0, 1, 6, 8, 9, 10,
14826
OPC_CheckChild0Type, MVT::v4i32,
14829
OPC_CheckOpcode, ISD::Constant,
14833
OPC_CheckType, MVT::v4i32,
14834
OPC_EmitConvertToTarget, 3,
14835
OPC_EmitNodeXForm, 8, 4,
14836
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
14837
1, MVT::v2i32, 2, 2, 5,
14838
OPC_EmitConvertToTarget, 3,
14839
OPC_EmitNodeXForm, 9, 7,
14840
OPC_EmitInteger, MVT::i32, 14,
14841
OPC_EmitRegister, MVT::i32, 0 ,
14842
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
14843
1, MVT::v4i32, 6, 0, 1, 6, 8, 9, 10,
14847
OPC_CheckOpcode, ARMISD::VDUPLANE,
14850
OPC_CheckChild0Type, MVT::v8i16,
14853
OPC_CheckOpcode, ISD::Constant,
14858
OPC_CheckType, MVT::v8i16,
14859
OPC_EmitConvertToTarget, 2,
14860
OPC_EmitNodeXForm, 6, 4,
14861
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
14862
1, MVT::v4i16, 2, 1, 5,
14863
OPC_EmitConvertToTarget, 2,
14864
OPC_EmitNodeXForm, 7, 7,
14865
OPC_EmitInteger, MVT::i32, 14,
14866
OPC_EmitRegister, MVT::i32, 0 ,
14867
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
14868
1, MVT::v8i16, 6, 0, 3, 6, 8, 9, 10,
14870
OPC_CheckChild0Type, MVT::v4i32,
14873
OPC_CheckOpcode, ISD::Constant,
14878
OPC_CheckType, MVT::v4i32,
14879
OPC_EmitConvertToTarget, 2,
14880
OPC_EmitNodeXForm, 8, 4,
14881
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
14882
1, MVT::v2i32, 2, 1, 5,
14883
OPC_EmitConvertToTarget, 2,
14884
OPC_EmitNodeXForm, 9, 7,
14885
OPC_EmitInteger, MVT::i32, 14,
14886
OPC_EmitRegister, MVT::i32, 0 ,
14887
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
14888
1, MVT::v4i32, 6, 0, 3, 6, 8, 9, 10,
14894
OPC_CheckInteger, 0,
14897
OPC_CheckType, MVT::i32,
14898
OPC_CheckPatternPredicate, 6,
14899
OPC_EmitRegister, MVT::i32, ARM::CPSR,
14900
OPC_EmitInteger, MVT::i32, 14,
14901
OPC_EmitRegister, MVT::i32, 0 ,
14902
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tRSB), 0,
14903
1, MVT::i32, 4, 1, 0, 2, 3,
14909
OPC_CheckOpcode, ISD::Constant,
14910
OPC_CheckPredicate, 5,
14912
OPC_CheckType, MVT::i32,
14913
OPC_CheckPatternPredicate, 5,
14914
OPC_EmitConvertToTarget, 1,
14915
OPC_EmitInteger, MVT::i32, 14,
14916
OPC_EmitRegister, MVT::i32, 0 ,
14917
OPC_EmitRegister, MVT::i32, 0 ,
14918
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
14919
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14922
OPC_CheckOpcode, ISD::Constant,
14923
OPC_CheckPredicate, 5,
14926
OPC_CheckType, MVT::i32,
14927
OPC_CheckPatternPredicate, 5,
14928
OPC_EmitConvertToTarget, 0,
14929
OPC_EmitInteger, MVT::i32, 14,
14930
OPC_EmitRegister, MVT::i32, 0 ,
14931
OPC_EmitRegister, MVT::i32, 0 ,
14932
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBri), 0,
14933
1, MVT::i32, 5, 1, 2, 3, 4, 5,
14937
OPC_CheckOpcode, ISD::Constant,
14939
OPC_CheckPredicate, 4,
14941
OPC_CheckType, MVT::i32,
14942
OPC_CheckPatternPredicate, 2,
14943
OPC_EmitConvertToTarget, 1,
14944
OPC_EmitInteger, MVT::i32, 14,
14945
OPC_EmitRegister, MVT::i32, 0 ,
14946
OPC_EmitRegister, MVT::i32, 0 ,
14947
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
14948
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14950
OPC_CheckPredicate, 17,
14952
OPC_CheckType, MVT::i32,
14953
OPC_CheckPatternPredicate, 2,
14954
OPC_EmitConvertToTarget, 1,
14955
OPC_EmitInteger, MVT::i32, 14,
14956
OPC_EmitRegister, MVT::i32, 0 ,
14957
OPC_EmitRegister, MVT::i32, 0 ,
14958
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri12), 0,
14959
1, MVT::i32, 5, 0, 2, 3, 4, 5,
14963
OPC_CheckOpcode, ISD::Constant,
14964
OPC_CheckPredicate, 4,
14967
OPC_CheckType, MVT::i32,
14968
OPC_CheckPatternPredicate, 2,
14969
OPC_EmitConvertToTarget, 0,
14970
OPC_EmitInteger, MVT::i32, 14,
14971
OPC_EmitRegister, MVT::i32, 0 ,
14972
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBri), 0,
14973
1, MVT::i32, 4, 1, 2, 3, 4,
14977
OPC_SwitchOpcode , 126, ISD::BUILD_VECTOR,
14978
OPC_CheckPredicate, 59,
14981
OPC_SwitchType , 18, MVT::v8i8,
14982
OPC_CheckPatternPredicate, 3,
14983
OPC_EmitInteger, MVT::i32, 14,
14984
OPC_EmitRegister, MVT::i32, 0 ,
14985
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8d), 0,
14986
1, MVT::v8i8, 3, 0, 1, 2,
14988
OPC_CheckPatternPredicate, 3,
14989
OPC_EmitInteger, MVT::i32, 14,
14990
OPC_EmitRegister, MVT::i32, 0 ,
14991
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16d), 0,
14992
1, MVT::v4i16, 3, 0, 1, 2,
14994
OPC_CheckPatternPredicate, 3,
14995
OPC_EmitInteger, MVT::i32, 14,
14996
OPC_EmitRegister, MVT::i32, 0 ,
14997
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32d), 0,
14998
1, MVT::v2i32, 3, 0, 1, 2,
15000
OPC_CheckPatternPredicate, 3,
15001
OPC_EmitInteger, MVT::i32, 14,
15002
OPC_EmitRegister, MVT::i32, 0 ,
15003
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8q), 0,
15004
1, MVT::v16i8, 3, 0, 1, 2,
15006
OPC_CheckPatternPredicate, 3,
15007
OPC_EmitInteger, MVT::i32, 14,
15008
OPC_EmitRegister, MVT::i32, 0 ,
15009
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16q), 0,
15010
1, MVT::v8i16, 3, 0, 1, 2,
15012
OPC_CheckPatternPredicate, 3,
15013
OPC_EmitInteger, MVT::i32, 14,
15014
OPC_EmitRegister, MVT::i32, 0 ,
15015
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32q), 0,
15016
1, MVT::v4i32, 3, 0, 1, 2,
15018
114, ISD::BIT_CONVERT,
15019
OPC_CheckPredicate, 60,
15022
OPC_SwitchType , 16, MVT::v8i8,
15023
OPC_EmitInteger, MVT::i32, 14,
15024
OPC_EmitRegister, MVT::i32, 0 ,
15025
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8d), 0,
15026
1, MVT::v8i8, 3, 0, 1, 2,
15028
OPC_EmitInteger, MVT::i32, 14,
15029
OPC_EmitRegister, MVT::i32, 0 ,
15030
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16d), 0,
15031
1, MVT::v4i16, 3, 0, 1, 2,
15033
OPC_EmitInteger, MVT::i32, 14,
15034
OPC_EmitRegister, MVT::i32, 0 ,
15035
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32d), 0,
15036
1, MVT::v2i32, 3, 0, 1, 2,
15038
OPC_EmitInteger, MVT::i32, 14,
15039
OPC_EmitRegister, MVT::i32, 0 ,
15040
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8q), 0,
15041
1, MVT::v16i8, 3, 0, 1, 2,
15043
OPC_EmitInteger, MVT::i32, 14,
15044
OPC_EmitRegister, MVT::i32, 0 ,
15045
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16q), 0,
15046
1, MVT::v8i16, 3, 0, 1, 2,
15048
OPC_EmitInteger, MVT::i32, 14,
15049
OPC_EmitRegister, MVT::i32, 0 ,
15050
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32q), 0,
15051
1, MVT::v4i32, 3, 0, 1, 2,
15056
OPC_Scope, 113|128,1,
15058
OPC_SwitchOpcode , 55|128,1, ISD::MUL,
15062
OPC_SwitchType , 44, MVT::i32,
15064
OPC_CheckPatternPredicate, 4,
15065
OPC_EmitInteger, MVT::i32, 14,
15066
OPC_EmitRegister, MVT::i32, 0 ,
15067
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLS), 0,
15068
1, MVT::i32, 5, 1, 2, 0, 3, 4,
15070
OPC_CheckPatternPredicate, 2,
15071
OPC_EmitInteger, MVT::i32, 14,
15072
OPC_EmitRegister, MVT::i32, 0 ,
15073
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLS), 0,
15074
1, MVT::i32, 5, 1, 2, 0, 3, 4,
15077
OPC_CheckPatternPredicate, 3,
15078
OPC_EmitInteger, MVT::i32, 14,
15079
OPC_EmitRegister, MVT::i32, 0 ,
15080
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv8i8), 0,
15081
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
15083
OPC_CheckPatternPredicate, 3,
15084
OPC_EmitInteger, MVT::i32, 14,
15085
OPC_EmitRegister, MVT::i32, 0 ,
15086
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv4i16), 0,
15087
1, MVT::v4i16, 5, 0, 1, 2, 3, 4,
15089
OPC_CheckPatternPredicate, 3,
15090
OPC_EmitInteger, MVT::i32, 14,
15091
OPC_EmitRegister, MVT::i32, 0 ,
15092
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv2i32), 0,
15093
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
15095
OPC_CheckPatternPredicate, 3,
15096
OPC_EmitInteger, MVT::i32, 14,
15097
OPC_EmitRegister, MVT::i32, 0 ,
15098
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv16i8), 0,
15099
1, MVT::v16i8, 5, 0, 1, 2, 3, 4,
15101
OPC_CheckPatternPredicate, 3,
15102
OPC_EmitInteger, MVT::i32, 14,
15103
OPC_EmitRegister, MVT::i32, 0 ,
15104
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv8i16), 0,
15105
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
15107
OPC_CheckPatternPredicate, 3,
15108
OPC_EmitInteger, MVT::i32, 14,
15109
OPC_EmitRegister, MVT::i32, 0 ,
15110
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv4i32), 0,
15111
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
15117
OPC_CheckType, MVT::i32,
15119
OPC_CheckPatternPredicate, 0,
15120
OPC_EmitInteger, MVT::i32, 14,
15121
OPC_EmitRegister, MVT::i32, 0 ,
15122
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLS), 0,
15123
1, MVT::i32, 5, 1, 2, 0, 3, 4,
15125
OPC_CheckPatternPredicate, 2,
15126
OPC_EmitInteger, MVT::i32, 14,
15127
OPC_EmitRegister, MVT::i32, 0 ,
15128
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLS), 0,
15129
1, MVT::i32, 5, 1, 2, 0, 3, 4,
15134
OPC_SwitchType , 74, MVT::i32,
15136
OPC_CheckPatternPredicate, 5,
15137
OPC_EmitInteger, MVT::i32, 14,
15138
OPC_EmitRegister, MVT::i32, 0 ,
15139
OPC_EmitRegister, MVT::i32, 0 ,
15140
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBrr), 0,
15141
1, MVT::i32, 5, 0, 1, 2, 3, 4,
15143
OPC_CheckPatternPredicate, 6,
15144
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15145
OPC_EmitInteger, MVT::i32, 14,
15146
OPC_EmitRegister, MVT::i32, 0 ,
15147
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBrr), 0,
15148
1, MVT::i32, 5, 2, 0, 1, 3, 4,
15150
OPC_CheckPatternPredicate, 2,
15151
OPC_EmitInteger, MVT::i32, 14,
15152
OPC_EmitRegister, MVT::i32, 0 ,
15153
OPC_EmitRegister, MVT::i32, 0 ,
15154
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBrr), 0,
15155
1, MVT::i32, 5, 0, 1, 2, 3, 4,
15158
OPC_CheckPatternPredicate, 3,
15159
OPC_EmitInteger, MVT::i32, 14,
15160
OPC_EmitRegister, MVT::i32, 0 ,
15161
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv8i8), 0,
15162
1, MVT::v8i8, 4, 0, 1, 2, 3,
15164
OPC_CheckPatternPredicate, 3,
15165
OPC_EmitInteger, MVT::i32, 14,
15166
OPC_EmitRegister, MVT::i32, 0 ,
15167
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv4i16), 0,
15168
1, MVT::v4i16, 4, 0, 1, 2, 3,
15170
OPC_CheckPatternPredicate, 3,
15171
OPC_EmitInteger, MVT::i32, 14,
15172
OPC_EmitRegister, MVT::i32, 0 ,
15173
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv2i32), 0,
15174
1, MVT::v2i32, 4, 0, 1, 2, 3,
15176
OPC_CheckPatternPredicate, 3,
15177
OPC_EmitInteger, MVT::i32, 14,
15178
OPC_EmitRegister, MVT::i32, 0 ,
15179
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv16i8), 0,
15180
1, MVT::v16i8, 4, 0, 1, 2, 3,
15182
OPC_CheckPatternPredicate, 3,
15183
OPC_EmitInteger, MVT::i32, 14,
15184
OPC_EmitRegister, MVT::i32, 0 ,
15185
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv8i16), 0,
15186
1, MVT::v8i16, 4, 0, 1, 2, 3,
15188
OPC_CheckPatternPredicate, 3,
15189
OPC_EmitInteger, MVT::i32, 14,
15190
OPC_EmitRegister, MVT::i32, 0 ,
15191
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv4i32), 0,
15192
1, MVT::v4i32, 4, 0, 1, 2, 3,
15194
OPC_CheckPatternPredicate, 3,
15195
OPC_EmitInteger, MVT::i32, 14,
15196
OPC_EmitRegister, MVT::i32, 0 ,
15197
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv1i64), 0,
15198
1, MVT::v1i64, 4, 0, 1, 2, 3,
15200
OPC_CheckPatternPredicate, 3,
15201
OPC_EmitInteger, MVT::i32, 14,
15202
OPC_EmitRegister, MVT::i32, 0 ,
15203
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv2i64), 0,
15204
1, MVT::v2i64, 4, 0, 1, 2, 3,
15208
114|128,2, ISD::ADDC,
15212
OPC_CheckType, MVT::i32,
15214
OPC_CheckPatternPredicate, 5,
15216
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
15217
OPC_EmitInteger, MVT::i32, 14,
15218
OPC_EmitRegister, MVT::i32, 0 ,
15219
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrs), 0|OPFL_FlagOutput,
15220
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
15222
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
15223
OPC_EmitInteger, MVT::i32, 14,
15224
OPC_EmitRegister, MVT::i32, 0 ,
15225
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrs), 0|OPFL_FlagOutput,
15226
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
15229
OPC_CheckPatternPredicate, 2,
15231
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
15232
OPC_EmitInteger, MVT::i32, 14,
15233
OPC_EmitRegister, MVT::i32, 0 ,
15234
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrs), 0|OPFL_FlagOutput,
15235
1, MVT::i32, 5, 0, 2, 3, 4, 5,
15237
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
15238
OPC_EmitInteger, MVT::i32, 14,
15239
OPC_EmitRegister, MVT::i32, 0 ,
15240
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrs), 0|OPFL_FlagOutput,
15241
1, MVT::i32, 5, 1, 2, 3, 4, 5,
15246
OPC_CheckOpcode, ISD::Constant,
15248
OPC_CheckPredicate, 5,
15250
OPC_CheckType, MVT::i32,
15251
OPC_CheckPatternPredicate, 5,
15252
OPC_EmitConvertToTarget, 1,
15253
OPC_EmitInteger, MVT::i32, 14,
15254
OPC_EmitRegister, MVT::i32, 0 ,
15255
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSri), 0|OPFL_FlagOutput,
15256
1, MVT::i32, 4, 0, 2, 3, 4,
15258
OPC_CheckPredicate, 13,
15260
OPC_CheckType, MVT::i32,
15261
OPC_CheckPatternPredicate, 6,
15262
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15263
OPC_EmitConvertToTarget, 1,
15264
OPC_EmitInteger, MVT::i32, 14,
15265
OPC_EmitRegister, MVT::i32, 0 ,
15266
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi3), 0|OPFL_FlagOutput,
15267
1, MVT::i32, 5, 2, 0, 3, 4, 5,
15269
OPC_CheckPredicate, 14,
15271
OPC_CheckType, MVT::i32,
15272
OPC_CheckPatternPredicate, 6,
15273
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15274
OPC_EmitConvertToTarget, 1,
15275
OPC_EmitInteger, MVT::i32, 14,
15276
OPC_EmitRegister, MVT::i32, 0 ,
15277
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi8), 0|OPFL_FlagOutput,
15278
1, MVT::i32, 5, 2, 0, 3, 4, 5,
15280
OPC_CheckPredicate, 15,
15282
OPC_CheckType, MVT::i32,
15283
OPC_CheckPatternPredicate, 6,
15284
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15285
OPC_EmitConvertToTarget, 1,
15286
OPC_EmitNodeXForm, 10, 3,
15287
OPC_EmitInteger, MVT::i32, 14,
15288
OPC_EmitRegister, MVT::i32, 0 ,
15289
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi3), 0|OPFL_FlagOutput,
15290
1, MVT::i32, 5, 2, 0, 4, 5, 6,
15292
OPC_CheckPredicate, 16,
15294
OPC_CheckType, MVT::i32,
15295
OPC_CheckPatternPredicate, 6,
15296
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15297
OPC_EmitConvertToTarget, 1,
15298
OPC_EmitNodeXForm, 10, 3,
15299
OPC_EmitInteger, MVT::i32, 14,
15300
OPC_EmitRegister, MVT::i32, 0 ,
15301
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi8), 0|OPFL_FlagOutput,
15302
1, MVT::i32, 5, 2, 0, 4, 5, 6,
15304
OPC_CheckPredicate, 4,
15306
OPC_CheckType, MVT::i32,
15307
OPC_CheckPatternPredicate, 2,
15308
OPC_EmitConvertToTarget, 1,
15309
OPC_EmitInteger, MVT::i32, 14,
15310
OPC_EmitRegister, MVT::i32, 0 ,
15311
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSri), 0|OPFL_FlagOutput,
15312
1, MVT::i32, 4, 0, 2, 3, 4,
15315
OPC_CheckType, MVT::i32,
15317
OPC_CheckPatternPredicate, 5,
15318
OPC_EmitInteger, MVT::i32, 14,
15319
OPC_EmitRegister, MVT::i32, 0 ,
15320
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrr), 0|OPFL_FlagOutput,
15321
1, MVT::i32, 4, 0, 1, 2, 3,
15323
OPC_CheckPatternPredicate, 6,
15324
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15325
OPC_EmitInteger, MVT::i32, 14,
15326
OPC_EmitRegister, MVT::i32, 0 ,
15327
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDrr), 0|OPFL_FlagOutput,
15328
1, MVT::i32, 5, 2, 0, 1, 3, 4,
15330
OPC_CheckPatternPredicate, 2,
15331
OPC_EmitInteger, MVT::i32, 14,
15332
OPC_EmitRegister, MVT::i32, 0 ,
15333
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrr), 0|OPFL_FlagOutput,
15334
1, MVT::i32, 4, 0, 1, 2, 3,
15337
46|128,2, ISD::SUBC,
15339
OPC_Scope, 7|128,1,
15342
OPC_CheckType, MVT::i32,
15344
OPC_CheckPatternPredicate, 5,
15346
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
15347
OPC_EmitInteger, MVT::i32, 14,
15348
OPC_EmitRegister, MVT::i32, 0 ,
15349
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSrs), 0|OPFL_FlagOutput,
15350
1, MVT::i32, 6, 0, 2, 3, 4, 5, 6,
15352
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
15353
OPC_EmitInteger, MVT::i32, 14,
15354
OPC_EmitRegister, MVT::i32, 0 ,
15355
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBSrs), 0|OPFL_FlagOutput,
15356
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
15359
OPC_CheckPatternPredicate, 2,
15361
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
15362
OPC_EmitInteger, MVT::i32, 14,
15363
OPC_EmitRegister, MVT::i32, 0 ,
15364
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSrs), 0|OPFL_FlagOutput,
15365
1, MVT::i32, 5, 0, 2, 3, 4, 5,
15367
OPC_CheckComplexPat, /*CP*/0, /*#*/0,
15368
OPC_EmitRegister, MVT::i32, 0 ,
15369
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBSrs), 0|OPFL_FlagOutput,
15370
1, MVT::i32, 4, 1, 2, 3, 4,
15375
OPC_CheckOpcode, ISD::Constant,
15376
OPC_CheckPredicate, 5,
15378
OPC_CheckType, MVT::i32,
15379
OPC_CheckPatternPredicate, 5,
15380
OPC_EmitConvertToTarget, 1,
15381
OPC_EmitInteger, MVT::i32, 14,
15382
OPC_EmitRegister, MVT::i32, 0 ,
15383
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSri), 0|OPFL_FlagOutput,
15384
1, MVT::i32, 4, 0, 2, 3, 4,
15388
OPC_CheckOpcode, ISD::Constant,
15389
OPC_CheckPredicate, 5,
15392
OPC_CheckType, MVT::i32,
15393
OPC_CheckPatternPredicate, 5,
15394
OPC_EmitConvertToTarget, 0,
15395
OPC_EmitInteger, MVT::i32, 14,
15396
OPC_EmitRegister, MVT::i32, 0 ,
15397
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBSri), 0|OPFL_FlagOutput,
15398
1, MVT::i32, 4, 1, 2, 3, 4,
15402
OPC_CheckOpcode, ISD::Constant,
15403
OPC_CheckPredicate, 4,
15405
OPC_CheckType, MVT::i32,
15406
OPC_CheckPatternPredicate, 2,
15407
OPC_EmitConvertToTarget, 1,
15408
OPC_EmitInteger, MVT::i32, 14,
15409
OPC_EmitRegister, MVT::i32, 0 ,
15410
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSri), 0|OPFL_FlagOutput,
15411
1, MVT::i32, 4, 0, 2, 3, 4,
15414
OPC_CheckOpcode, ISD::Constant,
15415
OPC_CheckPredicate, 4,
15418
OPC_CheckType, MVT::i32,
15419
OPC_CheckPatternPredicate, 2,
15420
OPC_EmitConvertToTarget, 0,
15421
OPC_EmitRegister, MVT::i32, 0 ,
15422
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBSri), 0|OPFL_FlagOutput,
15423
1, MVT::i32, 3, 1, 2, 3,
15426
OPC_CheckType, MVT::i32,
15428
OPC_CheckPatternPredicate, 5,
15429
OPC_EmitInteger, MVT::i32, 14,
15430
OPC_EmitRegister, MVT::i32, 0 ,
15431
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSrr), 0|OPFL_FlagOutput,
15432
1, MVT::i32, 4, 0, 1, 2, 3,
15434
OPC_CheckPatternPredicate, 6,
15435
OPC_EmitRegister, MVT::i32, ARM::CPSR,
15436
OPC_EmitInteger, MVT::i32, 14,
15437
OPC_EmitRegister, MVT::i32, 0 ,
15438
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBrr), 0|OPFL_FlagOutput,
15439
1, MVT::i32, 5, 2, 0, 1, 3, 4,
15441
OPC_CheckPatternPredicate, 2,
15442
OPC_EmitInteger, MVT::i32, 14,
15443
OPC_EmitRegister, MVT::i32, 0 ,
15444
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSrr), 0|OPFL_FlagOutput,
15445
1, MVT::i32, 4, 0, 1, 2, 3,
15448
61|128,1, ARMISD::CMP,
15450
OPC_CheckChild0Type, MVT::i32,
15453
OPC_CheckPatternPredicate, 5,
15454
OPC_CheckComplexPat, /*CP*/1, /*#*/1,
15455
OPC_EmitInteger, MVT::i32, 14,
15456
OPC_EmitRegister, MVT::i32, 0 ,
15457
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPrs), 0|OPFL_FlagOutput,
15458
0, 6, 0, 2, 3, 4, 5, 6,
15460
OPC_CheckPatternPredicate, 2,
15461
OPC_CheckComplexPat, /*CP*/0, /*#*/1,
15462
OPC_EmitInteger, MVT::i32, 14,
15463
OPC_EmitRegister, MVT::i32, 0 ,
15464
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPrs), 0|OPFL_FlagOutput,
15465
0, 5, 0, 2, 3, 4, 5,
15468
OPC_CheckOpcode, ISD::Constant,
15470
OPC_CheckPredicate, 5,
15472
OPC_CheckPatternPredicate, 5,
15473
OPC_EmitConvertToTarget, 1,
15474
OPC_EmitInteger, MVT::i32, 14,
15475
OPC_EmitRegister, MVT::i32, 0 ,
15476
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPri), 0|OPFL_FlagOutput,
15479
OPC_CheckPredicate, 53,
15481
OPC_CheckPatternPredicate, 6,
15482
OPC_EmitConvertToTarget, 1,
15483
OPC_EmitInteger, MVT::i32, 14,
15484
OPC_EmitRegister, MVT::i32, 0 ,
15485
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPi8), 0|OPFL_FlagOutput,
15488
OPC_CheckPredicate, 4,
15490
OPC_CheckPatternPredicate, 2,
15491
OPC_EmitConvertToTarget, 1,
15492
OPC_EmitInteger, MVT::i32, 14,
15493
OPC_EmitRegister, MVT::i32, 0 ,
15494
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPri), 0|OPFL_FlagOutput,
15498
OPC_CheckPatternPredicate, 5,
15499
OPC_EmitInteger, MVT::i32, 14,
15500
OPC_EmitRegister, MVT::i32, 0 ,
15501
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPrr), 0|OPFL_FlagOutput,
15504
OPC_CheckPatternPredicate, 6,
15505
OPC_EmitInteger, MVT::i32, 14,
15506
OPC_EmitRegister, MVT::i32, 0 ,
15507
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPr), 0|OPFL_FlagOutput,
15510
OPC_CheckPatternPredicate, 2,
15511
OPC_EmitInteger, MVT::i32, 14,
15512
OPC_EmitRegister, MVT::i32, 0 ,
15513
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPrr), 0|OPFL_FlagOutput,
15516
15|128,114, ISD::INTRINSIC_WO_CHAIN,
15518
OPC_Scope, 41|128,5,
15519
OPC_CheckInteger, 68,
15521
OPC_Scope, 47|128,1,
15524
OPC_CheckChild1Type, MVT::v4i16,
15526
OPC_CheckOpcode, ARMISD::VDUPLANE,
15528
OPC_CheckChild0Type, MVT::v4i16,
15531
OPC_CheckOpcode, ISD::Constant,
15533
OPC_CheckType, MVT::v4i16,
15535
OPC_CheckType, MVT::v4i16,
15536
OPC_CheckPatternPredicate, 3,
15537
OPC_EmitConvertToTarget, 2,
15538
OPC_EmitInteger, MVT::i32, 14,
15539
OPC_EmitRegister, MVT::i32, 0 ,
15540
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i16), 0,
15541
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
15543
OPC_CheckChild1Type, MVT::v2i32,
15545
OPC_CheckOpcode, ARMISD::VDUPLANE,
15547
OPC_CheckChild0Type, MVT::v2i32,
15550
OPC_CheckOpcode, ISD::Constant,
15552
OPC_CheckType, MVT::v2i32,
15554
OPC_CheckType, MVT::v2i32,
15555
OPC_CheckPatternPredicate, 3,
15556
OPC_EmitConvertToTarget, 2,
15557
OPC_EmitInteger, MVT::i32, 14,
15558
OPC_EmitRegister, MVT::i32, 0 ,
15559
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv2i32), 0,
15560
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
15562
OPC_CheckChild1Type, MVT::v8i16,
15564
OPC_CheckOpcode, ARMISD::VDUPLANE,
15566
OPC_CheckChild0Type, MVT::v4i16,
15569
OPC_CheckOpcode, ISD::Constant,
15571
OPC_CheckType, MVT::v8i16,
15573
OPC_CheckType, MVT::v8i16,
15574
OPC_CheckPatternPredicate, 3,
15575
OPC_EmitConvertToTarget, 2,
15576
OPC_EmitInteger, MVT::i32, 14,
15577
OPC_EmitRegister, MVT::i32, 0 ,
15578
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
15579
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
15581
OPC_CheckChild1Type, MVT::v4i32,
15583
OPC_CheckOpcode, ARMISD::VDUPLANE,
15585
OPC_CheckChild0Type, MVT::v2i32,
15588
OPC_CheckOpcode, ISD::Constant,
15590
OPC_CheckType, MVT::v4i32,
15592
OPC_CheckType, MVT::v4i32,
15593
OPC_CheckPatternPredicate, 3,
15594
OPC_EmitConvertToTarget, 2,
15595
OPC_EmitInteger, MVT::i32, 14,
15596
OPC_EmitRegister, MVT::i32, 0 ,
15597
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
15598
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
15602
OPC_CheckOpcode, ARMISD::VDUPLANE,
15605
OPC_CheckChild0Type, MVT::v4i16,
15608
OPC_CheckOpcode, ISD::Constant,
15610
OPC_SwitchType , 28, MVT::v4i16,
15613
OPC_CheckChild2Type, MVT::v4i16,
15614
OPC_CheckType, MVT::v4i16,
15615
OPC_CheckPatternPredicate, 3,
15616
OPC_EmitConvertToTarget, 1,
15617
OPC_EmitInteger, MVT::i32, 14,
15618
OPC_EmitRegister, MVT::i32, 0 ,
15619
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i16), 0,
15620
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
15624
OPC_CheckChild2Type, MVT::v8i16,
15625
OPC_CheckType, MVT::v8i16,
15626
OPC_CheckPatternPredicate, 3,
15627
OPC_EmitConvertToTarget, 1,
15628
OPC_EmitInteger, MVT::i32, 14,
15629
OPC_EmitRegister, MVT::i32, 0 ,
15630
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
15631
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
15634
OPC_CheckChild0Type, MVT::v2i32,
15637
OPC_CheckOpcode, ISD::Constant,
15639
OPC_SwitchType , 28, MVT::v2i32,
15642
OPC_CheckChild2Type, MVT::v2i32,
15643
OPC_CheckType, MVT::v2i32,
15644
OPC_CheckPatternPredicate, 3,
15645
OPC_EmitConvertToTarget, 1,
15646
OPC_EmitInteger, MVT::i32, 14,
15647
OPC_EmitRegister, MVT::i32, 0 ,
15648
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv2i32), 0,
15649
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
15653
OPC_CheckChild2Type, MVT::v4i32,
15654
OPC_CheckType, MVT::v4i32,
15655
OPC_CheckPatternPredicate, 3,
15656
OPC_EmitConvertToTarget, 1,
15657
OPC_EmitInteger, MVT::i32, 14,
15658
OPC_EmitRegister, MVT::i32, 0 ,
15659
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
15660
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
15666
OPC_CheckChild1Type, MVT::v8i16,
15668
OPC_CheckOpcode, ARMISD::VDUPLANE,
15670
OPC_CheckChild0Type, MVT::v8i16,
15673
OPC_CheckOpcode, ISD::Constant,
15675
OPC_CheckType, MVT::v8i16,
15677
OPC_CheckType, MVT::v8i16,
15678
OPC_EmitConvertToTarget, 2,
15679
OPC_EmitNodeXForm, 6, 3,
15680
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15681
1, MVT::v4i16, 2, 1, 4,
15682
OPC_EmitConvertToTarget, 2,
15683
OPC_EmitNodeXForm, 7, 6,
15684
OPC_EmitInteger, MVT::i32, 14,
15685
OPC_EmitRegister, MVT::i32, 0 ,
15686
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
15687
1, MVT::v8i16, 5, 0, 5, 7, 8, 9,
15689
OPC_CheckChild1Type, MVT::v4i32,
15691
OPC_CheckOpcode, ARMISD::VDUPLANE,
15693
OPC_CheckChild0Type, MVT::v4i32,
15696
OPC_CheckOpcode, ISD::Constant,
15698
OPC_CheckType, MVT::v4i32,
15700
OPC_CheckType, MVT::v4i32,
15701
OPC_EmitConvertToTarget, 2,
15702
OPC_EmitNodeXForm, 8, 3,
15703
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15704
1, MVT::v2i32, 2, 1, 4,
15705
OPC_EmitConvertToTarget, 2,
15706
OPC_EmitNodeXForm, 9, 6,
15707
OPC_EmitInteger, MVT::i32, 14,
15708
OPC_EmitRegister, MVT::i32, 0 ,
15709
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
15710
1, MVT::v4i32, 5, 0, 5, 7, 8, 9,
15714
OPC_CheckOpcode, ARMISD::VDUPLANE,
15717
OPC_CheckChild0Type, MVT::v8i16,
15720
OPC_CheckOpcode, ISD::Constant,
15722
OPC_CheckType, MVT::v8i16,
15725
OPC_CheckChild2Type, MVT::v8i16,
15726
OPC_CheckType, MVT::v8i16,
15727
OPC_EmitConvertToTarget, 1,
15728
OPC_EmitNodeXForm, 6, 3,
15729
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15730
1, MVT::v4i16, 2, 0, 4,
15731
OPC_EmitConvertToTarget, 1,
15732
OPC_EmitNodeXForm, 7, 6,
15733
OPC_EmitInteger, MVT::i32, 14,
15734
OPC_EmitRegister, MVT::i32, 0 ,
15735
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
15736
1, MVT::v8i16, 5, 2, 5, 7, 8, 9,
15738
OPC_CheckChild0Type, MVT::v4i32,
15741
OPC_CheckOpcode, ISD::Constant,
15743
OPC_CheckType, MVT::v4i32,
15746
OPC_CheckChild2Type, MVT::v4i32,
15747
OPC_CheckType, MVT::v4i32,
15748
OPC_EmitConvertToTarget, 1,
15749
OPC_EmitNodeXForm, 8, 3,
15750
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15751
1, MVT::v2i32, 2, 0, 4,
15752
OPC_EmitConvertToTarget, 1,
15753
OPC_EmitNodeXForm, 9, 6,
15754
OPC_EmitInteger, MVT::i32, 14,
15755
OPC_EmitRegister, MVT::i32, 0 ,
15756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
15757
1, MVT::v4i32, 5, 2, 5, 7, 8, 9,
15762
OPC_CheckChild1Type, MVT::v4i16,
15764
OPC_CheckChild2Type, MVT::v4i16,
15765
OPC_CheckType, MVT::v4i16,
15766
OPC_CheckPatternPredicate, 3,
15767
OPC_EmitInteger, MVT::i32, 14,
15768
OPC_EmitRegister, MVT::i32, 0 ,
15769
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv4i16), 0,
15770
1, MVT::v4i16, 4, 0, 1, 2, 3,
15772
OPC_CheckChild1Type, MVT::v2i32,
15774
OPC_CheckChild2Type, MVT::v2i32,
15775
OPC_CheckType, MVT::v2i32,
15776
OPC_CheckPatternPredicate, 3,
15777
OPC_EmitInteger, MVT::i32, 14,
15778
OPC_EmitRegister, MVT::i32, 0 ,
15779
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv2i32), 0,
15780
1, MVT::v2i32, 4, 0, 1, 2, 3,
15782
OPC_CheckChild1Type, MVT::v8i16,
15784
OPC_CheckChild2Type, MVT::v8i16,
15785
OPC_CheckType, MVT::v8i16,
15786
OPC_CheckPatternPredicate, 3,
15787
OPC_EmitInteger, MVT::i32, 14,
15788
OPC_EmitRegister, MVT::i32, 0 ,
15789
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv8i16), 0,
15790
1, MVT::v8i16, 4, 0, 1, 2, 3,
15792
OPC_CheckChild1Type, MVT::v4i32,
15794
OPC_CheckChild2Type, MVT::v4i32,
15795
OPC_CheckType, MVT::v4i32,
15796
OPC_CheckPatternPredicate, 3,
15797
OPC_EmitInteger, MVT::i32, 14,
15798
OPC_EmitRegister, MVT::i32, 0 ,
15799
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv4i32), 0,
15800
1, MVT::v4i32, 4, 0, 1, 2, 3,
15804
OPC_CheckInteger, 74,
15806
OPC_Scope, 47|128,1,
15809
OPC_CheckChild1Type, MVT::v4i16,
15811
OPC_CheckOpcode, ARMISD::VDUPLANE,
15813
OPC_CheckChild0Type, MVT::v4i16,
15816
OPC_CheckOpcode, ISD::Constant,
15818
OPC_CheckType, MVT::v4i16,
15820
OPC_CheckType, MVT::v4i16,
15821
OPC_CheckPatternPredicate, 3,
15822
OPC_EmitConvertToTarget, 2,
15823
OPC_EmitInteger, MVT::i32, 14,
15824
OPC_EmitRegister, MVT::i32, 0 ,
15825
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i16), 0,
15826
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
15828
OPC_CheckChild1Type, MVT::v2i32,
15830
OPC_CheckOpcode, ARMISD::VDUPLANE,
15832
OPC_CheckChild0Type, MVT::v2i32,
15835
OPC_CheckOpcode, ISD::Constant,
15837
OPC_CheckType, MVT::v2i32,
15839
OPC_CheckType, MVT::v2i32,
15840
OPC_CheckPatternPredicate, 3,
15841
OPC_EmitConvertToTarget, 2,
15842
OPC_EmitInteger, MVT::i32, 14,
15843
OPC_EmitRegister, MVT::i32, 0 ,
15844
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv2i32), 0,
15845
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
15847
OPC_CheckChild1Type, MVT::v8i16,
15849
OPC_CheckOpcode, ARMISD::VDUPLANE,
15851
OPC_CheckChild0Type, MVT::v4i16,
15854
OPC_CheckOpcode, ISD::Constant,
15856
OPC_CheckType, MVT::v8i16,
15858
OPC_CheckType, MVT::v8i16,
15859
OPC_CheckPatternPredicate, 3,
15860
OPC_EmitConvertToTarget, 2,
15861
OPC_EmitInteger, MVT::i32, 14,
15862
OPC_EmitRegister, MVT::i32, 0 ,
15863
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
15864
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
15866
OPC_CheckChild1Type, MVT::v4i32,
15868
OPC_CheckOpcode, ARMISD::VDUPLANE,
15870
OPC_CheckChild0Type, MVT::v2i32,
15873
OPC_CheckOpcode, ISD::Constant,
15875
OPC_CheckType, MVT::v4i32,
15877
OPC_CheckType, MVT::v4i32,
15878
OPC_CheckPatternPredicate, 3,
15879
OPC_EmitConvertToTarget, 2,
15880
OPC_EmitInteger, MVT::i32, 14,
15881
OPC_EmitRegister, MVT::i32, 0 ,
15882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
15883
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
15887
OPC_CheckOpcode, ARMISD::VDUPLANE,
15890
OPC_CheckChild0Type, MVT::v4i16,
15893
OPC_CheckOpcode, ISD::Constant,
15895
OPC_SwitchType , 28, MVT::v4i16,
15898
OPC_CheckChild2Type, MVT::v4i16,
15899
OPC_CheckType, MVT::v4i16,
15900
OPC_CheckPatternPredicate, 3,
15901
OPC_EmitConvertToTarget, 1,
15902
OPC_EmitInteger, MVT::i32, 14,
15903
OPC_EmitRegister, MVT::i32, 0 ,
15904
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i16), 0,
15905
1, MVT::v4i16, 5, 2, 0, 3, 4, 5,
15909
OPC_CheckChild2Type, MVT::v8i16,
15910
OPC_CheckType, MVT::v8i16,
15911
OPC_CheckPatternPredicate, 3,
15912
OPC_EmitConvertToTarget, 1,
15913
OPC_EmitInteger, MVT::i32, 14,
15914
OPC_EmitRegister, MVT::i32, 0 ,
15915
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
15916
1, MVT::v8i16, 5, 2, 0, 3, 4, 5,
15919
OPC_CheckChild0Type, MVT::v2i32,
15922
OPC_CheckOpcode, ISD::Constant,
15924
OPC_SwitchType , 28, MVT::v2i32,
15927
OPC_CheckChild2Type, MVT::v2i32,
15928
OPC_CheckType, MVT::v2i32,
15929
OPC_CheckPatternPredicate, 3,
15930
OPC_EmitConvertToTarget, 1,
15931
OPC_EmitInteger, MVT::i32, 14,
15932
OPC_EmitRegister, MVT::i32, 0 ,
15933
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv2i32), 0,
15934
1, MVT::v2i32, 5, 2, 0, 3, 4, 5,
15938
OPC_CheckChild2Type, MVT::v4i32,
15939
OPC_CheckType, MVT::v4i32,
15940
OPC_CheckPatternPredicate, 3,
15941
OPC_EmitConvertToTarget, 1,
15942
OPC_EmitInteger, MVT::i32, 14,
15943
OPC_EmitRegister, MVT::i32, 0 ,
15944
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
15945
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
15951
OPC_CheckChild1Type, MVT::v8i16,
15953
OPC_CheckOpcode, ARMISD::VDUPLANE,
15955
OPC_CheckChild0Type, MVT::v8i16,
15958
OPC_CheckOpcode, ISD::Constant,
15960
OPC_CheckType, MVT::v8i16,
15962
OPC_CheckType, MVT::v8i16,
15963
OPC_EmitConvertToTarget, 2,
15964
OPC_EmitNodeXForm, 6, 3,
15965
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15966
1, MVT::v4i16, 2, 1, 4,
15967
OPC_EmitConvertToTarget, 2,
15968
OPC_EmitNodeXForm, 7, 6,
15969
OPC_EmitInteger, MVT::i32, 14,
15970
OPC_EmitRegister, MVT::i32, 0 ,
15971
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
15972
1, MVT::v8i16, 5, 0, 5, 7, 8, 9,
15974
OPC_CheckChild1Type, MVT::v4i32,
15976
OPC_CheckOpcode, ARMISD::VDUPLANE,
15978
OPC_CheckChild0Type, MVT::v4i32,
15981
OPC_CheckOpcode, ISD::Constant,
15983
OPC_CheckType, MVT::v4i32,
15985
OPC_CheckType, MVT::v4i32,
15986
OPC_EmitConvertToTarget, 2,
15987
OPC_EmitNodeXForm, 8, 3,
15988
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
15989
1, MVT::v2i32, 2, 1, 4,
15990
OPC_EmitConvertToTarget, 2,
15991
OPC_EmitNodeXForm, 9, 6,
15992
OPC_EmitInteger, MVT::i32, 14,
15993
OPC_EmitRegister, MVT::i32, 0 ,
15994
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
15995
1, MVT::v4i32, 5, 0, 5, 7, 8, 9,
15999
OPC_CheckOpcode, ARMISD::VDUPLANE,
16002
OPC_CheckChild0Type, MVT::v8i16,
16005
OPC_CheckOpcode, ISD::Constant,
16007
OPC_CheckType, MVT::v8i16,
16010
OPC_CheckChild2Type, MVT::v8i16,
16011
OPC_CheckType, MVT::v8i16,
16012
OPC_EmitConvertToTarget, 1,
16013
OPC_EmitNodeXForm, 6, 3,
16014
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
16015
1, MVT::v4i16, 2, 0, 4,
16016
OPC_EmitConvertToTarget, 1,
16017
OPC_EmitNodeXForm, 7, 6,
16018
OPC_EmitInteger, MVT::i32, 14,
16019
OPC_EmitRegister, MVT::i32, 0 ,
16020
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
16021
1, MVT::v8i16, 5, 2, 5, 7, 8, 9,
16023
OPC_CheckChild0Type, MVT::v4i32,
16026
OPC_CheckOpcode, ISD::Constant,
16028
OPC_CheckType, MVT::v4i32,
16031
OPC_CheckChild2Type, MVT::v4i32,
16032
OPC_CheckType, MVT::v4i32,
16033
OPC_EmitConvertToTarget, 1,
16034
OPC_EmitNodeXForm, 8, 3,
16035
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
16036
1, MVT::v2i32, 2, 0, 4,
16037
OPC_EmitConvertToTarget, 1,
16038
OPC_EmitNodeXForm, 9, 6,
16039
OPC_EmitInteger, MVT::i32, 14,
16040
OPC_EmitRegister, MVT::i32, 0 ,
16041
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
16042
1, MVT::v4i32, 5, 2, 5, 7, 8, 9,
16047
OPC_CheckChild1Type, MVT::v4i16,
16049
OPC_CheckChild2Type, MVT::v4i16,
16050
OPC_CheckType, MVT::v4i16,
16051
OPC_CheckPatternPredicate, 3,
16052
OPC_EmitInteger, MVT::i32, 14,
16053
OPC_EmitRegister, MVT::i32, 0 ,
16054
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv4i16), 0,
16055
1, MVT::v4i16, 4, 0, 1, 2, 3,
16057
OPC_CheckChild1Type, MVT::v2i32,
16059
OPC_CheckChild2Type, MVT::v2i32,
16060
OPC_CheckType, MVT::v2i32,
16061
OPC_CheckPatternPredicate, 3,
16062
OPC_EmitInteger, MVT::i32, 14,
16063
OPC_EmitRegister, MVT::i32, 0 ,
16064
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv2i32), 0,
16065
1, MVT::v2i32, 4, 0, 1, 2, 3,
16067
OPC_CheckChild1Type, MVT::v8i16,
16069
OPC_CheckChild2Type, MVT::v8i16,
16070
OPC_CheckType, MVT::v8i16,
16071
OPC_CheckPatternPredicate, 3,
16072
OPC_EmitInteger, MVT::i32, 14,
16073
OPC_EmitRegister, MVT::i32, 0 ,
16074
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv8i16), 0,
16075
1, MVT::v8i16, 4, 0, 1, 2, 3,
16077
OPC_CheckChild1Type, MVT::v4i32,
16079
OPC_CheckChild2Type, MVT::v4i32,
16080
OPC_CheckType, MVT::v4i32,
16081
OPC_CheckPatternPredicate, 3,
16082
OPC_EmitInteger, MVT::i32, 14,
16083
OPC_EmitRegister, MVT::i32, 0 ,
16084
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv4i32), 0,
16085
1, MVT::v4i32, 4, 0, 1, 2, 3,
16089
OPC_CheckInteger, 51,
16094
OPC_CheckChild1Type, MVT::v4i16,
16096
OPC_CheckOpcode, ARMISD::VDUPLANE,
16098
OPC_CheckChild0Type, MVT::v4i16,
16101
OPC_CheckOpcode, ISD::Constant,
16103
OPC_CheckType, MVT::v4i16,
16105
OPC_CheckType, MVT::v4i32,
16106
OPC_CheckPatternPredicate, 3,
16107
OPC_EmitConvertToTarget, 2,
16108
OPC_EmitInteger, MVT::i32, 14,
16109
OPC_EmitRegister, MVT::i32, 0 ,
16110
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv4i16), 0,
16111
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
16113
OPC_CheckChild1Type, MVT::v2i32,
16115
OPC_CheckOpcode, ARMISD::VDUPLANE,
16117
OPC_CheckChild0Type, MVT::v2i32,
16120
OPC_CheckOpcode, ISD::Constant,
16122
OPC_CheckType, MVT::v2i32,
16124
OPC_CheckType, MVT::v2i64,
16125
OPC_CheckPatternPredicate, 3,
16126
OPC_EmitConvertToTarget, 2,
16127
OPC_EmitInteger, MVT::i32, 14,
16128
OPC_EmitRegister, MVT::i32, 0 ,
16129
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv2i32), 0,
16130
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
16134
OPC_CheckOpcode, ARMISD::VDUPLANE,
16137
OPC_CheckChild0Type, MVT::v4i16,
16140
OPC_CheckOpcode, ISD::Constant,
16142
OPC_CheckType, MVT::v4i16,
16145
OPC_CheckChild2Type, MVT::v4i16,
16146
OPC_CheckType, MVT::v4i32,
16147
OPC_CheckPatternPredicate, 3,
16148
OPC_EmitConvertToTarget, 1,
16149
OPC_EmitInteger, MVT::i32, 14,
16150
OPC_EmitRegister, MVT::i32, 0 ,
16151
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv4i16), 0,
16152
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
16154
OPC_CheckChild0Type, MVT::v2i32,
16157
OPC_CheckOpcode, ISD::Constant,
16159
OPC_CheckType, MVT::v2i32,
16162
OPC_CheckChild2Type, MVT::v2i32,
16163
OPC_CheckType, MVT::v2i64,
16164
OPC_CheckPatternPredicate, 3,
16165
OPC_EmitConvertToTarget, 1,
16166
OPC_EmitInteger, MVT::i32, 14,
16167
OPC_EmitRegister, MVT::i32, 0 ,
16168
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv2i32), 0,
16169
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
16174
OPC_CheckChild1Type, MVT::v4i16,
16176
OPC_CheckChild2Type, MVT::v4i16,
16177
OPC_CheckType, MVT::v4i32,
16178
OPC_CheckPatternPredicate, 3,
16179
OPC_EmitInteger, MVT::i32, 14,
16180
OPC_EmitRegister, MVT::i32, 0 ,
16181
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv4i32), 0,
16182
1, MVT::v4i32, 4, 0, 1, 2, 3,
16184
OPC_CheckChild1Type, MVT::v2i32,
16186
OPC_CheckChild2Type, MVT::v2i32,
16187
OPC_CheckType, MVT::v2i64,
16188
OPC_CheckPatternPredicate, 3,
16189
OPC_EmitInteger, MVT::i32, 14,
16190
OPC_EmitRegister, MVT::i32, 0 ,
16191
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv2i64), 0,
16192
1, MVT::v2i64, 4, 0, 1, 2, 3,
16194
OPC_CheckChild1Type, MVT::v8i8,
16196
OPC_CheckChild2Type, MVT::v8i8,
16197
OPC_CheckType, MVT::v8i16,
16198
OPC_CheckPatternPredicate, 3,
16199
OPC_EmitInteger, MVT::i32, 14,
16200
OPC_EmitRegister, MVT::i32, 0 ,
16201
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv8i16), 0,
16202
1, MVT::v8i16, 4, 0, 1, 2, 3,
16206
OPC_CheckInteger, 52,
16211
OPC_CheckChild1Type, MVT::v4i16,
16213
OPC_CheckOpcode, ARMISD::VDUPLANE,
16215
OPC_CheckChild0Type, MVT::v4i16,
16218
OPC_CheckOpcode, ISD::Constant,
16220
OPC_CheckType, MVT::v4i16,
16222
OPC_CheckType, MVT::v4i32,
16223
OPC_CheckPatternPredicate, 3,
16224
OPC_EmitConvertToTarget, 2,
16225
OPC_EmitInteger, MVT::i32, 14,
16226
OPC_EmitRegister, MVT::i32, 0 ,
16227
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv4i16), 0,
16228
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
16230
OPC_CheckChild1Type, MVT::v2i32,
16232
OPC_CheckOpcode, ARMISD::VDUPLANE,
16234
OPC_CheckChild0Type, MVT::v2i32,
16237
OPC_CheckOpcode, ISD::Constant,
16239
OPC_CheckType, MVT::v2i32,
16241
OPC_CheckType, MVT::v2i64,
16242
OPC_CheckPatternPredicate, 3,
16243
OPC_EmitConvertToTarget, 2,
16244
OPC_EmitInteger, MVT::i32, 14,
16245
OPC_EmitRegister, MVT::i32, 0 ,
16246
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv2i32), 0,
16247
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
16251
OPC_CheckOpcode, ARMISD::VDUPLANE,
16254
OPC_CheckChild0Type, MVT::v4i16,
16257
OPC_CheckOpcode, ISD::Constant,
16259
OPC_CheckType, MVT::v4i16,
16262
OPC_CheckChild2Type, MVT::v4i16,
16263
OPC_CheckType, MVT::v4i32,
16264
OPC_CheckPatternPredicate, 3,
16265
OPC_EmitConvertToTarget, 1,
16266
OPC_EmitInteger, MVT::i32, 14,
16267
OPC_EmitRegister, MVT::i32, 0 ,
16268
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv4i16), 0,
16269
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
16271
OPC_CheckChild0Type, MVT::v2i32,
16274
OPC_CheckOpcode, ISD::Constant,
16276
OPC_CheckType, MVT::v2i32,
16279
OPC_CheckChild2Type, MVT::v2i32,
16280
OPC_CheckType, MVT::v2i64,
16281
OPC_CheckPatternPredicate, 3,
16282
OPC_EmitConvertToTarget, 1,
16283
OPC_EmitInteger, MVT::i32, 14,
16284
OPC_EmitRegister, MVT::i32, 0 ,
16285
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv2i32), 0,
16286
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
16291
OPC_CheckChild1Type, MVT::v4i16,
16293
OPC_CheckChild2Type, MVT::v4i16,
16294
OPC_CheckType, MVT::v4i32,
16295
OPC_CheckPatternPredicate, 3,
16296
OPC_EmitInteger, MVT::i32, 14,
16297
OPC_EmitRegister, MVT::i32, 0 ,
16298
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv4i32), 0,
16299
1, MVT::v4i32, 4, 0, 1, 2, 3,
16301
OPC_CheckChild1Type, MVT::v2i32,
16303
OPC_CheckChild2Type, MVT::v2i32,
16304
OPC_CheckType, MVT::v2i64,
16305
OPC_CheckPatternPredicate, 3,
16306
OPC_EmitInteger, MVT::i32, 14,
16307
OPC_EmitRegister, MVT::i32, 0 ,
16308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv2i64), 0,
16309
1, MVT::v2i64, 4, 0, 1, 2, 3,
16311
OPC_CheckChild1Type, MVT::v8i8,
16313
OPC_CheckChild2Type, MVT::v8i8,
16314
OPC_CheckType, MVT::v8i16,
16315
OPC_CheckPatternPredicate, 3,
16316
OPC_EmitInteger, MVT::i32, 14,
16317
OPC_EmitRegister, MVT::i32, 0 ,
16318
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv8i16), 0,
16319
1, MVT::v8i16, 4, 0, 1, 2, 3,
16323
OPC_CheckInteger, 69,
16328
OPC_CheckChild1Type, MVT::v4i16,
16330
OPC_CheckOpcode, ARMISD::VDUPLANE,
16332
OPC_CheckChild0Type, MVT::v4i16,
16335
OPC_CheckOpcode, ISD::Constant,
16337
OPC_CheckType, MVT::v4i16,
16339
OPC_CheckType, MVT::v4i32,
16340
OPC_CheckPatternPredicate, 3,
16341
OPC_EmitConvertToTarget, 2,
16342
OPC_EmitInteger, MVT::i32, 14,
16343
OPC_EmitRegister, MVT::i32, 0 ,
16344
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv4i16), 0,
16345
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
16347
OPC_CheckChild1Type, MVT::v2i32,
16349
OPC_CheckOpcode, ARMISD::VDUPLANE,
16351
OPC_CheckChild0Type, MVT::v2i32,
16354
OPC_CheckOpcode, ISD::Constant,
16356
OPC_CheckType, MVT::v2i32,
16358
OPC_CheckType, MVT::v2i64,
16359
OPC_CheckPatternPredicate, 3,
16360
OPC_EmitConvertToTarget, 2,
16361
OPC_EmitInteger, MVT::i32, 14,
16362
OPC_EmitRegister, MVT::i32, 0 ,
16363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv2i32), 0,
16364
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
16368
OPC_CheckOpcode, ARMISD::VDUPLANE,
16371
OPC_CheckChild0Type, MVT::v4i16,
16374
OPC_CheckOpcode, ISD::Constant,
16376
OPC_CheckType, MVT::v4i16,
16379
OPC_CheckChild2Type, MVT::v4i16,
16380
OPC_CheckType, MVT::v4i32,
16381
OPC_CheckPatternPredicate, 3,
16382
OPC_EmitConvertToTarget, 1,
16383
OPC_EmitInteger, MVT::i32, 14,
16384
OPC_EmitRegister, MVT::i32, 0 ,
16385
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv4i16), 0,
16386
1, MVT::v4i32, 5, 2, 0, 3, 4, 5,
16388
OPC_CheckChild0Type, MVT::v2i32,
16391
OPC_CheckOpcode, ISD::Constant,
16393
OPC_CheckType, MVT::v2i32,
16396
OPC_CheckChild2Type, MVT::v2i32,
16397
OPC_CheckType, MVT::v2i64,
16398
OPC_CheckPatternPredicate, 3,
16399
OPC_EmitConvertToTarget, 1,
16400
OPC_EmitInteger, MVT::i32, 14,
16401
OPC_EmitRegister, MVT::i32, 0 ,
16402
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv2i32), 0,
16403
1, MVT::v2i64, 5, 2, 0, 3, 4, 5,
16408
OPC_CheckChild1Type, MVT::v4i16,
16410
OPC_CheckChild2Type, MVT::v4i16,
16411
OPC_CheckType, MVT::v4i32,
16412
OPC_CheckPatternPredicate, 3,
16413
OPC_EmitInteger, MVT::i32, 14,
16414
OPC_EmitRegister, MVT::i32, 0 ,
16415
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLv4i32), 0,
16416
1, MVT::v4i32, 4, 0, 1, 2, 3,
16418
OPC_CheckChild1Type, MVT::v2i32,
16420
OPC_CheckChild2Type, MVT::v2i32,
16421
OPC_CheckType, MVT::v2i64,
16422
OPC_CheckPatternPredicate, 3,
16423
OPC_EmitInteger, MVT::i32, 14,
16424
OPC_EmitRegister, MVT::i32, 0 ,
16425
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLv2i64), 0,
16426
1, MVT::v2i64, 4, 0, 1, 2, 3,
16430
OPC_CheckInteger, 43,
16434
OPC_CheckChild1Type, MVT::v4i32,
16436
OPC_CheckChild2Type, MVT::v4i16,
16439
OPC_CheckOpcode, ARMISD::VDUPLANE,
16441
OPC_CheckChild0Type, MVT::v4i16,
16444
OPC_CheckOpcode, ISD::Constant,
16446
OPC_CheckType, MVT::v4i16,
16448
OPC_CheckType, MVT::v4i32,
16449
OPC_CheckPatternPredicate, 3,
16450
OPC_EmitConvertToTarget, 3,
16451
OPC_EmitInteger, MVT::i32, 14,
16452
OPC_EmitRegister, MVT::i32, 0 ,
16453
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv4i16), 0,
16454
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
16457
OPC_CheckChild3Type, MVT::v4i16,
16458
OPC_CheckType, MVT::v4i32,
16459
OPC_CheckPatternPredicate, 3,
16460
OPC_EmitInteger, MVT::i32, 14,
16461
OPC_EmitRegister, MVT::i32, 0 ,
16462
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv4i32), 0,
16463
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
16466
OPC_CheckChild1Type, MVT::v2i64,
16468
OPC_CheckChild2Type, MVT::v2i32,
16471
OPC_CheckOpcode, ARMISD::VDUPLANE,
16473
OPC_CheckChild0Type, MVT::v2i32,
16476
OPC_CheckOpcode, ISD::Constant,
16478
OPC_CheckType, MVT::v2i32,
16480
OPC_CheckType, MVT::v2i64,
16481
OPC_CheckPatternPredicate, 3,
16482
OPC_EmitConvertToTarget, 3,
16483
OPC_EmitInteger, MVT::i32, 14,
16484
OPC_EmitRegister, MVT::i32, 0 ,
16485
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv2i32), 0,
16486
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
16489
OPC_CheckChild3Type, MVT::v2i32,
16490
OPC_CheckType, MVT::v2i64,
16491
OPC_CheckPatternPredicate, 3,
16492
OPC_EmitInteger, MVT::i32, 14,
16493
OPC_EmitRegister, MVT::i32, 0 ,
16494
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv2i64), 0,
16495
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
16498
OPC_CheckChild1Type, MVT::v4i16,
16500
OPC_CheckChild2Type, MVT::v4i32,
16503
OPC_CheckOpcode, ARMISD::VDUPLANE,
16505
OPC_CheckChild0Type, MVT::v4i16,
16508
OPC_CheckOpcode, ISD::Constant,
16510
OPC_CheckType, MVT::v4i16,
16512
OPC_CheckType, MVT::v4i32,
16513
OPC_CheckPatternPredicate, 3,
16514
OPC_EmitConvertToTarget, 3,
16515
OPC_EmitInteger, MVT::i32, 14,
16516
OPC_EmitRegister, MVT::i32, 0 ,
16517
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv4i16), 0,
16518
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
16521
OPC_CheckChild3Type, MVT::v4i16,
16522
OPC_CheckType, MVT::v4i32,
16523
OPC_CheckPatternPredicate, 3,
16524
OPC_EmitInteger, MVT::i32, 14,
16525
OPC_EmitRegister, MVT::i32, 0 ,
16526
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv4i32), 0,
16527
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
16530
OPC_CheckChild1Type, MVT::v2i32,
16532
OPC_CheckChild2Type, MVT::v2i64,
16535
OPC_CheckOpcode, ARMISD::VDUPLANE,
16537
OPC_CheckChild0Type, MVT::v2i32,
16540
OPC_CheckOpcode, ISD::Constant,
16542
OPC_CheckType, MVT::v2i32,
16544
OPC_CheckType, MVT::v2i64,
16545
OPC_CheckPatternPredicate, 3,
16546
OPC_EmitConvertToTarget, 3,
16547
OPC_EmitInteger, MVT::i32, 14,
16548
OPC_EmitRegister, MVT::i32, 0 ,
16549
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv2i32), 0,
16550
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
16553
OPC_CheckChild3Type, MVT::v2i32,
16554
OPC_CheckType, MVT::v2i64,
16555
OPC_CheckPatternPredicate, 3,
16556
OPC_EmitInteger, MVT::i32, 14,
16557
OPC_EmitRegister, MVT::i32, 0 ,
16558
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv2i64), 0,
16559
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
16562
OPC_CheckChild1Type, MVT::v8i16,
16564
OPC_CheckChild2Type, MVT::v8i8,
16566
OPC_CheckChild3Type, MVT::v8i8,
16567
OPC_CheckType, MVT::v8i16,
16568
OPC_CheckPatternPredicate, 3,
16569
OPC_EmitInteger, MVT::i32, 14,
16570
OPC_EmitRegister, MVT::i32, 0 ,
16571
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv8i16), 0,
16572
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
16574
OPC_CheckChild1Type, MVT::v8i8,
16576
OPC_CheckChild2Type, MVT::v8i16,
16578
OPC_CheckChild3Type, MVT::v8i8,
16579
OPC_CheckType, MVT::v8i16,
16580
OPC_CheckPatternPredicate, 3,
16581
OPC_EmitInteger, MVT::i32, 14,
16582
OPC_EmitRegister, MVT::i32, 0 ,
16583
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv8i16), 0,
16584
1, MVT::v8i16, 5, 1, 0, 2, 3, 4,
16587
OPC_CheckInteger, 44,
16591
OPC_CheckChild1Type, MVT::v4i32,
16593
OPC_CheckChild2Type, MVT::v4i16,
16596
OPC_CheckOpcode, ARMISD::VDUPLANE,
16598
OPC_CheckChild0Type, MVT::v4i16,
16601
OPC_CheckOpcode, ISD::Constant,
16603
OPC_CheckType, MVT::v4i16,
16605
OPC_CheckType, MVT::v4i32,
16606
OPC_CheckPatternPredicate, 3,
16607
OPC_EmitConvertToTarget, 3,
16608
OPC_EmitInteger, MVT::i32, 14,
16609
OPC_EmitRegister, MVT::i32, 0 ,
16610
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv4i16), 0,
16611
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
16614
OPC_CheckChild3Type, MVT::v4i16,
16615
OPC_CheckType, MVT::v4i32,
16616
OPC_CheckPatternPredicate, 3,
16617
OPC_EmitInteger, MVT::i32, 14,
16618
OPC_EmitRegister, MVT::i32, 0 ,
16619
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv4i32), 0,
16620
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
16623
OPC_CheckChild1Type, MVT::v2i64,
16625
OPC_CheckChild2Type, MVT::v2i32,
16628
OPC_CheckOpcode, ARMISD::VDUPLANE,
16630
OPC_CheckChild0Type, MVT::v2i32,
16633
OPC_CheckOpcode, ISD::Constant,
16635
OPC_CheckType, MVT::v2i32,
16637
OPC_CheckType, MVT::v2i64,
16638
OPC_CheckPatternPredicate, 3,
16639
OPC_EmitConvertToTarget, 3,
16640
OPC_EmitInteger, MVT::i32, 14,
16641
OPC_EmitRegister, MVT::i32, 0 ,
16642
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv2i32), 0,
16643
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
16646
OPC_CheckChild3Type, MVT::v2i32,
16647
OPC_CheckType, MVT::v2i64,
16648
OPC_CheckPatternPredicate, 3,
16649
OPC_EmitInteger, MVT::i32, 14,
16650
OPC_EmitRegister, MVT::i32, 0 ,
16651
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv2i64), 0,
16652
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
16655
OPC_CheckChild1Type, MVT::v4i16,
16657
OPC_CheckChild2Type, MVT::v4i32,
16660
OPC_CheckOpcode, ARMISD::VDUPLANE,
16662
OPC_CheckChild0Type, MVT::v4i16,
16665
OPC_CheckOpcode, ISD::Constant,
16667
OPC_CheckType, MVT::v4i16,
16669
OPC_CheckType, MVT::v4i32,
16670
OPC_CheckPatternPredicate, 3,
16671
OPC_EmitConvertToTarget, 3,
16672
OPC_EmitInteger, MVT::i32, 14,
16673
OPC_EmitRegister, MVT::i32, 0 ,
16674
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv4i16), 0,
16675
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
16678
OPC_CheckChild3Type, MVT::v4i16,
16679
OPC_CheckType, MVT::v4i32,
16680
OPC_CheckPatternPredicate, 3,
16681
OPC_EmitInteger, MVT::i32, 14,
16682
OPC_EmitRegister, MVT::i32, 0 ,
16683
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv4i32), 0,
16684
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
16687
OPC_CheckChild1Type, MVT::v2i32,
16689
OPC_CheckChild2Type, MVT::v2i64,
16692
OPC_CheckOpcode, ARMISD::VDUPLANE,
16694
OPC_CheckChild0Type, MVT::v2i32,
16697
OPC_CheckOpcode, ISD::Constant,
16699
OPC_CheckType, MVT::v2i32,
16701
OPC_CheckType, MVT::v2i64,
16702
OPC_CheckPatternPredicate, 3,
16703
OPC_EmitConvertToTarget, 3,
16704
OPC_EmitInteger, MVT::i32, 14,
16705
OPC_EmitRegister, MVT::i32, 0 ,
16706
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv2i32), 0,
16707
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
16710
OPC_CheckChild3Type, MVT::v2i32,
16711
OPC_CheckType, MVT::v2i64,
16712
OPC_CheckPatternPredicate, 3,
16713
OPC_EmitInteger, MVT::i32, 14,
16714
OPC_EmitRegister, MVT::i32, 0 ,
16715
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv2i64), 0,
16716
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
16719
OPC_CheckChild1Type, MVT::v8i16,
16721
OPC_CheckChild2Type, MVT::v8i8,
16723
OPC_CheckChild3Type, MVT::v8i8,
16724
OPC_CheckType, MVT::v8i16,
16725
OPC_CheckPatternPredicate, 3,
16726
OPC_EmitInteger, MVT::i32, 14,
16727
OPC_EmitRegister, MVT::i32, 0 ,
16728
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv8i16), 0,
16729
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
16731
OPC_CheckChild1Type, MVT::v8i8,
16733
OPC_CheckChild2Type, MVT::v8i16,
16735
OPC_CheckChild3Type, MVT::v8i8,
16736
OPC_CheckType, MVT::v8i16,
16737
OPC_CheckPatternPredicate, 3,
16738
OPC_EmitInteger, MVT::i32, 14,
16739
OPC_EmitRegister, MVT::i32, 0 ,
16740
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv8i16), 0,
16741
1, MVT::v8i16, 5, 1, 0, 2, 3, 4,
16744
OPC_CheckInteger, 66,
16748
OPC_CheckChild1Type, MVT::v4i32,
16750
OPC_CheckChild2Type, MVT::v4i16,
16753
OPC_CheckOpcode, ARMISD::VDUPLANE,
16755
OPC_CheckChild0Type, MVT::v4i16,
16758
OPC_CheckOpcode, ISD::Constant,
16760
OPC_CheckType, MVT::v4i16,
16762
OPC_CheckType, MVT::v4i32,
16763
OPC_CheckPatternPredicate, 3,
16764
OPC_EmitConvertToTarget, 3,
16765
OPC_EmitInteger, MVT::i32, 14,
16766
OPC_EmitRegister, MVT::i32, 0 ,
16767
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv4i16), 0,
16768
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
16771
OPC_CheckChild3Type, MVT::v4i16,
16772
OPC_CheckType, MVT::v4i32,
16773
OPC_CheckPatternPredicate, 3,
16774
OPC_EmitInteger, MVT::i32, 14,
16775
OPC_EmitRegister, MVT::i32, 0 ,
16776
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv4i32), 0,
16777
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
16780
OPC_CheckChild1Type, MVT::v2i64,
16782
OPC_CheckChild2Type, MVT::v2i32,
16785
OPC_CheckOpcode, ARMISD::VDUPLANE,
16787
OPC_CheckChild0Type, MVT::v2i32,
16790
OPC_CheckOpcode, ISD::Constant,
16792
OPC_CheckType, MVT::v2i32,
16794
OPC_CheckType, MVT::v2i64,
16795
OPC_CheckPatternPredicate, 3,
16796
OPC_EmitConvertToTarget, 3,
16797
OPC_EmitInteger, MVT::i32, 14,
16798
OPC_EmitRegister, MVT::i32, 0 ,
16799
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv2i32), 0,
16800
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
16803
OPC_CheckChild3Type, MVT::v2i32,
16804
OPC_CheckType, MVT::v2i64,
16805
OPC_CheckPatternPredicate, 3,
16806
OPC_EmitInteger, MVT::i32, 14,
16807
OPC_EmitRegister, MVT::i32, 0 ,
16808
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv2i64), 0,
16809
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
16812
OPC_CheckChild1Type, MVT::v4i16,
16814
OPC_CheckChild2Type, MVT::v4i32,
16817
OPC_CheckOpcode, ARMISD::VDUPLANE,
16819
OPC_CheckChild0Type, MVT::v4i16,
16822
OPC_CheckOpcode, ISD::Constant,
16824
OPC_CheckType, MVT::v4i16,
16826
OPC_CheckType, MVT::v4i32,
16827
OPC_CheckPatternPredicate, 3,
16828
OPC_EmitConvertToTarget, 3,
16829
OPC_EmitInteger, MVT::i32, 14,
16830
OPC_EmitRegister, MVT::i32, 0 ,
16831
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv4i16), 0,
16832
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
16835
OPC_CheckChild3Type, MVT::v4i16,
16836
OPC_CheckType, MVT::v4i32,
16837
OPC_CheckPatternPredicate, 3,
16838
OPC_EmitInteger, MVT::i32, 14,
16839
OPC_EmitRegister, MVT::i32, 0 ,
16840
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv4i32), 0,
16841
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
16844
OPC_CheckChild1Type, MVT::v2i32,
16846
OPC_CheckChild2Type, MVT::v2i64,
16849
OPC_CheckOpcode, ARMISD::VDUPLANE,
16851
OPC_CheckChild0Type, MVT::v2i32,
16854
OPC_CheckOpcode, ISD::Constant,
16856
OPC_CheckType, MVT::v2i32,
16858
OPC_CheckType, MVT::v2i64,
16859
OPC_CheckPatternPredicate, 3,
16860
OPC_EmitConvertToTarget, 3,
16861
OPC_EmitInteger, MVT::i32, 14,
16862
OPC_EmitRegister, MVT::i32, 0 ,
16863
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv2i32), 0,
16864
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
16867
OPC_CheckChild3Type, MVT::v2i32,
16868
OPC_CheckType, MVT::v2i64,
16869
OPC_CheckPatternPredicate, 3,
16870
OPC_EmitInteger, MVT::i32, 14,
16871
OPC_EmitRegister, MVT::i32, 0 ,
16872
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv2i64), 0,
16873
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
16877
OPC_CheckInteger, 45,
16881
OPC_CheckChild1Type, MVT::v4i32,
16883
OPC_CheckChild2Type, MVT::v4i16,
16886
OPC_CheckOpcode, ARMISD::VDUPLANE,
16888
OPC_CheckChild0Type, MVT::v4i16,
16891
OPC_CheckOpcode, ISD::Constant,
16893
OPC_CheckType, MVT::v4i16,
16895
OPC_CheckType, MVT::v4i32,
16896
OPC_CheckPatternPredicate, 3,
16897
OPC_EmitConvertToTarget, 3,
16898
OPC_EmitInteger, MVT::i32, 14,
16899
OPC_EmitRegister, MVT::i32, 0 ,
16900
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv4i16), 0,
16901
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
16904
OPC_CheckChild3Type, MVT::v4i16,
16905
OPC_CheckType, MVT::v4i32,
16906
OPC_CheckPatternPredicate, 3,
16907
OPC_EmitInteger, MVT::i32, 14,
16908
OPC_EmitRegister, MVT::i32, 0 ,
16909
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv4i32), 0,
16910
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
16913
OPC_CheckChild1Type, MVT::v2i64,
16915
OPC_CheckChild2Type, MVT::v2i32,
16918
OPC_CheckOpcode, ARMISD::VDUPLANE,
16920
OPC_CheckChild0Type, MVT::v2i32,
16923
OPC_CheckOpcode, ISD::Constant,
16925
OPC_CheckType, MVT::v2i32,
16927
OPC_CheckType, MVT::v2i64,
16928
OPC_CheckPatternPredicate, 3,
16929
OPC_EmitConvertToTarget, 3,
16930
OPC_EmitInteger, MVT::i32, 14,
16931
OPC_EmitRegister, MVT::i32, 0 ,
16932
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv2i32), 0,
16933
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
16936
OPC_CheckChild3Type, MVT::v2i32,
16937
OPC_CheckType, MVT::v2i64,
16938
OPC_CheckPatternPredicate, 3,
16939
OPC_EmitInteger, MVT::i32, 14,
16940
OPC_EmitRegister, MVT::i32, 0 ,
16941
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv2i64), 0,
16942
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
16945
OPC_CheckChild1Type, MVT::v4i16,
16947
OPC_CheckChild2Type, MVT::v4i32,
16950
OPC_CheckOpcode, ARMISD::VDUPLANE,
16952
OPC_CheckChild0Type, MVT::v4i16,
16955
OPC_CheckOpcode, ISD::Constant,
16957
OPC_CheckType, MVT::v4i16,
16959
OPC_CheckType, MVT::v4i32,
16960
OPC_CheckPatternPredicate, 3,
16961
OPC_EmitConvertToTarget, 3,
16962
OPC_EmitInteger, MVT::i32, 14,
16963
OPC_EmitRegister, MVT::i32, 0 ,
16964
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv4i16), 0,
16965
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
16968
OPC_CheckChild3Type, MVT::v4i16,
16969
OPC_CheckType, MVT::v4i32,
16970
OPC_CheckPatternPredicate, 3,
16971
OPC_EmitInteger, MVT::i32, 14,
16972
OPC_EmitRegister, MVT::i32, 0 ,
16973
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv4i32), 0,
16974
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
16977
OPC_CheckChild1Type, MVT::v2i32,
16979
OPC_CheckChild2Type, MVT::v2i64,
16982
OPC_CheckOpcode, ARMISD::VDUPLANE,
16984
OPC_CheckChild0Type, MVT::v2i32,
16987
OPC_CheckOpcode, ISD::Constant,
16989
OPC_CheckType, MVT::v2i32,
16991
OPC_CheckType, MVT::v2i64,
16992
OPC_CheckPatternPredicate, 3,
16993
OPC_EmitConvertToTarget, 3,
16994
OPC_EmitInteger, MVT::i32, 14,
16995
OPC_EmitRegister, MVT::i32, 0 ,
16996
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv2i32), 0,
16997
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
17000
OPC_CheckChild3Type, MVT::v2i32,
17001
OPC_CheckType, MVT::v2i64,
17002
OPC_CheckPatternPredicate, 3,
17003
OPC_EmitInteger, MVT::i32, 14,
17004
OPC_EmitRegister, MVT::i32, 0 ,
17005
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv2i64), 0,
17006
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
17009
OPC_CheckChild1Type, MVT::v8i16,
17011
OPC_CheckChild2Type, MVT::v8i8,
17013
OPC_CheckChild3Type, MVT::v8i8,
17014
OPC_CheckType, MVT::v8i16,
17015
OPC_CheckPatternPredicate, 3,
17016
OPC_EmitInteger, MVT::i32, 14,
17017
OPC_EmitRegister, MVT::i32, 0 ,
17018
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv8i16), 0,
17019
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
17021
OPC_CheckChild1Type, MVT::v8i8,
17023
OPC_CheckChild2Type, MVT::v8i16,
17025
OPC_CheckChild3Type, MVT::v8i8,
17026
OPC_CheckType, MVT::v8i16,
17027
OPC_CheckPatternPredicate, 3,
17028
OPC_EmitInteger, MVT::i32, 14,
17029
OPC_EmitRegister, MVT::i32, 0 ,
17030
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv8i16), 0,
17031
1, MVT::v8i16, 5, 1, 0, 2, 3, 4,
17034
OPC_CheckInteger, 46,
17038
OPC_CheckChild1Type, MVT::v4i32,
17040
OPC_CheckChild2Type, MVT::v4i16,
17043
OPC_CheckOpcode, ARMISD::VDUPLANE,
17045
OPC_CheckChild0Type, MVT::v4i16,
17048
OPC_CheckOpcode, ISD::Constant,
17050
OPC_CheckType, MVT::v4i16,
17052
OPC_CheckType, MVT::v4i32,
17053
OPC_CheckPatternPredicate, 3,
17054
OPC_EmitConvertToTarget, 3,
17055
OPC_EmitInteger, MVT::i32, 14,
17056
OPC_EmitRegister, MVT::i32, 0 ,
17057
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv4i16), 0,
17058
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
17061
OPC_CheckChild3Type, MVT::v4i16,
17062
OPC_CheckType, MVT::v4i32,
17063
OPC_CheckPatternPredicate, 3,
17064
OPC_EmitInteger, MVT::i32, 14,
17065
OPC_EmitRegister, MVT::i32, 0 ,
17066
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv4i32), 0,
17067
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
17070
OPC_CheckChild1Type, MVT::v2i64,
17072
OPC_CheckChild2Type, MVT::v2i32,
17075
OPC_CheckOpcode, ARMISD::VDUPLANE,
17077
OPC_CheckChild0Type, MVT::v2i32,
17080
OPC_CheckOpcode, ISD::Constant,
17082
OPC_CheckType, MVT::v2i32,
17084
OPC_CheckType, MVT::v2i64,
17085
OPC_CheckPatternPredicate, 3,
17086
OPC_EmitConvertToTarget, 3,
17087
OPC_EmitInteger, MVT::i32, 14,
17088
OPC_EmitRegister, MVT::i32, 0 ,
17089
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv2i32), 0,
17090
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
17093
OPC_CheckChild3Type, MVT::v2i32,
17094
OPC_CheckType, MVT::v2i64,
17095
OPC_CheckPatternPredicate, 3,
17096
OPC_EmitInteger, MVT::i32, 14,
17097
OPC_EmitRegister, MVT::i32, 0 ,
17098
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv2i64), 0,
17099
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
17102
OPC_CheckChild1Type, MVT::v4i16,
17104
OPC_CheckChild2Type, MVT::v4i32,
17107
OPC_CheckOpcode, ARMISD::VDUPLANE,
17109
OPC_CheckChild0Type, MVT::v4i16,
17112
OPC_CheckOpcode, ISD::Constant,
17114
OPC_CheckType, MVT::v4i16,
17116
OPC_CheckType, MVT::v4i32,
17117
OPC_CheckPatternPredicate, 3,
17118
OPC_EmitConvertToTarget, 3,
17119
OPC_EmitInteger, MVT::i32, 14,
17120
OPC_EmitRegister, MVT::i32, 0 ,
17121
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv4i16), 0,
17122
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
17125
OPC_CheckChild3Type, MVT::v4i16,
17126
OPC_CheckType, MVT::v4i32,
17127
OPC_CheckPatternPredicate, 3,
17128
OPC_EmitInteger, MVT::i32, 14,
17129
OPC_EmitRegister, MVT::i32, 0 ,
17130
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv4i32), 0,
17131
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
17134
OPC_CheckChild1Type, MVT::v2i32,
17136
OPC_CheckChild2Type, MVT::v2i64,
17139
OPC_CheckOpcode, ARMISD::VDUPLANE,
17141
OPC_CheckChild0Type, MVT::v2i32,
17144
OPC_CheckOpcode, ISD::Constant,
17146
OPC_CheckType, MVT::v2i32,
17148
OPC_CheckType, MVT::v2i64,
17149
OPC_CheckPatternPredicate, 3,
17150
OPC_EmitConvertToTarget, 3,
17151
OPC_EmitInteger, MVT::i32, 14,
17152
OPC_EmitRegister, MVT::i32, 0 ,
17153
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv2i32), 0,
17154
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
17157
OPC_CheckChild3Type, MVT::v2i32,
17158
OPC_CheckType, MVT::v2i64,
17159
OPC_CheckPatternPredicate, 3,
17160
OPC_EmitInteger, MVT::i32, 14,
17161
OPC_EmitRegister, MVT::i32, 0 ,
17162
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv2i64), 0,
17163
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
17166
OPC_CheckChild1Type, MVT::v8i16,
17168
OPC_CheckChild2Type, MVT::v8i8,
17170
OPC_CheckChild3Type, MVT::v8i8,
17171
OPC_CheckType, MVT::v8i16,
17172
OPC_CheckPatternPredicate, 3,
17173
OPC_EmitInteger, MVT::i32, 14,
17174
OPC_EmitRegister, MVT::i32, 0 ,
17175
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv8i16), 0,
17176
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
17178
OPC_CheckChild1Type, MVT::v8i8,
17180
OPC_CheckChild2Type, MVT::v8i16,
17182
OPC_CheckChild3Type, MVT::v8i8,
17183
OPC_CheckType, MVT::v8i16,
17184
OPC_CheckPatternPredicate, 3,
17185
OPC_EmitInteger, MVT::i32, 14,
17186
OPC_EmitRegister, MVT::i32, 0 ,
17187
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv8i16), 0,
17188
1, MVT::v8i16, 5, 1, 0, 2, 3, 4,
17191
OPC_CheckInteger, 67,
17195
OPC_CheckChild1Type, MVT::v4i32,
17197
OPC_CheckChild2Type, MVT::v4i16,
17200
OPC_CheckOpcode, ARMISD::VDUPLANE,
17202
OPC_CheckChild0Type, MVT::v4i16,
17205
OPC_CheckOpcode, ISD::Constant,
17207
OPC_CheckType, MVT::v4i16,
17209
OPC_CheckType, MVT::v4i32,
17210
OPC_CheckPatternPredicate, 3,
17211
OPC_EmitConvertToTarget, 3,
17212
OPC_EmitInteger, MVT::i32, 14,
17213
OPC_EmitRegister, MVT::i32, 0 ,
17214
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv4i16), 0,
17215
1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6,
17218
OPC_CheckChild3Type, MVT::v4i16,
17219
OPC_CheckType, MVT::v4i32,
17220
OPC_CheckPatternPredicate, 3,
17221
OPC_EmitInteger, MVT::i32, 14,
17222
OPC_EmitRegister, MVT::i32, 0 ,
17223
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv4i32), 0,
17224
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
17227
OPC_CheckChild1Type, MVT::v2i64,
17229
OPC_CheckChild2Type, MVT::v2i32,
17232
OPC_CheckOpcode, ARMISD::VDUPLANE,
17234
OPC_CheckChild0Type, MVT::v2i32,
17237
OPC_CheckOpcode, ISD::Constant,
17239
OPC_CheckType, MVT::v2i32,
17241
OPC_CheckType, MVT::v2i64,
17242
OPC_CheckPatternPredicate, 3,
17243
OPC_EmitConvertToTarget, 3,
17244
OPC_EmitInteger, MVT::i32, 14,
17245
OPC_EmitRegister, MVT::i32, 0 ,
17246
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv2i32), 0,
17247
1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6,
17250
OPC_CheckChild3Type, MVT::v2i32,
17251
OPC_CheckType, MVT::v2i64,
17252
OPC_CheckPatternPredicate, 3,
17253
OPC_EmitInteger, MVT::i32, 14,
17254
OPC_EmitRegister, MVT::i32, 0 ,
17255
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv2i64), 0,
17256
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
17259
OPC_CheckChild1Type, MVT::v4i16,
17261
OPC_CheckChild2Type, MVT::v4i32,
17264
OPC_CheckOpcode, ARMISD::VDUPLANE,
17266
OPC_CheckChild0Type, MVT::v4i16,
17269
OPC_CheckOpcode, ISD::Constant,
17271
OPC_CheckType, MVT::v4i16,
17273
OPC_CheckType, MVT::v4i32,
17274
OPC_CheckPatternPredicate, 3,
17275
OPC_EmitConvertToTarget, 3,
17276
OPC_EmitInteger, MVT::i32, 14,
17277
OPC_EmitRegister, MVT::i32, 0 ,
17278
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv4i16), 0,
17279
1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6,
17282
OPC_CheckChild3Type, MVT::v4i16,
17283
OPC_CheckType, MVT::v4i32,
17284
OPC_CheckPatternPredicate, 3,
17285
OPC_EmitInteger, MVT::i32, 14,
17286
OPC_EmitRegister, MVT::i32, 0 ,
17287
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv4i32), 0,
17288
1, MVT::v4i32, 5, 1, 0, 2, 3, 4,
17291
OPC_CheckChild1Type, MVT::v2i32,
17293
OPC_CheckChild2Type, MVT::v2i64,
17296
OPC_CheckOpcode, ARMISD::VDUPLANE,
17298
OPC_CheckChild0Type, MVT::v2i32,
17301
OPC_CheckOpcode, ISD::Constant,
17303
OPC_CheckType, MVT::v2i32,
17305
OPC_CheckType, MVT::v2i64,
17306
OPC_CheckPatternPredicate, 3,
17307
OPC_EmitConvertToTarget, 3,
17308
OPC_EmitInteger, MVT::i32, 14,
17309
OPC_EmitRegister, MVT::i32, 0 ,
17310
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv2i32), 0,
17311
1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6,
17314
OPC_CheckChild3Type, MVT::v2i32,
17315
OPC_CheckType, MVT::v2i64,
17316
OPC_CheckPatternPredicate, 3,
17317
OPC_EmitInteger, MVT::i32, 14,
17318
OPC_EmitRegister, MVT::i32, 0 ,
17319
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv2i64), 0,
17320
1, MVT::v2i64, 5, 1, 0, 2, 3, 4,
17324
OPC_CheckInteger, 24,
17328
OPC_CheckChild1Type, MVT::v2f32,
17331
OPC_CheckOpcode, ISD::Constant,
17333
OPC_CheckType, MVT::v2i32,
17334
OPC_CheckPatternPredicate, 3,
17335
OPC_EmitConvertToTarget, 1,
17336
OPC_EmitInteger, MVT::i32, 14,
17337
OPC_EmitRegister, MVT::i32, 0 ,
17338
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xsd), 0,
17339
1, MVT::v2i32, 4, 0, 2, 3, 4,
17341
OPC_CheckChild1Type, MVT::v4f32,
17344
OPC_CheckOpcode, ISD::Constant,
17346
OPC_CheckType, MVT::v4i32,
17347
OPC_CheckPatternPredicate, 3,
17348
OPC_EmitConvertToTarget, 1,
17349
OPC_EmitInteger, MVT::i32, 14,
17350
OPC_EmitRegister, MVT::i32, 0 ,
17351
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xsq), 0,
17352
1, MVT::v4i32, 4, 0, 2, 3, 4,
17355
OPC_CheckInteger, 25,
17359
OPC_CheckChild1Type, MVT::v2f32,
17362
OPC_CheckOpcode, ISD::Constant,
17364
OPC_CheckType, MVT::v2i32,
17365
OPC_CheckPatternPredicate, 3,
17366
OPC_EmitConvertToTarget, 1,
17367
OPC_EmitInteger, MVT::i32, 14,
17368
OPC_EmitRegister, MVT::i32, 0 ,
17369
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xud), 0,
17370
1, MVT::v2i32, 4, 0, 2, 3, 4,
17372
OPC_CheckChild1Type, MVT::v4f32,
17375
OPC_CheckOpcode, ISD::Constant,
17377
OPC_CheckType, MVT::v4i32,
17378
OPC_CheckPatternPredicate, 3,
17379
OPC_EmitConvertToTarget, 1,
17380
OPC_EmitInteger, MVT::i32, 14,
17381
OPC_EmitRegister, MVT::i32, 0 ,
17382
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xuq), 0,
17383
1, MVT::v4i32, 4, 0, 2, 3, 4,
17386
OPC_CheckInteger, 26,
17390
OPC_CheckChild1Type, MVT::v2i32,
17393
OPC_CheckOpcode, ISD::Constant,
17395
OPC_CheckType, MVT::v2f32,
17396
OPC_CheckPatternPredicate, 3,
17397
OPC_EmitConvertToTarget, 1,
17398
OPC_EmitInteger, MVT::i32, 14,
17399
OPC_EmitRegister, MVT::i32, 0 ,
17400
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxs2fd), 0,
17401
1, MVT::v2f32, 4, 0, 2, 3, 4,
17403
OPC_CheckChild1Type, MVT::v4i32,
17406
OPC_CheckOpcode, ISD::Constant,
17408
OPC_CheckType, MVT::v4f32,
17409
OPC_CheckPatternPredicate, 3,
17410
OPC_EmitConvertToTarget, 1,
17411
OPC_EmitInteger, MVT::i32, 14,
17412
OPC_EmitRegister, MVT::i32, 0 ,
17413
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxs2fq), 0,
17414
1, MVT::v4f32, 4, 0, 2, 3, 4,
17417
OPC_CheckInteger, 27,
17421
OPC_CheckChild1Type, MVT::v2i32,
17424
OPC_CheckOpcode, ISD::Constant,
17426
OPC_CheckType, MVT::v2f32,
17427
OPC_CheckPatternPredicate, 3,
17428
OPC_EmitConvertToTarget, 1,
17429
OPC_EmitInteger, MVT::i32, 14,
17430
OPC_EmitRegister, MVT::i32, 0 ,
17431
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxu2fd), 0,
17432
1, MVT::v2f32, 4, 0, 2, 3, 4,
17434
OPC_CheckChild1Type, MVT::v4i32,
17437
OPC_CheckOpcode, ISD::Constant,
17439
OPC_CheckType, MVT::v4f32,
17440
OPC_CheckPatternPredicate, 3,
17441
OPC_EmitConvertToTarget, 1,
17442
OPC_EmitInteger, MVT::i32, 14,
17443
OPC_EmitRegister, MVT::i32, 0 ,
17444
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxu2fq), 0,
17445
1, MVT::v4f32, 4, 0, 2, 3, 4,
17448
OPC_CheckInteger, 17,
17452
OPC_CheckChild1Type, MVT::v4i16,
17454
OPC_CheckChild2Type, MVT::v4i16,
17455
OPC_CheckType, MVT::v4i32,
17456
OPC_CheckPatternPredicate, 3,
17457
OPC_EmitInteger, MVT::i32, 14,
17458
OPC_EmitRegister, MVT::i32, 0 ,
17459
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv4i32), 0,
17460
1, MVT::v4i32, 4, 0, 1, 2, 3,
17462
OPC_CheckChild1Type, MVT::v2i32,
17464
OPC_CheckChild2Type, MVT::v2i32,
17465
OPC_CheckType, MVT::v2i64,
17466
OPC_CheckPatternPredicate, 3,
17467
OPC_EmitInteger, MVT::i32, 14,
17468
OPC_EmitRegister, MVT::i32, 0 ,
17469
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv2i64), 0,
17470
1, MVT::v2i64, 4, 0, 1, 2, 3,
17472
OPC_CheckChild1Type, MVT::v8i8,
17474
OPC_CheckChild2Type, MVT::v8i8,
17475
OPC_CheckType, MVT::v8i16,
17476
OPC_CheckPatternPredicate, 3,
17477
OPC_EmitInteger, MVT::i32, 14,
17478
OPC_EmitRegister, MVT::i32, 0 ,
17479
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv8i16), 0,
17480
1, MVT::v8i16, 4, 0, 1, 2, 3,
17483
OPC_CheckInteger, 18,
17487
OPC_CheckChild1Type, MVT::v4i16,
17489
OPC_CheckChild2Type, MVT::v4i16,
17490
OPC_CheckType, MVT::v4i32,
17491
OPC_CheckPatternPredicate, 3,
17492
OPC_EmitInteger, MVT::i32, 14,
17493
OPC_EmitRegister, MVT::i32, 0 ,
17494
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv4i32), 0,
17495
1, MVT::v4i32, 4, 0, 1, 2, 3,
17497
OPC_CheckChild1Type, MVT::v2i32,
17499
OPC_CheckChild2Type, MVT::v2i32,
17500
OPC_CheckType, MVT::v2i64,
17501
OPC_CheckPatternPredicate, 3,
17502
OPC_EmitInteger, MVT::i32, 14,
17503
OPC_EmitRegister, MVT::i32, 0 ,
17504
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv2i64), 0,
17505
1, MVT::v2i64, 4, 0, 1, 2, 3,
17507
OPC_CheckChild1Type, MVT::v8i8,
17509
OPC_CheckChild2Type, MVT::v8i8,
17510
OPC_CheckType, MVT::v8i16,
17511
OPC_CheckPatternPredicate, 3,
17512
OPC_EmitInteger, MVT::i32, 14,
17513
OPC_EmitRegister, MVT::i32, 0 ,
17514
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv8i16), 0,
17515
1, MVT::v8i16, 4, 0, 1, 2, 3,
17518
OPC_CheckInteger, 19,
17522
OPC_CheckChild1Type, MVT::v8i16,
17524
OPC_CheckChild2Type, MVT::v8i8,
17525
OPC_CheckType, MVT::v8i16,
17526
OPC_CheckPatternPredicate, 3,
17527
OPC_EmitInteger, MVT::i32, 14,
17528
OPC_EmitRegister, MVT::i32, 0 ,
17529
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv8i16), 0,
17530
1, MVT::v8i16, 4, 0, 1, 2, 3,
17532
OPC_CheckChild1Type, MVT::v4i32,
17534
OPC_CheckChild2Type, MVT::v4i16,
17535
OPC_CheckType, MVT::v4i32,
17536
OPC_CheckPatternPredicate, 3,
17537
OPC_EmitInteger, MVT::i32, 14,
17538
OPC_EmitRegister, MVT::i32, 0 ,
17539
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv4i32), 0,
17540
1, MVT::v4i32, 4, 0, 1, 2, 3,
17542
OPC_CheckChild1Type, MVT::v2i64,
17544
OPC_CheckChild2Type, MVT::v2i32,
17545
OPC_CheckType, MVT::v2i64,
17546
OPC_CheckPatternPredicate, 3,
17547
OPC_EmitInteger, MVT::i32, 14,
17548
OPC_EmitRegister, MVT::i32, 0 ,
17549
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv2i64), 0,
17550
1, MVT::v2i64, 4, 0, 1, 2, 3,
17552
OPC_CheckChild1Type, MVT::v8i8,
17554
OPC_CheckChild2Type, MVT::v8i16,
17555
OPC_CheckType, MVT::v8i16,
17556
OPC_CheckPatternPredicate, 3,
17557
OPC_EmitInteger, MVT::i32, 14,
17558
OPC_EmitRegister, MVT::i32, 0 ,
17559
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv8i16), 0,
17560
1, MVT::v8i16, 4, 1, 0, 2, 3,
17562
OPC_CheckChild1Type, MVT::v4i16,
17564
OPC_CheckChild2Type, MVT::v4i32,
17565
OPC_CheckType, MVT::v4i32,
17566
OPC_CheckPatternPredicate, 3,
17567
OPC_EmitInteger, MVT::i32, 14,
17568
OPC_EmitRegister, MVT::i32, 0 ,
17569
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv4i32), 0,
17570
1, MVT::v4i32, 4, 1, 0, 2, 3,
17572
OPC_CheckChild1Type, MVT::v2i32,
17574
OPC_CheckChild2Type, MVT::v2i64,
17575
OPC_CheckType, MVT::v2i64,
17576
OPC_CheckPatternPredicate, 3,
17577
OPC_EmitInteger, MVT::i32, 14,
17578
OPC_EmitRegister, MVT::i32, 0 ,
17579
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv2i64), 0,
17580
1, MVT::v2i64, 4, 1, 0, 2, 3,
17583
OPC_CheckInteger, 20,
17587
OPC_CheckChild1Type, MVT::v8i16,
17589
OPC_CheckChild2Type, MVT::v8i8,
17590
OPC_CheckType, MVT::v8i16,
17591
OPC_CheckPatternPredicate, 3,
17592
OPC_EmitInteger, MVT::i32, 14,
17593
OPC_EmitRegister, MVT::i32, 0 ,
17594
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv8i16), 0,
17595
1, MVT::v8i16, 4, 0, 1, 2, 3,
17597
OPC_CheckChild1Type, MVT::v4i32,
17599
OPC_CheckChild2Type, MVT::v4i16,
17600
OPC_CheckType, MVT::v4i32,
17601
OPC_CheckPatternPredicate, 3,
17602
OPC_EmitInteger, MVT::i32, 14,
17603
OPC_EmitRegister, MVT::i32, 0 ,
17604
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv4i32), 0,
17605
1, MVT::v4i32, 4, 0, 1, 2, 3,
17607
OPC_CheckChild1Type, MVT::v2i64,
17609
OPC_CheckChild2Type, MVT::v2i32,
17610
OPC_CheckType, MVT::v2i64,
17611
OPC_CheckPatternPredicate, 3,
17612
OPC_EmitInteger, MVT::i32, 14,
17613
OPC_EmitRegister, MVT::i32, 0 ,
17614
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv2i64), 0,
17615
1, MVT::v2i64, 4, 0, 1, 2, 3,
17617
OPC_CheckChild1Type, MVT::v8i8,
17619
OPC_CheckChild2Type, MVT::v8i16,
17620
OPC_CheckType, MVT::v8i16,
17621
OPC_CheckPatternPredicate, 3,
17622
OPC_EmitInteger, MVT::i32, 14,
17623
OPC_EmitRegister, MVT::i32, 0 ,
17624
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv8i16), 0,
17625
1, MVT::v8i16, 4, 1, 0, 2, 3,
17627
OPC_CheckChild1Type, MVT::v4i16,
17629
OPC_CheckChild2Type, MVT::v4i32,
17630
OPC_CheckType, MVT::v4i32,
17631
OPC_CheckPatternPredicate, 3,
17632
OPC_EmitInteger, MVT::i32, 14,
17633
OPC_EmitRegister, MVT::i32, 0 ,
17634
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv4i32), 0,
17635
1, MVT::v4i32, 4, 1, 0, 2, 3,
17637
OPC_CheckChild1Type, MVT::v2i32,
17639
OPC_CheckChild2Type, MVT::v2i64,
17640
OPC_CheckType, MVT::v2i64,
17641
OPC_CheckPatternPredicate, 3,
17642
OPC_EmitInteger, MVT::i32, 14,
17643
OPC_EmitRegister, MVT::i32, 0 ,
17644
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv2i64), 0,
17645
1, MVT::v2i64, 4, 1, 0, 2, 3,
17648
OPC_CheckInteger, 28,
17652
OPC_CheckChild1Type, MVT::v4i16,
17654
OPC_CheckChild2Type, MVT::v4i16,
17655
OPC_CheckType, MVT::v4i16,
17656
OPC_CheckPatternPredicate, 3,
17657
OPC_EmitInteger, MVT::i32, 14,
17658
OPC_EmitRegister, MVT::i32, 0 ,
17659
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv4i16), 0,
17660
1, MVT::v4i16, 4, 0, 1, 2, 3,
17662
OPC_CheckChild1Type, MVT::v2i32,
17664
OPC_CheckChild2Type, MVT::v2i32,
17665
OPC_CheckType, MVT::v2i32,
17666
OPC_CheckPatternPredicate, 3,
17667
OPC_EmitInteger, MVT::i32, 14,
17668
OPC_EmitRegister, MVT::i32, 0 ,
17669
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv2i32), 0,
17670
1, MVT::v2i32, 4, 0, 1, 2, 3,
17672
OPC_CheckChild1Type, MVT::v8i16,
17674
OPC_CheckChild2Type, MVT::v8i16,
17675
OPC_CheckType, MVT::v8i16,
17676
OPC_CheckPatternPredicate, 3,
17677
OPC_EmitInteger, MVT::i32, 14,
17678
OPC_EmitRegister, MVT::i32, 0 ,
17679
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv8i16), 0,
17680
1, MVT::v8i16, 4, 0, 1, 2, 3,
17682
OPC_CheckChild1Type, MVT::v4i32,
17684
OPC_CheckChild2Type, MVT::v4i32,
17685
OPC_CheckType, MVT::v4i32,
17686
OPC_CheckPatternPredicate, 3,
17687
OPC_EmitInteger, MVT::i32, 14,
17688
OPC_EmitRegister, MVT::i32, 0 ,
17689
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv4i32), 0,
17690
1, MVT::v4i32, 4, 0, 1, 2, 3,
17692
OPC_CheckChild1Type, MVT::v8i8,
17694
OPC_CheckChild2Type, MVT::v8i8,
17695
OPC_CheckType, MVT::v8i8,
17696
OPC_CheckPatternPredicate, 3,
17697
OPC_EmitInteger, MVT::i32, 14,
17698
OPC_EmitRegister, MVT::i32, 0 ,
17699
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv8i8), 0,
17700
1, MVT::v8i8, 4, 0, 1, 2, 3,
17702
OPC_CheckChild1Type, MVT::v16i8,
17704
OPC_CheckChild2Type, MVT::v16i8,
17705
OPC_CheckType, MVT::v16i8,
17706
OPC_CheckPatternPredicate, 3,
17707
OPC_EmitInteger, MVT::i32, 14,
17708
OPC_EmitRegister, MVT::i32, 0 ,
17709
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv16i8), 0,
17710
1, MVT::v16i8, 4, 0, 1, 2, 3,
17713
OPC_CheckInteger, 29,
17717
OPC_CheckChild1Type, MVT::v4i16,
17719
OPC_CheckChild2Type, MVT::v4i16,
17720
OPC_CheckType, MVT::v4i16,
17721
OPC_CheckPatternPredicate, 3,
17722
OPC_EmitInteger, MVT::i32, 14,
17723
OPC_EmitRegister, MVT::i32, 0 ,
17724
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv4i16), 0,
17725
1, MVT::v4i16, 4, 0, 1, 2, 3,
17727
OPC_CheckChild1Type, MVT::v2i32,
17729
OPC_CheckChild2Type, MVT::v2i32,
17730
OPC_CheckType, MVT::v2i32,
17731
OPC_CheckPatternPredicate, 3,
17732
OPC_EmitInteger, MVT::i32, 14,
17733
OPC_EmitRegister, MVT::i32, 0 ,
17734
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv2i32), 0,
17735
1, MVT::v2i32, 4, 0, 1, 2, 3,
17737
OPC_CheckChild1Type, MVT::v8i16,
17739
OPC_CheckChild2Type, MVT::v8i16,
17740
OPC_CheckType, MVT::v8i16,
17741
OPC_CheckPatternPredicate, 3,
17742
OPC_EmitInteger, MVT::i32, 14,
17743
OPC_EmitRegister, MVT::i32, 0 ,
17744
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv8i16), 0,
17745
1, MVT::v8i16, 4, 0, 1, 2, 3,
17747
OPC_CheckChild1Type, MVT::v4i32,
17749
OPC_CheckChild2Type, MVT::v4i32,
17750
OPC_CheckType, MVT::v4i32,
17751
OPC_CheckPatternPredicate, 3,
17752
OPC_EmitInteger, MVT::i32, 14,
17753
OPC_EmitRegister, MVT::i32, 0 ,
17754
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv4i32), 0,
17755
1, MVT::v4i32, 4, 0, 1, 2, 3,
17757
OPC_CheckChild1Type, MVT::v8i8,
17759
OPC_CheckChild2Type, MVT::v8i8,
17760
OPC_CheckType, MVT::v8i8,
17761
OPC_CheckPatternPredicate, 3,
17762
OPC_EmitInteger, MVT::i32, 14,
17763
OPC_EmitRegister, MVT::i32, 0 ,
17764
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv8i8), 0,
17765
1, MVT::v8i8, 4, 0, 1, 2, 3,
17767
OPC_CheckChild1Type, MVT::v16i8,
17769
OPC_CheckChild2Type, MVT::v16i8,
17770
OPC_CheckType, MVT::v16i8,
17771
OPC_CheckPatternPredicate, 3,
17772
OPC_EmitInteger, MVT::i32, 14,
17773
OPC_EmitRegister, MVT::i32, 0 ,
17774
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv16i8), 0,
17775
1, MVT::v16i8, 4, 0, 1, 2, 3,
17778
OPC_CheckInteger, 91,
17782
OPC_CheckChild1Type, MVT::v4i16,
17784
OPC_CheckChild2Type, MVT::v4i16,
17785
OPC_CheckType, MVT::v4i16,
17786
OPC_CheckPatternPredicate, 3,
17787
OPC_EmitInteger, MVT::i32, 14,
17788
OPC_EmitRegister, MVT::i32, 0 ,
17789
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv4i16), 0,
17790
1, MVT::v4i16, 4, 0, 1, 2, 3,
17792
OPC_CheckChild1Type, MVT::v2i32,
17794
OPC_CheckChild2Type, MVT::v2i32,
17795
OPC_CheckType, MVT::v2i32,
17796
OPC_CheckPatternPredicate, 3,
17797
OPC_EmitInteger, MVT::i32, 14,
17798
OPC_EmitRegister, MVT::i32, 0 ,
17799
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv2i32), 0,
17800
1, MVT::v2i32, 4, 0, 1, 2, 3,
17802
OPC_CheckChild1Type, MVT::v8i16,
17804
OPC_CheckChild2Type, MVT::v8i16,
17805
OPC_CheckType, MVT::v8i16,
17806
OPC_CheckPatternPredicate, 3,
17807
OPC_EmitInteger, MVT::i32, 14,
17808
OPC_EmitRegister, MVT::i32, 0 ,
17809
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv8i16), 0,
17810
1, MVT::v8i16, 4, 0, 1, 2, 3,
17812
OPC_CheckChild1Type, MVT::v4i32,
17814
OPC_CheckChild2Type, MVT::v4i32,
17815
OPC_CheckType, MVT::v4i32,
17816
OPC_CheckPatternPredicate, 3,
17817
OPC_EmitInteger, MVT::i32, 14,
17818
OPC_EmitRegister, MVT::i32, 0 ,
17819
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv4i32), 0,
17820
1, MVT::v4i32, 4, 0, 1, 2, 3,
17822
OPC_CheckChild1Type, MVT::v8i8,
17824
OPC_CheckChild2Type, MVT::v8i8,
17825
OPC_CheckType, MVT::v8i8,
17826
OPC_CheckPatternPredicate, 3,
17827
OPC_EmitInteger, MVT::i32, 14,
17828
OPC_EmitRegister, MVT::i32, 0 ,
17829
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv8i8), 0,
17830
1, MVT::v8i8, 4, 0, 1, 2, 3,
17832
OPC_CheckChild1Type, MVT::v16i8,
17834
OPC_CheckChild2Type, MVT::v16i8,
17835
OPC_CheckType, MVT::v16i8,
17836
OPC_CheckPatternPredicate, 3,
17837
OPC_EmitInteger, MVT::i32, 14,
17838
OPC_EmitRegister, MVT::i32, 0 ,
17839
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv16i8), 0,
17840
1, MVT::v16i8, 4, 0, 1, 2, 3,
17843
OPC_CheckInteger, 92,
17847
OPC_CheckChild1Type, MVT::v4i16,
17849
OPC_CheckChild2Type, MVT::v4i16,
17850
OPC_CheckType, MVT::v4i16,
17851
OPC_CheckPatternPredicate, 3,
17852
OPC_EmitInteger, MVT::i32, 14,
17853
OPC_EmitRegister, MVT::i32, 0 ,
17854
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv4i16), 0,
17855
1, MVT::v4i16, 4, 0, 1, 2, 3,
17857
OPC_CheckChild1Type, MVT::v2i32,
17859
OPC_CheckChild2Type, MVT::v2i32,
17860
OPC_CheckType, MVT::v2i32,
17861
OPC_CheckPatternPredicate, 3,
17862
OPC_EmitInteger, MVT::i32, 14,
17863
OPC_EmitRegister, MVT::i32, 0 ,
17864
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv2i32), 0,
17865
1, MVT::v2i32, 4, 0, 1, 2, 3,
17867
OPC_CheckChild1Type, MVT::v8i16,
17869
OPC_CheckChild2Type, MVT::v8i16,
17870
OPC_CheckType, MVT::v8i16,
17871
OPC_CheckPatternPredicate, 3,
17872
OPC_EmitInteger, MVT::i32, 14,
17873
OPC_EmitRegister, MVT::i32, 0 ,
17874
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv8i16), 0,
17875
1, MVT::v8i16, 4, 0, 1, 2, 3,
17877
OPC_CheckChild1Type, MVT::v4i32,
17879
OPC_CheckChild2Type, MVT::v4i32,
17880
OPC_CheckType, MVT::v4i32,
17881
OPC_CheckPatternPredicate, 3,
17882
OPC_EmitInteger, MVT::i32, 14,
17883
OPC_EmitRegister, MVT::i32, 0 ,
17884
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv4i32), 0,
17885
1, MVT::v4i32, 4, 0, 1, 2, 3,
17887
OPC_CheckChild1Type, MVT::v8i8,
17889
OPC_CheckChild2Type, MVT::v8i8,
17890
OPC_CheckType, MVT::v8i8,
17891
OPC_CheckPatternPredicate, 3,
17892
OPC_EmitInteger, MVT::i32, 14,
17893
OPC_EmitRegister, MVT::i32, 0 ,
17894
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv8i8), 0,
17895
1, MVT::v8i8, 4, 0, 1, 2, 3,
17897
OPC_CheckChild1Type, MVT::v16i8,
17899
OPC_CheckChild2Type, MVT::v16i8,
17900
OPC_CheckType, MVT::v16i8,
17901
OPC_CheckPatternPredicate, 3,
17902
OPC_EmitInteger, MVT::i32, 14,
17903
OPC_EmitRegister, MVT::i32, 0 ,
17904
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv16i8), 0,
17905
1, MVT::v16i8, 4, 0, 1, 2, 3,
17908
OPC_CheckInteger, 64,
17912
OPC_CheckChild1Type, MVT::v4i16,
17914
OPC_CheckChild2Type, MVT::v4i16,
17915
OPC_CheckType, MVT::v4i16,
17916
OPC_CheckPatternPredicate, 3,
17917
OPC_EmitInteger, MVT::i32, 14,
17918
OPC_EmitRegister, MVT::i32, 0 ,
17919
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv4i16), 0,
17920
1, MVT::v4i16, 4, 0, 1, 2, 3,
17922
OPC_CheckChild1Type, MVT::v2i32,
17924
OPC_CheckChild2Type, MVT::v2i32,
17925
OPC_CheckType, MVT::v2i32,
17926
OPC_CheckPatternPredicate, 3,
17927
OPC_EmitInteger, MVT::i32, 14,
17928
OPC_EmitRegister, MVT::i32, 0 ,
17929
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv2i32), 0,
17930
1, MVT::v2i32, 4, 0, 1, 2, 3,
17932
OPC_CheckChild1Type, MVT::v8i16,
17934
OPC_CheckChild2Type, MVT::v8i16,
17935
OPC_CheckType, MVT::v8i16,
17936
OPC_CheckPatternPredicate, 3,
17937
OPC_EmitInteger, MVT::i32, 14,
17938
OPC_EmitRegister, MVT::i32, 0 ,
17939
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv8i16), 0,
17940
1, MVT::v8i16, 4, 0, 1, 2, 3,
17942
OPC_CheckChild1Type, MVT::v4i32,
17944
OPC_CheckChild2Type, MVT::v4i32,
17945
OPC_CheckType, MVT::v4i32,
17946
OPC_CheckPatternPredicate, 3,
17947
OPC_EmitInteger, MVT::i32, 14,
17948
OPC_EmitRegister, MVT::i32, 0 ,
17949
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv4i32), 0,
17950
1, MVT::v4i32, 4, 0, 1, 2, 3,
17952
OPC_CheckChild1Type, MVT::v8i8,
17954
OPC_CheckChild2Type, MVT::v8i8,
17955
OPC_CheckType, MVT::v8i8,
17956
OPC_CheckPatternPredicate, 3,
17957
OPC_EmitInteger, MVT::i32, 14,
17958
OPC_EmitRegister, MVT::i32, 0 ,
17959
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv8i8), 0,
17960
1, MVT::v8i8, 4, 0, 1, 2, 3,
17962
OPC_CheckChild1Type, MVT::v16i8,
17964
OPC_CheckChild2Type, MVT::v16i8,
17965
OPC_CheckType, MVT::v16i8,
17966
OPC_CheckPatternPredicate, 3,
17967
OPC_EmitInteger, MVT::i32, 14,
17968
OPC_EmitRegister, MVT::i32, 0 ,
17969
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv16i8), 0,
17970
1, MVT::v16i8, 4, 0, 1, 2, 3,
17972
OPC_CheckChild1Type, MVT::v1i64,
17974
OPC_CheckChild2Type, MVT::v1i64,
17975
OPC_CheckType, MVT::v1i64,
17976
OPC_CheckPatternPredicate, 3,
17977
OPC_EmitInteger, MVT::i32, 14,
17978
OPC_EmitRegister, MVT::i32, 0 ,
17979
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv1i64), 0,
17980
1, MVT::v1i64, 4, 0, 1, 2, 3,
17982
OPC_CheckChild1Type, MVT::v2i64,
17984
OPC_CheckChild2Type, MVT::v2i64,
17985
OPC_CheckType, MVT::v2i64,
17986
OPC_CheckPatternPredicate, 3,
17987
OPC_EmitInteger, MVT::i32, 14,
17988
OPC_EmitRegister, MVT::i32, 0 ,
17989
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv2i64), 0,
17990
1, MVT::v2i64, 4, 0, 1, 2, 3,
17993
OPC_CheckInteger, 65,
17997
OPC_CheckChild1Type, MVT::v4i16,
17999
OPC_CheckChild2Type, MVT::v4i16,
18000
OPC_CheckType, MVT::v4i16,
18001
OPC_CheckPatternPredicate, 3,
18002
OPC_EmitInteger, MVT::i32, 14,
18003
OPC_EmitRegister, MVT::i32, 0 ,
18004
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv4i16), 0,
18005
1, MVT::v4i16, 4, 0, 1, 2, 3,
18007
OPC_CheckChild1Type, MVT::v2i32,
18009
OPC_CheckChild2Type, MVT::v2i32,
18010
OPC_CheckType, MVT::v2i32,
18011
OPC_CheckPatternPredicate, 3,
18012
OPC_EmitInteger, MVT::i32, 14,
18013
OPC_EmitRegister, MVT::i32, 0 ,
18014
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv2i32), 0,
18015
1, MVT::v2i32, 4, 0, 1, 2, 3,
18017
OPC_CheckChild1Type, MVT::v8i16,
18019
OPC_CheckChild2Type, MVT::v8i16,
18020
OPC_CheckType, MVT::v8i16,
18021
OPC_CheckPatternPredicate, 3,
18022
OPC_EmitInteger, MVT::i32, 14,
18023
OPC_EmitRegister, MVT::i32, 0 ,
18024
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv8i16), 0,
18025
1, MVT::v8i16, 4, 0, 1, 2, 3,
18027
OPC_CheckChild1Type, MVT::v4i32,
18029
OPC_CheckChild2Type, MVT::v4i32,
18030
OPC_CheckType, MVT::v4i32,
18031
OPC_CheckPatternPredicate, 3,
18032
OPC_EmitInteger, MVT::i32, 14,
18033
OPC_EmitRegister, MVT::i32, 0 ,
18034
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv4i32), 0,
18035
1, MVT::v4i32, 4, 0, 1, 2, 3,
18037
OPC_CheckChild1Type, MVT::v8i8,
18039
OPC_CheckChild2Type, MVT::v8i8,
18040
OPC_CheckType, MVT::v8i8,
18041
OPC_CheckPatternPredicate, 3,
18042
OPC_EmitInteger, MVT::i32, 14,
18043
OPC_EmitRegister, MVT::i32, 0 ,
18044
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv8i8), 0,
18045
1, MVT::v8i8, 4, 0, 1, 2, 3,
18047
OPC_CheckChild1Type, MVT::v16i8,
18049
OPC_CheckChild2Type, MVT::v16i8,
18050
OPC_CheckType, MVT::v16i8,
18051
OPC_CheckPatternPredicate, 3,
18052
OPC_EmitInteger, MVT::i32, 14,
18053
OPC_EmitRegister, MVT::i32, 0 ,
18054
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv16i8), 0,
18055
1, MVT::v16i8, 4, 0, 1, 2, 3,
18057
OPC_CheckChild1Type, MVT::v1i64,
18059
OPC_CheckChild2Type, MVT::v1i64,
18060
OPC_CheckType, MVT::v1i64,
18061
OPC_CheckPatternPredicate, 3,
18062
OPC_EmitInteger, MVT::i32, 14,
18063
OPC_EmitRegister, MVT::i32, 0 ,
18064
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv1i64), 0,
18065
1, MVT::v1i64, 4, 0, 1, 2, 3,
18067
OPC_CheckChild1Type, MVT::v2i64,
18069
OPC_CheckChild2Type, MVT::v2i64,
18070
OPC_CheckType, MVT::v2i64,
18071
OPC_CheckPatternPredicate, 3,
18072
OPC_EmitInteger, MVT::i32, 14,
18073
OPC_EmitRegister, MVT::i32, 0 ,
18074
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv2i64), 0,
18075
1, MVT::v2i64, 4, 0, 1, 2, 3,
18078
OPC_CheckInteger, 16,
18082
OPC_CheckChild1Type, MVT::v8i16,
18084
OPC_CheckChild2Type, MVT::v8i16,
18085
OPC_CheckType, MVT::v8i8,
18086
OPC_CheckPatternPredicate, 3,
18087
OPC_EmitInteger, MVT::i32, 14,
18088
OPC_EmitRegister, MVT::i32, 0 ,
18089
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv8i8), 0,
18090
1, MVT::v8i8, 4, 0, 1, 2, 3,
18092
OPC_CheckChild1Type, MVT::v4i32,
18094
OPC_CheckChild2Type, MVT::v4i32,
18095
OPC_CheckType, MVT::v4i16,
18096
OPC_CheckPatternPredicate, 3,
18097
OPC_EmitInteger, MVT::i32, 14,
18098
OPC_EmitRegister, MVT::i32, 0 ,
18099
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv4i16), 0,
18100
1, MVT::v4i16, 4, 0, 1, 2, 3,
18102
OPC_CheckChild1Type, MVT::v2i64,
18104
OPC_CheckChild2Type, MVT::v2i64,
18105
OPC_CheckType, MVT::v2i32,
18106
OPC_CheckPatternPredicate, 3,
18107
OPC_EmitInteger, MVT::i32, 14,
18108
OPC_EmitRegister, MVT::i32, 0 ,
18109
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv2i32), 0,
18110
1, MVT::v2i32, 4, 0, 1, 2, 3,
18113
OPC_CheckInteger, 88,
18117
OPC_CheckChild1Type, MVT::v8i16,
18119
OPC_CheckChild2Type, MVT::v8i16,
18120
OPC_CheckType, MVT::v8i8,
18121
OPC_CheckPatternPredicate, 3,
18122
OPC_EmitInteger, MVT::i32, 14,
18123
OPC_EmitRegister, MVT::i32, 0 ,
18124
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv8i8), 0,
18125
1, MVT::v8i8, 4, 0, 1, 2, 3,
18127
OPC_CheckChild1Type, MVT::v4i32,
18129
OPC_CheckChild2Type, MVT::v4i32,
18130
OPC_CheckType, MVT::v4i16,
18131
OPC_CheckPatternPredicate, 3,
18132
OPC_EmitInteger, MVT::i32, 14,
18133
OPC_EmitRegister, MVT::i32, 0 ,
18134
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv4i16), 0,
18135
1, MVT::v4i16, 4, 0, 1, 2, 3,
18137
OPC_CheckChild1Type, MVT::v2i64,
18139
OPC_CheckChild2Type, MVT::v2i64,
18140
OPC_CheckType, MVT::v2i32,
18141
OPC_CheckPatternPredicate, 3,
18142
OPC_EmitInteger, MVT::i32, 14,
18143
OPC_EmitRegister, MVT::i32, 0 ,
18144
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv2i32), 0,
18145
1, MVT::v2i32, 4, 0, 1, 2, 3,
18148
OPC_CheckInteger, 53,
18152
OPC_CheckChild1Type, MVT::v8i8,
18154
OPC_CheckChild2Type, MVT::v8i8,
18155
OPC_CheckType, MVT::v8i8,
18156
OPC_CheckPatternPredicate, 3,
18157
OPC_EmitInteger, MVT::i32, 14,
18158
OPC_EmitRegister, MVT::i32, 0 ,
18159
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULpd), 0,
18160
1, MVT::v8i8, 4, 0, 1, 2, 3,
18162
OPC_CheckChild1Type, MVT::v16i8,
18164
OPC_CheckChild2Type, MVT::v16i8,
18165
OPC_CheckType, MVT::v16i8,
18166
OPC_CheckPatternPredicate, 3,
18167
OPC_EmitInteger, MVT::i32, 14,
18168
OPC_EmitRegister, MVT::i32, 0 ,
18169
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULpq), 0,
18170
1, MVT::v16i8, 4, 0, 1, 2, 3,
18173
OPC_CheckInteger, 50,
18176
OPC_CheckChild1Type, MVT::v8i8,
18178
OPC_CheckChild2Type, MVT::v8i8,
18179
OPC_CheckType, MVT::v8i16,
18180
OPC_CheckPatternPredicate, 3,
18181
OPC_EmitInteger, MVT::i32, 14,
18182
OPC_EmitRegister, MVT::i32, 0 ,
18183
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLp), 0,
18184
1, MVT::v8i16, 4, 0, 1, 2, 3,
18186
OPC_CheckInteger, 113,
18190
OPC_CheckChild1Type, MVT::v4i16,
18192
OPC_CheckChild2Type, MVT::v4i16,
18193
OPC_CheckType, MVT::v4i32,
18194
OPC_CheckPatternPredicate, 3,
18195
OPC_EmitInteger, MVT::i32, 14,
18196
OPC_EmitRegister, MVT::i32, 0 ,
18197
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv4i32), 0,
18198
1, MVT::v4i32, 4, 0, 1, 2, 3,
18200
OPC_CheckChild1Type, MVT::v2i32,
18202
OPC_CheckChild2Type, MVT::v2i32,
18203
OPC_CheckType, MVT::v2i64,
18204
OPC_CheckPatternPredicate, 3,
18205
OPC_EmitInteger, MVT::i32, 14,
18206
OPC_EmitRegister, MVT::i32, 0 ,
18207
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv2i64), 0,
18208
1, MVT::v2i64, 4, 0, 1, 2, 3,
18210
OPC_CheckChild1Type, MVT::v8i8,
18212
OPC_CheckChild2Type, MVT::v8i8,
18213
OPC_CheckType, MVT::v8i16,
18214
OPC_CheckPatternPredicate, 3,
18215
OPC_EmitInteger, MVT::i32, 14,
18216
OPC_EmitRegister, MVT::i32, 0 ,
18217
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv8i16), 0,
18218
1, MVT::v8i16, 4, 0, 1, 2, 3,
18221
OPC_CheckInteger, 114,
18225
OPC_CheckChild1Type, MVT::v4i16,
18227
OPC_CheckChild2Type, MVT::v4i16,
18228
OPC_CheckType, MVT::v4i32,
18229
OPC_CheckPatternPredicate, 3,
18230
OPC_EmitInteger, MVT::i32, 14,
18231
OPC_EmitRegister, MVT::i32, 0 ,
18232
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv4i32), 0,
18233
1, MVT::v4i32, 4, 0, 1, 2, 3,
18235
OPC_CheckChild1Type, MVT::v2i32,
18237
OPC_CheckChild2Type, MVT::v2i32,
18238
OPC_CheckType, MVT::v2i64,
18239
OPC_CheckPatternPredicate, 3,
18240
OPC_EmitInteger, MVT::i32, 14,
18241
OPC_EmitRegister, MVT::i32, 0 ,
18242
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv2i64), 0,
18243
1, MVT::v2i64, 4, 0, 1, 2, 3,
18245
OPC_CheckChild1Type, MVT::v8i8,
18247
OPC_CheckChild2Type, MVT::v8i8,
18248
OPC_CheckType, MVT::v8i16,
18249
OPC_CheckPatternPredicate, 3,
18250
OPC_EmitInteger, MVT::i32, 14,
18251
OPC_EmitRegister, MVT::i32, 0 ,
18252
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv8i16), 0,
18253
1, MVT::v8i16, 4, 0, 1, 2, 3,
18256
OPC_CheckInteger, 115,
18260
OPC_CheckChild1Type, MVT::v8i16,
18262
OPC_CheckChild2Type, MVT::v8i8,
18263
OPC_CheckType, MVT::v8i16,
18264
OPC_CheckPatternPredicate, 3,
18265
OPC_EmitInteger, MVT::i32, 14,
18266
OPC_EmitRegister, MVT::i32, 0 ,
18267
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv8i16), 0,
18268
1, MVT::v8i16, 4, 0, 1, 2, 3,
18270
OPC_CheckChild1Type, MVT::v4i32,
18272
OPC_CheckChild2Type, MVT::v4i16,
18273
OPC_CheckType, MVT::v4i32,
18274
OPC_CheckPatternPredicate, 3,
18275
OPC_EmitInteger, MVT::i32, 14,
18276
OPC_EmitRegister, MVT::i32, 0 ,
18277
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv4i32), 0,
18278
1, MVT::v4i32, 4, 0, 1, 2, 3,
18280
OPC_CheckChild1Type, MVT::v2i64,
18282
OPC_CheckChild2Type, MVT::v2i32,
18283
OPC_CheckType, MVT::v2i64,
18284
OPC_CheckPatternPredicate, 3,
18285
OPC_EmitInteger, MVT::i32, 14,
18286
OPC_EmitRegister, MVT::i32, 0 ,
18287
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv2i64), 0,
18288
1, MVT::v2i64, 4, 0, 1, 2, 3,
18291
OPC_CheckInteger, 116,
18295
OPC_CheckChild1Type, MVT::v8i16,
18297
OPC_CheckChild2Type, MVT::v8i8,
18298
OPC_CheckType, MVT::v8i16,
18299
OPC_CheckPatternPredicate, 3,
18300
OPC_EmitInteger, MVT::i32, 14,
18301
OPC_EmitRegister, MVT::i32, 0 ,
18302
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv8i16), 0,
18303
1, MVT::v8i16, 4, 0, 1, 2, 3,
18305
OPC_CheckChild1Type, MVT::v4i32,
18307
OPC_CheckChild2Type, MVT::v4i16,
18308
OPC_CheckType, MVT::v4i32,
18309
OPC_CheckPatternPredicate, 3,
18310
OPC_EmitInteger, MVT::i32, 14,
18311
OPC_EmitRegister, MVT::i32, 0 ,
18312
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv4i32), 0,
18313
1, MVT::v4i32, 4, 0, 1, 2, 3,
18315
OPC_CheckChild1Type, MVT::v2i64,
18317
OPC_CheckChild2Type, MVT::v2i32,
18318
OPC_CheckType, MVT::v2i64,
18319
OPC_CheckPatternPredicate, 3,
18320
OPC_EmitInteger, MVT::i32, 14,
18321
OPC_EmitRegister, MVT::i32, 0 ,
18322
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv2i64), 0,
18323
1, MVT::v2i64, 4, 0, 1, 2, 3,
18326
OPC_CheckInteger, 30,
18330
OPC_CheckChild1Type, MVT::v4i16,
18332
OPC_CheckChild2Type, MVT::v4i16,
18333
OPC_CheckType, MVT::v4i16,
18334
OPC_CheckPatternPredicate, 3,
18335
OPC_EmitInteger, MVT::i32, 14,
18336
OPC_EmitRegister, MVT::i32, 0 ,
18337
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv4i16), 0,
18338
1, MVT::v4i16, 4, 0, 1, 2, 3,
18340
OPC_CheckChild1Type, MVT::v2i32,
18342
OPC_CheckChild2Type, MVT::v2i32,
18343
OPC_CheckType, MVT::v2i32,
18344
OPC_CheckPatternPredicate, 3,
18345
OPC_EmitInteger, MVT::i32, 14,
18346
OPC_EmitRegister, MVT::i32, 0 ,
18347
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv2i32), 0,
18348
1, MVT::v2i32, 4, 0, 1, 2, 3,
18350
OPC_CheckChild1Type, MVT::v8i16,
18352
OPC_CheckChild2Type, MVT::v8i16,
18353
OPC_CheckType, MVT::v8i16,
18354
OPC_CheckPatternPredicate, 3,
18355
OPC_EmitInteger, MVT::i32, 14,
18356
OPC_EmitRegister, MVT::i32, 0 ,
18357
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv8i16), 0,
18358
1, MVT::v8i16, 4, 0, 1, 2, 3,
18360
OPC_CheckChild1Type, MVT::v4i32,
18362
OPC_CheckChild2Type, MVT::v4i32,
18363
OPC_CheckType, MVT::v4i32,
18364
OPC_CheckPatternPredicate, 3,
18365
OPC_EmitInteger, MVT::i32, 14,
18366
OPC_EmitRegister, MVT::i32, 0 ,
18367
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv4i32), 0,
18368
1, MVT::v4i32, 4, 0, 1, 2, 3,
18370
OPC_CheckChild1Type, MVT::v8i8,
18372
OPC_CheckChild2Type, MVT::v8i8,
18373
OPC_CheckType, MVT::v8i8,
18374
OPC_CheckPatternPredicate, 3,
18375
OPC_EmitInteger, MVT::i32, 14,
18376
OPC_EmitRegister, MVT::i32, 0 ,
18377
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv8i8), 0,
18378
1, MVT::v8i8, 4, 0, 1, 2, 3,
18380
OPC_CheckChild1Type, MVT::v16i8,
18382
OPC_CheckChild2Type, MVT::v16i8,
18383
OPC_CheckType, MVT::v16i8,
18384
OPC_CheckPatternPredicate, 3,
18385
OPC_EmitInteger, MVT::i32, 14,
18386
OPC_EmitRegister, MVT::i32, 0 ,
18387
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv16i8), 0,
18388
1, MVT::v16i8, 4, 0, 1, 2, 3,
18391
OPC_CheckInteger, 31,
18395
OPC_CheckChild1Type, MVT::v4i16,
18397
OPC_CheckChild2Type, MVT::v4i16,
18398
OPC_CheckType, MVT::v4i16,
18399
OPC_CheckPatternPredicate, 3,
18400
OPC_EmitInteger, MVT::i32, 14,
18401
OPC_EmitRegister, MVT::i32, 0 ,
18402
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv4i16), 0,
18403
1, MVT::v4i16, 4, 0, 1, 2, 3,
18405
OPC_CheckChild1Type, MVT::v2i32,
18407
OPC_CheckChild2Type, MVT::v2i32,
18408
OPC_CheckType, MVT::v2i32,
18409
OPC_CheckPatternPredicate, 3,
18410
OPC_EmitInteger, MVT::i32, 14,
18411
OPC_EmitRegister, MVT::i32, 0 ,
18412
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv2i32), 0,
18413
1, MVT::v2i32, 4, 0, 1, 2, 3,
18415
OPC_CheckChild1Type, MVT::v8i16,
18417
OPC_CheckChild2Type, MVT::v8i16,
18418
OPC_CheckType, MVT::v8i16,
18419
OPC_CheckPatternPredicate, 3,
18420
OPC_EmitInteger, MVT::i32, 14,
18421
OPC_EmitRegister, MVT::i32, 0 ,
18422
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv8i16), 0,
18423
1, MVT::v8i16, 4, 0, 1, 2, 3,
18425
OPC_CheckChild1Type, MVT::v4i32,
18427
OPC_CheckChild2Type, MVT::v4i32,
18428
OPC_CheckType, MVT::v4i32,
18429
OPC_CheckPatternPredicate, 3,
18430
OPC_EmitInteger, MVT::i32, 14,
18431
OPC_EmitRegister, MVT::i32, 0 ,
18432
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv4i32), 0,
18433
1, MVT::v4i32, 4, 0, 1, 2, 3,
18435
OPC_CheckChild1Type, MVT::v8i8,
18437
OPC_CheckChild2Type, MVT::v8i8,
18438
OPC_CheckType, MVT::v8i8,
18439
OPC_CheckPatternPredicate, 3,
18440
OPC_EmitInteger, MVT::i32, 14,
18441
OPC_EmitRegister, MVT::i32, 0 ,
18442
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv8i8), 0,
18443
1, MVT::v8i8, 4, 0, 1, 2, 3,
18445
OPC_CheckChild1Type, MVT::v16i8,
18447
OPC_CheckChild2Type, MVT::v16i8,
18448
OPC_CheckType, MVT::v16i8,
18449
OPC_CheckPatternPredicate, 3,
18450
OPC_EmitInteger, MVT::i32, 14,
18451
OPC_EmitRegister, MVT::i32, 0 ,
18452
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv16i8), 0,
18453
1, MVT::v16i8, 4, 0, 1, 2, 3,
18456
OPC_CheckInteger, 86,
18460
OPC_CheckChild1Type, MVT::v4i16,
18462
OPC_CheckChild2Type, MVT::v4i16,
18463
OPC_CheckType, MVT::v4i16,
18464
OPC_CheckPatternPredicate, 3,
18465
OPC_EmitInteger, MVT::i32, 14,
18466
OPC_EmitRegister, MVT::i32, 0 ,
18467
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv4i16), 0,
18468
1, MVT::v4i16, 4, 0, 1, 2, 3,
18470
OPC_CheckChild1Type, MVT::v2i32,
18472
OPC_CheckChild2Type, MVT::v2i32,
18473
OPC_CheckType, MVT::v2i32,
18474
OPC_CheckPatternPredicate, 3,
18475
OPC_EmitInteger, MVT::i32, 14,
18476
OPC_EmitRegister, MVT::i32, 0 ,
18477
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv2i32), 0,
18478
1, MVT::v2i32, 4, 0, 1, 2, 3,
18480
OPC_CheckChild1Type, MVT::v8i16,
18482
OPC_CheckChild2Type, MVT::v8i16,
18483
OPC_CheckType, MVT::v8i16,
18484
OPC_CheckPatternPredicate, 3,
18485
OPC_EmitInteger, MVT::i32, 14,
18486
OPC_EmitRegister, MVT::i32, 0 ,
18487
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv8i16), 0,
18488
1, MVT::v8i16, 4, 0, 1, 2, 3,
18490
OPC_CheckChild1Type, MVT::v4i32,
18492
OPC_CheckChild2Type, MVT::v4i32,
18493
OPC_CheckType, MVT::v4i32,
18494
OPC_CheckPatternPredicate, 3,
18495
OPC_EmitInteger, MVT::i32, 14,
18496
OPC_EmitRegister, MVT::i32, 0 ,
18497
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv4i32), 0,
18498
1, MVT::v4i32, 4, 0, 1, 2, 3,
18500
OPC_CheckChild1Type, MVT::v8i8,
18502
OPC_CheckChild2Type, MVT::v8i8,
18503
OPC_CheckType, MVT::v8i8,
18504
OPC_CheckPatternPredicate, 3,
18505
OPC_EmitInteger, MVT::i32, 14,
18506
OPC_EmitRegister, MVT::i32, 0 ,
18507
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv8i8), 0,
18508
1, MVT::v8i8, 4, 0, 1, 2, 3,
18510
OPC_CheckChild1Type, MVT::v16i8,
18512
OPC_CheckChild2Type, MVT::v16i8,
18513
OPC_CheckType, MVT::v16i8,
18514
OPC_CheckPatternPredicate, 3,
18515
OPC_EmitInteger, MVT::i32, 14,
18516
OPC_EmitRegister, MVT::i32, 0 ,
18517
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv16i8), 0,
18518
1, MVT::v16i8, 4, 0, 1, 2, 3,
18520
OPC_CheckChild1Type, MVT::v1i64,
18522
OPC_CheckChild2Type, MVT::v1i64,
18523
OPC_CheckType, MVT::v1i64,
18524
OPC_CheckPatternPredicate, 3,
18525
OPC_EmitInteger, MVT::i32, 14,
18526
OPC_EmitRegister, MVT::i32, 0 ,
18527
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv1i64), 0,
18528
1, MVT::v1i64, 4, 0, 1, 2, 3,
18530
OPC_CheckChild1Type, MVT::v2i64,
18532
OPC_CheckChild2Type, MVT::v2i64,
18533
OPC_CheckType, MVT::v2i64,
18534
OPC_CheckPatternPredicate, 3,
18535
OPC_EmitInteger, MVT::i32, 14,
18536
OPC_EmitRegister, MVT::i32, 0 ,
18537
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv2i64), 0,
18538
1, MVT::v2i64, 4, 0, 1, 2, 3,
18541
OPC_CheckInteger, 87,
18545
OPC_CheckChild1Type, MVT::v4i16,
18547
OPC_CheckChild2Type, MVT::v4i16,
18548
OPC_CheckType, MVT::v4i16,
18549
OPC_CheckPatternPredicate, 3,
18550
OPC_EmitInteger, MVT::i32, 14,
18551
OPC_EmitRegister, MVT::i32, 0 ,
18552
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv4i16), 0,
18553
1, MVT::v4i16, 4, 0, 1, 2, 3,
18555
OPC_CheckChild1Type, MVT::v2i32,
18557
OPC_CheckChild2Type, MVT::v2i32,
18558
OPC_CheckType, MVT::v2i32,
18559
OPC_CheckPatternPredicate, 3,
18560
OPC_EmitInteger, MVT::i32, 14,
18561
OPC_EmitRegister, MVT::i32, 0 ,
18562
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv2i32), 0,
18563
1, MVT::v2i32, 4, 0, 1, 2, 3,
18565
OPC_CheckChild1Type, MVT::v8i16,
18567
OPC_CheckChild2Type, MVT::v8i16,
18568
OPC_CheckType, MVT::v8i16,
18569
OPC_CheckPatternPredicate, 3,
18570
OPC_EmitInteger, MVT::i32, 14,
18571
OPC_EmitRegister, MVT::i32, 0 ,
18572
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv8i16), 0,
18573
1, MVT::v8i16, 4, 0, 1, 2, 3,
18575
OPC_CheckChild1Type, MVT::v4i32,
18577
OPC_CheckChild2Type, MVT::v4i32,
18578
OPC_CheckType, MVT::v4i32,
18579
OPC_CheckPatternPredicate, 3,
18580
OPC_EmitInteger, MVT::i32, 14,
18581
OPC_EmitRegister, MVT::i32, 0 ,
18582
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv4i32), 0,
18583
1, MVT::v4i32, 4, 0, 1, 2, 3,
18585
OPC_CheckChild1Type, MVT::v8i8,
18587
OPC_CheckChild2Type, MVT::v8i8,
18588
OPC_CheckType, MVT::v8i8,
18589
OPC_CheckPatternPredicate, 3,
18590
OPC_EmitInteger, MVT::i32, 14,
18591
OPC_EmitRegister, MVT::i32, 0 ,
18592
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv8i8), 0,
18593
1, MVT::v8i8, 4, 0, 1, 2, 3,
18595
OPC_CheckChild1Type, MVT::v16i8,
18597
OPC_CheckChild2Type, MVT::v16i8,
18598
OPC_CheckType, MVT::v16i8,
18599
OPC_CheckPatternPredicate, 3,
18600
OPC_EmitInteger, MVT::i32, 14,
18601
OPC_EmitRegister, MVT::i32, 0 ,
18602
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv16i8), 0,
18603
1, MVT::v16i8, 4, 0, 1, 2, 3,
18605
OPC_CheckChild1Type, MVT::v1i64,
18607
OPC_CheckChild2Type, MVT::v1i64,
18608
OPC_CheckType, MVT::v1i64,
18609
OPC_CheckPatternPredicate, 3,
18610
OPC_EmitInteger, MVT::i32, 14,
18611
OPC_EmitRegister, MVT::i32, 0 ,
18612
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv1i64), 0,
18613
1, MVT::v1i64, 4, 0, 1, 2, 3,
18615
OPC_CheckChild1Type, MVT::v2i64,
18617
OPC_CheckChild2Type, MVT::v2i64,
18618
OPC_CheckType, MVT::v2i64,
18619
OPC_CheckPatternPredicate, 3,
18620
OPC_EmitInteger, MVT::i32, 14,
18621
OPC_EmitRegister, MVT::i32, 0 ,
18622
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv2i64), 0,
18623
1, MVT::v2i64, 4, 0, 1, 2, 3,
18626
OPC_CheckInteger, 112,
18630
OPC_CheckChild1Type, MVT::v8i16,
18632
OPC_CheckChild2Type, MVT::v8i16,
18633
OPC_CheckType, MVT::v8i8,
18634
OPC_CheckPatternPredicate, 3,
18635
OPC_EmitInteger, MVT::i32, 14,
18636
OPC_EmitRegister, MVT::i32, 0 ,
18637
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv8i8), 0,
18638
1, MVT::v8i8, 4, 0, 1, 2, 3,
18640
OPC_CheckChild1Type, MVT::v4i32,
18642
OPC_CheckChild2Type, MVT::v4i32,
18643
OPC_CheckType, MVT::v4i16,
18644
OPC_CheckPatternPredicate, 3,
18645
OPC_EmitInteger, MVT::i32, 14,
18646
OPC_EmitRegister, MVT::i32, 0 ,
18647
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv4i16), 0,
18648
1, MVT::v4i16, 4, 0, 1, 2, 3,
18650
OPC_CheckChild1Type, MVT::v2i64,
18652
OPC_CheckChild2Type, MVT::v2i64,
18653
OPC_CheckType, MVT::v2i32,
18654
OPC_CheckPatternPredicate, 3,
18655
OPC_EmitInteger, MVT::i32, 14,
18656
OPC_EmitRegister, MVT::i32, 0 ,
18657
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv2i32), 0,
18658
1, MVT::v2i32, 4, 0, 1, 2, 3,
18661
OPC_CheckInteger, 98,
18665
OPC_CheckChild1Type, MVT::v8i16,
18667
OPC_CheckChild2Type, MVT::v8i16,
18668
OPC_CheckType, MVT::v8i8,
18669
OPC_CheckPatternPredicate, 3,
18670
OPC_EmitInteger, MVT::i32, 14,
18671
OPC_EmitRegister, MVT::i32, 0 ,
18672
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv8i8), 0,
18673
1, MVT::v8i8, 4, 0, 1, 2, 3,
18675
OPC_CheckChild1Type, MVT::v4i32,
18677
OPC_CheckChild2Type, MVT::v4i32,
18678
OPC_CheckType, MVT::v4i16,
18679
OPC_CheckPatternPredicate, 3,
18680
OPC_EmitInteger, MVT::i32, 14,
18681
OPC_EmitRegister, MVT::i32, 0 ,
18682
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv4i16), 0,
18683
1, MVT::v4i16, 4, 0, 1, 2, 3,
18685
OPC_CheckChild1Type, MVT::v2i64,
18687
OPC_CheckChild2Type, MVT::v2i64,
18688
OPC_CheckType, MVT::v2i32,
18689
OPC_CheckPatternPredicate, 3,
18690
OPC_EmitInteger, MVT::i32, 14,
18691
OPC_EmitRegister, MVT::i32, 0 ,
18692
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv2i32), 0,
18693
1, MVT::v2i32, 4, 0, 1, 2, 3,
18696
OPC_CheckInteger, 12,
18700
OPC_CheckPatternPredicate, 3,
18701
OPC_EmitInteger, MVT::i32, 14,
18702
OPC_EmitRegister, MVT::i32, 0 ,
18703
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGEd), 0,
18704
1, MVT::v2i32, 4, 0, 1, 2, 3,
18706
OPC_CheckInteger, 13,
18710
OPC_CheckPatternPredicate, 3,
18711
OPC_EmitInteger, MVT::i32, 14,
18712
OPC_EmitRegister, MVT::i32, 0 ,
18713
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGEq), 0,
18714
1, MVT::v4i32, 4, 0, 1, 2, 3,
18716
OPC_CheckInteger, 14,
18720
OPC_CheckPatternPredicate, 3,
18721
OPC_EmitInteger, MVT::i32, 14,
18722
OPC_EmitRegister, MVT::i32, 0 ,
18723
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGTd), 0,
18724
1, MVT::v2i32, 4, 0, 1, 2, 3,
18726
OPC_CheckInteger, 15,
18730
OPC_CheckPatternPredicate, 3,
18731
OPC_EmitInteger, MVT::i32, 14,
18732
OPC_EmitRegister, MVT::i32, 0 ,
18733
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGTq), 0,
18734
1, MVT::v4i32, 4, 0, 1, 2, 3,
18736
OPC_CheckInteger, 9,
18740
OPC_CheckChild1Type, MVT::v4i16,
18742
OPC_CheckChild2Type, MVT::v4i16,
18743
OPC_CheckType, MVT::v4i16,
18744
OPC_CheckPatternPredicate, 3,
18745
OPC_EmitInteger, MVT::i32, 14,
18746
OPC_EmitRegister, MVT::i32, 0 ,
18747
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv4i16), 0,
18748
1, MVT::v4i16, 4, 0, 1, 2, 3,
18750
OPC_CheckChild1Type, MVT::v2i32,
18752
OPC_CheckChild2Type, MVT::v2i32,
18753
OPC_CheckType, MVT::v2i32,
18754
OPC_CheckPatternPredicate, 3,
18755
OPC_EmitInteger, MVT::i32, 14,
18756
OPC_EmitRegister, MVT::i32, 0 ,
18757
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv2i32), 0,
18758
1, MVT::v2i32, 4, 0, 1, 2, 3,
18760
OPC_CheckChild1Type, MVT::v8i16,
18762
OPC_CheckChild2Type, MVT::v8i16,
18763
OPC_CheckType, MVT::v8i16,
18764
OPC_CheckPatternPredicate, 3,
18765
OPC_EmitInteger, MVT::i32, 14,
18766
OPC_EmitRegister, MVT::i32, 0 ,
18767
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv8i16), 0,
18768
1, MVT::v8i16, 4, 0, 1, 2, 3,
18770
OPC_CheckChild1Type, MVT::v4i32,
18772
OPC_CheckChild2Type, MVT::v4i32,
18773
OPC_CheckType, MVT::v4i32,
18774
OPC_CheckPatternPredicate, 3,
18775
OPC_EmitInteger, MVT::i32, 14,
18776
OPC_EmitRegister, MVT::i32, 0 ,
18777
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv4i32), 0,
18778
1, MVT::v4i32, 4, 0, 1, 2, 3,
18780
OPC_CheckChild1Type, MVT::v8i8,
18782
OPC_CheckChild2Type, MVT::v8i8,
18783
OPC_CheckType, MVT::v8i8,
18784
OPC_CheckPatternPredicate, 3,
18785
OPC_EmitInteger, MVT::i32, 14,
18786
OPC_EmitRegister, MVT::i32, 0 ,
18787
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv8i8), 0,
18788
1, MVT::v8i8, 4, 0, 1, 2, 3,
18790
OPC_CheckChild1Type, MVT::v16i8,
18792
OPC_CheckChild2Type, MVT::v16i8,
18793
OPC_CheckType, MVT::v16i8,
18794
OPC_CheckPatternPredicate, 3,
18795
OPC_EmitInteger, MVT::i32, 14,
18796
OPC_EmitRegister, MVT::i32, 0 ,
18797
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv16i8), 0,
18798
1, MVT::v16i8, 4, 0, 1, 2, 3,
18800
OPC_CheckChild1Type, MVT::v2f32,
18802
OPC_CheckChild2Type, MVT::v2f32,
18803
OPC_CheckType, MVT::v2f32,
18804
OPC_CheckPatternPredicate, 3,
18805
OPC_EmitInteger, MVT::i32, 14,
18806
OPC_EmitRegister, MVT::i32, 0 ,
18807
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDfd), 0,
18808
1, MVT::v2f32, 4, 0, 1, 2, 3,
18810
OPC_CheckChild1Type, MVT::v4f32,
18812
OPC_CheckChild2Type, MVT::v4f32,
18813
OPC_CheckType, MVT::v4f32,
18814
OPC_CheckPatternPredicate, 3,
18815
OPC_EmitInteger, MVT::i32, 14,
18816
OPC_EmitRegister, MVT::i32, 0 ,
18817
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDfq), 0,
18818
1, MVT::v4f32, 4, 0, 1, 2, 3,
18821
OPC_CheckInteger, 10,
18825
OPC_CheckChild1Type, MVT::v4i16,
18827
OPC_CheckChild2Type, MVT::v4i16,
18828
OPC_CheckType, MVT::v4i16,
18829
OPC_CheckPatternPredicate, 3,
18830
OPC_EmitInteger, MVT::i32, 14,
18831
OPC_EmitRegister, MVT::i32, 0 ,
18832
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv4i16), 0,
18833
1, MVT::v4i16, 4, 0, 1, 2, 3,
18835
OPC_CheckChild1Type, MVT::v2i32,
18837
OPC_CheckChild2Type, MVT::v2i32,
18838
OPC_CheckType, MVT::v2i32,
18839
OPC_CheckPatternPredicate, 3,
18840
OPC_EmitInteger, MVT::i32, 14,
18841
OPC_EmitRegister, MVT::i32, 0 ,
18842
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv2i32), 0,
18843
1, MVT::v2i32, 4, 0, 1, 2, 3,
18845
OPC_CheckChild1Type, MVT::v8i16,
18847
OPC_CheckChild2Type, MVT::v8i16,
18848
OPC_CheckType, MVT::v8i16,
18849
OPC_CheckPatternPredicate, 3,
18850
OPC_EmitInteger, MVT::i32, 14,
18851
OPC_EmitRegister, MVT::i32, 0 ,
18852
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv8i16), 0,
18853
1, MVT::v8i16, 4, 0, 1, 2, 3,
18855
OPC_CheckChild1Type, MVT::v4i32,
18857
OPC_CheckChild2Type, MVT::v4i32,
18858
OPC_CheckType, MVT::v4i32,
18859
OPC_CheckPatternPredicate, 3,
18860
OPC_EmitInteger, MVT::i32, 14,
18861
OPC_EmitRegister, MVT::i32, 0 ,
18862
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv4i32), 0,
18863
1, MVT::v4i32, 4, 0, 1, 2, 3,
18865
OPC_CheckChild1Type, MVT::v8i8,
18867
OPC_CheckChild2Type, MVT::v8i8,
18868
OPC_CheckType, MVT::v8i8,
18869
OPC_CheckPatternPredicate, 3,
18870
OPC_EmitInteger, MVT::i32, 14,
18871
OPC_EmitRegister, MVT::i32, 0 ,
18872
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv8i8), 0,
18873
1, MVT::v8i8, 4, 0, 1, 2, 3,
18875
OPC_CheckChild1Type, MVT::v16i8,
18877
OPC_CheckChild2Type, MVT::v16i8,
18878
OPC_CheckType, MVT::v16i8,
18879
OPC_CheckPatternPredicate, 3,
18880
OPC_EmitInteger, MVT::i32, 14,
18881
OPC_EmitRegister, MVT::i32, 0 ,
18882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv16i8), 0,
18883
1, MVT::v16i8, 4, 0, 1, 2, 3,
18886
OPC_CheckInteger, 7,
18890
OPC_CheckChild1Type, MVT::v4i16,
18892
OPC_CheckChild2Type, MVT::v4i16,
18893
OPC_CheckType, MVT::v4i32,
18894
OPC_CheckPatternPredicate, 3,
18895
OPC_EmitInteger, MVT::i32, 14,
18896
OPC_EmitRegister, MVT::i32, 0 ,
18897
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv4i32), 0,
18898
1, MVT::v4i32, 4, 0, 1, 2, 3,
18900
OPC_CheckChild1Type, MVT::v2i32,
18902
OPC_CheckChild2Type, MVT::v2i32,
18903
OPC_CheckType, MVT::v2i64,
18904
OPC_CheckPatternPredicate, 3,
18905
OPC_EmitInteger, MVT::i32, 14,
18906
OPC_EmitRegister, MVT::i32, 0 ,
18907
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv2i64), 0,
18908
1, MVT::v2i64, 4, 0, 1, 2, 3,
18910
OPC_CheckChild1Type, MVT::v8i8,
18912
OPC_CheckChild2Type, MVT::v8i8,
18913
OPC_CheckType, MVT::v8i16,
18914
OPC_CheckPatternPredicate, 3,
18915
OPC_EmitInteger, MVT::i32, 14,
18916
OPC_EmitRegister, MVT::i32, 0 ,
18917
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv8i16), 0,
18918
1, MVT::v8i16, 4, 0, 1, 2, 3,
18921
OPC_CheckInteger, 8,
18925
OPC_CheckChild1Type, MVT::v4i16,
18927
OPC_CheckChild2Type, MVT::v4i16,
18928
OPC_CheckType, MVT::v4i32,
18929
OPC_CheckPatternPredicate, 3,
18930
OPC_EmitInteger, MVT::i32, 14,
18931
OPC_EmitRegister, MVT::i32, 0 ,
18932
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv4i32), 0,
18933
1, MVT::v4i32, 4, 0, 1, 2, 3,
18935
OPC_CheckChild1Type, MVT::v2i32,
18937
OPC_CheckChild2Type, MVT::v2i32,
18938
OPC_CheckType, MVT::v2i64,
18939
OPC_CheckPatternPredicate, 3,
18940
OPC_EmitInteger, MVT::i32, 14,
18941
OPC_EmitRegister, MVT::i32, 0 ,
18942
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv2i64), 0,
18943
1, MVT::v2i64, 4, 0, 1, 2, 3,
18945
OPC_CheckChild1Type, MVT::v8i8,
18947
OPC_CheckChild2Type, MVT::v8i8,
18948
OPC_CheckType, MVT::v8i16,
18949
OPC_CheckPatternPredicate, 3,
18950
OPC_EmitInteger, MVT::i32, 14,
18951
OPC_EmitRegister, MVT::i32, 0 ,
18952
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv8i16), 0,
18953
1, MVT::v8i16, 4, 0, 1, 2, 3,
18956
OPC_CheckInteger, 5,
18960
OPC_CheckChild1Type, MVT::v8i8,
18962
OPC_CheckChild2Type, MVT::v8i8,
18964
OPC_CheckChild3Type, MVT::v8i8,
18965
OPC_CheckType, MVT::v8i8,
18966
OPC_CheckPatternPredicate, 3,
18967
OPC_EmitInteger, MVT::i32, 14,
18968
OPC_EmitRegister, MVT::i32, 0 ,
18969
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv8i8), 0,
18970
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
18972
OPC_CheckChild1Type, MVT::v4i16,
18974
OPC_CheckChild2Type, MVT::v4i16,
18976
OPC_CheckChild3Type, MVT::v4i16,
18977
OPC_CheckType, MVT::v4i16,
18978
OPC_CheckPatternPredicate, 3,
18979
OPC_EmitInteger, MVT::i32, 14,
18980
OPC_EmitRegister, MVT::i32, 0 ,
18981
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv4i16), 0,
18982
1, MVT::v4i16, 5, 0, 1, 2, 3, 4,
18984
OPC_CheckChild1Type, MVT::v2i32,
18986
OPC_CheckChild2Type, MVT::v2i32,
18988
OPC_CheckChild3Type, MVT::v2i32,
18989
OPC_CheckType, MVT::v2i32,
18990
OPC_CheckPatternPredicate, 3,
18991
OPC_EmitInteger, MVT::i32, 14,
18992
OPC_EmitRegister, MVT::i32, 0 ,
18993
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv2i32), 0,
18994
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
18996
OPC_CheckChild1Type, MVT::v16i8,
18998
OPC_CheckChild2Type, MVT::v16i8,
19000
OPC_CheckChild3Type, MVT::v16i8,
19001
OPC_CheckType, MVT::v16i8,
19002
OPC_CheckPatternPredicate, 3,
19003
OPC_EmitInteger, MVT::i32, 14,
19004
OPC_EmitRegister, MVT::i32, 0 ,
19005
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv16i8), 0,
19006
1, MVT::v16i8, 5, 0, 1, 2, 3, 4,
19008
OPC_CheckChild1Type, MVT::v8i16,
19010
OPC_CheckChild2Type, MVT::v8i16,
19012
OPC_CheckChild3Type, MVT::v8i16,
19013
OPC_CheckType, MVT::v8i16,
19014
OPC_CheckPatternPredicate, 3,
19015
OPC_EmitInteger, MVT::i32, 14,
19016
OPC_EmitRegister, MVT::i32, 0 ,
19017
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv8i16), 0,
19018
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
19020
OPC_CheckChild1Type, MVT::v4i32,
19022
OPC_CheckChild2Type, MVT::v4i32,
19024
OPC_CheckChild3Type, MVT::v4i32,
19025
OPC_CheckType, MVT::v4i32,
19026
OPC_CheckPatternPredicate, 3,
19027
OPC_EmitInteger, MVT::i32, 14,
19028
OPC_EmitRegister, MVT::i32, 0 ,
19029
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv4i32), 0,
19030
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
19033
OPC_CheckInteger, 6,
19037
OPC_CheckChild1Type, MVT::v8i8,
19039
OPC_CheckChild2Type, MVT::v8i8,
19041
OPC_CheckChild3Type, MVT::v8i8,
19042
OPC_CheckType, MVT::v8i8,
19043
OPC_CheckPatternPredicate, 3,
19044
OPC_EmitInteger, MVT::i32, 14,
19045
OPC_EmitRegister, MVT::i32, 0 ,
19046
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv8i8), 0,
19047
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
19049
OPC_CheckChild1Type, MVT::v4i16,
19051
OPC_CheckChild2Type, MVT::v4i16,
19053
OPC_CheckChild3Type, MVT::v4i16,
19054
OPC_CheckType, MVT::v4i16,
19055
OPC_CheckPatternPredicate, 3,
19056
OPC_EmitInteger, MVT::i32, 14,
19057
OPC_EmitRegister, MVT::i32, 0 ,
19058
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv4i16), 0,
19059
1, MVT::v4i16, 5, 0, 1, 2, 3, 4,
19061
OPC_CheckChild1Type, MVT::v2i32,
19063
OPC_CheckChild2Type, MVT::v2i32,
19065
OPC_CheckChild3Type, MVT::v2i32,
19066
OPC_CheckType, MVT::v2i32,
19067
OPC_CheckPatternPredicate, 3,
19068
OPC_EmitInteger, MVT::i32, 14,
19069
OPC_EmitRegister, MVT::i32, 0 ,
19070
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv2i32), 0,
19071
1, MVT::v2i32, 5, 0, 1, 2, 3, 4,
19073
OPC_CheckChild1Type, MVT::v16i8,
19075
OPC_CheckChild2Type, MVT::v16i8,
19077
OPC_CheckChild3Type, MVT::v16i8,
19078
OPC_CheckType, MVT::v16i8,
19079
OPC_CheckPatternPredicate, 3,
19080
OPC_EmitInteger, MVT::i32, 14,
19081
OPC_EmitRegister, MVT::i32, 0 ,
19082
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv16i8), 0,
19083
1, MVT::v16i8, 5, 0, 1, 2, 3, 4,
19085
OPC_CheckChild1Type, MVT::v8i16,
19087
OPC_CheckChild2Type, MVT::v8i16,
19089
OPC_CheckChild3Type, MVT::v8i16,
19090
OPC_CheckType, MVT::v8i16,
19091
OPC_CheckPatternPredicate, 3,
19092
OPC_EmitInteger, MVT::i32, 14,
19093
OPC_EmitRegister, MVT::i32, 0 ,
19094
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv8i16), 0,
19095
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
19097
OPC_CheckChild1Type, MVT::v4i32,
19099
OPC_CheckChild2Type, MVT::v4i32,
19101
OPC_CheckChild3Type, MVT::v4i32,
19102
OPC_CheckType, MVT::v4i32,
19103
OPC_CheckPatternPredicate, 3,
19104
OPC_EmitInteger, MVT::i32, 14,
19105
OPC_EmitRegister, MVT::i32, 0 ,
19106
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv4i32), 0,
19107
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
19110
OPC_CheckInteger, 3,
19114
OPC_CheckChild1Type, MVT::v4i32,
19116
OPC_CheckChild2Type, MVT::v4i16,
19118
OPC_CheckChild3Type, MVT::v4i16,
19119
OPC_CheckType, MVT::v4i32,
19120
OPC_CheckPatternPredicate, 3,
19121
OPC_EmitInteger, MVT::i32, 14,
19122
OPC_EmitRegister, MVT::i32, 0 ,
19123
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv4i32), 0,
19124
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
19126
OPC_CheckChild1Type, MVT::v2i64,
19128
OPC_CheckChild2Type, MVT::v2i32,
19130
OPC_CheckChild3Type, MVT::v2i32,
19131
OPC_CheckType, MVT::v2i64,
19132
OPC_CheckPatternPredicate, 3,
19133
OPC_EmitInteger, MVT::i32, 14,
19134
OPC_EmitRegister, MVT::i32, 0 ,
19135
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv2i64), 0,
19136
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
19138
OPC_CheckChild1Type, MVT::v8i16,
19140
OPC_CheckChild2Type, MVT::v8i8,
19142
OPC_CheckChild3Type, MVT::v8i8,
19143
OPC_CheckType, MVT::v8i16,
19144
OPC_CheckPatternPredicate, 3,
19145
OPC_EmitInteger, MVT::i32, 14,
19146
OPC_EmitRegister, MVT::i32, 0 ,
19147
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv8i16), 0,
19148
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
19151
OPC_CheckInteger, 4,
19155
OPC_CheckChild1Type, MVT::v4i32,
19157
OPC_CheckChild2Type, MVT::v4i16,
19159
OPC_CheckChild3Type, MVT::v4i16,
19160
OPC_CheckType, MVT::v4i32,
19161
OPC_CheckPatternPredicate, 3,
19162
OPC_EmitInteger, MVT::i32, 14,
19163
OPC_EmitRegister, MVT::i32, 0 ,
19164
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv4i32), 0,
19165
1, MVT::v4i32, 5, 0, 1, 2, 3, 4,
19167
OPC_CheckChild1Type, MVT::v2i64,
19169
OPC_CheckChild2Type, MVT::v2i32,
19171
OPC_CheckChild3Type, MVT::v2i32,
19172
OPC_CheckType, MVT::v2i64,
19173
OPC_CheckPatternPredicate, 3,
19174
OPC_EmitInteger, MVT::i32, 14,
19175
OPC_EmitRegister, MVT::i32, 0 ,
19176
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv2i64), 0,
19177
1, MVT::v2i64, 5, 0, 1, 2, 3, 4,
19179
OPC_CheckChild1Type, MVT::v8i16,
19181
OPC_CheckChild2Type, MVT::v8i8,
19183
OPC_CheckChild3Type, MVT::v8i8,
19184
OPC_CheckType, MVT::v8i16,
19185
OPC_CheckPatternPredicate, 3,
19186
OPC_EmitInteger, MVT::i32, 14,
19187
OPC_EmitRegister, MVT::i32, 0 ,
19188
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv8i16), 0,
19189
1, MVT::v8i16, 5, 0, 1, 2, 3, 4,
19192
OPC_CheckInteger, 39,
19196
OPC_CheckChild1Type, MVT::v4i16,
19198
OPC_CheckChild2Type, MVT::v4i16,
19199
OPC_CheckType, MVT::v4i16,
19200
OPC_CheckPatternPredicate, 3,
19201
OPC_EmitInteger, MVT::i32, 14,
19202
OPC_EmitRegister, MVT::i32, 0 ,
19203
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv4i16), 0,
19204
1, MVT::v4i16, 4, 0, 1, 2, 3,
19206
OPC_CheckChild1Type, MVT::v2i32,
19208
OPC_CheckChild2Type, MVT::v2i32,
19209
OPC_CheckType, MVT::v2i32,
19210
OPC_CheckPatternPredicate, 3,
19211
OPC_EmitInteger, MVT::i32, 14,
19212
OPC_EmitRegister, MVT::i32, 0 ,
19213
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv2i32), 0,
19214
1, MVT::v2i32, 4, 0, 1, 2, 3,
19216
OPC_CheckChild1Type, MVT::v8i16,
19218
OPC_CheckChild2Type, MVT::v8i16,
19219
OPC_CheckType, MVT::v8i16,
19220
OPC_CheckPatternPredicate, 3,
19221
OPC_EmitInteger, MVT::i32, 14,
19222
OPC_EmitRegister, MVT::i32, 0 ,
19223
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv8i16), 0,
19224
1, MVT::v8i16, 4, 0, 1, 2, 3,
19226
OPC_CheckChild1Type, MVT::v4i32,
19228
OPC_CheckChild2Type, MVT::v4i32,
19229
OPC_CheckType, MVT::v4i32,
19230
OPC_CheckPatternPredicate, 3,
19231
OPC_EmitInteger, MVT::i32, 14,
19232
OPC_EmitRegister, MVT::i32, 0 ,
19233
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv4i32), 0,
19234
1, MVT::v4i32, 4, 0, 1, 2, 3,
19236
OPC_CheckChild1Type, MVT::v8i8,
19238
OPC_CheckChild2Type, MVT::v8i8,
19239
OPC_CheckType, MVT::v8i8,
19240
OPC_CheckPatternPredicate, 3,
19241
OPC_EmitInteger, MVT::i32, 14,
19242
OPC_EmitRegister, MVT::i32, 0 ,
19243
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv8i8), 0,
19244
1, MVT::v8i8, 4, 0, 1, 2, 3,
19246
OPC_CheckChild1Type, MVT::v16i8,
19248
OPC_CheckChild2Type, MVT::v16i8,
19249
OPC_CheckType, MVT::v16i8,
19250
OPC_CheckPatternPredicate, 3,
19251
OPC_EmitInteger, MVT::i32, 14,
19252
OPC_EmitRegister, MVT::i32, 0 ,
19253
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv16i8), 0,
19254
1, MVT::v16i8, 4, 0, 1, 2, 3,
19256
OPC_CheckChild1Type, MVT::v2f32,
19258
OPC_CheckChild2Type, MVT::v2f32,
19259
OPC_CheckType, MVT::v2f32,
19260
OPC_CheckPatternPredicate, 3,
19261
OPC_EmitInteger, MVT::i32, 14,
19262
OPC_EmitRegister, MVT::i32, 0 ,
19263
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXfd), 0,
19264
1, MVT::v2f32, 4, 0, 1, 2, 3,
19266
OPC_CheckChild1Type, MVT::v4f32,
19268
OPC_CheckChild2Type, MVT::v4f32,
19269
OPC_CheckType, MVT::v4f32,
19270
OPC_CheckPatternPredicate, 3,
19271
OPC_EmitInteger, MVT::i32, 14,
19272
OPC_EmitRegister, MVT::i32, 0 ,
19273
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXfq), 0,
19274
1, MVT::v4f32, 4, 0, 1, 2, 3,
19277
OPC_CheckInteger, 40,
19281
OPC_CheckChild1Type, MVT::v4i16,
19283
OPC_CheckChild2Type, MVT::v4i16,
19284
OPC_CheckType, MVT::v4i16,
19285
OPC_CheckPatternPredicate, 3,
19286
OPC_EmitInteger, MVT::i32, 14,
19287
OPC_EmitRegister, MVT::i32, 0 ,
19288
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv4i16), 0,
19289
1, MVT::v4i16, 4, 0, 1, 2, 3,
19291
OPC_CheckChild1Type, MVT::v2i32,
19293
OPC_CheckChild2Type, MVT::v2i32,
19294
OPC_CheckType, MVT::v2i32,
19295
OPC_CheckPatternPredicate, 3,
19296
OPC_EmitInteger, MVT::i32, 14,
19297
OPC_EmitRegister, MVT::i32, 0 ,
19298
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv2i32), 0,
19299
1, MVT::v2i32, 4, 0, 1, 2, 3,
19301
OPC_CheckChild1Type, MVT::v8i16,
19303
OPC_CheckChild2Type, MVT::v8i16,
19304
OPC_CheckType, MVT::v8i16,
19305
OPC_CheckPatternPredicate, 3,
19306
OPC_EmitInteger, MVT::i32, 14,
19307
OPC_EmitRegister, MVT::i32, 0 ,
19308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv8i16), 0,
19309
1, MVT::v8i16, 4, 0, 1, 2, 3,
19311
OPC_CheckChild1Type, MVT::v4i32,
19313
OPC_CheckChild2Type, MVT::v4i32,
19314
OPC_CheckType, MVT::v4i32,
19315
OPC_CheckPatternPredicate, 3,
19316
OPC_EmitInteger, MVT::i32, 14,
19317
OPC_EmitRegister, MVT::i32, 0 ,
19318
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv4i32), 0,
19319
1, MVT::v4i32, 4, 0, 1, 2, 3,
19321
OPC_CheckChild1Type, MVT::v8i8,
19323
OPC_CheckChild2Type, MVT::v8i8,
19324
OPC_CheckType, MVT::v8i8,
19325
OPC_CheckPatternPredicate, 3,
19326
OPC_EmitInteger, MVT::i32, 14,
19327
OPC_EmitRegister, MVT::i32, 0 ,
19328
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv8i8), 0,
19329
1, MVT::v8i8, 4, 0, 1, 2, 3,
19331
OPC_CheckChild1Type, MVT::v16i8,
19333
OPC_CheckChild2Type, MVT::v16i8,
19334
OPC_CheckType, MVT::v16i8,
19335
OPC_CheckPatternPredicate, 3,
19336
OPC_EmitInteger, MVT::i32, 14,
19337
OPC_EmitRegister, MVT::i32, 0 ,
19338
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv16i8), 0,
19339
1, MVT::v16i8, 4, 0, 1, 2, 3,
19342
OPC_CheckInteger, 41,
19346
OPC_CheckChild1Type, MVT::v4i16,
19348
OPC_CheckChild2Type, MVT::v4i16,
19349
OPC_CheckType, MVT::v4i16,
19350
OPC_CheckPatternPredicate, 3,
19351
OPC_EmitInteger, MVT::i32, 14,
19352
OPC_EmitRegister, MVT::i32, 0 ,
19353
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv4i16), 0,
19354
1, MVT::v4i16, 4, 0, 1, 2, 3,
19356
OPC_CheckChild1Type, MVT::v2i32,
19358
OPC_CheckChild2Type, MVT::v2i32,
19359
OPC_CheckType, MVT::v2i32,
19360
OPC_CheckPatternPredicate, 3,
19361
OPC_EmitInteger, MVT::i32, 14,
19362
OPC_EmitRegister, MVT::i32, 0 ,
19363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv2i32), 0,
19364
1, MVT::v2i32, 4, 0, 1, 2, 3,
19366
OPC_CheckChild1Type, MVT::v8i16,
19368
OPC_CheckChild2Type, MVT::v8i16,
19369
OPC_CheckType, MVT::v8i16,
19370
OPC_CheckPatternPredicate, 3,
19371
OPC_EmitInteger, MVT::i32, 14,
19372
OPC_EmitRegister, MVT::i32, 0 ,
19373
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv8i16), 0,
19374
1, MVT::v8i16, 4, 0, 1, 2, 3,
19376
OPC_CheckChild1Type, MVT::v4i32,
19378
OPC_CheckChild2Type, MVT::v4i32,
19379
OPC_CheckType, MVT::v4i32,
19380
OPC_CheckPatternPredicate, 3,
19381
OPC_EmitInteger, MVT::i32, 14,
19382
OPC_EmitRegister, MVT::i32, 0 ,
19383
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv4i32), 0,
19384
1, MVT::v4i32, 4, 0, 1, 2, 3,
19386
OPC_CheckChild1Type, MVT::v8i8,
19388
OPC_CheckChild2Type, MVT::v8i8,
19389
OPC_CheckType, MVT::v8i8,
19390
OPC_CheckPatternPredicate, 3,
19391
OPC_EmitInteger, MVT::i32, 14,
19392
OPC_EmitRegister, MVT::i32, 0 ,
19393
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv8i8), 0,
19394
1, MVT::v8i8, 4, 0, 1, 2, 3,
19396
OPC_CheckChild1Type, MVT::v16i8,
19398
OPC_CheckChild2Type, MVT::v16i8,
19399
OPC_CheckType, MVT::v16i8,
19400
OPC_CheckPatternPredicate, 3,
19401
OPC_EmitInteger, MVT::i32, 14,
19402
OPC_EmitRegister, MVT::i32, 0 ,
19403
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv16i8), 0,
19404
1, MVT::v16i8, 4, 0, 1, 2, 3,
19406
OPC_CheckChild1Type, MVT::v2f32,
19408
OPC_CheckChild2Type, MVT::v2f32,
19409
OPC_CheckType, MVT::v2f32,
19410
OPC_CheckPatternPredicate, 3,
19411
OPC_EmitInteger, MVT::i32, 14,
19412
OPC_EmitRegister, MVT::i32, 0 ,
19413
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINfd), 0,
19414
1, MVT::v2f32, 4, 0, 1, 2, 3,
19416
OPC_CheckChild1Type, MVT::v4f32,
19418
OPC_CheckChild2Type, MVT::v4f32,
19419
OPC_CheckType, MVT::v4f32,
19420
OPC_CheckPatternPredicate, 3,
19421
OPC_EmitInteger, MVT::i32, 14,
19422
OPC_EmitRegister, MVT::i32, 0 ,
19423
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINfq), 0,
19424
1, MVT::v4f32, 4, 0, 1, 2, 3,
19427
OPC_CheckInteger, 42,
19431
OPC_CheckChild1Type, MVT::v4i16,
19433
OPC_CheckChild2Type, MVT::v4i16,
19434
OPC_CheckType, MVT::v4i16,
19435
OPC_CheckPatternPredicate, 3,
19436
OPC_EmitInteger, MVT::i32, 14,
19437
OPC_EmitRegister, MVT::i32, 0 ,
19438
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv4i16), 0,
19439
1, MVT::v4i16, 4, 0, 1, 2, 3,
19441
OPC_CheckChild1Type, MVT::v2i32,
19443
OPC_CheckChild2Type, MVT::v2i32,
19444
OPC_CheckType, MVT::v2i32,
19445
OPC_CheckPatternPredicate, 3,
19446
OPC_EmitInteger, MVT::i32, 14,
19447
OPC_EmitRegister, MVT::i32, 0 ,
19448
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv2i32), 0,
19449
1, MVT::v2i32, 4, 0, 1, 2, 3,
19451
OPC_CheckChild1Type, MVT::v8i16,
19453
OPC_CheckChild2Type, MVT::v8i16,
19454
OPC_CheckType, MVT::v8i16,
19455
OPC_CheckPatternPredicate, 3,
19456
OPC_EmitInteger, MVT::i32, 14,
19457
OPC_EmitRegister, MVT::i32, 0 ,
19458
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv8i16), 0,
19459
1, MVT::v8i16, 4, 0, 1, 2, 3,
19461
OPC_CheckChild1Type, MVT::v4i32,
19463
OPC_CheckChild2Type, MVT::v4i32,
19464
OPC_CheckType, MVT::v4i32,
19465
OPC_CheckPatternPredicate, 3,
19466
OPC_EmitInteger, MVT::i32, 14,
19467
OPC_EmitRegister, MVT::i32, 0 ,
19468
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv4i32), 0,
19469
1, MVT::v4i32, 4, 0, 1, 2, 3,
19471
OPC_CheckChild1Type, MVT::v8i8,
19473
OPC_CheckChild2Type, MVT::v8i8,
19474
OPC_CheckType, MVT::v8i8,
19475
OPC_CheckPatternPredicate, 3,
19476
OPC_EmitInteger, MVT::i32, 14,
19477
OPC_EmitRegister, MVT::i32, 0 ,
19478
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv8i8), 0,
19479
1, MVT::v8i8, 4, 0, 1, 2, 3,
19481
OPC_CheckChild1Type, MVT::v16i8,
19483
OPC_CheckChild2Type, MVT::v16i8,
19484
OPC_CheckType, MVT::v16i8,
19485
OPC_CheckPatternPredicate, 3,
19486
OPC_EmitInteger, MVT::i32, 14,
19487
OPC_EmitRegister, MVT::i32, 0 ,
19488
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv16i8), 0,
19489
1, MVT::v16i8, 4, 0, 1, 2, 3,
19492
OPC_CheckInteger, 56,
19496
OPC_CheckChild1Type, MVT::v8i8,
19498
OPC_CheckChild2Type, MVT::v8i8,
19499
OPC_CheckType, MVT::v8i8,
19500
OPC_CheckPatternPredicate, 3,
19501
OPC_EmitInteger, MVT::i32, 14,
19502
OPC_EmitRegister, MVT::i32, 0 ,
19503
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi8), 0,
19504
1, MVT::v8i8, 4, 0, 1, 2, 3,
19506
OPC_CheckChild1Type, MVT::v4i16,
19508
OPC_CheckChild2Type, MVT::v4i16,
19509
OPC_CheckType, MVT::v4i16,
19510
OPC_CheckPatternPredicate, 3,
19511
OPC_EmitInteger, MVT::i32, 14,
19512
OPC_EmitRegister, MVT::i32, 0 ,
19513
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi16), 0,
19514
1, MVT::v4i16, 4, 0, 1, 2, 3,
19516
OPC_CheckChild1Type, MVT::v2i32,
19518
OPC_CheckChild2Type, MVT::v2i32,
19519
OPC_CheckType, MVT::v2i32,
19520
OPC_CheckPatternPredicate, 3,
19521
OPC_EmitInteger, MVT::i32, 14,
19522
OPC_EmitRegister, MVT::i32, 0 ,
19523
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi32), 0,
19524
1, MVT::v2i32, 4, 0, 1, 2, 3,
19526
OPC_CheckChild1Type, MVT::v2f32,
19528
OPC_CheckChild2Type, MVT::v2f32,
19529
OPC_CheckType, MVT::v2f32,
19530
OPC_CheckPatternPredicate, 3,
19531
OPC_EmitInteger, MVT::i32, 14,
19532
OPC_EmitRegister, MVT::i32, 0 ,
19533
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDf), 0,
19534
1, MVT::v2f32, 4, 0, 1, 2, 3,
19537
OPC_CheckInteger, 57,
19541
OPC_CheckChild1Type, MVT::v8i8,
19542
OPC_CheckType, MVT::v4i16,
19543
OPC_CheckPatternPredicate, 3,
19544
OPC_EmitInteger, MVT::i32, 14,
19545
OPC_EmitRegister, MVT::i32, 0 ,
19546
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv8i8), 0,
19547
1, MVT::v4i16, 3, 0, 1, 2,
19549
OPC_CheckChild1Type, MVT::v4i16,
19550
OPC_CheckType, MVT::v2i32,
19551
OPC_CheckPatternPredicate, 3,
19552
OPC_EmitInteger, MVT::i32, 14,
19553
OPC_EmitRegister, MVT::i32, 0 ,
19554
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv4i16), 0,
19555
1, MVT::v2i32, 3, 0, 1, 2,
19557
OPC_CheckChild1Type, MVT::v2i32,
19558
OPC_CheckType, MVT::v1i64,
19559
OPC_CheckPatternPredicate, 3,
19560
OPC_EmitInteger, MVT::i32, 14,
19561
OPC_EmitRegister, MVT::i32, 0 ,
19562
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv2i32), 0,
19563
1, MVT::v1i64, 3, 0, 1, 2,
19565
OPC_CheckChild1Type, MVT::v16i8,
19566
OPC_CheckType, MVT::v8i16,
19567
OPC_CheckPatternPredicate, 3,
19568
OPC_EmitInteger, MVT::i32, 14,
19569
OPC_EmitRegister, MVT::i32, 0 ,
19570
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv16i8), 0,
19571
1, MVT::v8i16, 3, 0, 1, 2,
19573
OPC_CheckChild1Type, MVT::v8i16,
19574
OPC_CheckType, MVT::v4i32,
19575
OPC_CheckPatternPredicate, 3,
19576
OPC_EmitInteger, MVT::i32, 14,
19577
OPC_EmitRegister, MVT::i32, 0 ,
19578
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv8i16), 0,
19579
1, MVT::v4i32, 3, 0, 1, 2,
19581
OPC_CheckChild1Type, MVT::v4i32,
19582
OPC_CheckType, MVT::v2i64,
19583
OPC_CheckPatternPredicate, 3,
19584
OPC_EmitInteger, MVT::i32, 14,
19585
OPC_EmitRegister, MVT::i32, 0 ,
19586
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv4i32), 0,
19587
1, MVT::v2i64, 3, 0, 1, 2,
19590
OPC_CheckInteger, 58,
19594
OPC_CheckChild1Type, MVT::v8i8,
19595
OPC_CheckType, MVT::v4i16,
19596
OPC_CheckPatternPredicate, 3,
19597
OPC_EmitInteger, MVT::i32, 14,
19598
OPC_EmitRegister, MVT::i32, 0 ,
19599
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv8i8), 0,
19600
1, MVT::v4i16, 3, 0, 1, 2,
19602
OPC_CheckChild1Type, MVT::v4i16,
19603
OPC_CheckType, MVT::v2i32,
19604
OPC_CheckPatternPredicate, 3,
19605
OPC_EmitInteger, MVT::i32, 14,
19606
OPC_EmitRegister, MVT::i32, 0 ,
19607
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv4i16), 0,
19608
1, MVT::v2i32, 3, 0, 1, 2,
19610
OPC_CheckChild1Type, MVT::v2i32,
19611
OPC_CheckType, MVT::v1i64,
19612
OPC_CheckPatternPredicate, 3,
19613
OPC_EmitInteger, MVT::i32, 14,
19614
OPC_EmitRegister, MVT::i32, 0 ,
19615
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv2i32), 0,
19616
1, MVT::v1i64, 3, 0, 1, 2,
19618
OPC_CheckChild1Type, MVT::v16i8,
19619
OPC_CheckType, MVT::v8i16,
19620
OPC_CheckPatternPredicate, 3,
19621
OPC_EmitInteger, MVT::i32, 14,
19622
OPC_EmitRegister, MVT::i32, 0 ,
19623
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv16i8), 0,
19624
1, MVT::v8i16, 3, 0, 1, 2,
19626
OPC_CheckChild1Type, MVT::v8i16,
19627
OPC_CheckType, MVT::v4i32,
19628
OPC_CheckPatternPredicate, 3,
19629
OPC_EmitInteger, MVT::i32, 14,
19630
OPC_EmitRegister, MVT::i32, 0 ,
19631
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv8i16), 0,
19632
1, MVT::v4i32, 3, 0, 1, 2,
19634
OPC_CheckChild1Type, MVT::v4i32,
19635
OPC_CheckType, MVT::v2i64,
19636
OPC_CheckPatternPredicate, 3,
19637
OPC_EmitInteger, MVT::i32, 14,
19638
OPC_EmitRegister, MVT::i32, 0 ,
19639
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv4i32), 0,
19640
1, MVT::v2i64, 3, 0, 1, 2,
19643
OPC_CheckInteger, 54,
19647
OPC_CheckChild1Type, MVT::v4i16,
19649
OPC_CheckChild2Type, MVT::v8i8,
19650
OPC_CheckType, MVT::v4i16,
19651
OPC_CheckPatternPredicate, 3,
19652
OPC_EmitInteger, MVT::i32, 14,
19653
OPC_EmitRegister, MVT::i32, 0 ,
19654
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv8i8), 0,
19655
1, MVT::v4i16, 4, 0, 1, 2, 3,
19657
OPC_CheckChild1Type, MVT::v2i32,
19659
OPC_CheckChild2Type, MVT::v4i16,
19660
OPC_CheckType, MVT::v2i32,
19661
OPC_CheckPatternPredicate, 3,
19662
OPC_EmitInteger, MVT::i32, 14,
19663
OPC_EmitRegister, MVT::i32, 0 ,
19664
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv4i16), 0,
19665
1, MVT::v2i32, 4, 0, 1, 2, 3,
19667
OPC_CheckChild1Type, MVT::v1i64,
19669
OPC_CheckChild2Type, MVT::v2i32,
19670
OPC_CheckType, MVT::v1i64,
19671
OPC_CheckPatternPredicate, 3,
19672
OPC_EmitInteger, MVT::i32, 14,
19673
OPC_EmitRegister, MVT::i32, 0 ,
19674
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv2i32), 0,
19675
1, MVT::v1i64, 4, 0, 1, 2, 3,
19677
OPC_CheckChild1Type, MVT::v8i16,
19679
OPC_CheckChild2Type, MVT::v16i8,
19680
OPC_CheckType, MVT::v8i16,
19681
OPC_CheckPatternPredicate, 3,
19682
OPC_EmitInteger, MVT::i32, 14,
19683
OPC_EmitRegister, MVT::i32, 0 ,
19684
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv16i8), 0,
19685
1, MVT::v8i16, 4, 0, 1, 2, 3,
19687
OPC_CheckChild1Type, MVT::v4i32,
19689
OPC_CheckChild2Type, MVT::v8i16,
19690
OPC_CheckType, MVT::v4i32,
19691
OPC_CheckPatternPredicate, 3,
19692
OPC_EmitInteger, MVT::i32, 14,
19693
OPC_EmitRegister, MVT::i32, 0 ,
19694
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv8i16), 0,
19695
1, MVT::v4i32, 4, 0, 1, 2, 3,
19697
OPC_CheckChild1Type, MVT::v2i64,
19699
OPC_CheckChild2Type, MVT::v4i32,
19700
OPC_CheckType, MVT::v2i64,
19701
OPC_CheckPatternPredicate, 3,
19702
OPC_EmitInteger, MVT::i32, 14,
19703
OPC_EmitRegister, MVT::i32, 0 ,
19704
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv4i32), 0,
19705
1, MVT::v2i64, 4, 0, 1, 2, 3,
19708
OPC_CheckInteger, 55,
19712
OPC_CheckChild1Type, MVT::v4i16,
19714
OPC_CheckChild2Type, MVT::v8i8,
19715
OPC_CheckType, MVT::v4i16,
19716
OPC_CheckPatternPredicate, 3,
19717
OPC_EmitInteger, MVT::i32, 14,
19718
OPC_EmitRegister, MVT::i32, 0 ,
19719
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv8i8), 0,
19720
1, MVT::v4i16, 4, 0, 1, 2, 3,
19722
OPC_CheckChild1Type, MVT::v2i32,
19724
OPC_CheckChild2Type, MVT::v4i16,
19725
OPC_CheckType, MVT::v2i32,
19726
OPC_CheckPatternPredicate, 3,
19727
OPC_EmitInteger, MVT::i32, 14,
19728
OPC_EmitRegister, MVT::i32, 0 ,
19729
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv4i16), 0,
19730
1, MVT::v2i32, 4, 0, 1, 2, 3,
19732
OPC_CheckChild1Type, MVT::v1i64,
19734
OPC_CheckChild2Type, MVT::v2i32,
19735
OPC_CheckType, MVT::v1i64,
19736
OPC_CheckPatternPredicate, 3,
19737
OPC_EmitInteger, MVT::i32, 14,
19738
OPC_EmitRegister, MVT::i32, 0 ,
19739
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv2i32), 0,
19740
1, MVT::v1i64, 4, 0, 1, 2, 3,
19742
OPC_CheckChild1Type, MVT::v8i16,
19744
OPC_CheckChild2Type, MVT::v16i8,
19745
OPC_CheckType, MVT::v8i16,
19746
OPC_CheckPatternPredicate, 3,
19747
OPC_EmitInteger, MVT::i32, 14,
19748
OPC_EmitRegister, MVT::i32, 0 ,
19749
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv16i8), 0,
19750
1, MVT::v8i16, 4, 0, 1, 2, 3,
19752
OPC_CheckChild1Type, MVT::v4i32,
19754
OPC_CheckChild2Type, MVT::v8i16,
19755
OPC_CheckType, MVT::v4i32,
19756
OPC_CheckPatternPredicate, 3,
19757
OPC_EmitInteger, MVT::i32, 14,
19758
OPC_EmitRegister, MVT::i32, 0 ,
19759
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv8i16), 0,
19760
1, MVT::v4i32, 4, 0, 1, 2, 3,
19762
OPC_CheckChild1Type, MVT::v2i64,
19764
OPC_CheckChild2Type, MVT::v4i32,
19765
OPC_CheckType, MVT::v2i64,
19766
OPC_CheckPatternPredicate, 3,
19767
OPC_EmitInteger, MVT::i32, 14,
19768
OPC_EmitRegister, MVT::i32, 0 ,
19769
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv4i32), 0,
19770
1, MVT::v2i64, 4, 0, 1, 2, 3,
19773
OPC_CheckInteger, 59,
19777
OPC_CheckChild1Type, MVT::v8i8,
19779
OPC_CheckChild2Type, MVT::v8i8,
19780
OPC_CheckType, MVT::v8i8,
19781
OPC_CheckPatternPredicate, 3,
19782
OPC_EmitInteger, MVT::i32, 14,
19783
OPC_EmitRegister, MVT::i32, 0 ,
19784
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs8), 0,
19785
1, MVT::v8i8, 4, 0, 1, 2, 3,
19787
OPC_CheckChild1Type, MVT::v4i16,
19789
OPC_CheckChild2Type, MVT::v4i16,
19790
OPC_CheckType, MVT::v4i16,
19791
OPC_CheckPatternPredicate, 3,
19792
OPC_EmitInteger, MVT::i32, 14,
19793
OPC_EmitRegister, MVT::i32, 0 ,
19794
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs16), 0,
19795
1, MVT::v4i16, 4, 0, 1, 2, 3,
19797
OPC_CheckChild1Type, MVT::v2i32,
19799
OPC_CheckChild2Type, MVT::v2i32,
19800
OPC_CheckType, MVT::v2i32,
19801
OPC_CheckPatternPredicate, 3,
19802
OPC_EmitInteger, MVT::i32, 14,
19803
OPC_EmitRegister, MVT::i32, 0 ,
19804
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs32), 0,
19805
1, MVT::v2i32, 4, 0, 1, 2, 3,
19807
OPC_CheckChild1Type, MVT::v2f32,
19809
OPC_CheckChild2Type, MVT::v2f32,
19810
OPC_CheckType, MVT::v2f32,
19811
OPC_CheckPatternPredicate, 3,
19812
OPC_EmitInteger, MVT::i32, 14,
19813
OPC_EmitRegister, MVT::i32, 0 ,
19814
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXf), 0,
19815
1, MVT::v2f32, 4, 0, 1, 2, 3,
19818
OPC_CheckInteger, 60,
19822
OPC_CheckChild1Type, MVT::v8i8,
19824
OPC_CheckChild2Type, MVT::v8i8,
19825
OPC_CheckType, MVT::v8i8,
19826
OPC_CheckPatternPredicate, 3,
19827
OPC_EmitInteger, MVT::i32, 14,
19828
OPC_EmitRegister, MVT::i32, 0 ,
19829
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu8), 0,
19830
1, MVT::v8i8, 4, 0, 1, 2, 3,
19832
OPC_CheckChild1Type, MVT::v4i16,
19834
OPC_CheckChild2Type, MVT::v4i16,
19835
OPC_CheckType, MVT::v4i16,
19836
OPC_CheckPatternPredicate, 3,
19837
OPC_EmitInteger, MVT::i32, 14,
19838
OPC_EmitRegister, MVT::i32, 0 ,
19839
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu16), 0,
19840
1, MVT::v4i16, 4, 0, 1, 2, 3,
19842
OPC_CheckChild1Type, MVT::v2i32,
19844
OPC_CheckChild2Type, MVT::v2i32,
19845
OPC_CheckType, MVT::v2i32,
19846
OPC_CheckPatternPredicate, 3,
19847
OPC_EmitInteger, MVT::i32, 14,
19848
OPC_EmitRegister, MVT::i32, 0 ,
19849
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu32), 0,
19850
1, MVT::v2i32, 4, 0, 1, 2, 3,
19853
OPC_CheckInteger, 61,
19857
OPC_CheckChild1Type, MVT::v8i8,
19859
OPC_CheckChild2Type, MVT::v8i8,
19860
OPC_CheckType, MVT::v8i8,
19861
OPC_CheckPatternPredicate, 3,
19862
OPC_EmitInteger, MVT::i32, 14,
19863
OPC_EmitRegister, MVT::i32, 0 ,
19864
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs8), 0,
19865
1, MVT::v8i8, 4, 0, 1, 2, 3,
19867
OPC_CheckChild1Type, MVT::v4i16,
19869
OPC_CheckChild2Type, MVT::v4i16,
19870
OPC_CheckType, MVT::v4i16,
19871
OPC_CheckPatternPredicate, 3,
19872
OPC_EmitInteger, MVT::i32, 14,
19873
OPC_EmitRegister, MVT::i32, 0 ,
19874
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs16), 0,
19875
1, MVT::v4i16, 4, 0, 1, 2, 3,
19877
OPC_CheckChild1Type, MVT::v2i32,
19879
OPC_CheckChild2Type, MVT::v2i32,
19880
OPC_CheckType, MVT::v2i32,
19881
OPC_CheckPatternPredicate, 3,
19882
OPC_EmitInteger, MVT::i32, 14,
19883
OPC_EmitRegister, MVT::i32, 0 ,
19884
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs32), 0,
19885
1, MVT::v2i32, 4, 0, 1, 2, 3,
19887
OPC_CheckChild1Type, MVT::v2f32,
19889
OPC_CheckChild2Type, MVT::v2f32,
19890
OPC_CheckType, MVT::v2f32,
19891
OPC_CheckPatternPredicate, 3,
19892
OPC_EmitInteger, MVT::i32, 14,
19893
OPC_EmitRegister, MVT::i32, 0 ,
19894
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINf), 0,
19895
1, MVT::v2f32, 4, 0, 1, 2, 3,
19898
OPC_CheckInteger, 62,
19902
OPC_CheckChild1Type, MVT::v8i8,
19904
OPC_CheckChild2Type, MVT::v8i8,
19905
OPC_CheckType, MVT::v8i8,
19906
OPC_CheckPatternPredicate, 3,
19907
OPC_EmitInteger, MVT::i32, 14,
19908
OPC_EmitRegister, MVT::i32, 0 ,
19909
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu8), 0,
19910
1, MVT::v8i8, 4, 0, 1, 2, 3,
19912
OPC_CheckChild1Type, MVT::v4i16,
19914
OPC_CheckChild2Type, MVT::v4i16,
19915
OPC_CheckType, MVT::v4i16,
19916
OPC_CheckPatternPredicate, 3,
19917
OPC_EmitInteger, MVT::i32, 14,
19918
OPC_EmitRegister, MVT::i32, 0 ,
19919
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu16), 0,
19920
1, MVT::v4i16, 4, 0, 1, 2, 3,
19922
OPC_CheckChild1Type, MVT::v2i32,
19924
OPC_CheckChild2Type, MVT::v2i32,
19925
OPC_CheckType, MVT::v2i32,
19926
OPC_CheckPatternPredicate, 3,
19927
OPC_EmitInteger, MVT::i32, 14,
19928
OPC_EmitRegister, MVT::i32, 0 ,
19929
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu32), 0,
19930
1, MVT::v2i32, 4, 0, 1, 2, 3,
19933
OPC_CheckInteger, 89,
19937
OPC_CheckChild1Type, MVT::v2i32,
19938
OPC_CheckType, MVT::v2i32,
19939
OPC_CheckPatternPredicate, 3,
19940
OPC_EmitInteger, MVT::i32, 14,
19941
OPC_EmitRegister, MVT::i32, 0 ,
19942
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEd), 0,
19943
1, MVT::v2i32, 3, 0, 1, 2,
19945
OPC_CheckChild1Type, MVT::v4i32,
19946
OPC_CheckType, MVT::v4i32,
19947
OPC_CheckPatternPredicate, 3,
19948
OPC_EmitInteger, MVT::i32, 14,
19949
OPC_EmitRegister, MVT::i32, 0 ,
19950
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEq), 0,
19951
1, MVT::v4i32, 3, 0, 1, 2,
19953
OPC_CheckChild1Type, MVT::v2f32,
19954
OPC_CheckType, MVT::v2f32,
19955
OPC_CheckPatternPredicate, 3,
19956
OPC_EmitInteger, MVT::i32, 14,
19957
OPC_EmitRegister, MVT::i32, 0 ,
19958
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEfd), 0,
19959
1, MVT::v2f32, 3, 0, 1, 2,
19961
OPC_CheckChild1Type, MVT::v4f32,
19962
OPC_CheckType, MVT::v4f32,
19963
OPC_CheckPatternPredicate, 3,
19964
OPC_EmitInteger, MVT::i32, 14,
19965
OPC_EmitRegister, MVT::i32, 0 ,
19966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEfq), 0,
19967
1, MVT::v4f32, 3, 0, 1, 2,
19970
OPC_CheckInteger, 90,
19974
OPC_CheckChild1Type, MVT::v2f32,
19976
OPC_CheckChild2Type, MVT::v2f32,
19977
OPC_CheckType, MVT::v2f32,
19978
OPC_CheckPatternPredicate, 3,
19979
OPC_EmitInteger, MVT::i32, 14,
19980
OPC_EmitRegister, MVT::i32, 0 ,
19981
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPSfd), 0,
19982
1, MVT::v2f32, 4, 0, 1, 2, 3,
19984
OPC_CheckChild1Type, MVT::v4f32,
19986
OPC_CheckChild2Type, MVT::v4f32,
19987
OPC_CheckType, MVT::v4f32,
19988
OPC_CheckPatternPredicate, 3,
19989
OPC_EmitInteger, MVT::i32, 14,
19990
OPC_EmitRegister, MVT::i32, 0 ,
19991
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPSfq), 0,
19992
1, MVT::v4f32, 4, 0, 1, 2, 3,
19995
OPC_CheckInteger, 96,
19999
OPC_CheckChild1Type, MVT::v2i32,
20000
OPC_CheckType, MVT::v2i32,
20001
OPC_CheckPatternPredicate, 3,
20002
OPC_EmitInteger, MVT::i32, 14,
20003
OPC_EmitRegister, MVT::i32, 0 ,
20004
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEd), 0,
20005
1, MVT::v2i32, 3, 0, 1, 2,
20007
OPC_CheckChild1Type, MVT::v4i32,
20008
OPC_CheckType, MVT::v4i32,
20009
OPC_CheckPatternPredicate, 3,
20010
OPC_EmitInteger, MVT::i32, 14,
20011
OPC_EmitRegister, MVT::i32, 0 ,
20012
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEq), 0,
20013
1, MVT::v4i32, 3, 0, 1, 2,
20015
OPC_CheckChild1Type, MVT::v2f32,
20016
OPC_CheckType, MVT::v2f32,
20017
OPC_CheckPatternPredicate, 3,
20018
OPC_EmitInteger, MVT::i32, 14,
20019
OPC_EmitRegister, MVT::i32, 0 ,
20020
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEfd), 0,
20021
1, MVT::v2f32, 3, 0, 1, 2,
20023
OPC_CheckChild1Type, MVT::v4f32,
20024
OPC_CheckType, MVT::v4f32,
20025
OPC_CheckPatternPredicate, 3,
20026
OPC_EmitInteger, MVT::i32, 14,
20027
OPC_EmitRegister, MVT::i32, 0 ,
20028
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEfq), 0,
20029
1, MVT::v4f32, 3, 0, 1, 2,
20032
OPC_CheckInteger, 97,
20036
OPC_CheckChild1Type, MVT::v2f32,
20038
OPC_CheckChild2Type, MVT::v2f32,
20039
OPC_CheckType, MVT::v2f32,
20040
OPC_CheckPatternPredicate, 3,
20041
OPC_EmitInteger, MVT::i32, 14,
20042
OPC_EmitRegister, MVT::i32, 0 ,
20043
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTSfd), 0,
20044
1, MVT::v2f32, 4, 0, 1, 2, 3,
20046
OPC_CheckChild1Type, MVT::v4f32,
20048
OPC_CheckChild2Type, MVT::v4f32,
20049
OPC_CheckType, MVT::v4f32,
20050
OPC_CheckPatternPredicate, 3,
20051
OPC_EmitInteger, MVT::i32, 14,
20052
OPC_EmitRegister, MVT::i32, 0 ,
20053
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTSfq), 0,
20054
1, MVT::v4f32, 4, 0, 1, 2, 3,
20057
OPC_CheckInteger, 103,
20061
OPC_CheckChild1Type, MVT::v4i16,
20063
OPC_CheckChild2Type, MVT::v4i16,
20064
OPC_CheckType, MVT::v4i16,
20065
OPC_CheckPatternPredicate, 3,
20066
OPC_EmitInteger, MVT::i32, 14,
20067
OPC_EmitRegister, MVT::i32, 0 ,
20068
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv4i16), 0,
20069
1, MVT::v4i16, 4, 0, 1, 2, 3,
20071
OPC_CheckChild1Type, MVT::v2i32,
20073
OPC_CheckChild2Type, MVT::v2i32,
20074
OPC_CheckType, MVT::v2i32,
20075
OPC_CheckPatternPredicate, 3,
20076
OPC_EmitInteger, MVT::i32, 14,
20077
OPC_EmitRegister, MVT::i32, 0 ,
20078
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv2i32), 0,
20079
1, MVT::v2i32, 4, 0, 1, 2, 3,
20081
OPC_CheckChild1Type, MVT::v8i16,
20083
OPC_CheckChild2Type, MVT::v8i16,
20084
OPC_CheckType, MVT::v8i16,
20085
OPC_CheckPatternPredicate, 3,
20086
OPC_EmitInteger, MVT::i32, 14,
20087
OPC_EmitRegister, MVT::i32, 0 ,
20088
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv8i16), 0,
20089
1, MVT::v8i16, 4, 0, 1, 2, 3,
20091
OPC_CheckChild1Type, MVT::v4i32,
20093
OPC_CheckChild2Type, MVT::v4i32,
20094
OPC_CheckType, MVT::v4i32,
20095
OPC_CheckPatternPredicate, 3,
20096
OPC_EmitInteger, MVT::i32, 14,
20097
OPC_EmitRegister, MVT::i32, 0 ,
20098
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv4i32), 0,
20099
1, MVT::v4i32, 4, 0, 1, 2, 3,
20101
OPC_CheckChild1Type, MVT::v8i8,
20103
OPC_CheckChild2Type, MVT::v8i8,
20104
OPC_CheckType, MVT::v8i8,
20105
OPC_CheckPatternPredicate, 3,
20106
OPC_EmitInteger, MVT::i32, 14,
20107
OPC_EmitRegister, MVT::i32, 0 ,
20108
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv8i8), 0,
20109
1, MVT::v8i8, 4, 0, 1, 2, 3,
20111
OPC_CheckChild1Type, MVT::v16i8,
20113
OPC_CheckChild2Type, MVT::v16i8,
20114
OPC_CheckType, MVT::v16i8,
20115
OPC_CheckPatternPredicate, 3,
20116
OPC_EmitInteger, MVT::i32, 14,
20117
OPC_EmitRegister, MVT::i32, 0 ,
20118
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv16i8), 0,
20119
1, MVT::v16i8, 4, 0, 1, 2, 3,
20121
OPC_CheckChild1Type, MVT::v1i64,
20123
OPC_CheckChild2Type, MVT::v1i64,
20124
OPC_CheckType, MVT::v1i64,
20125
OPC_CheckPatternPredicate, 3,
20126
OPC_EmitInteger, MVT::i32, 14,
20127
OPC_EmitRegister, MVT::i32, 0 ,
20128
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv1i64), 0,
20129
1, MVT::v1i64, 4, 0, 1, 2, 3,
20131
OPC_CheckChild1Type, MVT::v2i64,
20133
OPC_CheckChild2Type, MVT::v2i64,
20134
OPC_CheckType, MVT::v2i64,
20135
OPC_CheckPatternPredicate, 3,
20136
OPC_EmitInteger, MVT::i32, 14,
20137
OPC_EmitRegister, MVT::i32, 0 ,
20138
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv2i64), 0,
20139
1, MVT::v2i64, 4, 0, 1, 2, 3,
20142
OPC_CheckInteger, 104,
20146
OPC_CheckChild1Type, MVT::v4i16,
20148
OPC_CheckChild2Type, MVT::v4i16,
20149
OPC_CheckType, MVT::v4i16,
20150
OPC_CheckPatternPredicate, 3,
20151
OPC_EmitInteger, MVT::i32, 14,
20152
OPC_EmitRegister, MVT::i32, 0 ,
20153
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv4i16), 0,
20154
1, MVT::v4i16, 4, 0, 1, 2, 3,
20156
OPC_CheckChild1Type, MVT::v2i32,
20158
OPC_CheckChild2Type, MVT::v2i32,
20159
OPC_CheckType, MVT::v2i32,
20160
OPC_CheckPatternPredicate, 3,
20161
OPC_EmitInteger, MVT::i32, 14,
20162
OPC_EmitRegister, MVT::i32, 0 ,
20163
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv2i32), 0,
20164
1, MVT::v2i32, 4, 0, 1, 2, 3,
20166
OPC_CheckChild1Type, MVT::v8i16,
20168
OPC_CheckChild2Type, MVT::v8i16,
20169
OPC_CheckType, MVT::v8i16,
20170
OPC_CheckPatternPredicate, 3,
20171
OPC_EmitInteger, MVT::i32, 14,
20172
OPC_EmitRegister, MVT::i32, 0 ,
20173
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv8i16), 0,
20174
1, MVT::v8i16, 4, 0, 1, 2, 3,
20176
OPC_CheckChild1Type, MVT::v4i32,
20178
OPC_CheckChild2Type, MVT::v4i32,
20179
OPC_CheckType, MVT::v4i32,
20180
OPC_CheckPatternPredicate, 3,
20181
OPC_EmitInteger, MVT::i32, 14,
20182
OPC_EmitRegister, MVT::i32, 0 ,
20183
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv4i32), 0,
20184
1, MVT::v4i32, 4, 0, 1, 2, 3,
20186
OPC_CheckChild1Type, MVT::v8i8,
20188
OPC_CheckChild2Type, MVT::v8i8,
20189
OPC_CheckType, MVT::v8i8,
20190
OPC_CheckPatternPredicate, 3,
20191
OPC_EmitInteger, MVT::i32, 14,
20192
OPC_EmitRegister, MVT::i32, 0 ,
20193
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv8i8), 0,
20194
1, MVT::v8i8, 4, 0, 1, 2, 3,
20196
OPC_CheckChild1Type, MVT::v16i8,
20198
OPC_CheckChild2Type, MVT::v16i8,
20199
OPC_CheckType, MVT::v16i8,
20200
OPC_CheckPatternPredicate, 3,
20201
OPC_EmitInteger, MVT::i32, 14,
20202
OPC_EmitRegister, MVT::i32, 0 ,
20203
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv16i8), 0,
20204
1, MVT::v16i8, 4, 0, 1, 2, 3,
20206
OPC_CheckChild1Type, MVT::v1i64,
20208
OPC_CheckChild2Type, MVT::v1i64,
20209
OPC_CheckType, MVT::v1i64,
20210
OPC_CheckPatternPredicate, 3,
20211
OPC_EmitInteger, MVT::i32, 14,
20212
OPC_EmitRegister, MVT::i32, 0 ,
20213
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv1i64), 0,
20214
1, MVT::v1i64, 4, 0, 1, 2, 3,
20216
OPC_CheckChild1Type, MVT::v2i64,
20218
OPC_CheckChild2Type, MVT::v2i64,
20219
OPC_CheckType, MVT::v2i64,
20220
OPC_CheckPatternPredicate, 3,
20221
OPC_EmitInteger, MVT::i32, 14,
20222
OPC_EmitRegister, MVT::i32, 0 ,
20223
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv2i64), 0,
20224
1, MVT::v2i64, 4, 0, 1, 2, 3,
20227
OPC_CheckInteger, 94,
20231
OPC_CheckChild1Type, MVT::v4i16,
20233
OPC_CheckChild2Type, MVT::v4i16,
20234
OPC_CheckType, MVT::v4i16,
20235
OPC_CheckPatternPredicate, 3,
20236
OPC_EmitInteger, MVT::i32, 14,
20237
OPC_EmitRegister, MVT::i32, 0 ,
20238
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv4i16), 0,
20239
1, MVT::v4i16, 4, 0, 1, 2, 3,
20241
OPC_CheckChild1Type, MVT::v2i32,
20243
OPC_CheckChild2Type, MVT::v2i32,
20244
OPC_CheckType, MVT::v2i32,
20245
OPC_CheckPatternPredicate, 3,
20246
OPC_EmitInteger, MVT::i32, 14,
20247
OPC_EmitRegister, MVT::i32, 0 ,
20248
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv2i32), 0,
20249
1, MVT::v2i32, 4, 0, 1, 2, 3,
20251
OPC_CheckChild1Type, MVT::v8i16,
20253
OPC_CheckChild2Type, MVT::v8i16,
20254
OPC_CheckType, MVT::v8i16,
20255
OPC_CheckPatternPredicate, 3,
20256
OPC_EmitInteger, MVT::i32, 14,
20257
OPC_EmitRegister, MVT::i32, 0 ,
20258
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv8i16), 0,
20259
1, MVT::v8i16, 4, 0, 1, 2, 3,
20261
OPC_CheckChild1Type, MVT::v4i32,
20263
OPC_CheckChild2Type, MVT::v4i32,
20264
OPC_CheckType, MVT::v4i32,
20265
OPC_CheckPatternPredicate, 3,
20266
OPC_EmitInteger, MVT::i32, 14,
20267
OPC_EmitRegister, MVT::i32, 0 ,
20268
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv4i32), 0,
20269
1, MVT::v4i32, 4, 0, 1, 2, 3,
20271
OPC_CheckChild1Type, MVT::v8i8,
20273
OPC_CheckChild2Type, MVT::v8i8,
20274
OPC_CheckType, MVT::v8i8,
20275
OPC_CheckPatternPredicate, 3,
20276
OPC_EmitInteger, MVT::i32, 14,
20277
OPC_EmitRegister, MVT::i32, 0 ,
20278
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv8i8), 0,
20279
1, MVT::v8i8, 4, 0, 1, 2, 3,
20281
OPC_CheckChild1Type, MVT::v16i8,
20283
OPC_CheckChild2Type, MVT::v16i8,
20284
OPC_CheckType, MVT::v16i8,
20285
OPC_CheckPatternPredicate, 3,
20286
OPC_EmitInteger, MVT::i32, 14,
20287
OPC_EmitRegister, MVT::i32, 0 ,
20288
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv16i8), 0,
20289
1, MVT::v16i8, 4, 0, 1, 2, 3,
20291
OPC_CheckChild1Type, MVT::v1i64,
20293
OPC_CheckChild2Type, MVT::v1i64,
20294
OPC_CheckType, MVT::v1i64,
20295
OPC_CheckPatternPredicate, 3,
20296
OPC_EmitInteger, MVT::i32, 14,
20297
OPC_EmitRegister, MVT::i32, 0 ,
20298
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv1i64), 0,
20299
1, MVT::v1i64, 4, 0, 1, 2, 3,
20301
OPC_CheckChild1Type, MVT::v2i64,
20303
OPC_CheckChild2Type, MVT::v2i64,
20304
OPC_CheckType, MVT::v2i64,
20305
OPC_CheckPatternPredicate, 3,
20306
OPC_EmitInteger, MVT::i32, 14,
20307
OPC_EmitRegister, MVT::i32, 0 ,
20308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv2i64), 0,
20309
1, MVT::v2i64, 4, 0, 1, 2, 3,
20312
OPC_CheckInteger, 95,
20316
OPC_CheckChild1Type, MVT::v4i16,
20318
OPC_CheckChild2Type, MVT::v4i16,
20319
OPC_CheckType, MVT::v4i16,
20320
OPC_CheckPatternPredicate, 3,
20321
OPC_EmitInteger, MVT::i32, 14,
20322
OPC_EmitRegister, MVT::i32, 0 ,
20323
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv4i16), 0,
20324
1, MVT::v4i16, 4, 0, 1, 2, 3,
20326
OPC_CheckChild1Type, MVT::v2i32,
20328
OPC_CheckChild2Type, MVT::v2i32,
20329
OPC_CheckType, MVT::v2i32,
20330
OPC_CheckPatternPredicate, 3,
20331
OPC_EmitInteger, MVT::i32, 14,
20332
OPC_EmitRegister, MVT::i32, 0 ,
20333
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv2i32), 0,
20334
1, MVT::v2i32, 4, 0, 1, 2, 3,
20336
OPC_CheckChild1Type, MVT::v8i16,
20338
OPC_CheckChild2Type, MVT::v8i16,
20339
OPC_CheckType, MVT::v8i16,
20340
OPC_CheckPatternPredicate, 3,
20341
OPC_EmitInteger, MVT::i32, 14,
20342
OPC_EmitRegister, MVT::i32, 0 ,
20343
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv8i16), 0,
20344
1, MVT::v8i16, 4, 0, 1, 2, 3,
20346
OPC_CheckChild1Type, MVT::v4i32,
20348
OPC_CheckChild2Type, MVT::v4i32,
20349
OPC_CheckType, MVT::v4i32,
20350
OPC_CheckPatternPredicate, 3,
20351
OPC_EmitInteger, MVT::i32, 14,
20352
OPC_EmitRegister, MVT::i32, 0 ,
20353
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv4i32), 0,
20354
1, MVT::v4i32, 4, 0, 1, 2, 3,
20356
OPC_CheckChild1Type, MVT::v8i8,
20358
OPC_CheckChild2Type, MVT::v8i8,
20359
OPC_CheckType, MVT::v8i8,
20360
OPC_CheckPatternPredicate, 3,
20361
OPC_EmitInteger, MVT::i32, 14,
20362
OPC_EmitRegister, MVT::i32, 0 ,
20363
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv8i8), 0,
20364
1, MVT::v8i8, 4, 0, 1, 2, 3,
20366
OPC_CheckChild1Type, MVT::v16i8,
20368
OPC_CheckChild2Type, MVT::v16i8,
20369
OPC_CheckType, MVT::v16i8,
20370
OPC_CheckPatternPredicate, 3,
20371
OPC_EmitInteger, MVT::i32, 14,
20372
OPC_EmitRegister, MVT::i32, 0 ,
20373
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv16i8), 0,
20374
1, MVT::v16i8, 4, 0, 1, 2, 3,
20376
OPC_CheckChild1Type, MVT::v1i64,
20378
OPC_CheckChild2Type, MVT::v1i64,
20379
OPC_CheckType, MVT::v1i64,
20380
OPC_CheckPatternPredicate, 3,
20381
OPC_EmitInteger, MVT::i32, 14,
20382
OPC_EmitRegister, MVT::i32, 0 ,
20383
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv1i64), 0,
20384
1, MVT::v1i64, 4, 0, 1, 2, 3,
20386
OPC_CheckChild1Type, MVT::v2i64,
20388
OPC_CheckChild2Type, MVT::v2i64,
20389
OPC_CheckType, MVT::v2i64,
20390
OPC_CheckPatternPredicate, 3,
20391
OPC_EmitInteger, MVT::i32, 14,
20392
OPC_EmitRegister, MVT::i32, 0 ,
20393
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv2i64), 0,
20394
1, MVT::v2i64, 4, 0, 1, 2, 3,
20397
OPC_CheckInteger, 83,
20401
OPC_CheckChild1Type, MVT::v4i16,
20403
OPC_CheckChild2Type, MVT::v4i16,
20404
OPC_CheckType, MVT::v4i16,
20405
OPC_CheckPatternPredicate, 3,
20406
OPC_EmitInteger, MVT::i32, 14,
20407
OPC_EmitRegister, MVT::i32, 0 ,
20408
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv4i16), 0,
20409
1, MVT::v4i16, 4, 0, 1, 2, 3,
20411
OPC_CheckChild1Type, MVT::v2i32,
20413
OPC_CheckChild2Type, MVT::v2i32,
20414
OPC_CheckType, MVT::v2i32,
20415
OPC_CheckPatternPredicate, 3,
20416
OPC_EmitInteger, MVT::i32, 14,
20417
OPC_EmitRegister, MVT::i32, 0 ,
20418
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv2i32), 0,
20419
1, MVT::v2i32, 4, 0, 1, 2, 3,
20421
OPC_CheckChild1Type, MVT::v8i16,
20423
OPC_CheckChild2Type, MVT::v8i16,
20424
OPC_CheckType, MVT::v8i16,
20425
OPC_CheckPatternPredicate, 3,
20426
OPC_EmitInteger, MVT::i32, 14,
20427
OPC_EmitRegister, MVT::i32, 0 ,
20428
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv8i16), 0,
20429
1, MVT::v8i16, 4, 0, 1, 2, 3,
20431
OPC_CheckChild1Type, MVT::v4i32,
20433
OPC_CheckChild2Type, MVT::v4i32,
20434
OPC_CheckType, MVT::v4i32,
20435
OPC_CheckPatternPredicate, 3,
20436
OPC_EmitInteger, MVT::i32, 14,
20437
OPC_EmitRegister, MVT::i32, 0 ,
20438
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv4i32), 0,
20439
1, MVT::v4i32, 4, 0, 1, 2, 3,
20441
OPC_CheckChild1Type, MVT::v8i8,
20443
OPC_CheckChild2Type, MVT::v8i8,
20444
OPC_CheckType, MVT::v8i8,
20445
OPC_CheckPatternPredicate, 3,
20446
OPC_EmitInteger, MVT::i32, 14,
20447
OPC_EmitRegister, MVT::i32, 0 ,
20448
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv8i8), 0,
20449
1, MVT::v8i8, 4, 0, 1, 2, 3,
20451
OPC_CheckChild1Type, MVT::v16i8,
20453
OPC_CheckChild2Type, MVT::v16i8,
20454
OPC_CheckType, MVT::v16i8,
20455
OPC_CheckPatternPredicate, 3,
20456
OPC_EmitInteger, MVT::i32, 14,
20457
OPC_EmitRegister, MVT::i32, 0 ,
20458
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv16i8), 0,
20459
1, MVT::v16i8, 4, 0, 1, 2, 3,
20461
OPC_CheckChild1Type, MVT::v1i64,
20463
OPC_CheckChild2Type, MVT::v1i64,
20464
OPC_CheckType, MVT::v1i64,
20465
OPC_CheckPatternPredicate, 3,
20466
OPC_EmitInteger, MVT::i32, 14,
20467
OPC_EmitRegister, MVT::i32, 0 ,
20468
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv1i64), 0,
20469
1, MVT::v1i64, 4, 0, 1, 2, 3,
20471
OPC_CheckChild1Type, MVT::v2i64,
20473
OPC_CheckChild2Type, MVT::v2i64,
20474
OPC_CheckType, MVT::v2i64,
20475
OPC_CheckPatternPredicate, 3,
20476
OPC_EmitInteger, MVT::i32, 14,
20477
OPC_EmitRegister, MVT::i32, 0 ,
20478
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv2i64), 0,
20479
1, MVT::v2i64, 4, 0, 1, 2, 3,
20482
OPC_CheckInteger, 85,
20486
OPC_CheckChild1Type, MVT::v4i16,
20488
OPC_CheckChild2Type, MVT::v4i16,
20489
OPC_CheckType, MVT::v4i16,
20490
OPC_CheckPatternPredicate, 3,
20491
OPC_EmitInteger, MVT::i32, 14,
20492
OPC_EmitRegister, MVT::i32, 0 ,
20493
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv4i16), 0,
20494
1, MVT::v4i16, 4, 0, 1, 2, 3,
20496
OPC_CheckChild1Type, MVT::v2i32,
20498
OPC_CheckChild2Type, MVT::v2i32,
20499
OPC_CheckType, MVT::v2i32,
20500
OPC_CheckPatternPredicate, 3,
20501
OPC_EmitInteger, MVT::i32, 14,
20502
OPC_EmitRegister, MVT::i32, 0 ,
20503
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv2i32), 0,
20504
1, MVT::v2i32, 4, 0, 1, 2, 3,
20506
OPC_CheckChild1Type, MVT::v8i16,
20508
OPC_CheckChild2Type, MVT::v8i16,
20509
OPC_CheckType, MVT::v8i16,
20510
OPC_CheckPatternPredicate, 3,
20511
OPC_EmitInteger, MVT::i32, 14,
20512
OPC_EmitRegister, MVT::i32, 0 ,
20513
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv8i16), 0,
20514
1, MVT::v8i16, 4, 0, 1, 2, 3,
20516
OPC_CheckChild1Type, MVT::v4i32,
20518
OPC_CheckChild2Type, MVT::v4i32,
20519
OPC_CheckType, MVT::v4i32,
20520
OPC_CheckPatternPredicate, 3,
20521
OPC_EmitInteger, MVT::i32, 14,
20522
OPC_EmitRegister, MVT::i32, 0 ,
20523
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv4i32), 0,
20524
1, MVT::v4i32, 4, 0, 1, 2, 3,
20526
OPC_CheckChild1Type, MVT::v8i8,
20528
OPC_CheckChild2Type, MVT::v8i8,
20529
OPC_CheckType, MVT::v8i8,
20530
OPC_CheckPatternPredicate, 3,
20531
OPC_EmitInteger, MVT::i32, 14,
20532
OPC_EmitRegister, MVT::i32, 0 ,
20533
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv8i8), 0,
20534
1, MVT::v8i8, 4, 0, 1, 2, 3,
20536
OPC_CheckChild1Type, MVT::v16i8,
20538
OPC_CheckChild2Type, MVT::v16i8,
20539
OPC_CheckType, MVT::v16i8,
20540
OPC_CheckPatternPredicate, 3,
20541
OPC_EmitInteger, MVT::i32, 14,
20542
OPC_EmitRegister, MVT::i32, 0 ,
20543
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv16i8), 0,
20544
1, MVT::v16i8, 4, 0, 1, 2, 3,
20546
OPC_CheckChild1Type, MVT::v1i64,
20548
OPC_CheckChild2Type, MVT::v1i64,
20549
OPC_CheckType, MVT::v1i64,
20550
OPC_CheckPatternPredicate, 3,
20551
OPC_EmitInteger, MVT::i32, 14,
20552
OPC_EmitRegister, MVT::i32, 0 ,
20553
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv1i64), 0,
20554
1, MVT::v1i64, 4, 0, 1, 2, 3,
20556
OPC_CheckChild1Type, MVT::v2i64,
20558
OPC_CheckChild2Type, MVT::v2i64,
20559
OPC_CheckType, MVT::v2i64,
20560
OPC_CheckPatternPredicate, 3,
20561
OPC_EmitInteger, MVT::i32, 14,
20562
OPC_EmitRegister, MVT::i32, 0 ,
20563
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv2i64), 0,
20564
1, MVT::v2i64, 4, 0, 1, 2, 3,
20567
OPC_CheckInteger, 78,
20571
OPC_CheckChild1Type, MVT::v4i16,
20573
OPC_CheckChild2Type, MVT::v4i16,
20574
OPC_CheckType, MVT::v4i16,
20575
OPC_CheckPatternPredicate, 3,
20576
OPC_EmitInteger, MVT::i32, 14,
20577
OPC_EmitRegister, MVT::i32, 0 ,
20578
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv4i16), 0,
20579
1, MVT::v4i16, 4, 0, 1, 2, 3,
20581
OPC_CheckChild1Type, MVT::v2i32,
20583
OPC_CheckChild2Type, MVT::v2i32,
20584
OPC_CheckType, MVT::v2i32,
20585
OPC_CheckPatternPredicate, 3,
20586
OPC_EmitInteger, MVT::i32, 14,
20587
OPC_EmitRegister, MVT::i32, 0 ,
20588
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv2i32), 0,
20589
1, MVT::v2i32, 4, 0, 1, 2, 3,
20591
OPC_CheckChild1Type, MVT::v8i16,
20593
OPC_CheckChild2Type, MVT::v8i16,
20594
OPC_CheckType, MVT::v8i16,
20595
OPC_CheckPatternPredicate, 3,
20596
OPC_EmitInteger, MVT::i32, 14,
20597
OPC_EmitRegister, MVT::i32, 0 ,
20598
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv8i16), 0,
20599
1, MVT::v8i16, 4, 0, 1, 2, 3,
20601
OPC_CheckChild1Type, MVT::v4i32,
20603
OPC_CheckChild2Type, MVT::v4i32,
20604
OPC_CheckType, MVT::v4i32,
20605
OPC_CheckPatternPredicate, 3,
20606
OPC_EmitInteger, MVT::i32, 14,
20607
OPC_EmitRegister, MVT::i32, 0 ,
20608
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv4i32), 0,
20609
1, MVT::v4i32, 4, 0, 1, 2, 3,
20611
OPC_CheckChild1Type, MVT::v8i8,
20613
OPC_CheckChild2Type, MVT::v8i8,
20614
OPC_CheckType, MVT::v8i8,
20615
OPC_CheckPatternPredicate, 3,
20616
OPC_EmitInteger, MVT::i32, 14,
20617
OPC_EmitRegister, MVT::i32, 0 ,
20618
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv8i8), 0,
20619
1, MVT::v8i8, 4, 0, 1, 2, 3,
20621
OPC_CheckChild1Type, MVT::v16i8,
20623
OPC_CheckChild2Type, MVT::v16i8,
20624
OPC_CheckType, MVT::v16i8,
20625
OPC_CheckPatternPredicate, 3,
20626
OPC_EmitInteger, MVT::i32, 14,
20627
OPC_EmitRegister, MVT::i32, 0 ,
20628
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv16i8), 0,
20629
1, MVT::v16i8, 4, 0, 1, 2, 3,
20631
OPC_CheckChild1Type, MVT::v1i64,
20633
OPC_CheckChild2Type, MVT::v1i64,
20634
OPC_CheckType, MVT::v1i64,
20635
OPC_CheckPatternPredicate, 3,
20636
OPC_EmitInteger, MVT::i32, 14,
20637
OPC_EmitRegister, MVT::i32, 0 ,
20638
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv1i64), 0,
20639
1, MVT::v1i64, 4, 0, 1, 2, 3,
20641
OPC_CheckChild1Type, MVT::v2i64,
20643
OPC_CheckChild2Type, MVT::v2i64,
20644
OPC_CheckType, MVT::v2i64,
20645
OPC_CheckPatternPredicate, 3,
20646
OPC_EmitInteger, MVT::i32, 14,
20647
OPC_EmitRegister, MVT::i32, 0 ,
20648
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv2i64), 0,
20649
1, MVT::v2i64, 4, 0, 1, 2, 3,
20652
OPC_CheckInteger, 79,
20656
OPC_CheckChild1Type, MVT::v4i16,
20658
OPC_CheckChild2Type, MVT::v4i16,
20659
OPC_CheckType, MVT::v4i16,
20660
OPC_CheckPatternPredicate, 3,
20661
OPC_EmitInteger, MVT::i32, 14,
20662
OPC_EmitRegister, MVT::i32, 0 ,
20663
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv4i16), 0,
20664
1, MVT::v4i16, 4, 0, 1, 2, 3,
20666
OPC_CheckChild1Type, MVT::v2i32,
20668
OPC_CheckChild2Type, MVT::v2i32,
20669
OPC_CheckType, MVT::v2i32,
20670
OPC_CheckPatternPredicate, 3,
20671
OPC_EmitInteger, MVT::i32, 14,
20672
OPC_EmitRegister, MVT::i32, 0 ,
20673
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv2i32), 0,
20674
1, MVT::v2i32, 4, 0, 1, 2, 3,
20676
OPC_CheckChild1Type, MVT::v8i16,
20678
OPC_CheckChild2Type, MVT::v8i16,
20679
OPC_CheckType, MVT::v8i16,
20680
OPC_CheckPatternPredicate, 3,
20681
OPC_EmitInteger, MVT::i32, 14,
20682
OPC_EmitRegister, MVT::i32, 0 ,
20683
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv8i16), 0,
20684
1, MVT::v8i16, 4, 0, 1, 2, 3,
20686
OPC_CheckChild1Type, MVT::v4i32,
20688
OPC_CheckChild2Type, MVT::v4i32,
20689
OPC_CheckType, MVT::v4i32,
20690
OPC_CheckPatternPredicate, 3,
20691
OPC_EmitInteger, MVT::i32, 14,
20692
OPC_EmitRegister, MVT::i32, 0 ,
20693
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv4i32), 0,
20694
1, MVT::v4i32, 4, 0, 1, 2, 3,
20696
OPC_CheckChild1Type, MVT::v8i8,
20698
OPC_CheckChild2Type, MVT::v8i8,
20699
OPC_CheckType, MVT::v8i8,
20700
OPC_CheckPatternPredicate, 3,
20701
OPC_EmitInteger, MVT::i32, 14,
20702
OPC_EmitRegister, MVT::i32, 0 ,
20703
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv8i8), 0,
20704
1, MVT::v8i8, 4, 0, 1, 2, 3,
20706
OPC_CheckChild1Type, MVT::v16i8,
20708
OPC_CheckChild2Type, MVT::v16i8,
20709
OPC_CheckType, MVT::v16i8,
20710
OPC_CheckPatternPredicate, 3,
20711
OPC_EmitInteger, MVT::i32, 14,
20712
OPC_EmitRegister, MVT::i32, 0 ,
20713
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv16i8), 0,
20714
1, MVT::v16i8, 4, 0, 1, 2, 3,
20716
OPC_CheckChild1Type, MVT::v1i64,
20718
OPC_CheckChild2Type, MVT::v1i64,
20719
OPC_CheckType, MVT::v1i64,
20720
OPC_CheckPatternPredicate, 3,
20721
OPC_EmitInteger, MVT::i32, 14,
20722
OPC_EmitRegister, MVT::i32, 0 ,
20723
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv1i64), 0,
20724
1, MVT::v1i64, 4, 0, 1, 2, 3,
20726
OPC_CheckChild1Type, MVT::v2i64,
20728
OPC_CheckChild2Type, MVT::v2i64,
20729
OPC_CheckType, MVT::v2i64,
20730
OPC_CheckPatternPredicate, 3,
20731
OPC_EmitInteger, MVT::i32, 14,
20732
OPC_EmitRegister, MVT::i32, 0 ,
20733
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv2i64), 0,
20734
1, MVT::v2i64, 4, 0, 1, 2, 3,
20737
OPC_CheckInteger, 11,
20741
OPC_CheckChild1Type, MVT::v8i8,
20742
OPC_CheckType, MVT::v8i8,
20743
OPC_CheckPatternPredicate, 3,
20744
OPC_EmitInteger, MVT::i32, 14,
20745
OPC_EmitRegister, MVT::i32, 0 ,
20746
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv8i8), 0,
20747
1, MVT::v8i8, 3, 0, 1, 2,
20749
OPC_CheckChild1Type, MVT::v4i16,
20750
OPC_CheckType, MVT::v4i16,
20751
OPC_CheckPatternPredicate, 3,
20752
OPC_EmitInteger, MVT::i32, 14,
20753
OPC_EmitRegister, MVT::i32, 0 ,
20754
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv4i16), 0,
20755
1, MVT::v4i16, 3, 0, 1, 2,
20757
OPC_CheckChild1Type, MVT::v2i32,
20758
OPC_CheckType, MVT::v2i32,
20759
OPC_CheckPatternPredicate, 3,
20760
OPC_EmitInteger, MVT::i32, 14,
20761
OPC_EmitRegister, MVT::i32, 0 ,
20762
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv2i32), 0,
20763
1, MVT::v2i32, 3, 0, 1, 2,
20765
OPC_CheckChild1Type, MVT::v16i8,
20766
OPC_CheckType, MVT::v16i8,
20767
OPC_CheckPatternPredicate, 3,
20768
OPC_EmitInteger, MVT::i32, 14,
20769
OPC_EmitRegister, MVT::i32, 0 ,
20770
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv16i8), 0,
20771
1, MVT::v16i8, 3, 0, 1, 2,
20773
OPC_CheckChild1Type, MVT::v8i16,
20774
OPC_CheckType, MVT::v8i16,
20775
OPC_CheckPatternPredicate, 3,
20776
OPC_EmitInteger, MVT::i32, 14,
20777
OPC_EmitRegister, MVT::i32, 0 ,
20778
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv8i16), 0,
20779
1, MVT::v8i16, 3, 0, 1, 2,
20781
OPC_CheckChild1Type, MVT::v4i32,
20782
OPC_CheckType, MVT::v4i32,
20783
OPC_CheckPatternPredicate, 3,
20784
OPC_EmitInteger, MVT::i32, 14,
20785
OPC_EmitRegister, MVT::i32, 0 ,
20786
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv4i32), 0,
20787
1, MVT::v4i32, 3, 0, 1, 2,
20789
OPC_CheckChild1Type, MVT::v2f32,
20790
OPC_CheckType, MVT::v2f32,
20791
OPC_CheckPatternPredicate, 3,
20792
OPC_EmitInteger, MVT::i32, 14,
20793
OPC_EmitRegister, MVT::i32, 0 ,
20794
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSfd), 0,
20795
1, MVT::v2f32, 3, 0, 1, 2,
20797
OPC_CheckChild1Type, MVT::v4f32,
20798
OPC_CheckType, MVT::v4f32,
20799
OPC_CheckPatternPredicate, 3,
20800
OPC_EmitInteger, MVT::i32, 14,
20801
OPC_EmitRegister, MVT::i32, 0 ,
20802
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSfq), 0,
20803
1, MVT::v4f32, 3, 0, 1, 2,
20806
OPC_CheckInteger, 63,
20810
OPC_CheckChild1Type, MVT::v8i8,
20811
OPC_CheckType, MVT::v8i8,
20812
OPC_CheckPatternPredicate, 3,
20813
OPC_EmitInteger, MVT::i32, 14,
20814
OPC_EmitRegister, MVT::i32, 0 ,
20815
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv8i8), 0,
20816
1, MVT::v8i8, 3, 0, 1, 2,
20818
OPC_CheckChild1Type, MVT::v4i16,
20819
OPC_CheckType, MVT::v4i16,
20820
OPC_CheckPatternPredicate, 3,
20821
OPC_EmitInteger, MVT::i32, 14,
20822
OPC_EmitRegister, MVT::i32, 0 ,
20823
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv4i16), 0,
20824
1, MVT::v4i16, 3, 0, 1, 2,
20826
OPC_CheckChild1Type, MVT::v2i32,
20827
OPC_CheckType, MVT::v2i32,
20828
OPC_CheckPatternPredicate, 3,
20829
OPC_EmitInteger, MVT::i32, 14,
20830
OPC_EmitRegister, MVT::i32, 0 ,
20831
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv2i32), 0,
20832
1, MVT::v2i32, 3, 0, 1, 2,
20834
OPC_CheckChild1Type, MVT::v16i8,
20835
OPC_CheckType, MVT::v16i8,
20836
OPC_CheckPatternPredicate, 3,
20837
OPC_EmitInteger, MVT::i32, 14,
20838
OPC_EmitRegister, MVT::i32, 0 ,
20839
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv16i8), 0,
20840
1, MVT::v16i8, 3, 0, 1, 2,
20842
OPC_CheckChild1Type, MVT::v8i16,
20843
OPC_CheckType, MVT::v8i16,
20844
OPC_CheckPatternPredicate, 3,
20845
OPC_EmitInteger, MVT::i32, 14,
20846
OPC_EmitRegister, MVT::i32, 0 ,
20847
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv8i16), 0,
20848
1, MVT::v8i16, 3, 0, 1, 2,
20850
OPC_CheckChild1Type, MVT::v4i32,
20851
OPC_CheckType, MVT::v4i32,
20852
OPC_CheckPatternPredicate, 3,
20853
OPC_EmitInteger, MVT::i32, 14,
20854
OPC_EmitRegister, MVT::i32, 0 ,
20855
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv4i32), 0,
20856
1, MVT::v4i32, 3, 0, 1, 2,
20859
OPC_CheckInteger, 73,
20863
OPC_CheckChild1Type, MVT::v8i8,
20864
OPC_CheckType, MVT::v8i8,
20865
OPC_CheckPatternPredicate, 3,
20866
OPC_EmitInteger, MVT::i32, 14,
20867
OPC_EmitRegister, MVT::i32, 0 ,
20868
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv8i8), 0,
20869
1, MVT::v8i8, 3, 0, 1, 2,
20871
OPC_CheckChild1Type, MVT::v4i16,
20872
OPC_CheckType, MVT::v4i16,
20873
OPC_CheckPatternPredicate, 3,
20874
OPC_EmitInteger, MVT::i32, 14,
20875
OPC_EmitRegister, MVT::i32, 0 ,
20876
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv4i16), 0,
20877
1, MVT::v4i16, 3, 0, 1, 2,
20879
OPC_CheckChild1Type, MVT::v2i32,
20880
OPC_CheckType, MVT::v2i32,
20881
OPC_CheckPatternPredicate, 3,
20882
OPC_EmitInteger, MVT::i32, 14,
20883
OPC_EmitRegister, MVT::i32, 0 ,
20884
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv2i32), 0,
20885
1, MVT::v2i32, 3, 0, 1, 2,
20887
OPC_CheckChild1Type, MVT::v16i8,
20888
OPC_CheckType, MVT::v16i8,
20889
OPC_CheckPatternPredicate, 3,
20890
OPC_EmitInteger, MVT::i32, 14,
20891
OPC_EmitRegister, MVT::i32, 0 ,
20892
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv16i8), 0,
20893
1, MVT::v16i8, 3, 0, 1, 2,
20895
OPC_CheckChild1Type, MVT::v8i16,
20896
OPC_CheckType, MVT::v8i16,
20897
OPC_CheckPatternPredicate, 3,
20898
OPC_EmitInteger, MVT::i32, 14,
20899
OPC_EmitRegister, MVT::i32, 0 ,
20900
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv8i16), 0,
20901
1, MVT::v8i16, 3, 0, 1, 2,
20903
OPC_CheckChild1Type, MVT::v4i32,
20904
OPC_CheckType, MVT::v4i32,
20905
OPC_CheckPatternPredicate, 3,
20906
OPC_EmitInteger, MVT::i32, 14,
20907
OPC_EmitRegister, MVT::i32, 0 ,
20908
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv4i32), 0,
20909
1, MVT::v4i32, 3, 0, 1, 2,
20912
OPC_CheckInteger, 21,
20916
OPC_CheckChild1Type, MVT::v8i8,
20917
OPC_CheckType, MVT::v8i8,
20918
OPC_CheckPatternPredicate, 3,
20919
OPC_EmitInteger, MVT::i32, 14,
20920
OPC_EmitRegister, MVT::i32, 0 ,
20921
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv8i8), 0,
20922
1, MVT::v8i8, 3, 0, 1, 2,
20924
OPC_CheckChild1Type, MVT::v4i16,
20925
OPC_CheckType, MVT::v4i16,
20926
OPC_CheckPatternPredicate, 3,
20927
OPC_EmitInteger, MVT::i32, 14,
20928
OPC_EmitRegister, MVT::i32, 0 ,
20929
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv4i16), 0,
20930
1, MVT::v4i16, 3, 0, 1, 2,
20932
OPC_CheckChild1Type, MVT::v2i32,
20933
OPC_CheckType, MVT::v2i32,
20934
OPC_CheckPatternPredicate, 3,
20935
OPC_EmitInteger, MVT::i32, 14,
20936
OPC_EmitRegister, MVT::i32, 0 ,
20937
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv2i32), 0,
20938
1, MVT::v2i32, 3, 0, 1, 2,
20940
OPC_CheckChild1Type, MVT::v16i8,
20941
OPC_CheckType, MVT::v16i8,
20942
OPC_CheckPatternPredicate, 3,
20943
OPC_EmitInteger, MVT::i32, 14,
20944
OPC_EmitRegister, MVT::i32, 0 ,
20945
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv16i8), 0,
20946
1, MVT::v16i8, 3, 0, 1, 2,
20948
OPC_CheckChild1Type, MVT::v8i16,
20949
OPC_CheckType, MVT::v8i16,
20950
OPC_CheckPatternPredicate, 3,
20951
OPC_EmitInteger, MVT::i32, 14,
20952
OPC_EmitRegister, MVT::i32, 0 ,
20953
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv8i16), 0,
20954
1, MVT::v8i16, 3, 0, 1, 2,
20956
OPC_CheckChild1Type, MVT::v4i32,
20957
OPC_CheckType, MVT::v4i32,
20958
OPC_CheckPatternPredicate, 3,
20959
OPC_EmitInteger, MVT::i32, 14,
20960
OPC_EmitRegister, MVT::i32, 0 ,
20961
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv4i32), 0,
20962
1, MVT::v4i32, 3, 0, 1, 2,
20965
OPC_CheckInteger, 22,
20969
OPC_CheckChild1Type, MVT::v8i8,
20970
OPC_CheckType, MVT::v8i8,
20971
OPC_CheckPatternPredicate, 3,
20972
OPC_EmitInteger, MVT::i32, 14,
20973
OPC_EmitRegister, MVT::i32, 0 ,
20974
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv8i8), 0,
20975
1, MVT::v8i8, 3, 0, 1, 2,
20977
OPC_CheckChild1Type, MVT::v4i16,
20978
OPC_CheckType, MVT::v4i16,
20979
OPC_CheckPatternPredicate, 3,
20980
OPC_EmitInteger, MVT::i32, 14,
20981
OPC_EmitRegister, MVT::i32, 0 ,
20982
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv4i16), 0,
20983
1, MVT::v4i16, 3, 0, 1, 2,
20985
OPC_CheckChild1Type, MVT::v2i32,
20986
OPC_CheckType, MVT::v2i32,
20987
OPC_CheckPatternPredicate, 3,
20988
OPC_EmitInteger, MVT::i32, 14,
20989
OPC_EmitRegister, MVT::i32, 0 ,
20990
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv2i32), 0,
20991
1, MVT::v2i32, 3, 0, 1, 2,
20993
OPC_CheckChild1Type, MVT::v16i8,
20994
OPC_CheckType, MVT::v16i8,
20995
OPC_CheckPatternPredicate, 3,
20996
OPC_EmitInteger, MVT::i32, 14,
20997
OPC_EmitRegister, MVT::i32, 0 ,
20998
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv16i8), 0,
20999
1, MVT::v16i8, 3, 0, 1, 2,
21001
OPC_CheckChild1Type, MVT::v8i16,
21002
OPC_CheckType, MVT::v8i16,
21003
OPC_CheckPatternPredicate, 3,
21004
OPC_EmitInteger, MVT::i32, 14,
21005
OPC_EmitRegister, MVT::i32, 0 ,
21006
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv8i16), 0,
21007
1, MVT::v8i16, 3, 0, 1, 2,
21009
OPC_CheckChild1Type, MVT::v4i32,
21010
OPC_CheckType, MVT::v4i32,
21011
OPC_CheckPatternPredicate, 3,
21012
OPC_EmitInteger, MVT::i32, 14,
21013
OPC_EmitRegister, MVT::i32, 0 ,
21014
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv4i32), 0,
21015
1, MVT::v4i32, 3, 0, 1, 2,
21018
OPC_CheckInteger, 23,
21022
OPC_CheckChild1Type, MVT::v8i8,
21023
OPC_CheckType, MVT::v8i8,
21024
OPC_CheckPatternPredicate, 3,
21025
OPC_EmitInteger, MVT::i32, 14,
21026
OPC_EmitRegister, MVT::i32, 0 ,
21027
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCNTd), 0,
21028
1, MVT::v8i8, 3, 0, 1, 2,
21030
OPC_CheckChild1Type, MVT::v16i8,
21031
OPC_CheckType, MVT::v16i8,
21032
OPC_CheckPatternPredicate, 3,
21033
OPC_EmitInteger, MVT::i32, 14,
21034
OPC_EmitRegister, MVT::i32, 0 ,
21035
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCNTq), 0,
21036
1, MVT::v16i8, 3, 0, 1, 2,
21039
OPC_CheckInteger, 49,
21043
OPC_CheckChild1Type, MVT::v8i16,
21044
OPC_CheckType, MVT::v8i8,
21045
OPC_CheckPatternPredicate, 3,
21046
OPC_EmitInteger, MVT::i32, 14,
21047
OPC_EmitRegister, MVT::i32, 0 ,
21048
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv8i8), 0,
21049
1, MVT::v8i8, 3, 0, 1, 2,
21051
OPC_CheckChild1Type, MVT::v4i32,
21052
OPC_CheckType, MVT::v4i16,
21053
OPC_CheckPatternPredicate, 3,
21054
OPC_EmitInteger, MVT::i32, 14,
21055
OPC_EmitRegister, MVT::i32, 0 ,
21056
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv4i16), 0,
21057
1, MVT::v4i16, 3, 0, 1, 2,
21059
OPC_CheckChild1Type, MVT::v2i64,
21060
OPC_CheckType, MVT::v2i32,
21061
OPC_CheckPatternPredicate, 3,
21062
OPC_EmitInteger, MVT::i32, 14,
21063
OPC_EmitRegister, MVT::i32, 0 ,
21064
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv2i32), 0,
21065
1, MVT::v2i32, 3, 0, 1, 2,
21068
OPC_CheckInteger, 70,
21072
OPC_CheckChild1Type, MVT::v8i16,
21073
OPC_CheckType, MVT::v8i8,
21074
OPC_CheckPatternPredicate, 3,
21075
OPC_EmitInteger, MVT::i32, 14,
21076
OPC_EmitRegister, MVT::i32, 0 ,
21077
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv8i8), 0,
21078
1, MVT::v8i8, 3, 0, 1, 2,
21080
OPC_CheckChild1Type, MVT::v4i32,
21081
OPC_CheckType, MVT::v4i16,
21082
OPC_CheckPatternPredicate, 3,
21083
OPC_EmitInteger, MVT::i32, 14,
21084
OPC_EmitRegister, MVT::i32, 0 ,
21085
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv4i16), 0,
21086
1, MVT::v4i16, 3, 0, 1, 2,
21088
OPC_CheckChild1Type, MVT::v2i64,
21089
OPC_CheckType, MVT::v2i32,
21090
OPC_CheckPatternPredicate, 3,
21091
OPC_EmitInteger, MVT::i32, 14,
21092
OPC_EmitRegister, MVT::i32, 0 ,
21093
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv2i32), 0,
21094
1, MVT::v2i32, 3, 0, 1, 2,
21097
OPC_CheckInteger, 72,
21101
OPC_CheckChild1Type, MVT::v8i16,
21102
OPC_CheckType, MVT::v8i8,
21103
OPC_CheckPatternPredicate, 3,
21104
OPC_EmitInteger, MVT::i32, 14,
21105
OPC_EmitRegister, MVT::i32, 0 ,
21106
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv8i8), 0,
21107
1, MVT::v8i8, 3, 0, 1, 2,
21109
OPC_CheckChild1Type, MVT::v4i32,
21110
OPC_CheckType, MVT::v4i16,
21111
OPC_CheckPatternPredicate, 3,
21112
OPC_EmitInteger, MVT::i32, 14,
21113
OPC_EmitRegister, MVT::i32, 0 ,
21114
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv4i16), 0,
21115
1, MVT::v4i16, 3, 0, 1, 2,
21117
OPC_CheckChild1Type, MVT::v2i64,
21118
OPC_CheckType, MVT::v2i32,
21119
OPC_CheckPatternPredicate, 3,
21120
OPC_EmitInteger, MVT::i32, 14,
21121
OPC_EmitRegister, MVT::i32, 0 ,
21122
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv2i32), 0,
21123
1, MVT::v2i32, 3, 0, 1, 2,
21126
OPC_CheckInteger, 71,
21130
OPC_CheckChild1Type, MVT::v8i16,
21131
OPC_CheckType, MVT::v8i8,
21132
OPC_CheckPatternPredicate, 3,
21133
OPC_EmitInteger, MVT::i32, 14,
21134
OPC_EmitRegister, MVT::i32, 0 ,
21135
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv8i8), 0,
21136
1, MVT::v8i8, 3, 0, 1, 2,
21138
OPC_CheckChild1Type, MVT::v4i32,
21139
OPC_CheckType, MVT::v4i16,
21140
OPC_CheckPatternPredicate, 3,
21141
OPC_EmitInteger, MVT::i32, 14,
21142
OPC_EmitRegister, MVT::i32, 0 ,
21143
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv4i16), 0,
21144
1, MVT::v4i16, 3, 0, 1, 2,
21146
OPC_CheckChild1Type, MVT::v2i64,
21147
OPC_CheckType, MVT::v2i32,
21148
OPC_CheckPatternPredicate, 3,
21149
OPC_EmitInteger, MVT::i32, 14,
21150
OPC_EmitRegister, MVT::i32, 0 ,
21151
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv2i32), 0,
21152
1, MVT::v2i32, 3, 0, 1, 2,
21155
OPC_CheckInteger, 47,
21159
OPC_CheckChild1Type, MVT::v8i8,
21160
OPC_CheckType, MVT::v8i16,
21161
OPC_CheckPatternPredicate, 3,
21162
OPC_EmitInteger, MVT::i32, 14,
21163
OPC_EmitRegister, MVT::i32, 0 ,
21164
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv8i16), 0,
21165
1, MVT::v8i16, 3, 0, 1, 2,
21167
OPC_CheckChild1Type, MVT::v4i16,
21168
OPC_CheckType, MVT::v4i32,
21169
OPC_CheckPatternPredicate, 3,
21170
OPC_EmitInteger, MVT::i32, 14,
21171
OPC_EmitRegister, MVT::i32, 0 ,
21172
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv4i32), 0,
21173
1, MVT::v4i32, 3, 0, 1, 2,
21175
OPC_CheckChild1Type, MVT::v2i32,
21176
OPC_CheckType, MVT::v2i64,
21177
OPC_CheckPatternPredicate, 3,
21178
OPC_EmitInteger, MVT::i32, 14,
21179
OPC_EmitRegister, MVT::i32, 0 ,
21180
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv2i64), 0,
21181
1, MVT::v2i64, 3, 0, 1, 2,
21184
OPC_CheckInteger, 48,
21188
OPC_CheckChild1Type, MVT::v8i8,
21189
OPC_CheckType, MVT::v8i16,
21190
OPC_CheckPatternPredicate, 3,
21191
OPC_EmitInteger, MVT::i32, 14,
21192
OPC_EmitRegister, MVT::i32, 0 ,
21193
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv8i16), 0,
21194
1, MVT::v8i16, 3, 0, 1, 2,
21196
OPC_CheckChild1Type, MVT::v4i16,
21197
OPC_CheckType, MVT::v4i32,
21198
OPC_CheckPatternPredicate, 3,
21199
OPC_EmitInteger, MVT::i32, 14,
21200
OPC_EmitRegister, MVT::i32, 0 ,
21201
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv4i32), 0,
21202
1, MVT::v4i32, 3, 0, 1, 2,
21204
OPC_CheckChild1Type, MVT::v2i32,
21205
OPC_CheckType, MVT::v2i64,
21206
OPC_CheckPatternPredicate, 3,
21207
OPC_EmitInteger, MVT::i32, 14,
21208
OPC_EmitRegister, MVT::i32, 0 ,
21209
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv2i64), 0,
21210
1, MVT::v2i64, 3, 0, 1, 2,
21213
OPC_CheckInteger, 117,
21217
OPC_CheckPatternPredicate, 3,
21218
OPC_EmitInteger, MVT::i32, 14,
21219
OPC_EmitRegister, MVT::i32, 0 ,
21220
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL1), 0,
21221
1, MVT::v8i8, 4, 0, 1, 2, 3,
21223
OPC_CheckInteger, 118,
21228
OPC_CheckPatternPredicate, 3,
21229
OPC_EmitInteger, MVT::i32, 14,
21230
OPC_EmitRegister, MVT::i32, 0 ,
21231
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL2), 0,
21232
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
21234
OPC_CheckInteger, 119,
21240
OPC_CheckPatternPredicate, 3,
21241
OPC_EmitInteger, MVT::i32, 14,
21242
OPC_EmitRegister, MVT::i32, 0 ,
21243
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL3), 0,
21244
1, MVT::v8i8, 6, 0, 1, 2, 3, 4, 5,
21246
OPC_CheckInteger, 120,
21253
OPC_CheckPatternPredicate, 3,
21254
OPC_EmitInteger, MVT::i32, 14,
21255
OPC_EmitRegister, MVT::i32, 0 ,
21256
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL4), 0,
21257
1, MVT::v8i8, 7, 0, 1, 2, 3, 4, 5, 6,
21259
OPC_CheckInteger, 121,
21264
OPC_CheckPatternPredicate, 3,
21265
OPC_EmitInteger, MVT::i32, 14,
21266
OPC_EmitRegister, MVT::i32, 0 ,
21267
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX1), 0,
21268
1, MVT::v8i8, 5, 0, 1, 2, 3, 4,
21270
OPC_CheckInteger, 122,
21276
OPC_CheckPatternPredicate, 3,
21277
OPC_EmitInteger, MVT::i32, 14,
21278
OPC_EmitRegister, MVT::i32, 0 ,
21279
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX2), 0,
21280
1, MVT::v8i8, 6, 0, 1, 2, 3, 4, 5,
21282
OPC_CheckInteger, 123,
21289
OPC_CheckPatternPredicate, 3,
21290
OPC_EmitInteger, MVT::i32, 14,
21291
OPC_EmitRegister, MVT::i32, 0 ,
21292
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX3), 0,
21293
1, MVT::v8i8, 7, 0, 1, 2, 3, 4, 5, 6,
21295
OPC_CheckInteger, 124,
21303
OPC_CheckPatternPredicate, 3,
21304
OPC_EmitInteger, MVT::i32, 14,
21305
OPC_EmitRegister, MVT::i32, 0 ,
21306
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX4), 0,
21307
1, MVT::v8i8, 8, 0, 1, 2, 3, 4, 5, 6, 7,
21309
37|128,1, ISD::SHL,
21312
OPC_CheckType, MVT::i32,
21313
OPC_CheckPatternPredicate, 5,
21314
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
21315
OPC_EmitInteger, MVT::i32, 14,
21316
OPC_EmitRegister, MVT::i32, 0 ,
21317
OPC_EmitRegister, MVT::i32, 0 ,
21318
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
21319
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
21325
OPC_CheckOpcode, ISD::Constant,
21327
OPC_CheckPredicate, 24,
21328
OPC_CheckType, MVT::i32,
21330
OPC_CheckType, MVT::i32,
21331
OPC_CheckPatternPredicate, 2,
21332
OPC_EmitConvertToTarget, 1,
21333
OPC_EmitInteger, MVT::i32, 14,
21334
OPC_EmitRegister, MVT::i32, 0 ,
21335
OPC_EmitRegister, MVT::i32, 0 ,
21336
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSLri), 0,
21337
1, MVT::i32, 5, 0, 2, 3, 4, 5,
21339
OPC_CheckType, MVT::i32,
21341
OPC_CheckType, MVT::i32,
21342
OPC_CheckPatternPredicate, 6,
21343
OPC_EmitRegister, MVT::i32, ARM::CPSR,
21344
OPC_EmitConvertToTarget, 1,
21345
OPC_EmitInteger, MVT::i32, 14,
21346
OPC_EmitRegister, MVT::i32, 0 ,
21347
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLri), 0,
21348
1, MVT::i32, 5, 2, 0, 3, 4, 5,
21351
OPC_CheckChild1Type, MVT::i32,
21352
OPC_CheckType, MVT::i32,
21354
OPC_CheckPatternPredicate, 6,
21355
OPC_EmitRegister, MVT::i32, ARM::CPSR,
21356
OPC_EmitInteger, MVT::i32, 14,
21357
OPC_EmitRegister, MVT::i32, 0 ,
21358
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLrr), 0,
21359
1, MVT::i32, 5, 2, 0, 1, 3, 4,
21361
OPC_CheckPatternPredicate, 2,
21362
OPC_EmitInteger, MVT::i32, 14,
21363
OPC_EmitRegister, MVT::i32, 0 ,
21364
OPC_EmitRegister, MVT::i32, 0 ,
21365
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSLrr), 0,
21366
1, MVT::i32, 5, 0, 1, 2, 3, 4,
21370
37|128,1, ISD::SRL,
21373
OPC_CheckType, MVT::i32,
21374
OPC_CheckPatternPredicate, 5,
21375
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
21376
OPC_EmitInteger, MVT::i32, 14,
21377
OPC_EmitRegister, MVT::i32, 0 ,
21378
OPC_EmitRegister, MVT::i32, 0 ,
21379
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
21380
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
21386
OPC_CheckOpcode, ISD::Constant,
21388
OPC_CheckPredicate, 24,
21389
OPC_CheckType, MVT::i32,
21391
OPC_CheckType, MVT::i32,
21392
OPC_CheckPatternPredicate, 2,
21393
OPC_EmitConvertToTarget, 1,
21394
OPC_EmitInteger, MVT::i32, 14,
21395
OPC_EmitRegister, MVT::i32, 0 ,
21396
OPC_EmitRegister, MVT::i32, 0 ,
21397
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSRri), 0,
21398
1, MVT::i32, 5, 0, 2, 3, 4, 5,
21400
OPC_CheckType, MVT::i32,
21402
OPC_CheckType, MVT::i32,
21403
OPC_CheckPatternPredicate, 6,
21404
OPC_EmitRegister, MVT::i32, ARM::CPSR,
21405
OPC_EmitConvertToTarget, 1,
21406
OPC_EmitInteger, MVT::i32, 14,
21407
OPC_EmitRegister, MVT::i32, 0 ,
21408
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSRri), 0,
21409
1, MVT::i32, 5, 2, 0, 3, 4, 5,
21412
OPC_CheckChild1Type, MVT::i32,
21413
OPC_CheckType, MVT::i32,
21415
OPC_CheckPatternPredicate, 6,
21416
OPC_EmitRegister, MVT::i32, ARM::CPSR,
21417
OPC_EmitInteger, MVT::i32, 14,
21418
OPC_EmitRegister, MVT::i32, 0 ,
21419
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSRrr), 0,
21420
1, MVT::i32, 5, 2, 0, 1, 3, 4,
21422
OPC_CheckPatternPredicate, 2,
21423
OPC_EmitInteger, MVT::i32, 14,
21424
OPC_EmitRegister, MVT::i32, 0 ,
21425
OPC_EmitRegister, MVT::i32, 0 ,
21426
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSRrr), 0,
21427
1, MVT::i32, 5, 0, 1, 2, 3, 4,
21431
2|128,1, ISD::ROTR,
21434
OPC_CheckType, MVT::i32,
21435
OPC_CheckPatternPredicate, 5,
21436
OPC_CheckComplexPat, /*CP*/1, /*#*/0,
21437
OPC_EmitInteger, MVT::i32, 14,
21438
OPC_EmitRegister, MVT::i32, 0 ,
21439
OPC_EmitRegister, MVT::i32, 0 ,
21440
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
21441
1, MVT::i32, 6, 1, 2, 3, 4, 5, 6,
21447
OPC_CheckOpcode, ISD::Constant,
21448
OPC_CheckPredicate, 24,
21449
OPC_CheckType, MVT::i32,
21451
OPC_CheckType, MVT::i32,
21452
OPC_CheckPatternPredicate, 2,
21453
OPC_EmitConvertToTarget, 1,
21454
OPC_EmitInteger, MVT::i32, 14,
21455
OPC_EmitRegister, MVT::i32, 0 ,
21456
OPC_EmitRegister, MVT::i32, 0 ,
21457
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RORri), 0,
21458
1, MVT::i32, 5, 0, 2, 3, 4, 5,
21460
OPC_CheckChild1Type, MVT::i32,
21461
OPC_CheckType, MVT::i32,
21463
OPC_CheckPatternPredicate, 6,
21464
OPC_EmitRegister, MVT::i32, ARM::CPSR,
21465
OPC_EmitInteger, MVT::i32, 14,
21466
OPC_EmitRegister, MVT::i32, 0 ,
21467
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tROR), 0,
21468
1, MVT::i32, 5, 2, 0, 1, 3, 4,
21470
OPC_CheckPatternPredicate, 2,
21471
OPC_EmitInteger, MVT::i32, 14,
21472
OPC_EmitRegister, MVT::i32, 0 ,
21473
OPC_EmitRegister, MVT::i32, 0 ,
21474
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RORrr), 0,
21475
1, MVT::i32, 5, 0, 1, 2, 3, 4,
21479
69|128,8, ISD::FADD,
21483
OPC_CheckOpcode, ISD::FMUL,
21487
OPC_CheckOpcode, ARMISD::VDUPLANE,
21489
OPC_CheckChild0Type, MVT::v2f32,
21492
OPC_CheckOpcode, ISD::Constant,
21496
OPC_SwitchType , 23, MVT::v2f32,
21497
OPC_CheckPatternPredicate, 3,
21498
OPC_EmitConvertToTarget, 3,
21499
OPC_EmitInteger, MVT::i32, 14,
21500
OPC_EmitRegister, MVT::i32, 0 ,
21501
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
21502
1, MVT::v2f32, 6, 0, 1, 2, 4, 5, 6,
21504
OPC_CheckPatternPredicate, 3,
21505
OPC_EmitConvertToTarget, 3,
21506
OPC_EmitInteger, MVT::i32, 14,
21507
OPC_EmitRegister, MVT::i32, 0 ,
21508
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21509
1, MVT::v4f32, 6, 0, 1, 2, 4, 5, 6,
21513
OPC_CheckOpcode, ARMISD::VDUPLANE,
21515
OPC_CheckChild0Type, MVT::v2f32,
21518
OPC_CheckOpcode, ISD::Constant,
21523
OPC_CheckType, MVT::v2f32,
21524
OPC_CheckPatternPredicate, 3,
21525
OPC_EmitConvertToTarget, 2,
21526
OPC_EmitInteger, MVT::i32, 14,
21527
OPC_EmitRegister, MVT::i32, 0 ,
21528
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
21529
1, MVT::v2f32, 6, 0, 3, 1, 4, 5, 6,
21533
OPC_CheckOpcode, ISD::FMUL,
21537
OPC_CheckOpcode, ARMISD::VDUPLANE,
21539
OPC_CheckChild0Type, MVT::v2f32,
21542
OPC_CheckOpcode, ISD::Constant,
21547
OPC_CheckType, MVT::v2f32,
21548
OPC_CheckPatternPredicate, 3,
21549
OPC_EmitConvertToTarget, 2,
21550
OPC_EmitInteger, MVT::i32, 14,
21551
OPC_EmitRegister, MVT::i32, 0 ,
21552
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
21553
1, MVT::v2f32, 6, 3, 0, 1, 4, 5, 6,
21556
OPC_CheckOpcode, ARMISD::VDUPLANE,
21558
OPC_CheckChild0Type, MVT::v2f32,
21561
OPC_CheckOpcode, ISD::Constant,
21567
OPC_CheckType, MVT::v2f32,
21568
OPC_CheckPatternPredicate, 3,
21569
OPC_EmitConvertToTarget, 1,
21570
OPC_EmitInteger, MVT::i32, 14,
21571
OPC_EmitRegister, MVT::i32, 0 ,
21572
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
21573
1, MVT::v2f32, 6, 3, 2, 0, 4, 5, 6,
21578
OPC_CheckOpcode, ISD::FMUL,
21580
OPC_CheckOpcode, ARMISD::VDUPLANE,
21582
OPC_CheckChild0Type, MVT::v2f32,
21585
OPC_CheckOpcode, ISD::Constant,
21590
OPC_CheckType, MVT::v4f32,
21591
OPC_CheckPatternPredicate, 3,
21592
OPC_EmitConvertToTarget, 2,
21593
OPC_EmitInteger, MVT::i32, 14,
21594
OPC_EmitRegister, MVT::i32, 0 ,
21595
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21596
1, MVT::v4f32, 6, 0, 3, 1, 4, 5, 6,
21599
OPC_CheckOpcode, ISD::FMUL,
21603
OPC_CheckOpcode, ARMISD::VDUPLANE,
21605
OPC_CheckChild0Type, MVT::v2f32,
21608
OPC_CheckOpcode, ISD::Constant,
21613
OPC_CheckType, MVT::v4f32,
21614
OPC_CheckPatternPredicate, 3,
21615
OPC_EmitConvertToTarget, 2,
21616
OPC_EmitInteger, MVT::i32, 14,
21617
OPC_EmitRegister, MVT::i32, 0 ,
21618
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21619
1, MVT::v4f32, 6, 3, 0, 1, 4, 5, 6,
21622
OPC_CheckOpcode, ARMISD::VDUPLANE,
21624
OPC_CheckChild0Type, MVT::v2f32,
21627
OPC_CheckOpcode, ISD::Constant,
21633
OPC_CheckType, MVT::v4f32,
21634
OPC_CheckPatternPredicate, 3,
21635
OPC_EmitConvertToTarget, 1,
21636
OPC_EmitInteger, MVT::i32, 14,
21637
OPC_EmitRegister, MVT::i32, 0 ,
21638
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21639
1, MVT::v4f32, 6, 3, 2, 0, 4, 5, 6,
21644
OPC_CheckOpcode, ISD::FMUL,
21648
OPC_CheckOpcode, ARMISD::VDUPLANE,
21650
OPC_CheckChild0Type, MVT::v4f32,
21653
OPC_CheckOpcode, ISD::Constant,
21657
OPC_CheckType, MVT::v4f32,
21658
OPC_EmitConvertToTarget, 3,
21659
OPC_EmitNodeXForm, 8, 4,
21660
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21661
1, MVT::v2f32, 2, 2, 5,
21662
OPC_EmitConvertToTarget, 3,
21663
OPC_EmitNodeXForm, 9, 7,
21664
OPC_EmitInteger, MVT::i32, 14,
21665
OPC_EmitRegister, MVT::i32, 0 ,
21666
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21667
1, MVT::v4f32, 6, 0, 1, 6, 8, 9, 10,
21670
OPC_CheckOpcode, ARMISD::VDUPLANE,
21672
OPC_CheckChild0Type, MVT::v4f32,
21675
OPC_CheckOpcode, ISD::Constant,
21680
OPC_CheckType, MVT::v4f32,
21681
OPC_EmitConvertToTarget, 2,
21682
OPC_EmitNodeXForm, 8, 4,
21683
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21684
1, MVT::v2f32, 2, 1, 5,
21685
OPC_EmitConvertToTarget, 2,
21686
OPC_EmitNodeXForm, 9, 7,
21687
OPC_EmitInteger, MVT::i32, 14,
21688
OPC_EmitRegister, MVT::i32, 0 ,
21689
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21690
1, MVT::v4f32, 6, 0, 3, 6, 8, 9, 10,
21694
OPC_SwitchOpcode , 118, ISD::FMUL,
21698
OPC_CheckOpcode, ARMISD::VDUPLANE,
21700
OPC_CheckChild0Type, MVT::v4f32,
21703
OPC_CheckOpcode, ISD::Constant,
21708
OPC_CheckType, MVT::v4f32,
21709
OPC_EmitConvertToTarget, 2,
21710
OPC_EmitNodeXForm, 8, 4,
21711
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21712
1, MVT::v2f32, 2, 1, 5,
21713
OPC_EmitConvertToTarget, 2,
21714
OPC_EmitNodeXForm, 9, 7,
21715
OPC_EmitInteger, MVT::i32, 14,
21716
OPC_EmitRegister, MVT::i32, 0 ,
21717
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21718
1, MVT::v4f32, 6, 3, 0, 6, 8, 9, 10,
21721
OPC_CheckOpcode, ARMISD::VDUPLANE,
21723
OPC_CheckChild0Type, MVT::v4f32,
21726
OPC_CheckOpcode, ISD::Constant,
21732
OPC_CheckType, MVT::v4f32,
21733
OPC_EmitConvertToTarget, 1,
21734
OPC_EmitNodeXForm, 8, 4,
21735
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21736
1, MVT::v2f32, 2, 0, 5,
21737
OPC_EmitConvertToTarget, 1,
21738
OPC_EmitNodeXForm, 9, 7,
21739
OPC_EmitInteger, MVT::i32, 14,
21740
OPC_EmitRegister, MVT::i32, 0 ,
21741
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
21742
1, MVT::v4f32, 6, 3, 2, 6, 8, 9, 10,
21746
OPC_CheckOpcode, ISD::FMUL,
21752
OPC_SwitchType , 20, MVT::f64,
21753
OPC_CheckPatternPredicate, 8,
21754
OPC_EmitInteger, MVT::i32, 14,
21755
OPC_EmitRegister, MVT::i32, 0 ,
21756
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
21757
1, MVT::f64, 5, 2, 0, 1, 3, 4,
21759
OPC_CheckPatternPredicate, 10,
21760
OPC_EmitInteger, MVT::i32, 14,
21761
OPC_EmitRegister, MVT::i32, 0 ,
21762
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
21763
1, MVT::f32, 5, 2, 0, 1, 3, 4,
21769
OPC_CheckOpcode, ISD::FNEG,
21771
OPC_CheckOpcode, ISD::FMUL,
21776
OPC_SwitchType , 20, MVT::f64,
21777
OPC_CheckPatternPredicate, 8,
21778
OPC_EmitInteger, MVT::i32, 14,
21779
OPC_EmitRegister, MVT::i32, 0 ,
21780
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
21781
1, MVT::f64, 5, 0, 1, 2, 3, 4,
21783
OPC_CheckPatternPredicate, 10,
21784
OPC_EmitInteger, MVT::i32, 14,
21785
OPC_EmitRegister, MVT::i32, 0 ,
21786
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
21787
1, MVT::f32, 5, 0, 1, 2, 3, 4,
21791
OPC_CheckOpcode, ISD::FMUL,
21796
OPC_SwitchType , 20, MVT::f64,
21797
OPC_CheckPatternPredicate, 8,
21798
OPC_EmitInteger, MVT::i32, 14,
21799
OPC_EmitRegister, MVT::i32, 0 ,
21800
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAD), 0,
21801
1, MVT::f64, 5, 2, 0, 1, 3, 4,
21803
OPC_CheckPatternPredicate, 10,
21804
OPC_EmitInteger, MVT::i32, 14,
21805
OPC_EmitRegister, MVT::i32, 0 ,
21806
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAS), 0,
21807
1, MVT::f32, 5, 2, 0, 1, 3, 4,
21812
OPC_CheckOpcode, ISD::FMUL,
21816
OPC_SwitchType , 20, MVT::v2f32,
21817
OPC_CheckPatternPredicate, 3,
21818
OPC_EmitInteger, MVT::i32, 14,
21819
OPC_EmitRegister, MVT::i32, 0 ,
21820
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfd), 0,
21821
1, MVT::v2f32, 5, 0, 1, 2, 3, 4,
21823
OPC_CheckPatternPredicate, 3,
21824
OPC_EmitInteger, MVT::i32, 14,
21825
OPC_EmitRegister, MVT::i32, 0 ,
21826
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfq), 0,
21827
1, MVT::v4f32, 5, 0, 1, 2, 3, 4,
21829
OPC_CheckPatternPredicate, 8,
21830
OPC_EmitInteger, MVT::i32, 14,
21831
OPC_EmitRegister, MVT::i32, 0 ,
21832
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAD), 0,
21833
1, MVT::f64, 5, 0, 1, 2, 3, 4,
21835
OPC_CheckPatternPredicate, 10,
21836
OPC_EmitInteger, MVT::i32, 14,
21837
OPC_EmitRegister, MVT::i32, 0 ,
21838
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAS), 0,
21839
1, MVT::f32, 5, 0, 1, 2, 3, 4,
21843
OPC_CheckOpcode, ISD::FMUL,
21848
OPC_SwitchType , 20, MVT::v2f32,
21849
OPC_CheckPatternPredicate, 3,
21850
OPC_EmitInteger, MVT::i32, 14,
21851
OPC_EmitRegister, MVT::i32, 0 ,
21852
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfd), 0,
21853
1, MVT::v2f32, 5, 2, 0, 1, 3, 4,
21855
OPC_CheckPatternPredicate, 3,
21856
OPC_EmitInteger, MVT::i32, 14,
21857
OPC_EmitRegister, MVT::i32, 0 ,
21858
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfq), 0,
21859
1, MVT::v4f32, 5, 2, 0, 1, 3, 4,
21864
OPC_SwitchType , 19, MVT::f64,
21865
OPC_CheckPatternPredicate, 8,
21866
OPC_EmitInteger, MVT::i32, 14,
21867
OPC_EmitRegister, MVT::i32, 0 ,
21868
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDD), 0,
21869
1, MVT::f64, 4, 0, 1, 2, 3,
21872
OPC_CheckPatternPredicate, 10,
21873
OPC_EmitInteger, MVT::i32, 14,
21874
OPC_EmitRegister, MVT::i32, 0 ,
21875
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDS), 0,
21876
1, MVT::f32, 4, 0, 1, 2, 3,
21878
OPC_CheckPatternPredicate, 11,
21879
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
21881
OPC_EmitInteger, MVT::i32, 1,
21882
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
21883
1, MVT::f64, 3, 2, 0, 3,
21884
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
21886
OPC_EmitInteger, MVT::i32, 1,
21887
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
21888
1, MVT::f64, 3, 5, 1, 6,
21889
OPC_EmitInteger, MVT::i32, 14,
21890
OPC_EmitRegister, MVT::i32, 0 ,
21891
OPC_EmitNode, TARGET_OPCODE(ARM::VADDfd_sfp), 0,
21892
1, MVT::f64, 4, 4, 7, 8, 9,
21893
OPC_EmitInteger, MVT::i32, 1,
21894
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21895
1, MVT::f32, 2, 10, 11,
21898
OPC_CheckPatternPredicate, 3,
21899
OPC_EmitInteger, MVT::i32, 14,
21900
OPC_EmitRegister, MVT::i32, 0 ,
21901
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDfd), 0,
21902
1, MVT::v2f32, 4, 0, 1, 2, 3,
21904
OPC_CheckPatternPredicate, 3,
21905
OPC_EmitInteger, MVT::i32, 14,
21906
OPC_EmitRegister, MVT::i32, 0 ,
21907
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDfq), 0,
21908
1, MVT::v4f32, 4, 0, 1, 2, 3,
21911
4|128,5, ISD::FSUB,
21912
OPC_Scope, 3|128,2,
21915
OPC_CheckOpcode, ISD::FMUL,
21919
OPC_CheckOpcode, ARMISD::VDUPLANE,
21921
OPC_CheckChild0Type, MVT::v2f32,
21924
OPC_CheckOpcode, ISD::Constant,
21928
OPC_SwitchType , 23, MVT::v2f32,
21929
OPC_CheckPatternPredicate, 3,
21930
OPC_EmitConvertToTarget, 3,
21931
OPC_EmitInteger, MVT::i32, 14,
21932
OPC_EmitRegister, MVT::i32, 0 ,
21933
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfd), 0,
21934
1, MVT::v2f32, 6, 0, 1, 2, 4, 5, 6,
21936
OPC_CheckPatternPredicate, 3,
21937
OPC_EmitConvertToTarget, 3,
21938
OPC_EmitInteger, MVT::i32, 14,
21939
OPC_EmitRegister, MVT::i32, 0 ,
21940
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
21941
1, MVT::v4f32, 6, 0, 1, 2, 4, 5, 6,
21945
OPC_CheckOpcode, ARMISD::VDUPLANE,
21947
OPC_CheckChild0Type, MVT::v2f32,
21950
OPC_CheckOpcode, ISD::Constant,
21955
OPC_SwitchType , 23, MVT::v2f32,
21956
OPC_CheckPatternPredicate, 3,
21957
OPC_EmitConvertToTarget, 2,
21958
OPC_EmitInteger, MVT::i32, 14,
21959
OPC_EmitRegister, MVT::i32, 0 ,
21960
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfd), 0,
21961
1, MVT::v2f32, 6, 0, 3, 1, 4, 5, 6,
21963
OPC_CheckPatternPredicate, 3,
21964
OPC_EmitConvertToTarget, 2,
21965
OPC_EmitInteger, MVT::i32, 14,
21966
OPC_EmitRegister, MVT::i32, 0 ,
21967
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
21968
1, MVT::v4f32, 6, 0, 3, 1, 4, 5, 6,
21973
OPC_CheckOpcode, ARMISD::VDUPLANE,
21975
OPC_CheckChild0Type, MVT::v4f32,
21978
OPC_CheckOpcode, ISD::Constant,
21982
OPC_CheckType, MVT::v4f32,
21983
OPC_EmitConvertToTarget, 3,
21984
OPC_EmitNodeXForm, 8, 4,
21985
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21986
1, MVT::v2f32, 2, 2, 5,
21987
OPC_EmitConvertToTarget, 3,
21988
OPC_EmitNodeXForm, 9, 7,
21989
OPC_EmitInteger, MVT::i32, 14,
21990
OPC_EmitRegister, MVT::i32, 0 ,
21991
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
21992
1, MVT::v4f32, 6, 0, 1, 6, 8, 9, 10,
21995
OPC_CheckOpcode, ARMISD::VDUPLANE,
21997
OPC_CheckChild0Type, MVT::v4f32,
22000
OPC_CheckOpcode, ISD::Constant,
22005
OPC_CheckType, MVT::v4f32,
22006
OPC_EmitConvertToTarget, 2,
22007
OPC_EmitNodeXForm, 8, 4,
22008
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22009
1, MVT::v2f32, 2, 1, 5,
22010
OPC_EmitConvertToTarget, 2,
22011
OPC_EmitNodeXForm, 9, 7,
22012
OPC_EmitInteger, MVT::i32, 14,
22013
OPC_EmitRegister, MVT::i32, 0 ,
22014
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
22015
1, MVT::v4f32, 6, 0, 3, 6, 8, 9, 10,
22019
OPC_SwitchOpcode , 55, ISD::FNEG,
22021
OPC_CheckOpcode, ISD::FMUL,
22027
OPC_SwitchType , 20, MVT::f64,
22028
OPC_CheckPatternPredicate, 8,
22029
OPC_EmitInteger, MVT::i32, 14,
22030
OPC_EmitRegister, MVT::i32, 0 ,
22031
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLAD), 0,
22032
1, MVT::f64, 5, 2, 0, 1, 3, 4,
22034
OPC_CheckPatternPredicate, 8,
22035
OPC_EmitInteger, MVT::i32, 14,
22036
OPC_EmitRegister, MVT::i32, 0 ,
22037
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLAS), 0,
22038
1, MVT::f32, 5, 2, 0, 1, 3, 4,
22045
OPC_SwitchType , 20, MVT::f64,
22046
OPC_CheckPatternPredicate, 8,
22047
OPC_EmitInteger, MVT::i32, 14,
22048
OPC_EmitRegister, MVT::i32, 0 ,
22049
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLSD), 0,
22050
1, MVT::f64, 5, 2, 0, 1, 3, 4,
22052
OPC_CheckPatternPredicate, 8,
22053
OPC_EmitInteger, MVT::i32, 14,
22054
OPC_EmitRegister, MVT::i32, 0 ,
22055
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLSS), 0,
22056
1, MVT::f32, 5, 2, 0, 1, 3, 4,
22063
OPC_CheckOpcode, ISD::FMUL,
22067
OPC_SwitchType , 20, MVT::f64,
22068
OPC_CheckPatternPredicate, 12,
22069
OPC_EmitInteger, MVT::i32, 14,
22070
OPC_EmitRegister, MVT::i32, 0 ,
22071
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
22072
1, MVT::f64, 5, 0, 1, 2, 3, 4,
22074
OPC_CheckPatternPredicate, 12,
22075
OPC_EmitInteger, MVT::i32, 14,
22076
OPC_EmitRegister, MVT::i32, 0 ,
22077
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
22078
1, MVT::f32, 5, 0, 1, 2, 3, 4,
22080
OPC_CheckPatternPredicate, 3,
22081
OPC_EmitInteger, MVT::i32, 14,
22082
OPC_EmitRegister, MVT::i32, 0 ,
22083
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSfd), 0,
22084
1, MVT::v2f32, 5, 0, 1, 2, 3, 4,
22086
OPC_CheckPatternPredicate, 3,
22087
OPC_EmitInteger, MVT::i32, 14,
22088
OPC_EmitRegister, MVT::i32, 0 ,
22089
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSfq), 0,
22090
1, MVT::v4f32, 5, 0, 1, 2, 3, 4,
22094
OPC_SwitchType , 19, MVT::f64,
22095
OPC_CheckPatternPredicate, 8,
22096
OPC_EmitInteger, MVT::i32, 14,
22097
OPC_EmitRegister, MVT::i32, 0 ,
22098
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBD), 0,
22099
1, MVT::f64, 4, 0, 1, 2, 3,
22102
OPC_CheckPatternPredicate, 10,
22103
OPC_EmitInteger, MVT::i32, 14,
22104
OPC_EmitRegister, MVT::i32, 0 ,
22105
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBS), 0,
22106
1, MVT::f32, 4, 0, 1, 2, 3,
22108
OPC_CheckPatternPredicate, 11,
22109
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
22111
OPC_EmitInteger, MVT::i32, 1,
22112
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
22113
1, MVT::f64, 3, 2, 0, 3,
22114
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
22116
OPC_EmitInteger, MVT::i32, 1,
22117
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
22118
1, MVT::f64, 3, 5, 1, 6,
22119
OPC_EmitInteger, MVT::i32, 14,
22120
OPC_EmitRegister, MVT::i32, 0 ,
22121
OPC_EmitNode, TARGET_OPCODE(ARM::VSUBfd_sfp), 0,
22122
1, MVT::f64, 4, 4, 7, 8, 9,
22123
OPC_EmitInteger, MVT::i32, 1,
22124
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22125
1, MVT::f32, 2, 10, 11,
22128
OPC_CheckPatternPredicate, 3,
22129
OPC_EmitInteger, MVT::i32, 14,
22130
OPC_EmitRegister, MVT::i32, 0 ,
22131
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBfd), 0,
22132
1, MVT::v2f32, 4, 0, 1, 2, 3,
22134
OPC_CheckPatternPredicate, 3,
22135
OPC_EmitInteger, MVT::i32, 14,
22136
OPC_EmitRegister, MVT::i32, 0 ,
22137
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBfq), 0,
22138
1, MVT::v4f32, 4, 0, 1, 2, 3,
22142
61, ISD::CALLSEQ_END,
22144
OPC_CaptureFlagInput,
22147
OPC_SwitchOpcode , 26, ISD::TargetConstant,
22151
OPC_CheckOpcode, ISD::TargetConstant,
22153
OPC_EmitMergeInputChains, 1, 0,
22154
OPC_EmitInteger, MVT::i32, 14,
22155
OPC_EmitRegister, MVT::i32, 0 ,
22156
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
22162
OPC_CheckOpcode, ISD::Constant,
22164
OPC_CheckPatternPredicate, 6,
22165
OPC_EmitMergeInputChains, 1, 0,
22166
OPC_EmitConvertToTarget, 1,
22167
OPC_EmitConvertToTarget, 2,
22168
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
22171
82, ARMISD::WrapperJT,
22174
OPC_CheckOpcode, ISD::TargetJumpTable,
22178
OPC_CheckOpcode, ISD::Constant,
22180
OPC_CheckType, MVT::i32,
22182
OPC_CheckPatternPredicate, 5,
22183
OPC_EmitConvertToTarget, 1,
22184
OPC_EmitInteger, MVT::i32, 14,
22185
OPC_EmitRegister, MVT::i32, 0 ,
22186
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrelJT), 0,
22187
1, MVT::i32, 4, 0, 2, 3, 4,
22189
OPC_CheckPatternPredicate, 6,
22190
OPC_EmitConvertToTarget, 1,
22191
OPC_EmitInteger, MVT::i32, 14,
22192
OPC_EmitRegister, MVT::i32, 0 ,
22193
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrelJT), 0,
22194
1, MVT::i32, 4, 0, 2, 3, 4,
22196
OPC_CheckPatternPredicate, 2,
22197
OPC_EmitConvertToTarget, 1,
22198
OPC_EmitInteger, MVT::i32, 14,
22199
OPC_EmitRegister, MVT::i32, 0 ,
22200
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrelJT), 0,
22201
1, MVT::i32, 4, 0, 2, 3, 4,
22203
34, ARMISD::BR2_JT,
22206
OPC_CheckChild1Type, MVT::i32,
22210
OPC_CheckOpcode, ISD::TargetJumpTable,
22214
OPC_CheckOpcode, ISD::Constant,
22216
OPC_CheckPatternPredicate, 2,
22217
OPC_EmitMergeInputChains, 1, 0,
22218
OPC_EmitConvertToTarget, 4,
22219
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BR_JT), 0|OPFL_Chain,
22221
3|128,4, ISD::FMUL,
22225
OPC_CheckOpcode, ARMISD::VDUPLANE,
22227
OPC_CheckChild0Type, MVT::v2f32,
22230
OPC_CheckOpcode, ISD::Constant,
22233
OPC_SwitchType , 22, MVT::v2f32,
22234
OPC_CheckPatternPredicate, 3,
22235
OPC_EmitConvertToTarget, 2,
22236
OPC_EmitInteger, MVT::i32, 14,
22237
OPC_EmitRegister, MVT::i32, 0 ,
22238
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfd), 0,
22239
1, MVT::v2f32, 5, 0, 1, 3, 4, 5,
22241
OPC_CheckPatternPredicate, 3,
22242
OPC_EmitConvertToTarget, 2,
22243
OPC_EmitInteger, MVT::i32, 14,
22244
OPC_EmitRegister, MVT::i32, 0 ,
22245
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
22246
1, MVT::v4f32, 5, 0, 1, 3, 4, 5,
22250
OPC_CheckOpcode, ARMISD::VDUPLANE,
22252
OPC_CheckChild0Type, MVT::v2f32,
22255
OPC_CheckOpcode, ISD::Constant,
22259
OPC_SwitchType , 22, MVT::v2f32,
22260
OPC_CheckPatternPredicate, 3,
22261
OPC_EmitConvertToTarget, 1,
22262
OPC_EmitInteger, MVT::i32, 14,
22263
OPC_EmitRegister, MVT::i32, 0 ,
22264
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfd), 0,
22265
1, MVT::v2f32, 5, 2, 0, 3, 4, 5,
22267
OPC_CheckPatternPredicate, 3,
22268
OPC_EmitConvertToTarget, 1,
22269
OPC_EmitInteger, MVT::i32, 14,
22270
OPC_EmitRegister, MVT::i32, 0 ,
22271
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
22272
1, MVT::v4f32, 5, 2, 0, 3, 4, 5,
22277
OPC_CheckOpcode, ARMISD::VDUPLANE,
22279
OPC_CheckChild0Type, MVT::v4f32,
22282
OPC_CheckOpcode, ISD::Constant,
22285
OPC_CheckType, MVT::v4f32,
22286
OPC_EmitConvertToTarget, 2,
22287
OPC_EmitNodeXForm, 8, 3,
22288
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22289
1, MVT::v2f32, 2, 1, 4,
22290
OPC_EmitConvertToTarget, 2,
22291
OPC_EmitNodeXForm, 9, 6,
22292
OPC_EmitInteger, MVT::i32, 14,
22293
OPC_EmitRegister, MVT::i32, 0 ,
22294
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
22295
1, MVT::v4f32, 5, 0, 5, 7, 8, 9,
22298
OPC_SwitchOpcode , 50, ARMISD::VDUPLANE,
22300
OPC_CheckChild0Type, MVT::v4f32,
22303
OPC_CheckOpcode, ISD::Constant,
22307
OPC_CheckType, MVT::v4f32,
22308
OPC_EmitConvertToTarget, 1,
22309
OPC_EmitNodeXForm, 8, 3,
22310
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22311
1, MVT::v2f32, 2, 0, 4,
22312
OPC_EmitConvertToTarget, 1,
22313
OPC_EmitNodeXForm, 9, 6,
22314
OPC_EmitInteger, MVT::i32, 14,
22315
OPC_EmitRegister, MVT::i32, 0 ,
22316
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
22317
1, MVT::v4f32, 5, 2, 5, 7, 8, 9,
22322
OPC_SwitchType , 19, MVT::f64,
22323
OPC_CheckPatternPredicate, 13,
22324
OPC_EmitInteger, MVT::i32, 14,
22325
OPC_EmitRegister, MVT::i32, 0 ,
22326
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
22327
1, MVT::f64, 4, 0, 1, 2, 3,
22329
OPC_CheckPatternPredicate, 13,
22330
OPC_EmitInteger, MVT::i32, 14,
22331
OPC_EmitRegister, MVT::i32, 0 ,
22332
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
22333
1, MVT::f32, 4, 0, 1, 2, 3,
22340
OPC_CheckOpcode, ISD::FNEG,
22343
OPC_SwitchType , 19, MVT::f64,
22344
OPC_CheckPatternPredicate, 13,
22345
OPC_EmitInteger, MVT::i32, 14,
22346
OPC_EmitRegister, MVT::i32, 0 ,
22347
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
22348
1, MVT::f64, 4, 1, 0, 2, 3,
22350
OPC_CheckPatternPredicate, 13,
22351
OPC_EmitInteger, MVT::i32, 14,
22352
OPC_EmitRegister, MVT::i32, 0 ,
22353
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
22354
1, MVT::f32, 4, 1, 0, 2, 3,
22358
OPC_SwitchType , 19, MVT::f64,
22359
OPC_CheckPatternPredicate, 8,
22360
OPC_EmitInteger, MVT::i32, 14,
22361
OPC_EmitRegister, MVT::i32, 0 ,
22362
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULD), 0,
22363
1, MVT::f64, 4, 0, 1, 2, 3,
22366
OPC_CheckPatternPredicate, 10,
22367
OPC_EmitInteger, MVT::i32, 14,
22368
OPC_EmitRegister, MVT::i32, 0 ,
22369
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULS), 0,
22370
1, MVT::f32, 4, 0, 1, 2, 3,
22372
OPC_CheckPatternPredicate, 11,
22373
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
22375
OPC_EmitInteger, MVT::i32, 1,
22376
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
22377
1, MVT::f64, 3, 2, 0, 3,
22378
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
22380
OPC_EmitInteger, MVT::i32, 1,
22381
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
22382
1, MVT::f64, 3, 5, 1, 6,
22383
OPC_EmitInteger, MVT::i32, 14,
22384
OPC_EmitRegister, MVT::i32, 0 ,
22385
OPC_EmitNode, TARGET_OPCODE(ARM::VMULfd_sfp), 0,
22386
1, MVT::f64, 4, 4, 7, 8, 9,
22387
OPC_EmitInteger, MVT::i32, 1,
22388
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22389
1, MVT::f32, 2, 10, 11,
22392
OPC_CheckPatternPredicate, 3,
22393
OPC_EmitInteger, MVT::i32, 14,
22394
OPC_EmitRegister, MVT::i32, 0 ,
22395
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULfd), 0,
22396
1, MVT::v2f32, 4, 0, 1, 2, 3,
22398
OPC_CheckPatternPredicate, 3,
22399
OPC_EmitInteger, MVT::i32, 14,
22400
OPC_EmitRegister, MVT::i32, 0 ,
22401
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULfq), 0,
22402
1, MVT::v4f32, 4, 0, 1, 2, 3,
22406
44, ISD::CALLSEQ_START,
22410
OPC_SwitchOpcode , 19, ISD::TargetConstant,
22412
OPC_EmitMergeInputChains, 1, 0,
22413
OPC_EmitInteger, MVT::i32, 14,
22414
OPC_EmitRegister, MVT::i32, 0 ,
22415
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
22419
OPC_CheckPatternPredicate, 6,
22420
OPC_EmitMergeInputChains, 1, 0,
22421
OPC_EmitConvertToTarget, 1,
22422
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
22425
53|128,1, ARMISD::CALL,
22427
OPC_CaptureFlagInput,
22431
OPC_SwitchOpcode , 55, ISD::TargetGlobalAddress,
22434
OPC_CheckPatternPredicate, 14,
22435
OPC_EmitMergeInputChains, 1, 0,
22436
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22439
OPC_CheckPatternPredicate, 15,
22440
OPC_EmitMergeInputChains, 1, 0,
22441
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22444
OPC_CheckPatternPredicate, 16,
22445
OPC_EmitMergeInputChains, 1, 0,
22446
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22449
OPC_CheckPatternPredicate, 17,
22450
OPC_EmitMergeInputChains, 1, 0,
22451
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22454
55, ISD::TargetExternalSymbol,
22457
OPC_CheckPatternPredicate, 14,
22458
OPC_EmitMergeInputChains, 1, 0,
22459
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22462
OPC_CheckPatternPredicate, 15,
22463
OPC_EmitMergeInputChains, 1, 0,
22464
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22467
OPC_CheckPatternPredicate, 16,
22468
OPC_EmitMergeInputChains, 1, 0,
22469
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22472
OPC_CheckPatternPredicate, 17,
22473
OPC_EmitMergeInputChains, 1, 0,
22474
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22479
OPC_CheckChild1Type, MVT::i32,
22481
OPC_CheckPatternPredicate, 18,
22482
OPC_EmitMergeInputChains, 1, 0,
22483
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22486
OPC_CheckPatternPredicate, 19,
22487
OPC_EmitMergeInputChains, 1, 0,
22488
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22491
OPC_CheckPatternPredicate, 16,
22492
OPC_EmitMergeInputChains, 1, 0,
22493
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22496
OPC_CheckPatternPredicate, 17,
22497
OPC_EmitMergeInputChains, 1, 0,
22498
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22502
52, ARMISD::CALL_PRED,
22504
OPC_CaptureFlagInput,
22507
OPC_CheckOpcode, ISD::TargetGlobalAddress,
22510
OPC_CheckPatternPredicate, 14,
22511
OPC_EmitMergeInputChains, 1, 0,
22512
OPC_EmitInteger, MVT::i32, 14,
22513
OPC_EmitRegister, MVT::i32, 0 ,
22514
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL_pred), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22517
OPC_CheckPatternPredicate, 15,
22518
OPC_EmitMergeInputChains, 1, 0,
22519
OPC_EmitInteger, MVT::i32, 14,
22520
OPC_EmitRegister, MVT::i32, 0 ,
22521
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9_pred), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22524
43|128,1, ARMISD::Wrapper,
22527
OPC_SwitchOpcode , 100, ISD::TargetGlobalAddress,
22529
OPC_CheckType, MVT::i32,
22531
OPC_CheckPatternPredicate, 20,
22532
OPC_EmitInteger, MVT::i32, 14,
22533
OPC_EmitRegister, MVT::i32, 0 ,
22534
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrel), 0,
22535
1, MVT::i32, 3, 0, 1, 2,
22537
OPC_CheckPatternPredicate, 21,
22538
OPC_EmitInteger, MVT::i32, 14,
22539
OPC_EmitRegister, MVT::i32, 0 ,
22540
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi32imm), 0,
22541
1, MVT::i32, 3, 0, 1, 2,
22543
OPC_CheckPatternPredicate, 6,
22544
OPC_EmitInteger, MVT::i32, 14,
22545
OPC_EmitRegister, MVT::i32, 0 ,
22546
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrel), 0,
22547
1, MVT::i32, 3, 0, 1, 2,
22549
OPC_CheckPatternPredicate, 22,
22550
OPC_EmitInteger, MVT::i32, 14,
22551
OPC_EmitRegister, MVT::i32, 0 ,
22552
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrel), 0,
22553
1, MVT::i32, 3, 0, 1, 2,
22555
OPC_CheckPatternPredicate, 23,
22556
OPC_EmitInteger, MVT::i32, 14,
22557
OPC_EmitRegister, MVT::i32, 0 ,
22558
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi32imm), 0,
22559
1, MVT::i32, 3, 0, 1, 2,
22561
62, ISD::TargetConstantPool,
22563
OPC_CheckType, MVT::i32,
22565
OPC_CheckPatternPredicate, 5,
22566
OPC_EmitInteger, MVT::i32, 14,
22567
OPC_EmitRegister, MVT::i32, 0 ,
22568
OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrel), 0,
22569
1, MVT::i32, 3, 0, 1, 2,
22571
OPC_CheckPatternPredicate, 6,
22572
OPC_EmitInteger, MVT::i32, 14,
22573
OPC_EmitRegister, MVT::i32, 0 ,
22574
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrel), 0,
22575
1, MVT::i32, 3, 0, 1, 2,
22577
OPC_CheckPatternPredicate, 2,
22578
OPC_EmitInteger, MVT::i32, 14,
22579
OPC_EmitRegister, MVT::i32, 0 ,
22580
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrel), 0,
22581
1, MVT::i32, 3, 0, 1, 2,
22584
103, ARMISD::tCALL,
22586
OPC_CaptureFlagInput,
22590
OPC_SwitchOpcode , 29, ISD::TargetGlobalAddress,
22593
OPC_CheckPatternPredicate, 24,
22594
OPC_EmitMergeInputChains, 1, 0,
22595
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22598
OPC_CheckPatternPredicate, 25,
22599
OPC_EmitMergeInputChains, 1, 0,
22600
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22603
29, ISD::TargetExternalSymbol,
22606
OPC_CheckPatternPredicate, 24,
22607
OPC_EmitMergeInputChains, 1, 0,
22608
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22611
OPC_CheckPatternPredicate, 25,
22612
OPC_EmitMergeInputChains, 1, 0,
22613
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22618
OPC_CheckChild1Type, MVT::i32,
22620
OPC_CheckPatternPredicate, 16,
22621
OPC_EmitMergeInputChains, 1, 0,
22622
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22625
OPC_CheckPatternPredicate, 17,
22626
OPC_EmitMergeInputChains, 1, 0,
22627
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
22631
65|128,1, ISD::FNEG,
22634
OPC_CheckOpcode, ISD::FMUL,
22638
OPC_SwitchType , 19, MVT::f64,
22639
OPC_CheckPatternPredicate, 8,
22640
OPC_EmitInteger, MVT::i32, 14,
22641
OPC_EmitRegister, MVT::i32, 0 ,
22642
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
22643
1, MVT::f64, 4, 0, 1, 2, 3,
22645
OPC_CheckPatternPredicate, 8,
22646
OPC_EmitInteger, MVT::i32, 14,
22647
OPC_EmitRegister, MVT::i32, 0 ,
22648
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
22649
1, MVT::f32, 4, 0, 1, 2, 3,
22653
OPC_SwitchType , 18, MVT::f64,
22654
OPC_CheckPatternPredicate, 8,
22655
OPC_EmitInteger, MVT::i32, 14,
22656
OPC_EmitRegister, MVT::i32, 0 ,
22657
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGD), 0,
22658
1, MVT::f64, 3, 0, 1, 2,
22661
OPC_CheckPatternPredicate, 10,
22662
OPC_EmitInteger, MVT::i32, 14,
22663
OPC_EmitRegister, MVT::i32, 0 ,
22664
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGS), 0,
22665
1, MVT::f32, 3, 0, 1, 2,
22667
OPC_CheckPatternPredicate, 11,
22668
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
22670
OPC_EmitInteger, MVT::i32, 1,
22671
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
22672
1, MVT::f64, 3, 1, 0, 2,
22673
OPC_EmitInteger, MVT::i32, 14,
22674
OPC_EmitRegister, MVT::i32, 0 ,
22675
OPC_EmitNode, TARGET_OPCODE(ARM::VNEGfd_sfp), 0,
22676
1, MVT::f64, 3, 3, 4, 5,
22677
OPC_EmitInteger, MVT::i32, 1,
22678
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
22679
1, MVT::f32, 2, 6, 7,
22682
OPC_CheckPatternPredicate, 3,
22683
OPC_EmitInteger, MVT::i32, 14,
22684
OPC_EmitRegister, MVT::i32, 0 ,
22685
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGfd), 0,
22686
1, MVT::v2f32, 3, 0, 1, 2,
22688
OPC_CheckPatternPredicate, 3,
22689
OPC_EmitInteger, MVT::i32, 14,
22690
OPC_EmitRegister, MVT::i32, 0 ,
22691
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGf32q), 0,
22692
1, MVT::v4f32, 3, 0, 1, 2,
22695
65|128,1, ARMISD::VSHL,
22699
OPC_CheckOpcode, ISD::Constant,
22701
OPC_SwitchType , 21, MVT::v8i8,
22702
OPC_CheckPatternPredicate, 3,
22703
OPC_EmitConvertToTarget, 1,
22704
OPC_EmitInteger, MVT::i32, 14,
22705
OPC_EmitRegister, MVT::i32, 0 ,
22706
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv8i8), 0,
22707
1, MVT::v8i8, 4, 0, 2, 3, 4,
22709
OPC_CheckPatternPredicate, 3,
22710
OPC_EmitConvertToTarget, 1,
22711
OPC_EmitInteger, MVT::i32, 14,
22712
OPC_EmitRegister, MVT::i32, 0 ,
22713
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv4i16), 0,
22714
1, MVT::v4i16, 4, 0, 2, 3, 4,
22716
OPC_CheckPatternPredicate, 3,
22717
OPC_EmitConvertToTarget, 1,
22718
OPC_EmitInteger, MVT::i32, 14,
22719
OPC_EmitRegister, MVT::i32, 0 ,
22720
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv2i32), 0,
22721
1, MVT::v2i32, 4, 0, 2, 3, 4,
22723
OPC_CheckPatternPredicate, 3,
22724
OPC_EmitConvertToTarget, 1,
22725
OPC_EmitInteger, MVT::i32, 14,
22726
OPC_EmitRegister, MVT::i32, 0 ,
22727
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv1i64), 0,
22728
1, MVT::v1i64, 4, 0, 2, 3, 4,
22730
OPC_CheckPatternPredicate, 3,
22731
OPC_EmitConvertToTarget, 1,
22732
OPC_EmitInteger, MVT::i32, 14,
22733
OPC_EmitRegister, MVT::i32, 0 ,
22734
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv16i8), 0,
22735
1, MVT::v16i8, 4, 0, 2, 3, 4,
22737
OPC_CheckPatternPredicate, 3,
22738
OPC_EmitConvertToTarget, 1,
22739
OPC_EmitInteger, MVT::i32, 14,
22740
OPC_EmitRegister, MVT::i32, 0 ,
22741
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv8i16), 0,
22742
1, MVT::v8i16, 4, 0, 2, 3, 4,
22744
OPC_CheckPatternPredicate, 3,
22745
OPC_EmitConvertToTarget, 1,
22746
OPC_EmitInteger, MVT::i32, 14,
22747
OPC_EmitRegister, MVT::i32, 0 ,
22748
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv4i32), 0,
22749
1, MVT::v4i32, 4, 0, 2, 3, 4,
22751
OPC_CheckPatternPredicate, 3,
22752
OPC_EmitConvertToTarget, 1,
22753
OPC_EmitInteger, MVT::i32, 14,
22754
OPC_EmitRegister, MVT::i32, 0 ,
22755
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv2i64), 0,
22756
1, MVT::v2i64, 4, 0, 2, 3, 4,
22758
65|128,1, ARMISD::VSHRs,
22762
OPC_CheckOpcode, ISD::Constant,
22764
OPC_SwitchType , 21, MVT::v8i8,
22765
OPC_CheckPatternPredicate, 3,
22766
OPC_EmitConvertToTarget, 1,
22767
OPC_EmitInteger, MVT::i32, 14,
22768
OPC_EmitRegister, MVT::i32, 0 ,
22769
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv8i8), 0,
22770
1, MVT::v8i8, 4, 0, 2, 3, 4,
22772
OPC_CheckPatternPredicate, 3,
22773
OPC_EmitConvertToTarget, 1,
22774
OPC_EmitInteger, MVT::i32, 14,
22775
OPC_EmitRegister, MVT::i32, 0 ,
22776
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv4i16), 0,
22777
1, MVT::v4i16, 4, 0, 2, 3, 4,
22779
OPC_CheckPatternPredicate, 3,
22780
OPC_EmitConvertToTarget, 1,
22781
OPC_EmitInteger, MVT::i32, 14,
22782
OPC_EmitRegister, MVT::i32, 0 ,
22783
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv2i32), 0,
22784
1, MVT::v2i32, 4, 0, 2, 3, 4,
22786
OPC_CheckPatternPredicate, 3,
22787
OPC_EmitConvertToTarget, 1,
22788
OPC_EmitInteger, MVT::i32, 14,
22789
OPC_EmitRegister, MVT::i32, 0 ,
22790
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv1i64), 0,
22791
1, MVT::v1i64, 4, 0, 2, 3, 4,
22793
OPC_CheckPatternPredicate, 3,
22794
OPC_EmitConvertToTarget, 1,
22795
OPC_EmitInteger, MVT::i32, 14,
22796
OPC_EmitRegister, MVT::i32, 0 ,
22797
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv16i8), 0,
22798
1, MVT::v16i8, 4, 0, 2, 3, 4,
22800
OPC_CheckPatternPredicate, 3,
22801
OPC_EmitConvertToTarget, 1,
22802
OPC_EmitInteger, MVT::i32, 14,
22803
OPC_EmitRegister, MVT::i32, 0 ,
22804
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv8i16), 0,
22805
1, MVT::v8i16, 4, 0, 2, 3, 4,
22807
OPC_CheckPatternPredicate, 3,
22808
OPC_EmitConvertToTarget, 1,
22809
OPC_EmitInteger, MVT::i32, 14,
22810
OPC_EmitRegister, MVT::i32, 0 ,
22811
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv4i32), 0,
22812
1, MVT::v4i32, 4, 0, 2, 3, 4,
22814
OPC_CheckPatternPredicate, 3,
22815
OPC_EmitConvertToTarget, 1,
22816
OPC_EmitInteger, MVT::i32, 14,
22817
OPC_EmitRegister, MVT::i32, 0 ,
22818
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv2i64), 0,
22819
1, MVT::v2i64, 4, 0, 2, 3, 4,
22821
65|128,1, ARMISD::VSHRu,
22825
OPC_CheckOpcode, ISD::Constant,
22827
OPC_SwitchType , 21, MVT::v8i8,
22828
OPC_CheckPatternPredicate, 3,
22829
OPC_EmitConvertToTarget, 1,
22830
OPC_EmitInteger, MVT::i32, 14,
22831
OPC_EmitRegister, MVT::i32, 0 ,
22832
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv8i8), 0,
22833
1, MVT::v8i8, 4, 0, 2, 3, 4,
22835
OPC_CheckPatternPredicate, 3,
22836
OPC_EmitConvertToTarget, 1,
22837
OPC_EmitInteger, MVT::i32, 14,
22838
OPC_EmitRegister, MVT::i32, 0 ,
22839
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv4i16), 0,
22840
1, MVT::v4i16, 4, 0, 2, 3, 4,
22842
OPC_CheckPatternPredicate, 3,
22843
OPC_EmitConvertToTarget, 1,
22844
OPC_EmitInteger, MVT::i32, 14,
22845
OPC_EmitRegister, MVT::i32, 0 ,
22846
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv2i32), 0,
22847
1, MVT::v2i32, 4, 0, 2, 3, 4,
22849
OPC_CheckPatternPredicate, 3,
22850
OPC_EmitConvertToTarget, 1,
22851
OPC_EmitInteger, MVT::i32, 14,
22852
OPC_EmitRegister, MVT::i32, 0 ,
22853
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv1i64), 0,
22854
1, MVT::v1i64, 4, 0, 2, 3, 4,
22856
OPC_CheckPatternPredicate, 3,
22857
OPC_EmitConvertToTarget, 1,
22858
OPC_EmitInteger, MVT::i32, 14,
22859
OPC_EmitRegister, MVT::i32, 0 ,
22860
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv16i8), 0,
22861
1, MVT::v16i8, 4, 0, 2, 3, 4,
22863
OPC_CheckPatternPredicate, 3,
22864
OPC_EmitConvertToTarget, 1,
22865
OPC_EmitInteger, MVT::i32, 14,
22866
OPC_EmitRegister, MVT::i32, 0 ,
22867
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv8i16), 0,
22868
1, MVT::v8i16, 4, 0, 2, 3, 4,
22870
OPC_CheckPatternPredicate, 3,
22871
OPC_EmitConvertToTarget, 1,
22872
OPC_EmitInteger, MVT::i32, 14,
22873
OPC_EmitRegister, MVT::i32, 0 ,
22874
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv4i32), 0,
22875
1, MVT::v4i32, 4, 0, 2, 3, 4,
22877
OPC_CheckPatternPredicate, 3,
22878
OPC_EmitConvertToTarget, 1,
22879
OPC_EmitInteger, MVT::i32, 14,
22880
OPC_EmitRegister, MVT::i32, 0 ,
22881
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv2i64), 0,
22882
1, MVT::v2i64, 4, 0, 2, 3, 4,
22884
99, ARMISD::VSHLLs,
22887
OPC_CheckChild0Type, MVT::v8i8,
22890
OPC_CheckOpcode, ISD::Constant,
22892
OPC_CheckType, MVT::v8i16,
22893
OPC_CheckPatternPredicate, 3,
22894
OPC_EmitConvertToTarget, 1,
22895
OPC_EmitInteger, MVT::i32, 14,
22896
OPC_EmitRegister, MVT::i32, 0 ,
22897
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv8i16), 0,
22898
1, MVT::v8i16, 4, 0, 2, 3, 4,
22900
OPC_CheckChild0Type, MVT::v4i16,
22903
OPC_CheckOpcode, ISD::Constant,
22905
OPC_CheckType, MVT::v4i32,
22906
OPC_CheckPatternPredicate, 3,
22907
OPC_EmitConvertToTarget, 1,
22908
OPC_EmitInteger, MVT::i32, 14,
22909
OPC_EmitRegister, MVT::i32, 0 ,
22910
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv4i32), 0,
22911
1, MVT::v4i32, 4, 0, 2, 3, 4,
22913
OPC_CheckChild0Type, MVT::v2i32,
22916
OPC_CheckOpcode, ISD::Constant,
22918
OPC_CheckType, MVT::v2i64,
22919
OPC_CheckPatternPredicate, 3,
22920
OPC_EmitConvertToTarget, 1,
22921
OPC_EmitInteger, MVT::i32, 14,
22922
OPC_EmitRegister, MVT::i32, 0 ,
22923
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv2i64), 0,
22924
1, MVT::v2i64, 4, 0, 2, 3, 4,
22926
99, ARMISD::VSHLLu,
22929
OPC_CheckChild0Type, MVT::v8i8,
22932
OPC_CheckOpcode, ISD::Constant,
22934
OPC_CheckType, MVT::v8i16,
22935
OPC_CheckPatternPredicate, 3,
22936
OPC_EmitConvertToTarget, 1,
22937
OPC_EmitInteger, MVT::i32, 14,
22938
OPC_EmitRegister, MVT::i32, 0 ,
22939
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv8i16), 0,
22940
1, MVT::v8i16, 4, 0, 2, 3, 4,
22942
OPC_CheckChild0Type, MVT::v4i16,
22945
OPC_CheckOpcode, ISD::Constant,
22947
OPC_CheckType, MVT::v4i32,
22948
OPC_CheckPatternPredicate, 3,
22949
OPC_EmitConvertToTarget, 1,
22950
OPC_EmitInteger, MVT::i32, 14,
22951
OPC_EmitRegister, MVT::i32, 0 ,
22952
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv4i32), 0,
22953
1, MVT::v4i32, 4, 0, 2, 3, 4,
22955
OPC_CheckChild0Type, MVT::v2i32,
22958
OPC_CheckOpcode, ISD::Constant,
22960
OPC_CheckType, MVT::v2i64,
22961
OPC_CheckPatternPredicate, 3,
22962
OPC_EmitConvertToTarget, 1,
22963
OPC_EmitInteger, MVT::i32, 14,
22964
OPC_EmitRegister, MVT::i32, 0 ,
22965
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv2i64), 0,
22966
1, MVT::v2i64, 4, 0, 2, 3, 4,
22968
99, ARMISD::VSHLLi,
22971
OPC_CheckChild0Type, MVT::v8i8,
22974
OPC_CheckOpcode, ISD::Constant,
22976
OPC_CheckType, MVT::v8i16,
22977
OPC_CheckPatternPredicate, 3,
22978
OPC_EmitConvertToTarget, 1,
22979
OPC_EmitInteger, MVT::i32, 14,
22980
OPC_EmitRegister, MVT::i32, 0 ,
22981
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi8), 0,
22982
1, MVT::v8i16, 4, 0, 2, 3, 4,
22984
OPC_CheckChild0Type, MVT::v4i16,
22987
OPC_CheckOpcode, ISD::Constant,
22989
OPC_CheckType, MVT::v4i32,
22990
OPC_CheckPatternPredicate, 3,
22991
OPC_EmitConvertToTarget, 1,
22992
OPC_EmitInteger, MVT::i32, 14,
22993
OPC_EmitRegister, MVT::i32, 0 ,
22994
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi16), 0,
22995
1, MVT::v4i32, 4, 0, 2, 3, 4,
22997
OPC_CheckChild0Type, MVT::v2i32,
23000
OPC_CheckOpcode, ISD::Constant,
23002
OPC_CheckType, MVT::v2i64,
23003
OPC_CheckPatternPredicate, 3,
23004
OPC_EmitConvertToTarget, 1,
23005
OPC_EmitInteger, MVT::i32, 14,
23006
OPC_EmitRegister, MVT::i32, 0 ,
23007
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi32), 0,
23008
1, MVT::v2i64, 4, 0, 2, 3, 4,
23013
OPC_CheckChild0Type, MVT::v8i16,
23016
OPC_CheckOpcode, ISD::Constant,
23018
OPC_CheckType, MVT::v8i8,
23019
OPC_CheckPatternPredicate, 3,
23020
OPC_EmitConvertToTarget, 1,
23021
OPC_EmitInteger, MVT::i32, 14,
23022
OPC_EmitRegister, MVT::i32, 0 ,
23023
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv8i8), 0,
23024
1, MVT::v8i8, 4, 0, 2, 3, 4,
23026
OPC_CheckChild0Type, MVT::v4i32,
23029
OPC_CheckOpcode, ISD::Constant,
23031
OPC_CheckType, MVT::v4i16,
23032
OPC_CheckPatternPredicate, 3,
23033
OPC_EmitConvertToTarget, 1,
23034
OPC_EmitInteger, MVT::i32, 14,
23035
OPC_EmitRegister, MVT::i32, 0 ,
23036
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv4i16), 0,
23037
1, MVT::v4i16, 4, 0, 2, 3, 4,
23039
OPC_CheckChild0Type, MVT::v2i64,
23042
OPC_CheckOpcode, ISD::Constant,
23044
OPC_CheckType, MVT::v2i32,
23045
OPC_CheckPatternPredicate, 3,
23046
OPC_EmitConvertToTarget, 1,
23047
OPC_EmitInteger, MVT::i32, 14,
23048
OPC_EmitRegister, MVT::i32, 0 ,
23049
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv2i32), 0,
23050
1, MVT::v2i32, 4, 0, 2, 3, 4,
23052
65|128,1, ARMISD::VRSHRs,
23056
OPC_CheckOpcode, ISD::Constant,
23058
OPC_SwitchType , 21, MVT::v8i8,
23059
OPC_CheckPatternPredicate, 3,
23060
OPC_EmitConvertToTarget, 1,
23061
OPC_EmitInteger, MVT::i32, 14,
23062
OPC_EmitRegister, MVT::i32, 0 ,
23063
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv8i8), 0,
23064
1, MVT::v8i8, 4, 0, 2, 3, 4,
23066
OPC_CheckPatternPredicate, 3,
23067
OPC_EmitConvertToTarget, 1,
23068
OPC_EmitInteger, MVT::i32, 14,
23069
OPC_EmitRegister, MVT::i32, 0 ,
23070
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv4i16), 0,
23071
1, MVT::v4i16, 4, 0, 2, 3, 4,
23073
OPC_CheckPatternPredicate, 3,
23074
OPC_EmitConvertToTarget, 1,
23075
OPC_EmitInteger, MVT::i32, 14,
23076
OPC_EmitRegister, MVT::i32, 0 ,
23077
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv2i32), 0,
23078
1, MVT::v2i32, 4, 0, 2, 3, 4,
23080
OPC_CheckPatternPredicate, 3,
23081
OPC_EmitConvertToTarget, 1,
23082
OPC_EmitInteger, MVT::i32, 14,
23083
OPC_EmitRegister, MVT::i32, 0 ,
23084
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv1i64), 0,
23085
1, MVT::v1i64, 4, 0, 2, 3, 4,
23087
OPC_CheckPatternPredicate, 3,
23088
OPC_EmitConvertToTarget, 1,
23089
OPC_EmitInteger, MVT::i32, 14,
23090
OPC_EmitRegister, MVT::i32, 0 ,
23091
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv16i8), 0,
23092
1, MVT::v16i8, 4, 0, 2, 3, 4,
23094
OPC_CheckPatternPredicate, 3,
23095
OPC_EmitConvertToTarget, 1,
23096
OPC_EmitInteger, MVT::i32, 14,
23097
OPC_EmitRegister, MVT::i32, 0 ,
23098
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv8i16), 0,
23099
1, MVT::v8i16, 4, 0, 2, 3, 4,
23101
OPC_CheckPatternPredicate, 3,
23102
OPC_EmitConvertToTarget, 1,
23103
OPC_EmitInteger, MVT::i32, 14,
23104
OPC_EmitRegister, MVT::i32, 0 ,
23105
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv4i32), 0,
23106
1, MVT::v4i32, 4, 0, 2, 3, 4,
23108
OPC_CheckPatternPredicate, 3,
23109
OPC_EmitConvertToTarget, 1,
23110
OPC_EmitInteger, MVT::i32, 14,
23111
OPC_EmitRegister, MVT::i32, 0 ,
23112
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv2i64), 0,
23113
1, MVT::v2i64, 4, 0, 2, 3, 4,
23115
65|128,1, ARMISD::VRSHRu,
23119
OPC_CheckOpcode, ISD::Constant,
23121
OPC_SwitchType , 21, MVT::v8i8,
23122
OPC_CheckPatternPredicate, 3,
23123
OPC_EmitConvertToTarget, 1,
23124
OPC_EmitInteger, MVT::i32, 14,
23125
OPC_EmitRegister, MVT::i32, 0 ,
23126
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv8i8), 0,
23127
1, MVT::v8i8, 4, 0, 2, 3, 4,
23129
OPC_CheckPatternPredicate, 3,
23130
OPC_EmitConvertToTarget, 1,
23131
OPC_EmitInteger, MVT::i32, 14,
23132
OPC_EmitRegister, MVT::i32, 0 ,
23133
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv4i16), 0,
23134
1, MVT::v4i16, 4, 0, 2, 3, 4,
23136
OPC_CheckPatternPredicate, 3,
23137
OPC_EmitConvertToTarget, 1,
23138
OPC_EmitInteger, MVT::i32, 14,
23139
OPC_EmitRegister, MVT::i32, 0 ,
23140
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv2i32), 0,
23141
1, MVT::v2i32, 4, 0, 2, 3, 4,
23143
OPC_CheckPatternPredicate, 3,
23144
OPC_EmitConvertToTarget, 1,
23145
OPC_EmitInteger, MVT::i32, 14,
23146
OPC_EmitRegister, MVT::i32, 0 ,
23147
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv1i64), 0,
23148
1, MVT::v1i64, 4, 0, 2, 3, 4,
23150
OPC_CheckPatternPredicate, 3,
23151
OPC_EmitConvertToTarget, 1,
23152
OPC_EmitInteger, MVT::i32, 14,
23153
OPC_EmitRegister, MVT::i32, 0 ,
23154
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv16i8), 0,
23155
1, MVT::v16i8, 4, 0, 2, 3, 4,
23157
OPC_CheckPatternPredicate, 3,
23158
OPC_EmitConvertToTarget, 1,
23159
OPC_EmitInteger, MVT::i32, 14,
23160
OPC_EmitRegister, MVT::i32, 0 ,
23161
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv8i16), 0,
23162
1, MVT::v8i16, 4, 0, 2, 3, 4,
23164
OPC_CheckPatternPredicate, 3,
23165
OPC_EmitConvertToTarget, 1,
23166
OPC_EmitInteger, MVT::i32, 14,
23167
OPC_EmitRegister, MVT::i32, 0 ,
23168
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv4i32), 0,
23169
1, MVT::v4i32, 4, 0, 2, 3, 4,
23171
OPC_CheckPatternPredicate, 3,
23172
OPC_EmitConvertToTarget, 1,
23173
OPC_EmitInteger, MVT::i32, 14,
23174
OPC_EmitRegister, MVT::i32, 0 ,
23175
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv2i64), 0,
23176
1, MVT::v2i64, 4, 0, 2, 3, 4,
23178
99, ARMISD::VRSHRN,
23181
OPC_CheckChild0Type, MVT::v8i16,
23184
OPC_CheckOpcode, ISD::Constant,
23186
OPC_CheckType, MVT::v8i8,
23187
OPC_CheckPatternPredicate, 3,
23188
OPC_EmitConvertToTarget, 1,
23189
OPC_EmitInteger, MVT::i32, 14,
23190
OPC_EmitRegister, MVT::i32, 0 ,
23191
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv8i8), 0,
23192
1, MVT::v8i8, 4, 0, 2, 3, 4,
23194
OPC_CheckChild0Type, MVT::v4i32,
23197
OPC_CheckOpcode, ISD::Constant,
23199
OPC_CheckType, MVT::v4i16,
23200
OPC_CheckPatternPredicate, 3,
23201
OPC_EmitConvertToTarget, 1,
23202
OPC_EmitInteger, MVT::i32, 14,
23203
OPC_EmitRegister, MVT::i32, 0 ,
23204
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv4i16), 0,
23205
1, MVT::v4i16, 4, 0, 2, 3, 4,
23207
OPC_CheckChild0Type, MVT::v2i64,
23210
OPC_CheckOpcode, ISD::Constant,
23212
OPC_CheckType, MVT::v2i32,
23213
OPC_CheckPatternPredicate, 3,
23214
OPC_EmitConvertToTarget, 1,
23215
OPC_EmitInteger, MVT::i32, 14,
23216
OPC_EmitRegister, MVT::i32, 0 ,
23217
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv2i32), 0,
23218
1, MVT::v2i32, 4, 0, 2, 3, 4,
23220
65|128,1, ARMISD::VQSHLs,
23224
OPC_CheckOpcode, ISD::Constant,
23226
OPC_SwitchType , 21, MVT::v8i8,
23227
OPC_CheckPatternPredicate, 3,
23228
OPC_EmitConvertToTarget, 1,
23229
OPC_EmitInteger, MVT::i32, 14,
23230
OPC_EmitRegister, MVT::i32, 0 ,
23231
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv8i8), 0,
23232
1, MVT::v8i8, 4, 0, 2, 3, 4,
23234
OPC_CheckPatternPredicate, 3,
23235
OPC_EmitConvertToTarget, 1,
23236
OPC_EmitInteger, MVT::i32, 14,
23237
OPC_EmitRegister, MVT::i32, 0 ,
23238
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv4i16), 0,
23239
1, MVT::v4i16, 4, 0, 2, 3, 4,
23241
OPC_CheckPatternPredicate, 3,
23242
OPC_EmitConvertToTarget, 1,
23243
OPC_EmitInteger, MVT::i32, 14,
23244
OPC_EmitRegister, MVT::i32, 0 ,
23245
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv2i32), 0,
23246
1, MVT::v2i32, 4, 0, 2, 3, 4,
23248
OPC_CheckPatternPredicate, 3,
23249
OPC_EmitConvertToTarget, 1,
23250
OPC_EmitInteger, MVT::i32, 14,
23251
OPC_EmitRegister, MVT::i32, 0 ,
23252
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv1i64), 0,
23253
1, MVT::v1i64, 4, 0, 2, 3, 4,
23255
OPC_CheckPatternPredicate, 3,
23256
OPC_EmitConvertToTarget, 1,
23257
OPC_EmitInteger, MVT::i32, 14,
23258
OPC_EmitRegister, MVT::i32, 0 ,
23259
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv16i8), 0,
23260
1, MVT::v16i8, 4, 0, 2, 3, 4,
23262
OPC_CheckPatternPredicate, 3,
23263
OPC_EmitConvertToTarget, 1,
23264
OPC_EmitInteger, MVT::i32, 14,
23265
OPC_EmitRegister, MVT::i32, 0 ,
23266
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv8i16), 0,
23267
1, MVT::v8i16, 4, 0, 2, 3, 4,
23269
OPC_CheckPatternPredicate, 3,
23270
OPC_EmitConvertToTarget, 1,
23271
OPC_EmitInteger, MVT::i32, 14,
23272
OPC_EmitRegister, MVT::i32, 0 ,
23273
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv4i32), 0,
23274
1, MVT::v4i32, 4, 0, 2, 3, 4,
23276
OPC_CheckPatternPredicate, 3,
23277
OPC_EmitConvertToTarget, 1,
23278
OPC_EmitInteger, MVT::i32, 14,
23279
OPC_EmitRegister, MVT::i32, 0 ,
23280
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv2i64), 0,
23281
1, MVT::v2i64, 4, 0, 2, 3, 4,
23283
65|128,1, ARMISD::VQSHLu,
23287
OPC_CheckOpcode, ISD::Constant,
23289
OPC_SwitchType , 21, MVT::v8i8,
23290
OPC_CheckPatternPredicate, 3,
23291
OPC_EmitConvertToTarget, 1,
23292
OPC_EmitInteger, MVT::i32, 14,
23293
OPC_EmitRegister, MVT::i32, 0 ,
23294
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv8i8), 0,
23295
1, MVT::v8i8, 4, 0, 2, 3, 4,
23297
OPC_CheckPatternPredicate, 3,
23298
OPC_EmitConvertToTarget, 1,
23299
OPC_EmitInteger, MVT::i32, 14,
23300
OPC_EmitRegister, MVT::i32, 0 ,
23301
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv4i16), 0,
23302
1, MVT::v4i16, 4, 0, 2, 3, 4,
23304
OPC_CheckPatternPredicate, 3,
23305
OPC_EmitConvertToTarget, 1,
23306
OPC_EmitInteger, MVT::i32, 14,
23307
OPC_EmitRegister, MVT::i32, 0 ,
23308
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv2i32), 0,
23309
1, MVT::v2i32, 4, 0, 2, 3, 4,
23311
OPC_CheckPatternPredicate, 3,
23312
OPC_EmitConvertToTarget, 1,
23313
OPC_EmitInteger, MVT::i32, 14,
23314
OPC_EmitRegister, MVT::i32, 0 ,
23315
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv1i64), 0,
23316
1, MVT::v1i64, 4, 0, 2, 3, 4,
23318
OPC_CheckPatternPredicate, 3,
23319
OPC_EmitConvertToTarget, 1,
23320
OPC_EmitInteger, MVT::i32, 14,
23321
OPC_EmitRegister, MVT::i32, 0 ,
23322
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv16i8), 0,
23323
1, MVT::v16i8, 4, 0, 2, 3, 4,
23325
OPC_CheckPatternPredicate, 3,
23326
OPC_EmitConvertToTarget, 1,
23327
OPC_EmitInteger, MVT::i32, 14,
23328
OPC_EmitRegister, MVT::i32, 0 ,
23329
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv8i16), 0,
23330
1, MVT::v8i16, 4, 0, 2, 3, 4,
23332
OPC_CheckPatternPredicate, 3,
23333
OPC_EmitConvertToTarget, 1,
23334
OPC_EmitInteger, MVT::i32, 14,
23335
OPC_EmitRegister, MVT::i32, 0 ,
23336
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv4i32), 0,
23337
1, MVT::v4i32, 4, 0, 2, 3, 4,
23339
OPC_CheckPatternPredicate, 3,
23340
OPC_EmitConvertToTarget, 1,
23341
OPC_EmitInteger, MVT::i32, 14,
23342
OPC_EmitRegister, MVT::i32, 0 ,
23343
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv2i64), 0,
23344
1, MVT::v2i64, 4, 0, 2, 3, 4,
23346
65|128,1, ARMISD::VQSHLsu,
23350
OPC_CheckOpcode, ISD::Constant,
23352
OPC_SwitchType , 21, MVT::v8i8,
23353
OPC_CheckPatternPredicate, 3,
23354
OPC_EmitConvertToTarget, 1,
23355
OPC_EmitInteger, MVT::i32, 14,
23356
OPC_EmitRegister, MVT::i32, 0 ,
23357
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv8i8), 0,
23358
1, MVT::v8i8, 4, 0, 2, 3, 4,
23360
OPC_CheckPatternPredicate, 3,
23361
OPC_EmitConvertToTarget, 1,
23362
OPC_EmitInteger, MVT::i32, 14,
23363
OPC_EmitRegister, MVT::i32, 0 ,
23364
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv4i16), 0,
23365
1, MVT::v4i16, 4, 0, 2, 3, 4,
23367
OPC_CheckPatternPredicate, 3,
23368
OPC_EmitConvertToTarget, 1,
23369
OPC_EmitInteger, MVT::i32, 14,
23370
OPC_EmitRegister, MVT::i32, 0 ,
23371
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv2i32), 0,
23372
1, MVT::v2i32, 4, 0, 2, 3, 4,
23374
OPC_CheckPatternPredicate, 3,
23375
OPC_EmitConvertToTarget, 1,
23376
OPC_EmitInteger, MVT::i32, 14,
23377
OPC_EmitRegister, MVT::i32, 0 ,
23378
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv1i64), 0,
23379
1, MVT::v1i64, 4, 0, 2, 3, 4,
23381
OPC_CheckPatternPredicate, 3,
23382
OPC_EmitConvertToTarget, 1,
23383
OPC_EmitInteger, MVT::i32, 14,
23384
OPC_EmitRegister, MVT::i32, 0 ,
23385
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv16i8), 0,
23386
1, MVT::v16i8, 4, 0, 2, 3, 4,
23388
OPC_CheckPatternPredicate, 3,
23389
OPC_EmitConvertToTarget, 1,
23390
OPC_EmitInteger, MVT::i32, 14,
23391
OPC_EmitRegister, MVT::i32, 0 ,
23392
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv8i16), 0,
23393
1, MVT::v8i16, 4, 0, 2, 3, 4,
23395
OPC_CheckPatternPredicate, 3,
23396
OPC_EmitConvertToTarget, 1,
23397
OPC_EmitInteger, MVT::i32, 14,
23398
OPC_EmitRegister, MVT::i32, 0 ,
23399
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv4i32), 0,
23400
1, MVT::v4i32, 4, 0, 2, 3, 4,
23402
OPC_CheckPatternPredicate, 3,
23403
OPC_EmitConvertToTarget, 1,
23404
OPC_EmitInteger, MVT::i32, 14,
23405
OPC_EmitRegister, MVT::i32, 0 ,
23406
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv2i64), 0,
23407
1, MVT::v2i64, 4, 0, 2, 3, 4,
23409
99, ARMISD::VQSHRNs,
23412
OPC_CheckChild0Type, MVT::v8i16,
23415
OPC_CheckOpcode, ISD::Constant,
23417
OPC_CheckType, MVT::v8i8,
23418
OPC_CheckPatternPredicate, 3,
23419
OPC_EmitConvertToTarget, 1,
23420
OPC_EmitInteger, MVT::i32, 14,
23421
OPC_EmitRegister, MVT::i32, 0 ,
23422
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv8i8), 0,
23423
1, MVT::v8i8, 4, 0, 2, 3, 4,
23425
OPC_CheckChild0Type, MVT::v4i32,
23428
OPC_CheckOpcode, ISD::Constant,
23430
OPC_CheckType, MVT::v4i16,
23431
OPC_CheckPatternPredicate, 3,
23432
OPC_EmitConvertToTarget, 1,
23433
OPC_EmitInteger, MVT::i32, 14,
23434
OPC_EmitRegister, MVT::i32, 0 ,
23435
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv4i16), 0,
23436
1, MVT::v4i16, 4, 0, 2, 3, 4,
23438
OPC_CheckChild0Type, MVT::v2i64,
23441
OPC_CheckOpcode, ISD::Constant,
23443
OPC_CheckType, MVT::v2i32,
23444
OPC_CheckPatternPredicate, 3,
23445
OPC_EmitConvertToTarget, 1,
23446
OPC_EmitInteger, MVT::i32, 14,
23447
OPC_EmitRegister, MVT::i32, 0 ,
23448
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv2i32), 0,
23449
1, MVT::v2i32, 4, 0, 2, 3, 4,
23451
99, ARMISD::VQSHRNu,
23454
OPC_CheckChild0Type, MVT::v8i16,
23457
OPC_CheckOpcode, ISD::Constant,
23459
OPC_CheckType, MVT::v8i8,
23460
OPC_CheckPatternPredicate, 3,
23461
OPC_EmitConvertToTarget, 1,
23462
OPC_EmitInteger, MVT::i32, 14,
23463
OPC_EmitRegister, MVT::i32, 0 ,
23464
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv8i8), 0,
23465
1, MVT::v8i8, 4, 0, 2, 3, 4,
23467
OPC_CheckChild0Type, MVT::v4i32,
23470
OPC_CheckOpcode, ISD::Constant,
23472
OPC_CheckType, MVT::v4i16,
23473
OPC_CheckPatternPredicate, 3,
23474
OPC_EmitConvertToTarget, 1,
23475
OPC_EmitInteger, MVT::i32, 14,
23476
OPC_EmitRegister, MVT::i32, 0 ,
23477
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv4i16), 0,
23478
1, MVT::v4i16, 4, 0, 2, 3, 4,
23480
OPC_CheckChild0Type, MVT::v2i64,
23483
OPC_CheckOpcode, ISD::Constant,
23485
OPC_CheckType, MVT::v2i32,
23486
OPC_CheckPatternPredicate, 3,
23487
OPC_EmitConvertToTarget, 1,
23488
OPC_EmitInteger, MVT::i32, 14,
23489
OPC_EmitRegister, MVT::i32, 0 ,
23490
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv2i32), 0,
23491
1, MVT::v2i32, 4, 0, 2, 3, 4,
23493
99, ARMISD::VQSHRNsu,
23496
OPC_CheckChild0Type, MVT::v8i16,
23499
OPC_CheckOpcode, ISD::Constant,
23501
OPC_CheckType, MVT::v8i8,
23502
OPC_CheckPatternPredicate, 3,
23503
OPC_EmitConvertToTarget, 1,
23504
OPC_EmitInteger, MVT::i32, 14,
23505
OPC_EmitRegister, MVT::i32, 0 ,
23506
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv8i8), 0,
23507
1, MVT::v8i8, 4, 0, 2, 3, 4,
23509
OPC_CheckChild0Type, MVT::v4i32,
23512
OPC_CheckOpcode, ISD::Constant,
23514
OPC_CheckType, MVT::v4i16,
23515
OPC_CheckPatternPredicate, 3,
23516
OPC_EmitConvertToTarget, 1,
23517
OPC_EmitInteger, MVT::i32, 14,
23518
OPC_EmitRegister, MVT::i32, 0 ,
23519
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv4i16), 0,
23520
1, MVT::v4i16, 4, 0, 2, 3, 4,
23522
OPC_CheckChild0Type, MVT::v2i64,
23525
OPC_CheckOpcode, ISD::Constant,
23527
OPC_CheckType, MVT::v2i32,
23528
OPC_CheckPatternPredicate, 3,
23529
OPC_EmitConvertToTarget, 1,
23530
OPC_EmitInteger, MVT::i32, 14,
23531
OPC_EmitRegister, MVT::i32, 0 ,
23532
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv2i32), 0,
23533
1, MVT::v2i32, 4, 0, 2, 3, 4,
23535
99, ARMISD::VQRSHRNs,
23538
OPC_CheckChild0Type, MVT::v8i16,
23541
OPC_CheckOpcode, ISD::Constant,
23543
OPC_CheckType, MVT::v8i8,
23544
OPC_CheckPatternPredicate, 3,
23545
OPC_EmitConvertToTarget, 1,
23546
OPC_EmitInteger, MVT::i32, 14,
23547
OPC_EmitRegister, MVT::i32, 0 ,
23548
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv8i8), 0,
23549
1, MVT::v8i8, 4, 0, 2, 3, 4,
23551
OPC_CheckChild0Type, MVT::v4i32,
23554
OPC_CheckOpcode, ISD::Constant,
23556
OPC_CheckType, MVT::v4i16,
23557
OPC_CheckPatternPredicate, 3,
23558
OPC_EmitConvertToTarget, 1,
23559
OPC_EmitInteger, MVT::i32, 14,
23560
OPC_EmitRegister, MVT::i32, 0 ,
23561
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv4i16), 0,
23562
1, MVT::v4i16, 4, 0, 2, 3, 4,
23564
OPC_CheckChild0Type, MVT::v2i64,
23567
OPC_CheckOpcode, ISD::Constant,
23569
OPC_CheckType, MVT::v2i32,
23570
OPC_CheckPatternPredicate, 3,
23571
OPC_EmitConvertToTarget, 1,
23572
OPC_EmitInteger, MVT::i32, 14,
23573
OPC_EmitRegister, MVT::i32, 0 ,
23574
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv2i32), 0,
23575
1, MVT::v2i32, 4, 0, 2, 3, 4,
23577
99, ARMISD::VQRSHRNu,
23580
OPC_CheckChild0Type, MVT::v8i16,
23583
OPC_CheckOpcode, ISD::Constant,
23585
OPC_CheckType, MVT::v8i8,
23586
OPC_CheckPatternPredicate, 3,
23587
OPC_EmitConvertToTarget, 1,
23588
OPC_EmitInteger, MVT::i32, 14,
23589
OPC_EmitRegister, MVT::i32, 0 ,
23590
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv8i8), 0,
23591
1, MVT::v8i8, 4, 0, 2, 3, 4,
23593
OPC_CheckChild0Type, MVT::v4i32,
23596
OPC_CheckOpcode, ISD::Constant,
23598
OPC_CheckType, MVT::v4i16,
23599
OPC_CheckPatternPredicate, 3,
23600
OPC_EmitConvertToTarget, 1,
23601
OPC_EmitInteger, MVT::i32, 14,
23602
OPC_EmitRegister, MVT::i32, 0 ,
23603
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv4i16), 0,
23604
1, MVT::v4i16, 4, 0, 2, 3, 4,
23606
OPC_CheckChild0Type, MVT::v2i64,
23609
OPC_CheckOpcode, ISD::Constant,
23611
OPC_CheckType, MVT::v2i32,
23612
OPC_CheckPatternPredicate, 3,
23613
OPC_EmitConvertToTarget, 1,
23614
OPC_EmitInteger, MVT::i32, 14,
23615
OPC_EmitRegister, MVT::i32, 0 ,
23616
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv2i32), 0,
23617
1, MVT::v2i32, 4, 0, 2, 3, 4,
23619
99, ARMISD::VQRSHRNsu,
23622
OPC_CheckChild0Type, MVT::v8i16,
23625
OPC_CheckOpcode, ISD::Constant,
23627
OPC_CheckType, MVT::v8i8,
23628
OPC_CheckPatternPredicate, 3,
23629
OPC_EmitConvertToTarget, 1,
23630
OPC_EmitInteger, MVT::i32, 14,
23631
OPC_EmitRegister, MVT::i32, 0 ,
23632
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv8i8), 0,
23633
1, MVT::v8i8, 4, 0, 2, 3, 4,
23635
OPC_CheckChild0Type, MVT::v4i32,
23638
OPC_CheckOpcode, ISD::Constant,
23640
OPC_CheckType, MVT::v4i16,
23641
OPC_CheckPatternPredicate, 3,
23642
OPC_EmitConvertToTarget, 1,
23643
OPC_EmitInteger, MVT::i32, 14,
23644
OPC_EmitRegister, MVT::i32, 0 ,
23645
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv4i16), 0,
23646
1, MVT::v4i16, 4, 0, 2, 3, 4,
23648
OPC_CheckChild0Type, MVT::v2i64,
23651
OPC_CheckOpcode, ISD::Constant,
23653
OPC_CheckType, MVT::v2i32,
23654
OPC_CheckPatternPredicate, 3,
23655
OPC_EmitConvertToTarget, 1,
23656
OPC_EmitInteger, MVT::i32, 14,
23657
OPC_EmitRegister, MVT::i32, 0 ,
23658
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv2i32), 0,
23659
1, MVT::v2i32, 4, 0, 2, 3, 4,
23661
74|128,1, ARMISD::VSLI,
23666
OPC_CheckOpcode, ISD::Constant,
23668
OPC_SwitchType , 22, MVT::v8i8,
23669
OPC_CheckPatternPredicate, 3,
23670
OPC_EmitConvertToTarget, 2,
23671
OPC_EmitInteger, MVT::i32, 14,
23672
OPC_EmitRegister, MVT::i32, 0 ,
23673
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv8i8), 0,
23674
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
23676
OPC_CheckPatternPredicate, 3,
23677
OPC_EmitConvertToTarget, 2,
23678
OPC_EmitInteger, MVT::i32, 14,
23679
OPC_EmitRegister, MVT::i32, 0 ,
23680
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv4i16), 0,
23681
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
23683
OPC_CheckPatternPredicate, 3,
23684
OPC_EmitConvertToTarget, 2,
23685
OPC_EmitInteger, MVT::i32, 14,
23686
OPC_EmitRegister, MVT::i32, 0 ,
23687
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv2i32), 0,
23688
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
23690
OPC_CheckPatternPredicate, 3,
23691
OPC_EmitConvertToTarget, 2,
23692
OPC_EmitInteger, MVT::i32, 14,
23693
OPC_EmitRegister, MVT::i32, 0 ,
23694
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv1i64), 0,
23695
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
23697
OPC_CheckPatternPredicate, 3,
23698
OPC_EmitConvertToTarget, 2,
23699
OPC_EmitInteger, MVT::i32, 14,
23700
OPC_EmitRegister, MVT::i32, 0 ,
23701
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv16i8), 0,
23702
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
23704
OPC_CheckPatternPredicate, 3,
23705
OPC_EmitConvertToTarget, 2,
23706
OPC_EmitInteger, MVT::i32, 14,
23707
OPC_EmitRegister, MVT::i32, 0 ,
23708
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv8i16), 0,
23709
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
23711
OPC_CheckPatternPredicate, 3,
23712
OPC_EmitConvertToTarget, 2,
23713
OPC_EmitInteger, MVT::i32, 14,
23714
OPC_EmitRegister, MVT::i32, 0 ,
23715
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv4i32), 0,
23716
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
23718
OPC_CheckPatternPredicate, 3,
23719
OPC_EmitConvertToTarget, 2,
23720
OPC_EmitInteger, MVT::i32, 14,
23721
OPC_EmitRegister, MVT::i32, 0 ,
23722
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv2i64), 0,
23723
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
23725
74|128,1, ARMISD::VSRI,
23730
OPC_CheckOpcode, ISD::Constant,
23732
OPC_SwitchType , 22, MVT::v8i8,
23733
OPC_CheckPatternPredicate, 3,
23734
OPC_EmitConvertToTarget, 2,
23735
OPC_EmitInteger, MVT::i32, 14,
23736
OPC_EmitRegister, MVT::i32, 0 ,
23737
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv8i8), 0,
23738
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
23740
OPC_CheckPatternPredicate, 3,
23741
OPC_EmitConvertToTarget, 2,
23742
OPC_EmitInteger, MVT::i32, 14,
23743
OPC_EmitRegister, MVT::i32, 0 ,
23744
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv4i16), 0,
23745
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
23747
OPC_CheckPatternPredicate, 3,
23748
OPC_EmitConvertToTarget, 2,
23749
OPC_EmitInteger, MVT::i32, 14,
23750
OPC_EmitRegister, MVT::i32, 0 ,
23751
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv2i32), 0,
23752
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
23754
OPC_CheckPatternPredicate, 3,
23755
OPC_EmitConvertToTarget, 2,
23756
OPC_EmitInteger, MVT::i32, 14,
23757
OPC_EmitRegister, MVT::i32, 0 ,
23758
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv1i64), 0,
23759
1, MVT::v1i64, 5, 0, 1, 3, 4, 5,
23761
OPC_CheckPatternPredicate, 3,
23762
OPC_EmitConvertToTarget, 2,
23763
OPC_EmitInteger, MVT::i32, 14,
23764
OPC_EmitRegister, MVT::i32, 0 ,
23765
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv16i8), 0,
23766
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
23768
OPC_CheckPatternPredicate, 3,
23769
OPC_EmitConvertToTarget, 2,
23770
OPC_EmitInteger, MVT::i32, 14,
23771
OPC_EmitRegister, MVT::i32, 0 ,
23772
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv8i16), 0,
23773
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
23775
OPC_CheckPatternPredicate, 3,
23776
OPC_EmitConvertToTarget, 2,
23777
OPC_EmitInteger, MVT::i32, 14,
23778
OPC_EmitRegister, MVT::i32, 0 ,
23779
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv4i32), 0,
23780
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
23782
OPC_CheckPatternPredicate, 3,
23783
OPC_EmitConvertToTarget, 2,
23784
OPC_EmitInteger, MVT::i32, 14,
23785
OPC_EmitRegister, MVT::i32, 0 ,
23786
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv2i64), 0,
23787
1, MVT::v2i64, 5, 0, 1, 3, 4, 5,
23789
25|128,1, ARMISD::VGETLANEs,
23792
OPC_CheckChild0Type, MVT::v8i8,
23795
OPC_CheckOpcode, ISD::Constant,
23797
OPC_CheckPatternPredicate, 3,
23798
OPC_EmitConvertToTarget, 1,
23799
OPC_EmitInteger, MVT::i32, 14,
23800
OPC_EmitRegister, MVT::i32, 0 ,
23801
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs8), 0,
23802
1, MVT::i32, 4, 0, 2, 3, 4,
23804
OPC_CheckChild0Type, MVT::v4i16,
23807
OPC_CheckOpcode, ISD::Constant,
23809
OPC_CheckPatternPredicate, 3,
23810
OPC_EmitConvertToTarget, 1,
23811
OPC_EmitInteger, MVT::i32, 14,
23812
OPC_EmitRegister, MVT::i32, 0 ,
23813
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs16), 0,
23814
1, MVT::i32, 4, 0, 2, 3, 4,
23816
OPC_CheckChild0Type, MVT::v16i8,
23819
OPC_CheckOpcode, ISD::Constant,
23821
OPC_EmitConvertToTarget, 1,
23822
OPC_EmitNodeXForm, 18, 2,
23823
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23824
1, MVT::v8i8, 2, 0, 3,
23825
OPC_EmitConvertToTarget, 1,
23826
OPC_EmitNodeXForm, 19, 5,
23827
OPC_EmitInteger, MVT::i32, 14,
23828
OPC_EmitRegister, MVT::i32, 0 ,
23829
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs8), 0,
23830
1, MVT::i32, 4, 4, 6, 7, 8,
23832
OPC_CheckChild0Type, MVT::v8i16,
23835
OPC_CheckOpcode, ISD::Constant,
23837
OPC_EmitConvertToTarget, 1,
23838
OPC_EmitNodeXForm, 6, 2,
23839
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23840
1, MVT::v4i16, 2, 0, 3,
23841
OPC_EmitConvertToTarget, 1,
23842
OPC_EmitNodeXForm, 7, 5,
23843
OPC_EmitInteger, MVT::i32, 14,
23844
OPC_EmitRegister, MVT::i32, 0 ,
23845
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs16), 0,
23846
1, MVT::i32, 4, 4, 6, 7, 8,
23848
25|128,1, ARMISD::VGETLANEu,
23851
OPC_CheckChild0Type, MVT::v8i8,
23854
OPC_CheckOpcode, ISD::Constant,
23856
OPC_CheckPatternPredicate, 3,
23857
OPC_EmitConvertToTarget, 1,
23858
OPC_EmitInteger, MVT::i32, 14,
23859
OPC_EmitRegister, MVT::i32, 0 ,
23860
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu8), 0,
23861
1, MVT::i32, 4, 0, 2, 3, 4,
23863
OPC_CheckChild0Type, MVT::v4i16,
23866
OPC_CheckOpcode, ISD::Constant,
23868
OPC_CheckPatternPredicate, 3,
23869
OPC_EmitConvertToTarget, 1,
23870
OPC_EmitInteger, MVT::i32, 14,
23871
OPC_EmitRegister, MVT::i32, 0 ,
23872
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu16), 0,
23873
1, MVT::i32, 4, 0, 2, 3, 4,
23875
OPC_CheckChild0Type, MVT::v16i8,
23878
OPC_CheckOpcode, ISD::Constant,
23880
OPC_EmitConvertToTarget, 1,
23881
OPC_EmitNodeXForm, 18, 2,
23882
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23883
1, MVT::v8i8, 2, 0, 3,
23884
OPC_EmitConvertToTarget, 1,
23885
OPC_EmitNodeXForm, 19, 5,
23886
OPC_EmitInteger, MVT::i32, 14,
23887
OPC_EmitRegister, MVT::i32, 0 ,
23888
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu8), 0,
23889
1, MVT::i32, 4, 4, 6, 7, 8,
23891
OPC_CheckChild0Type, MVT::v8i16,
23894
OPC_CheckOpcode, ISD::Constant,
23896
OPC_EmitConvertToTarget, 1,
23897
OPC_EmitNodeXForm, 6, 2,
23898
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23899
1, MVT::v4i16, 2, 0, 3,
23900
OPC_EmitConvertToTarget, 1,
23901
OPC_EmitNodeXForm, 7, 5,
23902
OPC_EmitInteger, MVT::i32, 14,
23903
OPC_EmitRegister, MVT::i32, 0 ,
23904
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu16), 0,
23905
1, MVT::i32, 4, 4, 6, 7, 8,
23907
53|128,1, ISD::EXTRACT_VECTOR_ELT,
23910
OPC_CheckChild0Type, MVT::v2i32,
23913
OPC_CheckOpcode, ISD::Constant,
23915
OPC_CheckType, MVT::i32,
23916
OPC_CheckPatternPredicate, 3,
23917
OPC_EmitConvertToTarget, 1,
23918
OPC_EmitInteger, MVT::i32, 14,
23919
OPC_EmitRegister, MVT::i32, 0 ,
23920
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNi32), 0,
23921
1, MVT::i32, 4, 0, 2, 3, 4,
23923
OPC_CheckChild0Type, MVT::v2f64,
23926
OPC_CheckOpcode, ISD::Constant,
23928
OPC_CheckType, MVT::f64,
23929
OPC_EmitConvertToTarget, 1,
23930
OPC_EmitNodeXForm, 20, 2,
23931
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23932
1, MVT::f64, 2, 0, 3,
23934
OPC_CheckChild0Type, MVT::v4i32,
23937
OPC_CheckOpcode, ISD::Constant,
23939
OPC_CheckType, MVT::i32,
23940
OPC_EmitConvertToTarget, 1,
23941
OPC_EmitNodeXForm, 8, 2,
23942
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23943
1, MVT::v2i32, 2, 0, 3,
23944
OPC_EmitConvertToTarget, 1,
23945
OPC_EmitNodeXForm, 9, 5,
23946
OPC_EmitInteger, MVT::i32, 14,
23947
OPC_EmitRegister, MVT::i32, 0 ,
23948
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNi32), 0,
23949
1, MVT::i32, 4, 4, 6, 7, 8,
23951
OPC_CheckChild0Type, MVT::v2f32,
23954
OPC_CheckOpcode, ISD::Constant,
23956
OPC_CheckType, MVT::f32,
23957
OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
23958
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23959
1, MVT::v2f32, 2, 0, 2,
23960
OPC_EmitConvertToTarget, 1,
23961
OPC_EmitNodeXForm, 21, 4,
23962
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23963
1, MVT::f32, 2, 3, 5,
23965
OPC_CheckChild0Type, MVT::v4f32,
23968
OPC_CheckOpcode, ISD::Constant,
23970
OPC_CheckType, MVT::f32,
23971
OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
23972
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23973
1, MVT::v4f32, 2, 0, 2,
23974
OPC_EmitConvertToTarget, 1,
23975
OPC_EmitNodeXForm, 21, 4,
23976
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23977
1, MVT::f32, 2, 3, 5,
23979
95|128,2, ISD::INSERT_VECTOR_ELT,
23983
OPC_CheckChild1Type, MVT::i32,
23986
OPC_CheckOpcode, ISD::Constant,
23988
OPC_SwitchType , 22, MVT::v8i8,
23989
OPC_CheckPatternPredicate, 3,
23990
OPC_EmitConvertToTarget, 2,
23991
OPC_EmitInteger, MVT::i32, 14,
23992
OPC_EmitRegister, MVT::i32, 0 ,
23993
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi8), 0,
23994
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
23996
OPC_CheckPatternPredicate, 3,
23997
OPC_EmitConvertToTarget, 2,
23998
OPC_EmitInteger, MVT::i32, 14,
23999
OPC_EmitRegister, MVT::i32, 0 ,
24000
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi16), 0,
24001
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
24006
OPC_CheckOpcode, ISD::Constant,
24008
OPC_SwitchType , 22, MVT::v2i32,
24009
OPC_CheckPatternPredicate, 3,
24010
OPC_EmitConvertToTarget, 2,
24011
OPC_EmitInteger, MVT::i32, 14,
24012
OPC_EmitRegister, MVT::i32, 0 ,
24013
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi32), 0,
24014
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
24016
OPC_EmitConvertToTarget, 2,
24017
OPC_EmitNodeXForm, 20, 3,
24018
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24019
1, MVT::v2f64, 3, 0, 1, 4,
24021
OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
24022
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
24023
1, MVT::v2f32, 2, 0, 3,
24024
OPC_EmitConvertToTarget, 2,
24025
OPC_EmitNodeXForm, 21, 5,
24026
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24027
1, MVT::v2f32, 3, 4, 1, 6,
24029
OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
24030
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
24031
1, MVT::v4f32, 2, 0, 3,
24032
OPC_EmitConvertToTarget, 2,
24033
OPC_EmitNodeXForm, 21, 5,
24034
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24035
1, MVT::v4f32, 3, 4, 1, 6,
24038
OPC_CheckChild1Type, MVT::i32,
24041
OPC_CheckOpcode, ISD::Constant,
24043
OPC_SwitchType , 52, MVT::v16i8,
24044
OPC_EmitConvertToTarget, 2,
24045
OPC_EmitNodeXForm, 18, 3,
24046
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24047
1, MVT::v8i8, 2, 0, 4,
24048
OPC_EmitConvertToTarget, 2,
24049
OPC_EmitNodeXForm, 19, 6,
24050
OPC_EmitInteger, MVT::i32, 14,
24051
OPC_EmitRegister, MVT::i32, 0 ,
24052
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi8), 0,
24053
1, MVT::f64, 5, 5, 1, 7, 8, 9,
24054
OPC_EmitConvertToTarget, 2,
24055
OPC_EmitNodeXForm, 18, 11,
24056
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24057
1, MVT::v16i8, 3, 0, 10, 12,
24059
OPC_EmitConvertToTarget, 2,
24060
OPC_EmitNodeXForm, 6, 3,
24061
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24062
1, MVT::v4i16, 2, 0, 4,
24063
OPC_EmitConvertToTarget, 2,
24064
OPC_EmitNodeXForm, 7, 6,
24065
OPC_EmitInteger, MVT::i32, 14,
24066
OPC_EmitRegister, MVT::i32, 0 ,
24067
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi16), 0,
24068
1, MVT::f64, 5, 5, 1, 7, 8, 9,
24069
OPC_EmitConvertToTarget, 2,
24070
OPC_EmitNodeXForm, 6, 11,
24071
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24072
1, MVT::v8i16, 3, 0, 10, 12,
24077
OPC_CheckOpcode, ISD::Constant,
24079
OPC_CheckType, MVT::v4i32,
24080
OPC_EmitConvertToTarget, 2,
24081
OPC_EmitNodeXForm, 8, 3,
24082
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24083
1, MVT::v2i32, 2, 0, 4,
24084
OPC_EmitConvertToTarget, 2,
24085
OPC_EmitNodeXForm, 9, 6,
24086
OPC_EmitInteger, MVT::i32, 14,
24087
OPC_EmitRegister, MVT::i32, 0 ,
24088
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi32), 0,
24089
1, MVT::f64, 5, 5, 1, 7, 8, 9,
24090
OPC_EmitConvertToTarget, 2,
24091
OPC_EmitNodeXForm, 8, 11,
24092
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24093
1, MVT::v4i32, 3, 0, 10, 12,
24095
102|128,1, ARMISD::VDUP,
24098
OPC_CheckOpcode, ISD::BIT_CONVERT,
24100
OPC_CheckChild0Type, MVT::i32,
24101
OPC_CheckType, MVT::f32,
24103
OPC_SwitchType , 18, MVT::v2f32,
24104
OPC_CheckPatternPredicate, 3,
24105
OPC_EmitInteger, MVT::i32, 14,
24106
OPC_EmitRegister, MVT::i32, 0 ,
24107
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfd), 0,
24108
1, MVT::v2f32, 3, 0, 1, 2,
24110
OPC_CheckPatternPredicate, 3,
24111
OPC_EmitInteger, MVT::i32, 14,
24112
OPC_EmitRegister, MVT::i32, 0 ,
24113
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfq), 0,
24114
1, MVT::v4f32, 3, 0, 1, 2,
24119
OPC_CheckChild0Type, MVT::i32,
24120
OPC_SwitchType , 18, MVT::v8i8,
24121
OPC_CheckPatternPredicate, 3,
24122
OPC_EmitInteger, MVT::i32, 14,
24123
OPC_EmitRegister, MVT::i32, 0 ,
24124
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP8d), 0,
24125
1, MVT::v8i8, 3, 0, 1, 2,
24127
OPC_CheckPatternPredicate, 3,
24128
OPC_EmitInteger, MVT::i32, 14,
24129
OPC_EmitRegister, MVT::i32, 0 ,
24130
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP16d), 0,
24131
1, MVT::v4i16, 3, 0, 1, 2,
24133
OPC_CheckPatternPredicate, 3,
24134
OPC_EmitInteger, MVT::i32, 14,
24135
OPC_EmitRegister, MVT::i32, 0 ,
24136
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP32d), 0,
24137
1, MVT::v2i32, 3, 0, 1, 2,
24139
OPC_CheckPatternPredicate, 3,
24140
OPC_EmitInteger, MVT::i32, 14,
24141
OPC_EmitRegister, MVT::i32, 0 ,
24142
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP8q), 0,
24143
1, MVT::v16i8, 3, 0, 1, 2,
24145
OPC_CheckPatternPredicate, 3,
24146
OPC_EmitInteger, MVT::i32, 14,
24147
OPC_EmitRegister, MVT::i32, 0 ,
24148
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP16q), 0,
24149
1, MVT::v8i16, 3, 0, 1, 2,
24151
OPC_CheckPatternPredicate, 3,
24152
OPC_EmitInteger, MVT::i32, 14,
24153
OPC_EmitRegister, MVT::i32, 0 ,
24154
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP32q), 0,
24155
1, MVT::v4i32, 3, 0, 1, 2,
24158
OPC_CheckChild0Type, MVT::f32,
24159
OPC_SwitchType , 18, MVT::v2f32,
24160
OPC_CheckPatternPredicate, 3,
24161
OPC_EmitInteger, MVT::i32, 14,
24162
OPC_EmitRegister, MVT::i32, 0 ,
24163
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfdf), 0,
24164
1, MVT::v2f32, 3, 0, 1, 2,
24166
OPC_CheckPatternPredicate, 3,
24167
OPC_EmitInteger, MVT::i32, 14,
24168
OPC_EmitRegister, MVT::i32, 0 ,
24169
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfqf), 0,
24170
1, MVT::v4f32, 3, 0, 1, 2,
24174
115|128,3, ARMISD::VDUPLANE,
24177
OPC_CheckChild0Type, MVT::v8i8,
24180
OPC_CheckOpcode, ISD::Constant,
24182
OPC_SwitchType , 21, MVT::v8i8,
24183
OPC_CheckPatternPredicate, 3,
24184
OPC_EmitConvertToTarget, 1,
24185
OPC_EmitInteger, MVT::i32, 14,
24186
OPC_EmitRegister, MVT::i32, 0 ,
24187
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8d), 0,
24188
1, MVT::v8i8, 4, 0, 2, 3, 4,
24190
OPC_CheckPatternPredicate, 3,
24191
OPC_EmitConvertToTarget, 1,
24192
OPC_EmitInteger, MVT::i32, 14,
24193
OPC_EmitRegister, MVT::i32, 0 ,
24194
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8q), 0,
24195
1, MVT::v16i8, 4, 0, 2, 3, 4,
24198
OPC_CheckChild0Type, MVT::v4i16,
24201
OPC_CheckOpcode, ISD::Constant,
24203
OPC_SwitchType , 21, MVT::v4i16,
24204
OPC_CheckPatternPredicate, 3,
24205
OPC_EmitConvertToTarget, 1,
24206
OPC_EmitInteger, MVT::i32, 14,
24207
OPC_EmitRegister, MVT::i32, 0 ,
24208
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16d), 0,
24209
1, MVT::v4i16, 4, 0, 2, 3, 4,
24211
OPC_CheckPatternPredicate, 3,
24212
OPC_EmitConvertToTarget, 1,
24213
OPC_EmitInteger, MVT::i32, 14,
24214
OPC_EmitRegister, MVT::i32, 0 ,
24215
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16q), 0,
24216
1, MVT::v8i16, 4, 0, 2, 3, 4,
24219
OPC_CheckChild0Type, MVT::v2i32,
24222
OPC_CheckOpcode, ISD::Constant,
24224
OPC_SwitchType , 21, MVT::v2i32,
24225
OPC_CheckPatternPredicate, 3,
24226
OPC_EmitConvertToTarget, 1,
24227
OPC_EmitInteger, MVT::i32, 14,
24228
OPC_EmitRegister, MVT::i32, 0 ,
24229
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32d), 0,
24230
1, MVT::v2i32, 4, 0, 2, 3, 4,
24232
OPC_CheckPatternPredicate, 3,
24233
OPC_EmitConvertToTarget, 1,
24234
OPC_EmitInteger, MVT::i32, 14,
24235
OPC_EmitRegister, MVT::i32, 0 ,
24236
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32q), 0,
24237
1, MVT::v4i32, 4, 0, 2, 3, 4,
24240
OPC_CheckChild0Type, MVT::v2f32,
24243
OPC_CheckOpcode, ISD::Constant,
24245
OPC_SwitchType , 21, MVT::v2f32,
24246
OPC_CheckPatternPredicate, 3,
24247
OPC_EmitConvertToTarget, 1,
24248
OPC_EmitInteger, MVT::i32, 14,
24249
OPC_EmitRegister, MVT::i32, 0 ,
24250
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfd), 0,
24251
1, MVT::v2f32, 4, 0, 2, 3, 4,
24253
OPC_CheckPatternPredicate, 3,
24254
OPC_EmitConvertToTarget, 1,
24255
OPC_EmitInteger, MVT::i32, 14,
24256
OPC_EmitRegister, MVT::i32, 0 ,
24257
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfq), 0,
24258
1, MVT::v4f32, 4, 0, 2, 3, 4,
24261
OPC_CheckChild0Type, MVT::v16i8,
24264
OPC_CheckOpcode, ISD::Constant,
24266
OPC_CheckType, MVT::v16i8,
24267
OPC_EmitConvertToTarget, 1,
24268
OPC_EmitNodeXForm, 18, 2,
24269
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24270
1, MVT::v8i8, 2, 0, 3,
24271
OPC_EmitConvertToTarget, 1,
24272
OPC_EmitNodeXForm, 19, 5,
24273
OPC_EmitInteger, MVT::i32, 14,
24274
OPC_EmitRegister, MVT::i32, 0 ,
24275
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8q), 0,
24276
1, MVT::v16i8, 4, 4, 6, 7, 8,
24278
OPC_CheckChild0Type, MVT::v8i16,
24281
OPC_CheckOpcode, ISD::Constant,
24283
OPC_CheckType, MVT::v8i16,
24284
OPC_EmitConvertToTarget, 1,
24285
OPC_EmitNodeXForm, 6, 2,
24286
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24287
1, MVT::v4i16, 2, 0, 3,
24288
OPC_EmitConvertToTarget, 1,
24289
OPC_EmitNodeXForm, 7, 5,
24290
OPC_EmitInteger, MVT::i32, 14,
24291
OPC_EmitRegister, MVT::i32, 0 ,
24292
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16q), 0,
24293
1, MVT::v8i16, 4, 4, 6, 7, 8,
24295
OPC_CheckChild0Type, MVT::v4i32,
24298
OPC_CheckOpcode, ISD::Constant,
24300
OPC_CheckType, MVT::v4i32,
24301
OPC_EmitConvertToTarget, 1,
24302
OPC_EmitNodeXForm, 8, 2,
24303
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24304
1, MVT::v2i32, 2, 0, 3,
24305
OPC_EmitConvertToTarget, 1,
24306
OPC_EmitNodeXForm, 9, 5,
24307
OPC_EmitInteger, MVT::i32, 14,
24308
OPC_EmitRegister, MVT::i32, 0 ,
24309
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32q), 0,
24310
1, MVT::v4i32, 4, 4, 6, 7, 8,
24312
OPC_CheckChild0Type, MVT::v4f32,
24315
OPC_CheckOpcode, ISD::Constant,
24317
OPC_CheckType, MVT::v4f32,
24318
OPC_EmitConvertToTarget, 1,
24319
OPC_EmitNodeXForm, 8, 2,
24320
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24321
1, MVT::v2f32, 2, 0, 3,
24322
OPC_EmitConvertToTarget, 1,
24323
OPC_EmitNodeXForm, 9, 5,
24324
OPC_EmitInteger, MVT::i32, 14,
24325
OPC_EmitRegister, MVT::i32, 0 ,
24326
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfq), 0,
24327
1, MVT::v4f32, 4, 4, 6, 7, 8,
24329
OPC_CheckChild0Type, MVT::v2i64,
24332
OPC_CheckOpcode, ISD::Constant,
24334
OPC_CheckType, MVT::v2i64,
24335
OPC_EmitConvertToTarget, 1,
24336
OPC_EmitNodeXForm, 20, 2,
24337
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24338
1, MVT::i64, 2, 0, 3,
24339
OPC_EmitConvertToTarget, 1,
24340
OPC_EmitNodeXForm, 22, 5,
24341
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24342
1, MVT::v2i64, 3, 0, 4, 6,
24344
OPC_CheckChild0Type, MVT::v2f64,
24347
OPC_CheckOpcode, ISD::Constant,
24349
OPC_CheckType, MVT::v2f64,
24350
OPC_EmitConvertToTarget, 1,
24351
OPC_EmitNodeXForm, 20, 2,
24352
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24353
1, MVT::f64, 2, 0, 3,
24354
OPC_EmitConvertToTarget, 1,
24355
OPC_EmitNodeXForm, 22, 5,
24356
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
24357
1, MVT::v2f64, 3, 0, 4, 6,
24359
74|128,1, ARMISD::VEXT,
24364
OPC_CheckOpcode, ISD::Constant,
24366
OPC_SwitchType , 22, MVT::v8i8,
24367
OPC_CheckPatternPredicate, 3,
24368
OPC_EmitConvertToTarget, 2,
24369
OPC_EmitInteger, MVT::i32, 14,
24370
OPC_EmitRegister, MVT::i32, 0 ,
24371
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd8), 0,
24372
1, MVT::v8i8, 5, 0, 1, 3, 4, 5,
24374
OPC_CheckPatternPredicate, 3,
24375
OPC_EmitConvertToTarget, 2,
24376
OPC_EmitInteger, MVT::i32, 14,
24377
OPC_EmitRegister, MVT::i32, 0 ,
24378
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd16), 0,
24379
1, MVT::v4i16, 5, 0, 1, 3, 4, 5,
24381
OPC_CheckPatternPredicate, 3,
24382
OPC_EmitConvertToTarget, 2,
24383
OPC_EmitInteger, MVT::i32, 14,
24384
OPC_EmitRegister, MVT::i32, 0 ,
24385
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd32), 0,
24386
1, MVT::v2i32, 5, 0, 1, 3, 4, 5,
24388
OPC_CheckPatternPredicate, 3,
24389
OPC_EmitConvertToTarget, 2,
24390
OPC_EmitInteger, MVT::i32, 14,
24391
OPC_EmitRegister, MVT::i32, 0 ,
24392
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTdf), 0,
24393
1, MVT::v2f32, 5, 0, 1, 3, 4, 5,
24395
OPC_CheckPatternPredicate, 3,
24396
OPC_EmitConvertToTarget, 2,
24397
OPC_EmitInteger, MVT::i32, 14,
24398
OPC_EmitRegister, MVT::i32, 0 ,
24399
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq8), 0,
24400
1, MVT::v16i8, 5, 0, 1, 3, 4, 5,
24402
OPC_CheckPatternPredicate, 3,
24403
OPC_EmitConvertToTarget, 2,
24404
OPC_EmitInteger, MVT::i32, 14,
24405
OPC_EmitRegister, MVT::i32, 0 ,
24406
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq16), 0,
24407
1, MVT::v8i16, 5, 0, 1, 3, 4, 5,
24409
OPC_CheckPatternPredicate, 3,
24410
OPC_EmitConvertToTarget, 2,
24411
OPC_EmitInteger, MVT::i32, 14,
24412
OPC_EmitRegister, MVT::i32, 0 ,
24413
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq32), 0,
24414
1, MVT::v4i32, 5, 0, 1, 3, 4, 5,
24416
OPC_CheckPatternPredicate, 3,
24417
OPC_EmitConvertToTarget, 2,
24418
OPC_EmitInteger, MVT::i32, 14,
24419
OPC_EmitRegister, MVT::i32, 0 ,
24420
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTqf), 0,
24421
1, MVT::v4f32, 5, 0, 1, 3, 4, 5,
24423
2|128,3, ISD::Constant,
24426
OPC_CheckPredicate, 4,
24427
OPC_CheckType, MVT::i32,
24428
OPC_CheckPatternPredicate, 2,
24429
OPC_EmitConvertToTarget, 0,
24430
OPC_EmitInteger, MVT::i32, 14,
24431
OPC_EmitRegister, MVT::i32, 0 ,
24432
OPC_EmitRegister, MVT::i32, 0 ,
24433
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi), 0,
24434
1, MVT::i32, 4, 1, 2, 3, 4,
24436
OPC_CheckPredicate, 5,
24437
OPC_CheckType, MVT::i32,
24438
OPC_CheckPatternPredicate, 5,
24439
OPC_EmitConvertToTarget, 0,
24440
OPC_EmitInteger, MVT::i32, 14,
24441
OPC_EmitRegister, MVT::i32, 0 ,
24442
OPC_EmitRegister, MVT::i32, 0 ,
24443
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi), 0,
24444
1, MVT::i32, 4, 1, 2, 3, 4,
24446
OPC_CheckPredicate, 61,
24447
OPC_CheckType, MVT::i32,
24448
OPC_CheckPatternPredicate, 4,
24449
OPC_EmitConvertToTarget, 0,
24450
OPC_EmitInteger, MVT::i32, 14,
24451
OPC_EmitRegister, MVT::i32, 0 ,
24452
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi16), 0,
24453
1, MVT::i32, 3, 1, 2, 3,
24455
OPC_CheckPredicate, 23,
24456
OPC_CheckType, MVT::i32,
24457
OPC_CheckPatternPredicate, 5,
24458
OPC_EmitConvertToTarget, 0,
24459
OPC_EmitNodeXForm, 17, 1,
24460
OPC_EmitInteger, MVT::i32, 14,
24461
OPC_EmitRegister, MVT::i32, 0 ,
24462
OPC_EmitRegister, MVT::i32, 0 ,
24463
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNi), 0,
24464
1, MVT::i32, 4, 2, 3, 4, 5,
24466
OPC_CheckPredicate, 7,
24467
OPC_CheckType, MVT::i32,
24468
OPC_CheckPatternPredicate, 26,
24469
OPC_EmitConvertToTarget, 0,
24470
OPC_EmitInteger, MVT::i32, 14,
24471
OPC_EmitRegister, MVT::i32, 0 ,
24472
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi2pieces), 0,
24473
1, MVT::i32, 3, 1, 2, 3,
24475
OPC_CheckPredicate, 53,
24476
OPC_CheckType, MVT::i32,
24477
OPC_CheckPatternPredicate, 6,
24478
OPC_EmitRegister, MVT::i32, ARM::CPSR,
24479
OPC_EmitConvertToTarget, 0,
24480
OPC_EmitInteger, MVT::i32, 14,
24481
OPC_EmitRegister, MVT::i32, 0 ,
24482
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMOVi8), 0,
24483
1, MVT::i32, 4, 1, 2, 3, 4,
24485
OPC_CheckPredicate, 61,
24486
OPC_CheckType, MVT::i32,
24487
OPC_CheckPatternPredicate, 2,
24488
OPC_EmitConvertToTarget, 0,
24489
OPC_EmitInteger, MVT::i32, 14,
24490
OPC_EmitRegister, MVT::i32, 0 ,
24491
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi16), 0,
24492
1, MVT::i32, 3, 1, 2, 3,
24494
OPC_CheckPredicate, 6,
24495
OPC_CheckType, MVT::i32,
24496
OPC_CheckPatternPredicate, 2,
24497
OPC_EmitConvertToTarget, 0,
24498
OPC_EmitNodeXForm, 1, 1,
24499
OPC_EmitInteger, MVT::i32, 14,
24500
OPC_EmitRegister, MVT::i32, 0 ,
24501
OPC_EmitRegister, MVT::i32, 0 ,
24502
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
24503
1, MVT::i32, 4, 2, 3, 4, 5,
24505
OPC_CheckPredicate, 62,
24506
OPC_CheckType, MVT::i32,
24507
OPC_CheckPatternPredicate, 6,
24508
OPC_EmitRegister, MVT::i32, ARM::CPSR,
24509
OPC_EmitRegister, MVT::i32, ARM::CPSR,
24510
OPC_EmitConvertToTarget, 0,
24511
OPC_EmitNodeXForm, 23, 3,
24512
OPC_EmitInteger, MVT::i32, 14,
24513
OPC_EmitRegister, MVT::i32, 0 ,
24514
OPC_EmitNode, TARGET_OPCODE(ARM::tMOVi8), 0,
24515
1, MVT::i32, 4, 2, 4, 5, 6,
24516
OPC_EmitConvertToTarget, 0,
24517
OPC_EmitNodeXForm, 24, 8,
24518
OPC_EmitInteger, MVT::i32, 14,
24519
OPC_EmitRegister, MVT::i32, 0 ,
24520
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLri), 0,
24521
1, MVT::i32, 5, 1, 7, 9, 10, 11,
24523
OPC_CheckPredicate, 63,
24524
OPC_CheckType, MVT::i32,
24525
OPC_CheckPatternPredicate, 6,
24526
OPC_EmitRegister, MVT::i32, ARM::CPSR,
24527
OPC_EmitRegister, MVT::i32, ARM::CPSR,
24528
OPC_EmitConvertToTarget, 0,
24529
OPC_EmitNodeXForm, 25, 3,
24530
OPC_EmitInteger, MVT::i32, 14,
24531
OPC_EmitRegister, MVT::i32, 0 ,
24532
OPC_EmitNode, TARGET_OPCODE(ARM::tMOVi8), 0,
24533
1, MVT::i32, 4, 2, 4, 5, 6,
24534
OPC_EmitInteger, MVT::i32, 14,
24535
OPC_EmitRegister, MVT::i32, 0 ,
24536
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMVN), 0,
24537
1, MVT::i32, 4, 1, 7, 8, 9,
24539
OPC_CheckType, MVT::i32,
24541
OPC_CheckPatternPredicate, 4,
24542
OPC_EmitConvertToTarget, 0,
24543
OPC_EmitInteger, MVT::i32, 14,
24544
OPC_EmitRegister, MVT::i32, 0 ,
24545
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi32imm), 0,
24546
1, MVT::i32, 3, 1, 2, 3,
24548
OPC_CheckPatternPredicate, 2,
24549
OPC_EmitConvertToTarget, 0,
24550
OPC_EmitInteger, MVT::i32, 14,
24551
OPC_EmitRegister, MVT::i32, 0 ,
24552
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi32imm), 0,
24553
1, MVT::i32, 3, 1, 2, 3,
24556
53, ISD::ConstantFP,
24559
OPC_CheckPredicate, 64,
24560
OPC_CheckType, MVT::f64,
24561
OPC_CheckPatternPredicate, 27,
24562
OPC_EmitConvertToTarget, 0,
24563
OPC_EmitInteger, MVT::i32, 14,
24564
OPC_EmitRegister, MVT::i32, 0 ,
24565
OPC_MorphNodeTo, TARGET_OPCODE(ARM::FCONSTD), 0,
24566
1, MVT::f64, 3, 1, 2, 3,
24568
OPC_CheckPredicate, 65,
24569
OPC_CheckType, MVT::f32,
24570
OPC_CheckPatternPredicate, 27,
24571
OPC_EmitConvertToTarget, 0,
24572
OPC_EmitInteger, MVT::i32, 14,
24573
OPC_EmitRegister, MVT::i32, 0 ,
24574
OPC_MorphNodeTo, TARGET_OPCODE(ARM::FCONSTS), 0,
24575
1, MVT::f32, 3, 1, 2, 3,
24577
79|128,1, ISD::BUILD_VECTOR,
24580
OPC_CheckPredicate, 66,
24581
OPC_SwitchType , 21, MVT::v8i8,
24582
OPC_CheckPatternPredicate, 3,
24583
OPC_EmitNodeXForm, 26, 0,
24584
OPC_EmitInteger, MVT::i32, 14,
24585
OPC_EmitRegister, MVT::i32, 0 ,
24586
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv8i8), 0,
24587
1, MVT::v8i8, 3, 1, 2, 3,
24589
OPC_CheckPatternPredicate, 3,
24590
OPC_EmitNodeXForm, 26, 0,
24591
OPC_EmitInteger, MVT::i32, 14,
24592
OPC_EmitRegister, MVT::i32, 0 ,
24593
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv16i8), 0,
24594
1, MVT::v16i8, 3, 1, 2, 3,
24597
OPC_CheckPredicate, 67,
24598
OPC_SwitchType , 21, MVT::v4i16,
24599
OPC_CheckPatternPredicate, 3,
24600
OPC_EmitNodeXForm, 27, 0,
24601
OPC_EmitInteger, MVT::i32, 14,
24602
OPC_EmitRegister, MVT::i32, 0 ,
24603
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv4i16), 0,
24604
1, MVT::v4i16, 3, 1, 2, 3,
24606
OPC_CheckPatternPredicate, 3,
24607
OPC_EmitNodeXForm, 27, 0,
24608
OPC_EmitInteger, MVT::i32, 14,
24609
OPC_EmitRegister, MVT::i32, 0 ,
24610
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv8i16), 0,
24611
1, MVT::v8i16, 3, 1, 2, 3,
24614
OPC_CheckPredicate, 68,
24615
OPC_SwitchType , 21, MVT::v2i32,
24616
OPC_CheckPatternPredicate, 3,
24617
OPC_EmitNodeXForm, 28, 0,
24618
OPC_EmitInteger, MVT::i32, 14,
24619
OPC_EmitRegister, MVT::i32, 0 ,
24620
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv2i32), 0,
24621
1, MVT::v2i32, 3, 1, 2, 3,
24623
OPC_CheckPatternPredicate, 3,
24624
OPC_EmitNodeXForm, 28, 0,
24625
OPC_EmitInteger, MVT::i32, 14,
24626
OPC_EmitRegister, MVT::i32, 0 ,
24627
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv4i32), 0,
24628
1, MVT::v4i32, 3, 1, 2, 3,
24631
OPC_CheckPredicate, 69,
24632
OPC_SwitchType , 21, MVT::v1i64,
24633
OPC_CheckPatternPredicate, 3,
24634
OPC_EmitNodeXForm, 29, 0,
24635
OPC_EmitInteger, MVT::i32, 14,
24636
OPC_EmitRegister, MVT::i32, 0 ,
24637
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv1i64), 0,
24638
1, MVT::v1i64, 3, 1, 2, 3,
24640
OPC_CheckPatternPredicate, 3,
24641
OPC_EmitNodeXForm, 29, 0,
24642
OPC_EmitInteger, MVT::i32, 14,
24643
OPC_EmitRegister, MVT::i32, 0 ,
24644
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv2i64), 0,
24645
1, MVT::v2i64, 3, 1, 2, 3,
24648
71, ISD::ATOMIC_LOAD_ADD,
24650
OPC_CheckPredicate, 70,
24654
OPC_CheckChild1Type, MVT::i32,
24656
OPC_CheckType, MVT::i32,
24657
OPC_EmitMergeInputChains, 1, 0,
24658
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
24659
1, MVT::i32, 2, 1, 2,
24661
OPC_CheckPredicate, 71,
24665
OPC_CheckChild1Type, MVT::i32,
24667
OPC_CheckType, MVT::i32,
24668
OPC_EmitMergeInputChains, 1, 0,
24669
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
24670
1, MVT::i32, 2, 1, 2,
24672
OPC_CheckPredicate, 72,
24676
OPC_CheckChild1Type, MVT::i32,
24678
OPC_CheckType, MVT::i32,
24679
OPC_EmitMergeInputChains, 1, 0,
24680
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
24681
1, MVT::i32, 2, 1, 2,
24683
71, ISD::ATOMIC_LOAD_SUB,
24685
OPC_CheckPredicate, 73,
24689
OPC_CheckChild1Type, MVT::i32,
24691
OPC_CheckType, MVT::i32,
24692
OPC_EmitMergeInputChains, 1, 0,
24693
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
24694
1, MVT::i32, 2, 1, 2,
24696
OPC_CheckPredicate, 74,
24700
OPC_CheckChild1Type, MVT::i32,
24702
OPC_CheckType, MVT::i32,
24703
OPC_EmitMergeInputChains, 1, 0,
24704
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
24705
1, MVT::i32, 2, 1, 2,
24707
OPC_CheckPredicate, 75,
24711
OPC_CheckChild1Type, MVT::i32,
24713
OPC_CheckType, MVT::i32,
24714
OPC_EmitMergeInputChains, 1, 0,
24715
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
24716
1, MVT::i32, 2, 1, 2,
24718
71, ISD::ATOMIC_LOAD_AND,
24720
OPC_CheckPredicate, 76,
24724
OPC_CheckChild1Type, MVT::i32,
24726
OPC_CheckType, MVT::i32,
24727
OPC_EmitMergeInputChains, 1, 0,
24728
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
24729
1, MVT::i32, 2, 1, 2,
24731
OPC_CheckPredicate, 77,
24735
OPC_CheckChild1Type, MVT::i32,
24737
OPC_CheckType, MVT::i32,
24738
OPC_EmitMergeInputChains, 1, 0,
24739
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
24740
1, MVT::i32, 2, 1, 2,
24742
OPC_CheckPredicate, 78,
24746
OPC_CheckChild1Type, MVT::i32,
24748
OPC_CheckType, MVT::i32,
24749
OPC_EmitMergeInputChains, 1, 0,
24750
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
24751
1, MVT::i32, 2, 1, 2,
24753
71, ISD::ATOMIC_LOAD_OR,
24755
OPC_CheckPredicate, 79,
24759
OPC_CheckChild1Type, MVT::i32,
24761
OPC_CheckType, MVT::i32,
24762
OPC_EmitMergeInputChains, 1, 0,
24763
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
24764
1, MVT::i32, 2, 1, 2,
24766
OPC_CheckPredicate, 80,
24770
OPC_CheckChild1Type, MVT::i32,
24772
OPC_CheckType, MVT::i32,
24773
OPC_EmitMergeInputChains, 1, 0,
24774
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
24775
1, MVT::i32, 2, 1, 2,
24777
OPC_CheckPredicate, 81,
24781
OPC_CheckChild1Type, MVT::i32,
24783
OPC_CheckType, MVT::i32,
24784
OPC_EmitMergeInputChains, 1, 0,
24785
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
24786
1, MVT::i32, 2, 1, 2,
24788
71, ISD::ATOMIC_LOAD_XOR,
24790
OPC_CheckPredicate, 82,
24794
OPC_CheckChild1Type, MVT::i32,
24796
OPC_CheckType, MVT::i32,
24797
OPC_EmitMergeInputChains, 1, 0,
24798
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
24799
1, MVT::i32, 2, 1, 2,
24801
OPC_CheckPredicate, 83,
24805
OPC_CheckChild1Type, MVT::i32,
24807
OPC_CheckType, MVT::i32,
24808
OPC_EmitMergeInputChains, 1, 0,
24809
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
24810
1, MVT::i32, 2, 1, 2,
24812
OPC_CheckPredicate, 84,
24816
OPC_CheckChild1Type, MVT::i32,
24818
OPC_CheckType, MVT::i32,
24819
OPC_EmitMergeInputChains, 1, 0,
24820
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
24821
1, MVT::i32, 2, 1, 2,
24823
71, ISD::ATOMIC_LOAD_NAND,
24825
OPC_CheckPredicate, 85,
24829
OPC_CheckChild1Type, MVT::i32,
24831
OPC_CheckType, MVT::i32,
24832
OPC_EmitMergeInputChains, 1, 0,
24833
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
24834
1, MVT::i32, 2, 1, 2,
24836
OPC_CheckPredicate, 86,
24840
OPC_CheckChild1Type, MVT::i32,
24842
OPC_CheckType, MVT::i32,
24843
OPC_EmitMergeInputChains, 1, 0,
24844
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
24845
1, MVT::i32, 2, 1, 2,
24847
OPC_CheckPredicate, 87,
24851
OPC_CheckChild1Type, MVT::i32,
24853
OPC_CheckType, MVT::i32,
24854
OPC_EmitMergeInputChains, 1, 0,
24855
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
24856
1, MVT::i32, 2, 1, 2,
24858
71, ISD::ATOMIC_SWAP,
24860
OPC_CheckPredicate, 88,
24864
OPC_CheckChild1Type, MVT::i32,
24866
OPC_CheckType, MVT::i32,
24867
OPC_EmitMergeInputChains, 1, 0,
24868
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
24869
1, MVT::i32, 2, 1, 2,
24871
OPC_CheckPredicate, 89,
24875
OPC_CheckChild1Type, MVT::i32,
24877
OPC_CheckType, MVT::i32,
24878
OPC_EmitMergeInputChains, 1, 0,
24879
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
24880
1, MVT::i32, 2, 1, 2,
24882
OPC_CheckPredicate, 90,
24886
OPC_CheckChild1Type, MVT::i32,
24888
OPC_CheckType, MVT::i32,
24889
OPC_EmitMergeInputChains, 1, 0,
24890
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
24891
1, MVT::i32, 2, 1, 2,
24893
77, ISD::ATOMIC_CMP_SWAP,
24895
OPC_CheckPredicate, 91,
24899
OPC_CheckChild1Type, MVT::i32,
24902
OPC_CheckType, MVT::i32,
24903
OPC_EmitMergeInputChains, 1, 0,
24904
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
24905
1, MVT::i32, 3, 1, 2, 3,
24907
OPC_CheckPredicate, 92,
24911
OPC_CheckChild1Type, MVT::i32,
24914
OPC_CheckType, MVT::i32,
24915
OPC_EmitMergeInputChains, 1, 0,
24916
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
24917
1, MVT::i32, 3, 1, 2, 3,
24919
OPC_CheckPredicate, 93,
24923
OPC_CheckChild1Type, MVT::i32,
24926
OPC_CheckType, MVT::i32,
24927
OPC_EmitMergeInputChains, 1, 0,
24928
OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
24929
1, MVT::i32, 3, 1, 2, 3,
24931
25|128,3, ISD::BIT_CONVERT,
24934
OPC_CheckChild0Type, MVT::v2i32,
24935
OPC_SwitchType , 3, MVT::v1i64,
24936
OPC_CompleteMatch, 1, 0,
24939
OPC_CompleteMatch, 1, 0,
24942
OPC_CompleteMatch, 1, 0,
24945
OPC_CompleteMatch, 1, 0,
24948
OPC_CompleteMatch, 1, 0,
24952
OPC_CheckChild0Type, MVT::v4i16,
24953
OPC_SwitchType , 3, MVT::v1i64,
24954
OPC_CompleteMatch, 1, 0,
24957
OPC_CompleteMatch, 1, 0,
24960
OPC_CompleteMatch, 1, 0,
24963
OPC_CompleteMatch, 1, 0,
24966
OPC_CompleteMatch, 1, 0,
24970
OPC_CheckChild0Type, MVT::v8i8,
24971
OPC_SwitchType , 3, MVT::v1i64,
24972
OPC_CompleteMatch, 1, 0,
24975
OPC_CompleteMatch, 1, 0,
24978
OPC_CompleteMatch, 1, 0,
24981
OPC_CompleteMatch, 1, 0,
24984
OPC_CompleteMatch, 1, 0,
24988
OPC_CheckChild0Type, MVT::f64,
24989
OPC_SwitchType , 3, MVT::v1i64,
24990
OPC_CompleteMatch, 1, 0,
24993
OPC_CompleteMatch, 1, 0,
24996
OPC_CompleteMatch, 1, 0,
24999
OPC_CompleteMatch, 1, 0,
25002
OPC_CompleteMatch, 1, 0,
25006
OPC_CheckChild0Type, MVT::v2f32,
25007
OPC_SwitchType , 3, MVT::v1i64,
25008
OPC_CompleteMatch, 1, 0,
25011
OPC_CompleteMatch, 1, 0,
25014
OPC_CompleteMatch, 1, 0,
25017
OPC_CompleteMatch, 1, 0,
25020
OPC_CompleteMatch, 1, 0,
25024
OPC_CheckChild0Type, MVT::v1i64,
25025
OPC_SwitchType , 3, MVT::v2i32,
25026
OPC_CompleteMatch, 1, 0,
25029
OPC_CompleteMatch, 1, 0,
25032
OPC_CompleteMatch, 1, 0,
25035
OPC_CompleteMatch, 1, 0,
25038
OPC_CompleteMatch, 1, 0,
25042
OPC_CheckChild0Type, MVT::v4i32,
25043
OPC_SwitchType , 3, MVT::v2i64,
25044
OPC_CompleteMatch, 1, 0,
25047
OPC_CompleteMatch, 1, 0,
25050
OPC_CompleteMatch, 1, 0,
25053
OPC_CompleteMatch, 1, 0,
25056
OPC_CompleteMatch, 1, 0,
25060
OPC_CheckChild0Type, MVT::v8i16,
25061
OPC_SwitchType , 3, MVT::v2i64,
25062
OPC_CompleteMatch, 1, 0,
25065
OPC_CompleteMatch, 1, 0,
25068
OPC_CompleteMatch, 1, 0,
25071
OPC_CompleteMatch, 1, 0,
25074
OPC_CompleteMatch, 1, 0,
25078
OPC_CheckChild0Type, MVT::v16i8,
25079
OPC_SwitchType , 3, MVT::v2i64,
25080
OPC_CompleteMatch, 1, 0,
25083
OPC_CompleteMatch, 1, 0,
25086
OPC_CompleteMatch, 1, 0,
25089
OPC_CompleteMatch, 1, 0,
25092
OPC_CompleteMatch, 1, 0,
25096
OPC_CheckChild0Type, MVT::v2f64,
25097
OPC_SwitchType , 3, MVT::v2i64,
25098
OPC_CompleteMatch, 1, 0,
25101
OPC_CompleteMatch, 1, 0,
25104
OPC_CompleteMatch, 1, 0,
25107
OPC_CompleteMatch, 1, 0,
25110
OPC_CompleteMatch, 1, 0,
25114
OPC_CheckChild0Type, MVT::v4f32,
25115
OPC_SwitchType , 3, MVT::v2i64,
25116
OPC_CompleteMatch, 1, 0,
25119
OPC_CompleteMatch, 1, 0,
25122
OPC_CompleteMatch, 1, 0,
25125
OPC_CompleteMatch, 1, 0,
25128
OPC_CompleteMatch, 1, 0,
25132
OPC_CheckChild0Type, MVT::v2i64,
25133
OPC_SwitchType , 3, MVT::v4i32,
25134
OPC_CompleteMatch, 1, 0,
25137
OPC_CompleteMatch, 1, 0,
25140
OPC_CompleteMatch, 1, 0,
25143
OPC_CompleteMatch, 1, 0,
25146
OPC_CompleteMatch, 1, 0,
25150
OPC_CheckChild0Type, MVT::f32,
25151
OPC_CheckType, MVT::i32,
25152
OPC_CheckPatternPredicate, 8,
25153
OPC_EmitInteger, MVT::i32, 14,
25154
OPC_EmitRegister, MVT::i32, 0 ,
25155
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVRS), 0,
25156
1, MVT::i32, 3, 0, 1, 2,
25158
OPC_CheckChild0Type, MVT::i32,
25159
OPC_CheckType, MVT::f32,
25160
OPC_CheckPatternPredicate, 8,
25161
OPC_EmitInteger, MVT::i32, 14,
25162
OPC_EmitRegister, MVT::i32, 0 ,
25163
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVSR), 0,
25164
1, MVT::f32, 3, 0, 1, 2,
25166
36, ARMISD::RET_FLAG,
25168
OPC_CaptureFlagInput,
25170
OPC_CheckPatternPredicate, 5,
25171
OPC_EmitMergeInputChains, 1, 0,
25172
OPC_EmitInteger, MVT::i32, 14,
25173
OPC_EmitRegister, MVT::i32, 0 ,
25174
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BX_RET), 0|OPFL_Chain|OPFL_FlagInput,
25177
OPC_CheckPatternPredicate, 9,
25178
OPC_EmitMergeInputChains, 1, 0,
25179
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBX_RET), 0|OPFL_Chain|OPFL_FlagInput,
25185
OPC_CheckChild1Type, MVT::i32,
25187
OPC_CheckPatternPredicate, 5,
25188
OPC_EmitMergeInputChains, 1, 0,
25189
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BRIND), 0|OPFL_Chain,
25192
OPC_CheckPatternPredicate, 9,
25193
OPC_EmitMergeInputChains, 1, 0,
25194
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBRIND), 0|OPFL_Chain,
25197
59, ARMISD::CALL_NOLINK,
25199
OPC_CaptureFlagInput,
25201
OPC_CheckChild1Type, MVT::i32,
25203
OPC_CheckPatternPredicate, 14,
25204
OPC_EmitMergeInputChains, 1, 0,
25205
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
25208
OPC_CheckPatternPredicate, 15,
25209
OPC_EmitMergeInputChains, 1, 0,
25210
OPC_MorphNodeTo, TARGET_OPCODE(ARM::BXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
25213
OPC_CheckPatternPredicate, 28,
25214
OPC_EmitMergeInputChains, 1, 0,
25215
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
25218
OPC_CheckPatternPredicate, 29,
25219
OPC_EmitMergeInputChains, 1, 0,
25220
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
25227
OPC_CheckOpcode, ISD::BasicBlock,
25230
OPC_CheckPatternPredicate, 5,
25231
OPC_EmitMergeInputChains, 1, 0,
25232
OPC_MorphNodeTo, TARGET_OPCODE(ARM::B), 0|OPFL_Chain,
25235
OPC_CheckPatternPredicate, 6,
25236
OPC_EmitMergeInputChains, 1, 0,
25237
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tB), 0|OPFL_Chain,
25240
OPC_CheckPatternPredicate, 2,
25241
OPC_EmitMergeInputChains, 1, 0,
25242
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2B), 0|OPFL_Chain,
25246
OPC_CaptureFlagInput,
25248
OPC_CheckType, MVT::i32,
25250
OPC_CheckPatternPredicate, 5,
25251
OPC_EmitInteger, MVT::i32, 14,
25252
OPC_EmitRegister, MVT::i32, 0 ,
25253
OPC_EmitRegister, MVT::i32, 0 ,
25254
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVrx), 0|OPFL_FlagInput,
25255
1, MVT::i32, 4, 0, 1, 2, 3,
25257
OPC_CheckPatternPredicate, 2,
25258
OPC_EmitInteger, MVT::i32, 14,
25259
OPC_EmitRegister, MVT::i32, 0 ,
25260
OPC_EmitRegister, MVT::i32, 0 ,
25261
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVrx), 0|OPFL_FlagInput,
25262
1, MVT::i32, 4, 0, 1, 2, 3,
25264
35, ARMISD::SRL_FLAG,
25266
OPC_CheckType, MVT::i32,
25268
OPC_CheckPatternPredicate, 5,
25269
OPC_EmitInteger, MVT::i32, 14,
25270
OPC_EmitRegister, MVT::i32, 0 ,
25271
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVsrl_flag), 0|OPFL_FlagOutput,
25272
1, MVT::i32, 3, 0, 1, 2,
25274
OPC_CheckPatternPredicate, 2,
25275
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVsrl_flag), 0|OPFL_FlagOutput,
25278
35, ARMISD::SRA_FLAG,
25280
OPC_CheckType, MVT::i32,
25282
OPC_CheckPatternPredicate, 5,
25283
OPC_EmitInteger, MVT::i32, 14,
25284
OPC_EmitRegister, MVT::i32, 0 ,
25285
OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVsra_flag), 0|OPFL_FlagOutput,
25286
1, MVT::i32, 3, 0, 1, 2,
25288
OPC_CheckPatternPredicate, 2,
25289
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVsra_flag), 0|OPFL_FlagOutput,
25295
OPC_CheckType, MVT::i32,
25297
OPC_CheckPatternPredicate, 0,
25298
OPC_EmitInteger, MVT::i32, 14,
25299
OPC_EmitRegister, MVT::i32, 0 ,
25300
OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMUL), 0,
25301
1, MVT::i32, 4, 0, 1, 2, 3,
25303
OPC_CheckPatternPredicate, 2,
25304
OPC_EmitInteger, MVT::i32, 14,
25305
OPC_EmitRegister, MVT::i32, 0 ,
25306
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMUL), 0,
25307
1, MVT::i32, 4, 0, 1, 2, 3,
25311
OPC_CheckType, MVT::i32,
25313
OPC_CheckPatternPredicate, 30,
25314
OPC_EmitInteger, MVT::i32, 14,
25315
OPC_EmitRegister, MVT::i32, 0 ,
25316
OPC_MorphNodeTo, TARGET_OPCODE(ARM::CLZ), 0,
25317
1, MVT::i32, 3, 0, 1, 2,
25319
OPC_CheckPatternPredicate, 2,
25320
OPC_EmitInteger, MVT::i32, 14,
25321
OPC_EmitRegister, MVT::i32, 0 ,
25322
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CLZ), 0,
25323
1, MVT::i32, 3, 0, 1, 2,
25327
OPC_CheckType, MVT::i32,
25329
OPC_CheckPatternPredicate, 4,
25330
OPC_EmitInteger, MVT::i32, 14,
25331
OPC_EmitRegister, MVT::i32, 0 ,
25332
OPC_MorphNodeTo, TARGET_OPCODE(ARM::RBIT), 0,
25333
1, MVT::i32, 3, 0, 1, 2,
25335
OPC_CheckPatternPredicate, 2,
25336
OPC_EmitInteger, MVT::i32, 14,
25337
OPC_EmitRegister, MVT::i32, 0 ,
25338
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RBIT), 0,
25339
1, MVT::i32, 3, 0, 1, 2,
25343
OPC_CheckType, MVT::i32,
25345
OPC_CheckPatternPredicate, 0,
25346
OPC_EmitInteger, MVT::i32, 14,
25347
OPC_EmitRegister, MVT::i32, 0 ,
25348
OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV), 0,
25349
1, MVT::i32, 3, 0, 1, 2,
25351
OPC_CheckPatternPredicate, 1,
25352
OPC_EmitInteger, MVT::i32, 14,
25353
OPC_EmitRegister, MVT::i32, 0 ,
25354
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV), 0,
25355
1, MVT::i32, 3, 0, 1, 2,
25357
OPC_CheckPatternPredicate, 2,
25358
OPC_EmitInteger, MVT::i32, 14,
25359
OPC_EmitRegister, MVT::i32, 0 ,
25360
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV), 0,
25361
1, MVT::i32, 3, 0, 1, 2,
25363
43, ARMISD::MEMBARRIER,
25366
OPC_CheckPatternPredicate, 31,
25367
OPC_EmitMergeInputChains, 1, 0,
25368
OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_MemBarrierV7), 0|OPFL_Chain,
25372
OPC_CheckChild1Type, MVT::i32,
25373
OPC_CheckPatternPredicate, 0,
25374
OPC_EmitMergeInputChains, 1, 0,
25375
OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_MemBarrierV6), 0|OPFL_Chain,
25378
OPC_CheckPatternPredicate, 2,
25379
OPC_EmitMergeInputChains, 1, 0,
25380
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_MemBarrierV7), 0|OPFL_Chain,
25383
43, ARMISD::SYNCBARRIER,
25386
OPC_CheckPatternPredicate, 31,
25387
OPC_EmitMergeInputChains, 1, 0,
25388
OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_SyncBarrierV7), 0|OPFL_Chain,
25392
OPC_CheckChild1Type, MVT::i32,
25393
OPC_CheckPatternPredicate, 0,
25394
OPC_EmitMergeInputChains, 1, 0,
25395
OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_SyncBarrierV6), 0|OPFL_Chain,
25398
OPC_CheckPatternPredicate, 2,
25399
OPC_EmitMergeInputChains, 1, 0,
25400
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_SyncBarrierV7), 0|OPFL_Chain,
25403
34, ARMISD::THREAD_POINTER,
25404
OPC_CheckType, MVT::i32,
25406
OPC_CheckPatternPredicate, 5,
25407
OPC_MorphNodeTo, TARGET_OPCODE(ARM::TPsoft), 0,
25410
OPC_CheckPatternPredicate, 9,
25411
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tTPsoft), 0,
25414
OPC_CheckPatternPredicate, 2,
25415
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TPsoft), 0,
25418
46, ARMISD::EH_SJLJ_SETJMP,
25420
OPC_CheckChild0Type, MVT::i32,
25422
OPC_CheckChild1Type, MVT::i32,
25423
OPC_CheckType, MVT::i32,
25425
OPC_CheckPatternPredicate, 5,
25426
OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_eh_sjlj_setjmp), 0,
25427
1, MVT::i32, 2, 0, 1,
25429
OPC_CheckPatternPredicate, 6,
25430
OPC_MorphNodeTo, TARGET_OPCODE(ARM::tInt_eh_sjlj_setjmp), 0,
25431
1, MVT::i32, 2, 0, 1,
25433
OPC_CheckPatternPredicate, 2,
25434
OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_eh_sjlj_setjmp), 0,
25435
1, MVT::i32, 2, 0, 1,
25440
OPC_CheckChild0Type, MVT::f64,
25442
OPC_CheckPatternPredicate, 8,
25443
OPC_EmitInteger, MVT::i32, 14,
25444
OPC_EmitRegister, MVT::i32, 0 ,
25445
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPED), 0|OPFL_FlagOutput,
25448
OPC_CheckChild0Type, MVT::f32,
25450
OPC_CheckPatternPredicate, 8,
25451
OPC_EmitInteger, MVT::i32, 14,
25452
OPC_EmitRegister, MVT::i32, 0 ,
25453
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPES), 0|OPFL_FlagOutput,
25459
OPC_SwitchType , 19, MVT::f64,
25460
OPC_CheckPatternPredicate, 8,
25461
OPC_EmitInteger, MVT::i32, 14,
25462
OPC_EmitRegister, MVT::i32, 0 ,
25463
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDIVD), 0,
25464
1, MVT::f64, 4, 0, 1, 2, 3,
25466
OPC_CheckPatternPredicate, 8,
25467
OPC_EmitInteger, MVT::i32, 14,
25468
OPC_EmitRegister, MVT::i32, 0 ,
25469
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDIVS), 0,
25470
1, MVT::f32, 4, 0, 1, 2, 3,
25474
OPC_SwitchType , 18, MVT::f64,
25475
OPC_CheckPatternPredicate, 8,
25476
OPC_EmitInteger, MVT::i32, 14,
25477
OPC_EmitRegister, MVT::i32, 0 ,
25478
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSD), 0,
25479
1, MVT::f64, 3, 0, 1, 2,
25482
OPC_CheckPatternPredicate, 10,
25483
OPC_EmitInteger, MVT::i32, 14,
25484
OPC_EmitRegister, MVT::i32, 0 ,
25485
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSS), 0,
25486
1, MVT::f32, 3, 0, 1, 2,
25488
OPC_CheckPatternPredicate, 11,
25489
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
25491
OPC_EmitInteger, MVT::i32, 1,
25492
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
25493
1, MVT::f64, 3, 1, 0, 2,
25494
OPC_EmitInteger, MVT::i32, 14,
25495
OPC_EmitRegister, MVT::i32, 0 ,
25496
OPC_EmitNode, TARGET_OPCODE(ARM::VABSfd_sfp), 0,
25497
1, MVT::f64, 3, 3, 4, 5,
25498
OPC_EmitInteger, MVT::i32, 1,
25499
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
25500
1, MVT::f32, 2, 6, 7,
25503
43, ARMISD::CMPFPw0,
25506
OPC_CheckChild0Type, MVT::f64,
25507
OPC_CheckPatternPredicate, 8,
25508
OPC_EmitInteger, MVT::i32, 14,
25509
OPC_EmitRegister, MVT::i32, 0 ,
25510
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPEZD), 0|OPFL_FlagOutput,
25513
OPC_CheckChild0Type, MVT::f32,
25514
OPC_CheckPatternPredicate, 8,
25515
OPC_EmitInteger, MVT::i32, 14,
25516
OPC_EmitRegister, MVT::i32, 0 ,
25517
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPEZS), 0|OPFL_FlagOutput,
25520
23, ISD::FP_EXTEND,
25522
OPC_CheckChild0Type, MVT::f32,
25523
OPC_CheckType, MVT::f64,
25524
OPC_CheckPatternPredicate, 8,
25525
OPC_EmitInteger, MVT::i32, 14,
25526
OPC_EmitRegister, MVT::i32, 0 ,
25527
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTDS), 0,
25528
1, MVT::f64, 3, 0, 1, 2,
25531
OPC_CheckChild0Type, MVT::f64,
25532
OPC_CheckType, MVT::f32,
25533
OPC_CheckPatternPredicate, 8,
25534
OPC_EmitInteger, MVT::i32, 14,
25535
OPC_EmitRegister, MVT::i32, 0 ,
25536
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTSD), 0,
25537
1, MVT::f32, 3, 0, 1, 2,
25540
OPC_SwitchType , 18, MVT::f64,
25541
OPC_CheckPatternPredicate, 8,
25542
OPC_EmitInteger, MVT::i32, 14,
25543
OPC_EmitRegister, MVT::i32, 0 ,
25544
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSQRTD), 0,
25545
1, MVT::f64, 3, 0, 1, 2,
25547
OPC_CheckPatternPredicate, 8,
25548
OPC_EmitInteger, MVT::i32, 14,
25549
OPC_EmitRegister, MVT::i32, 0 ,
25550
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSQRTS), 0,
25551
1, MVT::f32, 3, 0, 1, 2,
25553
21, ARMISD::VMOVDRR,
25556
OPC_CheckPatternPredicate, 8,
25557
OPC_EmitInteger, MVT::i32, 14,
25558
OPC_EmitRegister, MVT::i32, 0 ,
25559
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVDRR), 0,
25560
1, MVT::f64, 4, 0, 1, 2, 3,
25563
OPC_SwitchType , 18, MVT::f64,
25564
OPC_CheckPatternPredicate, 8,
25565
OPC_EmitInteger, MVT::i32, 14,
25566
OPC_EmitRegister, MVT::i32, 0 ,
25567
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSITOD), 0,
25568
1, MVT::f64, 3, 0, 1, 2,
25571
OPC_CheckPatternPredicate, 10,
25572
OPC_EmitInteger, MVT::i32, 14,
25573
OPC_EmitRegister, MVT::i32, 0 ,
25574
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSITOS), 0,
25575
1, MVT::f32, 3, 0, 1, 2,
25577
OPC_CheckPatternPredicate, 11,
25578
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
25580
OPC_EmitInteger, MVT::i32, 1,
25581
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
25582
1, MVT::f64, 3, 1, 0, 2,
25583
OPC_EmitInteger, MVT::i32, 14,
25584
OPC_EmitRegister, MVT::i32, 0 ,
25585
OPC_EmitNode, TARGET_OPCODE(ARM::VCVTs2fd_sfp), 0,
25586
1, MVT::f64, 3, 3, 4, 5,
25587
OPC_EmitInteger, MVT::i32, 1,
25588
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
25589
1, MVT::f32, 2, 6, 7,
25594
OPC_SwitchType , 18, MVT::f64,
25595
OPC_CheckPatternPredicate, 8,
25596
OPC_EmitInteger, MVT::i32, 14,
25597
OPC_EmitRegister, MVT::i32, 0 ,
25598
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VUITOD), 0,
25599
1, MVT::f64, 3, 0, 1, 2,
25602
OPC_CheckPatternPredicate, 10,
25603
OPC_EmitInteger, MVT::i32, 14,
25604
OPC_EmitRegister, MVT::i32, 0 ,
25605
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VUITOS), 0,
25606
1, MVT::f32, 3, 0, 1, 2,
25608
OPC_CheckPatternPredicate, 11,
25609
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
25611
OPC_EmitInteger, MVT::i32, 1,
25612
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
25613
1, MVT::f64, 3, 1, 0, 2,
25614
OPC_EmitInteger, MVT::i32, 14,
25615
OPC_EmitRegister, MVT::i32, 0 ,
25616
OPC_EmitNode, TARGET_OPCODE(ARM::VCVTu2fd_sfp), 0,
25617
1, MVT::f64, 3, 3, 4, 5,
25618
OPC_EmitInteger, MVT::i32, 1,
25619
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
25620
1, MVT::f32, 2, 6, 7,
25626
OPC_CheckChild0Type, MVT::f64,
25627
OPC_CheckPatternPredicate, 8,
25628
OPC_EmitInteger, MVT::i32, 14,
25629
OPC_EmitRegister, MVT::i32, 0 ,
25630
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOSIZD), 0,
25631
1, MVT::f32, 3, 0, 1, 2,
25633
OPC_CheckChild0Type, MVT::f32,
25635
OPC_CheckPatternPredicate, 10,
25636
OPC_EmitInteger, MVT::i32, 14,
25637
OPC_EmitRegister, MVT::i32, 0 ,
25638
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOSIZS), 0,
25639
1, MVT::f32, 3, 0, 1, 2,
25641
OPC_CheckPatternPredicate, 11,
25642
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
25644
OPC_EmitInteger, MVT::i32, 1,
25645
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
25646
1, MVT::f64, 3, 1, 0, 2,
25647
OPC_EmitInteger, MVT::i32, 14,
25648
OPC_EmitRegister, MVT::i32, 0 ,
25649
OPC_EmitNode, TARGET_OPCODE(ARM::VCVTf2sd_sfp), 0,
25650
1, MVT::f64, 3, 3, 4, 5,
25651
OPC_EmitInteger, MVT::i32, 1,
25652
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
25653
1, MVT::f32, 2, 6, 7,
25659
OPC_CheckChild0Type, MVT::f64,
25660
OPC_CheckPatternPredicate, 8,
25661
OPC_EmitInteger, MVT::i32, 14,
25662
OPC_EmitRegister, MVT::i32, 0 ,
25663
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOUIZD), 0,
25664
1, MVT::f32, 3, 0, 1, 2,
25666
OPC_CheckChild0Type, MVT::f32,
25668
OPC_CheckPatternPredicate, 10,
25669
OPC_EmitInteger, MVT::i32, 14,
25670
OPC_EmitRegister, MVT::i32, 0 ,
25671
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOUIZS), 0,
25672
1, MVT::f32, 3, 0, 1, 2,
25674
OPC_CheckPatternPredicate, 11,
25675
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
25677
OPC_EmitInteger, MVT::i32, 1,
25678
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
25679
1, MVT::f64, 3, 1, 0, 2,
25680
OPC_EmitInteger, MVT::i32, 14,
25681
OPC_EmitRegister, MVT::i32, 0 ,
25682
OPC_EmitNode, TARGET_OPCODE(ARM::VCVTf2ud_sfp), 0,
25683
1, MVT::f64, 3, 3, 4, 5,
25684
OPC_EmitInteger, MVT::i32, 1,
25685
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
25686
1, MVT::f32, 2, 6, 7,
25689
17, ARMISD::FMSTAT,
25690
OPC_CaptureFlagInput,
25691
OPC_CheckPatternPredicate, 8,
25692
OPC_EmitInteger, MVT::i32, 14,
25693
OPC_EmitRegister, MVT::i32, 0 ,
25694
OPC_MorphNodeTo, TARGET_OPCODE(ARM::FMSTAT), 0|OPFL_FlagInput|OPFL_FlagOutput,
25696
75|128,1, ARMISD::VCEQ,
25699
OPC_CheckChild0Type, MVT::v8i8,
25701
OPC_CheckType, MVT::v8i8,
25702
OPC_CheckPatternPredicate, 3,
25703
OPC_EmitInteger, MVT::i32, 14,
25704
OPC_EmitRegister, MVT::i32, 0 ,
25705
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv8i8), 0,
25706
1, MVT::v8i8, 4, 0, 1, 2, 3,
25708
OPC_CheckChild0Type, MVT::v4i16,
25710
OPC_CheckType, MVT::v4i16,
25711
OPC_CheckPatternPredicate, 3,
25712
OPC_EmitInteger, MVT::i32, 14,
25713
OPC_EmitRegister, MVT::i32, 0 ,
25714
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv4i16), 0,
25715
1, MVT::v4i16, 4, 0, 1, 2, 3,
25717
OPC_CheckChild0Type, MVT::v2i32,
25719
OPC_CheckType, MVT::v2i32,
25720
OPC_CheckPatternPredicate, 3,
25721
OPC_EmitInteger, MVT::i32, 14,
25722
OPC_EmitRegister, MVT::i32, 0 ,
25723
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv2i32), 0,
25724
1, MVT::v2i32, 4, 0, 1, 2, 3,
25726
OPC_CheckChild0Type, MVT::v16i8,
25728
OPC_CheckType, MVT::v16i8,
25729
OPC_CheckPatternPredicate, 3,
25730
OPC_EmitInteger, MVT::i32, 14,
25731
OPC_EmitRegister, MVT::i32, 0 ,
25732
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv16i8), 0,
25733
1, MVT::v16i8, 4, 0, 1, 2, 3,
25735
OPC_CheckChild0Type, MVT::v8i16,
25737
OPC_CheckType, MVT::v8i16,
25738
OPC_CheckPatternPredicate, 3,
25739
OPC_EmitInteger, MVT::i32, 14,
25740
OPC_EmitRegister, MVT::i32, 0 ,
25741
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv8i16), 0,
25742
1, MVT::v8i16, 4, 0, 1, 2, 3,
25744
OPC_CheckChild0Type, MVT::v4i32,
25746
OPC_CheckType, MVT::v4i32,
25747
OPC_CheckPatternPredicate, 3,
25748
OPC_EmitInteger, MVT::i32, 14,
25749
OPC_EmitRegister, MVT::i32, 0 ,
25750
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv4i32), 0,
25751
1, MVT::v4i32, 4, 0, 1, 2, 3,
25753
OPC_CheckChild0Type, MVT::v2f32,
25755
OPC_CheckType, MVT::v2i32,
25756
OPC_CheckPatternPredicate, 3,
25757
OPC_EmitInteger, MVT::i32, 14,
25758
OPC_EmitRegister, MVT::i32, 0 ,
25759
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQfd), 0,
25760
1, MVT::v2i32, 4, 0, 1, 2, 3,
25762
OPC_CheckChild0Type, MVT::v4f32,
25764
OPC_CheckType, MVT::v4i32,
25765
OPC_CheckPatternPredicate, 3,
25766
OPC_EmitInteger, MVT::i32, 14,
25767
OPC_EmitRegister, MVT::i32, 0 ,
25768
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQfq), 0,
25769
1, MVT::v4i32, 4, 0, 1, 2, 3,
25771
75|128,1, ARMISD::VCGE,
25774
OPC_CheckChild0Type, MVT::v8i8,
25776
OPC_CheckType, MVT::v8i8,
25777
OPC_CheckPatternPredicate, 3,
25778
OPC_EmitInteger, MVT::i32, 14,
25779
OPC_EmitRegister, MVT::i32, 0 ,
25780
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv8i8), 0,
25781
1, MVT::v8i8, 4, 0, 1, 2, 3,
25783
OPC_CheckChild0Type, MVT::v4i16,
25785
OPC_CheckType, MVT::v4i16,
25786
OPC_CheckPatternPredicate, 3,
25787
OPC_EmitInteger, MVT::i32, 14,
25788
OPC_EmitRegister, MVT::i32, 0 ,
25789
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv4i16), 0,
25790
1, MVT::v4i16, 4, 0, 1, 2, 3,
25792
OPC_CheckChild0Type, MVT::v2i32,
25794
OPC_CheckType, MVT::v2i32,
25795
OPC_CheckPatternPredicate, 3,
25796
OPC_EmitInteger, MVT::i32, 14,
25797
OPC_EmitRegister, MVT::i32, 0 ,
25798
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv2i32), 0,
25799
1, MVT::v2i32, 4, 0, 1, 2, 3,
25801
OPC_CheckChild0Type, MVT::v16i8,
25803
OPC_CheckType, MVT::v16i8,
25804
OPC_CheckPatternPredicate, 3,
25805
OPC_EmitInteger, MVT::i32, 14,
25806
OPC_EmitRegister, MVT::i32, 0 ,
25807
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv16i8), 0,
25808
1, MVT::v16i8, 4, 0, 1, 2, 3,
25810
OPC_CheckChild0Type, MVT::v8i16,
25812
OPC_CheckType, MVT::v8i16,
25813
OPC_CheckPatternPredicate, 3,
25814
OPC_EmitInteger, MVT::i32, 14,
25815
OPC_EmitRegister, MVT::i32, 0 ,
25816
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv8i16), 0,
25817
1, MVT::v8i16, 4, 0, 1, 2, 3,
25819
OPC_CheckChild0Type, MVT::v4i32,
25821
OPC_CheckType, MVT::v4i32,
25822
OPC_CheckPatternPredicate, 3,
25823
OPC_EmitInteger, MVT::i32, 14,
25824
OPC_EmitRegister, MVT::i32, 0 ,
25825
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv4i32), 0,
25826
1, MVT::v4i32, 4, 0, 1, 2, 3,
25828
OPC_CheckChild0Type, MVT::v2f32,
25830
OPC_CheckType, MVT::v2i32,
25831
OPC_CheckPatternPredicate, 3,
25832
OPC_EmitInteger, MVT::i32, 14,
25833
OPC_EmitRegister, MVT::i32, 0 ,
25834
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEfd), 0,
25835
1, MVT::v2i32, 4, 0, 1, 2, 3,
25837
OPC_CheckChild0Type, MVT::v4f32,
25839
OPC_CheckType, MVT::v4i32,
25840
OPC_CheckPatternPredicate, 3,
25841
OPC_EmitInteger, MVT::i32, 14,
25842
OPC_EmitRegister, MVT::i32, 0 ,
25843
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEfq), 0,
25844
1, MVT::v4i32, 4, 0, 1, 2, 3,
25846
25|128,1, ARMISD::VCGEU,
25849
OPC_CheckChild0Type, MVT::v8i8,
25851
OPC_CheckType, MVT::v8i8,
25852
OPC_CheckPatternPredicate, 3,
25853
OPC_EmitInteger, MVT::i32, 14,
25854
OPC_EmitRegister, MVT::i32, 0 ,
25855
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv8i8), 0,
25856
1, MVT::v8i8, 4, 0, 1, 2, 3,
25858
OPC_CheckChild0Type, MVT::v4i16,
25860
OPC_CheckType, MVT::v4i16,
25861
OPC_CheckPatternPredicate, 3,
25862
OPC_EmitInteger, MVT::i32, 14,
25863
OPC_EmitRegister, MVT::i32, 0 ,
25864
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv4i16), 0,
25865
1, MVT::v4i16, 4, 0, 1, 2, 3,
25867
OPC_CheckChild0Type, MVT::v2i32,
25869
OPC_CheckType, MVT::v2i32,
25870
OPC_CheckPatternPredicate, 3,
25871
OPC_EmitInteger, MVT::i32, 14,
25872
OPC_EmitRegister, MVT::i32, 0 ,
25873
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv2i32), 0,
25874
1, MVT::v2i32, 4, 0, 1, 2, 3,
25876
OPC_CheckChild0Type, MVT::v16i8,
25878
OPC_CheckType, MVT::v16i8,
25879
OPC_CheckPatternPredicate, 3,
25880
OPC_EmitInteger, MVT::i32, 14,
25881
OPC_EmitRegister, MVT::i32, 0 ,
25882
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv16i8), 0,
25883
1, MVT::v16i8, 4, 0, 1, 2, 3,
25885
OPC_CheckChild0Type, MVT::v8i16,
25887
OPC_CheckType, MVT::v8i16,
25888
OPC_CheckPatternPredicate, 3,
25889
OPC_EmitInteger, MVT::i32, 14,
25890
OPC_EmitRegister, MVT::i32, 0 ,
25891
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv8i16), 0,
25892
1, MVT::v8i16, 4, 0, 1, 2, 3,
25894
OPC_CheckChild0Type, MVT::v4i32,
25896
OPC_CheckType, MVT::v4i32,
25897
OPC_CheckPatternPredicate, 3,
25898
OPC_EmitInteger, MVT::i32, 14,
25899
OPC_EmitRegister, MVT::i32, 0 ,
25900
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv4i32), 0,
25901
1, MVT::v4i32, 4, 0, 1, 2, 3,
25903
75|128,1, ARMISD::VCGT,
25906
OPC_CheckChild0Type, MVT::v8i8,
25908
OPC_CheckType, MVT::v8i8,
25909
OPC_CheckPatternPredicate, 3,
25910
OPC_EmitInteger, MVT::i32, 14,
25911
OPC_EmitRegister, MVT::i32, 0 ,
25912
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv8i8), 0,
25913
1, MVT::v8i8, 4, 0, 1, 2, 3,
25915
OPC_CheckChild0Type, MVT::v4i16,
25917
OPC_CheckType, MVT::v4i16,
25918
OPC_CheckPatternPredicate, 3,
25919
OPC_EmitInteger, MVT::i32, 14,
25920
OPC_EmitRegister, MVT::i32, 0 ,
25921
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv4i16), 0,
25922
1, MVT::v4i16, 4, 0, 1, 2, 3,
25924
OPC_CheckChild0Type, MVT::v2i32,
25926
OPC_CheckType, MVT::v2i32,
25927
OPC_CheckPatternPredicate, 3,
25928
OPC_EmitInteger, MVT::i32, 14,
25929
OPC_EmitRegister, MVT::i32, 0 ,
25930
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv2i32), 0,
25931
1, MVT::v2i32, 4, 0, 1, 2, 3,
25933
OPC_CheckChild0Type, MVT::v16i8,
25935
OPC_CheckType, MVT::v16i8,
25936
OPC_CheckPatternPredicate, 3,
25937
OPC_EmitInteger, MVT::i32, 14,
25938
OPC_EmitRegister, MVT::i32, 0 ,
25939
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv16i8), 0,
25940
1, MVT::v16i8, 4, 0, 1, 2, 3,
25942
OPC_CheckChild0Type, MVT::v8i16,
25944
OPC_CheckType, MVT::v8i16,
25945
OPC_CheckPatternPredicate, 3,
25946
OPC_EmitInteger, MVT::i32, 14,
25947
OPC_EmitRegister, MVT::i32, 0 ,
25948
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv8i16), 0,
25949
1, MVT::v8i16, 4, 0, 1, 2, 3,
25951
OPC_CheckChild0Type, MVT::v4i32,
25953
OPC_CheckType, MVT::v4i32,
25954
OPC_CheckPatternPredicate, 3,
25955
OPC_EmitInteger, MVT::i32, 14,
25956
OPC_EmitRegister, MVT::i32, 0 ,
25957
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv4i32), 0,
25958
1, MVT::v4i32, 4, 0, 1, 2, 3,
25960
OPC_CheckChild0Type, MVT::v2f32,
25962
OPC_CheckType, MVT::v2i32,
25963
OPC_CheckPatternPredicate, 3,
25964
OPC_EmitInteger, MVT::i32, 14,
25965
OPC_EmitRegister, MVT::i32, 0 ,
25966
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTfd), 0,
25967
1, MVT::v2i32, 4, 0, 1, 2, 3,
25969
OPC_CheckChild0Type, MVT::v4f32,
25971
OPC_CheckType, MVT::v4i32,
25972
OPC_CheckPatternPredicate, 3,
25973
OPC_EmitInteger, MVT::i32, 14,
25974
OPC_EmitRegister, MVT::i32, 0 ,
25975
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTfq), 0,
25976
1, MVT::v4i32, 4, 0, 1, 2, 3,
25978
25|128,1, ARMISD::VCGTU,
25981
OPC_CheckChild0Type, MVT::v8i8,
25983
OPC_CheckType, MVT::v8i8,
25984
OPC_CheckPatternPredicate, 3,
25985
OPC_EmitInteger, MVT::i32, 14,
25986
OPC_EmitRegister, MVT::i32, 0 ,
25987
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv8i8), 0,
25988
1, MVT::v8i8, 4, 0, 1, 2, 3,
25990
OPC_CheckChild0Type, MVT::v4i16,
25992
OPC_CheckType, MVT::v4i16,
25993
OPC_CheckPatternPredicate, 3,
25994
OPC_EmitInteger, MVT::i32, 14,
25995
OPC_EmitRegister, MVT::i32, 0 ,
25996
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv4i16), 0,
25997
1, MVT::v4i16, 4, 0, 1, 2, 3,
25999
OPC_CheckChild0Type, MVT::v2i32,
26001
OPC_CheckType, MVT::v2i32,
26002
OPC_CheckPatternPredicate, 3,
26003
OPC_EmitInteger, MVT::i32, 14,
26004
OPC_EmitRegister, MVT::i32, 0 ,
26005
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv2i32), 0,
26006
1, MVT::v2i32, 4, 0, 1, 2, 3,
26008
OPC_CheckChild0Type, MVT::v16i8,
26010
OPC_CheckType, MVT::v16i8,
26011
OPC_CheckPatternPredicate, 3,
26012
OPC_EmitInteger, MVT::i32, 14,
26013
OPC_EmitRegister, MVT::i32, 0 ,
26014
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv16i8), 0,
26015
1, MVT::v16i8, 4, 0, 1, 2, 3,
26017
OPC_CheckChild0Type, MVT::v8i16,
26019
OPC_CheckType, MVT::v8i16,
26020
OPC_CheckPatternPredicate, 3,
26021
OPC_EmitInteger, MVT::i32, 14,
26022
OPC_EmitRegister, MVT::i32, 0 ,
26023
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv8i16), 0,
26024
1, MVT::v8i16, 4, 0, 1, 2, 3,
26026
OPC_CheckChild0Type, MVT::v4i32,
26028
OPC_CheckType, MVT::v4i32,
26029
OPC_CheckPatternPredicate, 3,
26030
OPC_EmitInteger, MVT::i32, 14,
26031
OPC_EmitRegister, MVT::i32, 0 ,
26032
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv4i32), 0,
26033
1, MVT::v4i32, 4, 0, 1, 2, 3,
26035
25|128,1, ARMISD::VTST,
26038
OPC_CheckChild0Type, MVT::v8i8,
26040
OPC_CheckType, MVT::v8i8,
26041
OPC_CheckPatternPredicate, 3,
26042
OPC_EmitInteger, MVT::i32, 14,
26043
OPC_EmitRegister, MVT::i32, 0 ,
26044
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv8i8), 0,
26045
1, MVT::v8i8, 4, 0, 1, 2, 3,
26047
OPC_CheckChild0Type, MVT::v4i16,
26049
OPC_CheckType, MVT::v4i16,
26050
OPC_CheckPatternPredicate, 3,
26051
OPC_EmitInteger, MVT::i32, 14,
26052
OPC_EmitRegister, MVT::i32, 0 ,
26053
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv4i16), 0,
26054
1, MVT::v4i16, 4, 0, 1, 2, 3,
26056
OPC_CheckChild0Type, MVT::v2i32,
26058
OPC_CheckType, MVT::v2i32,
26059
OPC_CheckPatternPredicate, 3,
26060
OPC_EmitInteger, MVT::i32, 14,
26061
OPC_EmitRegister, MVT::i32, 0 ,
26062
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv2i32), 0,
26063
1, MVT::v2i32, 4, 0, 1, 2, 3,
26065
OPC_CheckChild0Type, MVT::v16i8,
26067
OPC_CheckType, MVT::v16i8,
26068
OPC_CheckPatternPredicate, 3,
26069
OPC_EmitInteger, MVT::i32, 14,
26070
OPC_EmitRegister, MVT::i32, 0 ,
26071
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv16i8), 0,
26072
1, MVT::v16i8, 4, 0, 1, 2, 3,
26074
OPC_CheckChild0Type, MVT::v8i16,
26076
OPC_CheckType, MVT::v8i16,
26077
OPC_CheckPatternPredicate, 3,
26078
OPC_EmitInteger, MVT::i32, 14,
26079
OPC_EmitRegister, MVT::i32, 0 ,
26080
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv8i16), 0,
26081
1, MVT::v8i16, 4, 0, 1, 2, 3,
26083
OPC_CheckChild0Type, MVT::v4i32,
26085
OPC_CheckType, MVT::v4i32,
26086
OPC_CheckPatternPredicate, 3,
26087
OPC_EmitInteger, MVT::i32, 14,
26088
OPC_EmitRegister, MVT::i32, 0 ,
26089
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv4i32), 0,
26090
1, MVT::v4i32, 4, 0, 1, 2, 3,
26092
49, ISD::FP_TO_SINT,
26095
OPC_CheckChild0Type, MVT::v2f32,
26096
OPC_CheckType, MVT::v2i32,
26097
OPC_CheckPatternPredicate, 3,
26098
OPC_EmitInteger, MVT::i32, 14,
26099
OPC_EmitRegister, MVT::i32, 0 ,
26100
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2sd), 0,
26101
1, MVT::v2i32, 3, 0, 1, 2,
26103
OPC_CheckChild0Type, MVT::v4f32,
26104
OPC_CheckType, MVT::v4i32,
26105
OPC_CheckPatternPredicate, 3,
26106
OPC_EmitInteger, MVT::i32, 14,
26107
OPC_EmitRegister, MVT::i32, 0 ,
26108
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2sq), 0,
26109
1, MVT::v4i32, 3, 0, 1, 2,
26111
49, ISD::FP_TO_UINT,
26114
OPC_CheckChild0Type, MVT::v2f32,
26115
OPC_CheckType, MVT::v2i32,
26116
OPC_CheckPatternPredicate, 3,
26117
OPC_EmitInteger, MVT::i32, 14,
26118
OPC_EmitRegister, MVT::i32, 0 ,
26119
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2ud), 0,
26120
1, MVT::v2i32, 3, 0, 1, 2,
26122
OPC_CheckChild0Type, MVT::v4f32,
26123
OPC_CheckType, MVT::v4i32,
26124
OPC_CheckPatternPredicate, 3,
26125
OPC_EmitInteger, MVT::i32, 14,
26126
OPC_EmitRegister, MVT::i32, 0 ,
26127
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2uq), 0,
26128
1, MVT::v4i32, 3, 0, 1, 2,
26130
49, ISD::SINT_TO_FP,
26133
OPC_CheckChild0Type, MVT::v2i32,
26134
OPC_CheckType, MVT::v2f32,
26135
OPC_CheckPatternPredicate, 3,
26136
OPC_EmitInteger, MVT::i32, 14,
26137
OPC_EmitRegister, MVT::i32, 0 ,
26138
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTs2fd), 0,
26139
1, MVT::v2f32, 3, 0, 1, 2,
26141
OPC_CheckChild0Type, MVT::v4i32,
26142
OPC_CheckType, MVT::v4f32,
26143
OPC_CheckPatternPredicate, 3,
26144
OPC_EmitInteger, MVT::i32, 14,
26145
OPC_EmitRegister, MVT::i32, 0 ,
26146
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTs2fq), 0,
26147
1, MVT::v4f32, 3, 0, 1, 2,
26149
49, ISD::UINT_TO_FP,
26152
OPC_CheckChild0Type, MVT::v2i32,
26153
OPC_CheckType, MVT::v2f32,
26154
OPC_CheckPatternPredicate, 3,
26155
OPC_EmitInteger, MVT::i32, 14,
26156
OPC_EmitRegister, MVT::i32, 0 ,
26157
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTu2fd), 0,
26158
1, MVT::v2f32, 3, 0, 1, 2,
26160
OPC_CheckChild0Type, MVT::v4i32,
26161
OPC_CheckType, MVT::v4f32,
26162
OPC_CheckPatternPredicate, 3,
26163
OPC_EmitInteger, MVT::i32, 14,
26164
OPC_EmitRegister, MVT::i32, 0 ,
26165
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTu2fq), 0,
26166
1, MVT::v4f32, 3, 0, 1, 2,
26168
35|128,1, ARMISD::VREV64,
26170
OPC_SwitchType , 18, MVT::v8i8,
26171
OPC_CheckPatternPredicate, 3,
26172
OPC_EmitInteger, MVT::i32, 14,
26173
OPC_EmitRegister, MVT::i32, 0 ,
26174
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d8), 0,
26175
1, MVT::v8i8, 3, 0, 1, 2,
26177
OPC_CheckPatternPredicate, 3,
26178
OPC_EmitInteger, MVT::i32, 14,
26179
OPC_EmitRegister, MVT::i32, 0 ,
26180
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d16), 0,
26181
1, MVT::v4i16, 3, 0, 1, 2,
26183
OPC_CheckPatternPredicate, 3,
26184
OPC_EmitInteger, MVT::i32, 14,
26185
OPC_EmitRegister, MVT::i32, 0 ,
26186
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d32), 0,
26187
1, MVT::v2i32, 3, 0, 1, 2,
26189
OPC_CheckPatternPredicate, 3,
26190
OPC_EmitInteger, MVT::i32, 14,
26191
OPC_EmitRegister, MVT::i32, 0 ,
26192
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64df), 0,
26193
1, MVT::v2f32, 3, 0, 1, 2,
26195
OPC_CheckPatternPredicate, 3,
26196
OPC_EmitInteger, MVT::i32, 14,
26197
OPC_EmitRegister, MVT::i32, 0 ,
26198
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q8), 0,
26199
1, MVT::v16i8, 3, 0, 1, 2,
26201
OPC_CheckPatternPredicate, 3,
26202
OPC_EmitInteger, MVT::i32, 14,
26203
OPC_EmitRegister, MVT::i32, 0 ,
26204
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q16), 0,
26205
1, MVT::v8i16, 3, 0, 1, 2,
26207
OPC_CheckPatternPredicate, 3,
26208
OPC_EmitInteger, MVT::i32, 14,
26209
OPC_EmitRegister, MVT::i32, 0 ,
26210
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q32), 0,
26211
1, MVT::v4i32, 3, 0, 1, 2,
26213
OPC_CheckPatternPredicate, 3,
26214
OPC_EmitInteger, MVT::i32, 14,
26215
OPC_EmitRegister, MVT::i32, 0 ,
26216
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64qf), 0,
26217
1, MVT::v4f32, 3, 0, 1, 2,
26219
83, ARMISD::VREV32,
26221
OPC_SwitchType , 18, MVT::v8i8,
26222
OPC_CheckPatternPredicate, 3,
26223
OPC_EmitInteger, MVT::i32, 14,
26224
OPC_EmitRegister, MVT::i32, 0 ,
26225
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32d8), 0,
26226
1, MVT::v8i8, 3, 0, 1, 2,
26228
OPC_CheckPatternPredicate, 3,
26229
OPC_EmitInteger, MVT::i32, 14,
26230
OPC_EmitRegister, MVT::i32, 0 ,
26231
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32d16), 0,
26232
1, MVT::v4i16, 3, 0, 1, 2,
26234
OPC_CheckPatternPredicate, 3,
26235
OPC_EmitInteger, MVT::i32, 14,
26236
OPC_EmitRegister, MVT::i32, 0 ,
26237
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32q8), 0,
26238
1, MVT::v16i8, 3, 0, 1, 2,
26240
OPC_CheckPatternPredicate, 3,
26241
OPC_EmitInteger, MVT::i32, 14,
26242
OPC_EmitRegister, MVT::i32, 0 ,
26243
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32q16), 0,
26244
1, MVT::v8i16, 3, 0, 1, 2,
26246
43, ARMISD::VREV16,
26248
OPC_SwitchType , 18, MVT::v8i8,
26249
OPC_CheckPatternPredicate, 3,
26250
OPC_EmitInteger, MVT::i32, 14,
26251
OPC_EmitRegister, MVT::i32, 0 ,
26252
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV16d8), 0,
26253
1, MVT::v8i8, 3, 0, 1, 2,
26255
OPC_CheckPatternPredicate, 3,
26256
OPC_EmitInteger, MVT::i32, 14,
26257
OPC_EmitRegister, MVT::i32, 0 ,
26258
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV16q8), 0,
26259
1, MVT::v16i8, 3, 0, 1, 2,
26261
67|128,2, ISD::SCALAR_TO_VECTOR,
26264
OPC_CheckChild0Type, MVT::f32,
26265
OPC_SwitchType , 20, MVT::v2f32,
26266
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26268
OPC_EmitInteger, MVT::i32, 1,
26269
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26270
1, MVT::v2f32, 3, 1, 0, 2,
26272
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26274
OPC_EmitInteger, MVT::i32, 1,
26275
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26276
1, MVT::v4f32, 3, 1, 0, 2,
26279
OPC_CheckChild0Type, MVT::f64,
26280
OPC_CheckType, MVT::v2f64,
26281
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26283
OPC_EmitInteger, MVT::i32, 5,
26284
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26285
1, MVT::v2f64, 3, 1, 0, 2,
26287
OPC_CheckChild0Type, MVT::i32,
26288
OPC_SwitchType , 28, MVT::v8i8,
26289
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26291
OPC_EmitInteger, MVT::i32, 0,
26292
OPC_EmitInteger, MVT::i32, 14,
26293
OPC_EmitRegister, MVT::i32, 0 ,
26294
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi8), 0,
26295
1, MVT::v8i8, 5, 1, 0, 2, 3, 4,
26297
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26299
OPC_EmitInteger, MVT::i32, 0,
26300
OPC_EmitInteger, MVT::i32, 14,
26301
OPC_EmitRegister, MVT::i32, 0 ,
26302
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi16), 0,
26303
1, MVT::v4i16, 5, 1, 0, 2, 3, 4,
26305
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26307
OPC_EmitInteger, MVT::i32, 0,
26308
OPC_EmitInteger, MVT::i32, 14,
26309
OPC_EmitRegister, MVT::i32, 0 ,
26310
OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi32), 0,
26311
1, MVT::v2i32, 5, 1, 0, 2, 3, 4,
26313
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26315
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26317
OPC_EmitInteger, MVT::i32, 0,
26318
OPC_EmitInteger, MVT::i32, 14,
26319
OPC_EmitRegister, MVT::i32, 0 ,
26320
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi8), 0,
26321
1, MVT::f64, 5, 2, 0, 3, 4, 5,
26322
OPC_EmitInteger, MVT::i32, 5,
26323
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26324
1, MVT::v16i8, 3, 1, 6, 7,
26326
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26328
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26330
OPC_EmitInteger, MVT::i32, 0,
26331
OPC_EmitInteger, MVT::i32, 14,
26332
OPC_EmitRegister, MVT::i32, 0 ,
26333
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi16), 0,
26334
1, MVT::f64, 5, 2, 0, 3, 4, 5,
26335
OPC_EmitInteger, MVT::i32, 5,
26336
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26337
1, MVT::v8i16, 3, 1, 6, 7,
26339
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26341
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26343
OPC_EmitInteger, MVT::i32, 0,
26344
OPC_EmitInteger, MVT::i32, 14,
26345
OPC_EmitRegister, MVT::i32, 0 ,
26346
OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi32), 0,
26347
1, MVT::f64, 5, 2, 0, 3, 4, 5,
26348
OPC_EmitInteger, MVT::i32, 5,
26349
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26350
1, MVT::v4i32, 3, 1, 6, 7,
26356
OPC_CheckPatternPredicate, 11,
26357
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26359
OPC_EmitInteger, MVT::i32, 1,
26360
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26361
1, MVT::f64, 3, 2, 0, 3,
26362
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26364
OPC_EmitInteger, MVT::i32, 1,
26365
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26366
1, MVT::f64, 3, 5, 1, 6,
26367
OPC_EmitInteger, MVT::i32, 14,
26368
OPC_EmitRegister, MVT::i32, 0 ,
26369
OPC_EmitNode, TARGET_OPCODE(ARM::VMAXfd_sfp), 0,
26370
1, MVT::f64, 4, 4, 7, 8, 9,
26371
OPC_EmitInteger, MVT::i32, 1,
26372
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
26373
1, MVT::f32, 2, 10, 11,
26377
OPC_CheckPatternPredicate, 11,
26378
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26380
OPC_EmitInteger, MVT::i32, 1,
26381
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26382
1, MVT::f64, 3, 2, 0, 3,
26383
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
26385
OPC_EmitInteger, MVT::i32, 1,
26386
OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
26387
1, MVT::f64, 3, 5, 1, 6,
26388
OPC_EmitInteger, MVT::i32, 14,
26389
OPC_EmitRegister, MVT::i32, 0 ,
26390
OPC_EmitNode, TARGET_OPCODE(ARM::VMINfd_sfp), 0,
26391
1, MVT::f64, 4, 4, 7, 8, 9,
26392
OPC_EmitInteger, MVT::i32, 1,
26393
OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
26394
1, MVT::f32, 2, 10, 11,
26397
}; // Total Array size is 63661 bytes
26399
#undef TARGET_OPCODE
26400
return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
26403
bool CheckPatternPredicate(unsigned PredNo) const {
26405
default: assert(0 && "Invalid predicate in table?");
26406
case 0: return (!Subtarget->isThumb()) && (Subtarget->hasV6Ops());
26407
case 1: return (Subtarget->isThumb1Only()) && (Subtarget->hasV6Ops());
26408
case 2: return (Subtarget->isThumb2());
26409
case 3: return (Subtarget->hasNEON());
26410
case 4: return (!Subtarget->isThumb()) && (Subtarget->hasV6T2Ops());
26411
case 5: return (!Subtarget->isThumb());
26412
case 6: return (Subtarget->isThumb1Only());
26413
case 7: return (!Subtarget->isThumb()) && (Subtarget->hasV5TEOps());
26414
case 8: return (Subtarget->hasVFP2());
26415
case 9: return (Subtarget->isThumb());
26416
case 10: return (Subtarget->hasVFP2()) && (!Subtarget->useNEONForSinglePrecisionFP());
26417
case 11: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
26418
case 12: return (!Subtarget->useNEONForSinglePrecisionFP());
26419
case 13: return (!HonorSignDependentRoundingFPMath());
26420
case 14: return (!Subtarget->isThumb()) && (!Subtarget->isTargetDarwin());
26421
case 15: return (!Subtarget->isThumb()) && (Subtarget->isTargetDarwin());
26422
case 16: return (Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (!Subtarget->isTargetDarwin());
26423
case 17: return (Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (Subtarget->isTargetDarwin());
26424
case 18: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (!Subtarget->isTargetDarwin());
26425
case 19: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (Subtarget->isTargetDarwin());
26426
case 20: return (!Subtarget->isThumb()) && (!Subtarget->useMovt());
26427
case 21: return (!Subtarget->isThumb()) && (Subtarget->useMovt());
26428
case 22: return (Subtarget->isThumb2()) && (!Subtarget->useMovt());
26429
case 23: return (Subtarget->isThumb2()) && (Subtarget->useMovt());
26430
case 24: return (Subtarget->isThumb()) && (!Subtarget->isTargetDarwin());
26431
case 25: return (Subtarget->isThumb()) && (Subtarget->isTargetDarwin());
26432
case 26: return (!Subtarget->isThumb()) && (!Subtarget->hasV6T2Ops());
26433
case 27: return (Subtarget->hasVFP3());
26434
case 28: return (Subtarget->isThumb1Only()) && (!Subtarget->isTargetDarwin());
26435
case 29: return (Subtarget->isThumb1Only()) && (Subtarget->isTargetDarwin());
26436
case 30: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps());
26437
case 31: return (!Subtarget->isThumb()) && (Subtarget->hasV7Ops());
26441
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
26443
default: assert(0 && "Invalid predicate in table?");
26444
case 0: { // Predicate_imm16_31
26445
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26447
return (int32_t)N->getZExtValue() >= 16 && (int32_t)N->getZExtValue() < 32;
26450
case 1: { // Predicate_imm1_15
26451
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26453
return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 16;
26456
case 2: { // Predicate_immAllOnesV_bc
26459
return ISD::isBuildVectorAllOnes(N);
26462
case 3: { // Predicate_lo16AllZero
26463
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26465
// Returns true if all low 16-bits are 0.
26466
return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0;
26469
case 4: { // Predicate_t2_so_imm
26470
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26472
return ARM_AM::getT2SOImmVal((uint32_t)N->getZExtValue()) != -1;
26475
case 5: { // Predicate_so_imm
26476
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26478
return ARM_AM::getSOImmVal(N->getZExtValue()) != -1;
26481
case 6: { // Predicate_t2_so_imm_not
26482
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26484
return ARM_AM::getT2SOImmVal(~((uint32_t)N->getZExtValue())) != -1;
26487
case 7: { // Predicate_so_imm2part
26488
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26490
return ARM_AM::isSOImmTwoPartVal((unsigned)N->getZExtValue());
26493
case 8: { // Predicate_t2_so_imm2part
26494
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26496
return ARM_AM::isT2SOImmTwoPartVal((unsigned)N->getZExtValue());
26499
case 9: { // Predicate_rot_imm
26500
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26502
int32_t v = (int32_t)N->getZExtValue();
26503
return v == 8 || v == 16 || v == 24;
26506
case 10: { // Predicate_sext_16_node
26509
return CurDAG->ComputeNumSignBits(SDValue(N,0)) >= 17;
26512
case 11: { // Predicate_imm0_255_neg
26513
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26515
return (uint32_t)(-N->getZExtValue()) < 255;
26518
case 12: { // Predicate_so_imm_neg
26519
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26521
return ARM_AM::getSOImmVal(-(int)N->getZExtValue()) != -1;
26524
case 13: { // Predicate_imm0_7
26525
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26527
return (uint32_t)N->getZExtValue() < 8;
26530
case 14: { // Predicate_imm8_255
26531
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26533
return (uint32_t)N->getZExtValue() >= 8 && (uint32_t)N->getZExtValue() < 256;
26536
case 15: { // Predicate_imm0_7_neg
26537
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26539
return (uint32_t)-N->getZExtValue() < 8;
26542
case 16: { // Predicate_imm8_255_neg
26543
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26545
unsigned Val = -N->getZExtValue();
26546
return Val >= 8 && Val < 256;
26549
case 17: { // Predicate_imm0_4095
26550
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26552
return (uint32_t)N->getZExtValue() < 4096;
26555
case 18: { // Predicate_t2_so_imm_neg
26556
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26558
return ARM_AM::getT2SOImmVal(-((int)N->getZExtValue())) != -1;
26561
case 19: { // Predicate_imm0_4095_neg
26562
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26564
return (uint32_t)(-N->getZExtValue()) < 4096;
26567
case 20: { // Predicate_so_neg_imm2part
26568
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26570
return ARM_AM::isSOImmTwoPartVal(-(int)N->getZExtValue());
26573
case 21: { // Predicate_t2_so_neg_imm2part
26574
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26576
return ARM_AM::isT2SOImmTwoPartVal(-(int)N->getZExtValue());
26579
case 22: { // Predicate_bf_inv_mask_imm
26580
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26582
uint32_t v = (uint32_t)N->getZExtValue();
26583
if (v == 0xffffffff)
26585
// there can be 1's on either or both "outsides", all the "inside"
26586
// bits must be 0's
26587
unsigned int lsb = 0, msb = 31;
26588
while (v & (1 << msb)) --msb;
26589
while (v & (1 << lsb)) ++lsb;
26590
for (unsigned int i = lsb; i <= msb; ++i) {
26597
case 23: { // Predicate_so_imm_not
26598
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26600
return ARM_AM::getSOImmVal(~(int)N->getZExtValue()) != -1;
26603
case 24: { // Predicate_imm1_31
26604
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26606
return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 32;
26609
case 25: { // Predicate_unindexedload
26612
return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
26615
case 26: { // Predicate_load
26618
return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
26621
case 27: { // Predicate_zextload
26624
return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
26627
case 28: { // Predicate_zextloadi16
26630
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
26633
case 29: { // Predicate_zextloadi8
26636
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
26639
case 30: { // Predicate_sextload
26642
return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
26645
case 31: { // Predicate_sextloadi16
26648
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
26651
case 32: { // Predicate_sextloadi8
26654
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
26657
case 33: { // Predicate_zextloadi1
26660
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
26663
case 34: { // Predicate_extload
26666
return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
26669
case 35: { // Predicate_extloadi1
26672
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
26675
case 36: { // Predicate_extloadi8
26678
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
26681
case 37: { // Predicate_extloadi16
26684
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
26687
case 38: { // Predicate_unindexedstore
26690
return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
26693
case 39: { // Predicate_store
26696
return !cast<StoreSDNode>(N)->isTruncatingStore();
26699
case 40: { // Predicate_truncstore
26702
return cast<StoreSDNode>(N)->isTruncatingStore();
26705
case 41: { // Predicate_truncstorei16
26708
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
26711
case 42: { // Predicate_truncstorei8
26714
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
26717
case 43: { // Predicate_istore
26720
return !cast<StoreSDNode>(N)->isTruncatingStore();
26723
case 44: { // Predicate_pre_store
26726
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
26727
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
26730
case 45: { // Predicate_post_store
26733
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
26734
return AM == ISD::POST_INC || AM == ISD::POST_DEC;
26737
case 46: { // Predicate_itruncstore
26740
return cast<StoreSDNode>(N)->isTruncatingStore();
26743
case 47: { // Predicate_pre_truncst
26746
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
26747
return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
26750
case 48: { // Predicate_pre_truncsti16
26753
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
26756
case 49: { // Predicate_post_truncst
26759
ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
26760
return AM == ISD::POST_INC || AM == ISD::POST_DEC;
26763
case 50: { // Predicate_post_truncsti16
26766
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
26769
case 51: { // Predicate_pre_truncsti8
26772
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
26775
case 52: { // Predicate_post_truncsti8
26778
return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
26781
case 53: { // Predicate_imm0_255
26782
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26784
return (uint32_t)N->getZExtValue() < 256;
26787
case 54: { // Predicate_immAllOnesV
26790
return ISD::isBuildVectorAllOnes(N);
26793
case 55: { // Predicate_adde_dead_carry
26795
return !N->hasAnyUseOfValue(1);
26797
case 56: { // Predicate_adde_live_carry
26799
return N->hasAnyUseOfValue(1);
26801
case 57: { // Predicate_sube_dead_carry
26803
return !N->hasAnyUseOfValue(1);
26805
case 58: { // Predicate_sube_live_carry
26807
return N->hasAnyUseOfValue(1);
26809
case 59: { // Predicate_immAllZerosV
26812
return ISD::isBuildVectorAllZeros(N);
26815
case 60: { // Predicate_immAllZerosV_bc
26818
return ISD::isBuildVectorAllZeros(N);
26821
case 61: { // Predicate_imm0_65535
26822
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26824
return (uint32_t)N->getZExtValue() < 65536;
26827
case 62: { // Predicate_thumb_immshifted
26828
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26830
return ARM_AM::isThumbImmShiftedVal((unsigned)N->getZExtValue());
26833
case 63: { // Predicate_imm0_255_comp
26834
ConstantSDNode*N = cast<ConstantSDNode>(Node);
26836
return ~((uint32_t)N->getZExtValue()) < 256;
26839
case 64: { // Predicate_vfp_f64imm
26840
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
26842
return ARM::getVFPf64Imm(N->getValueAPF()) != -1;
26845
case 65: { // Predicate_vfp_f32imm
26846
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
26848
return ARM::getVFPf32Imm(N->getValueAPF()) != -1;
26851
case 66: { // Predicate_vmovImm8
26854
return ARM::getVMOVImm(N, 1, *CurDAG).getNode() != 0;
26857
case 67: { // Predicate_vmovImm16
26860
return ARM::getVMOVImm(N, 2, *CurDAG).getNode() != 0;
26863
case 68: { // Predicate_vmovImm32
26866
return ARM::getVMOVImm(N, 4, *CurDAG).getNode() != 0;
26869
case 69: { // Predicate_vmovImm64
26872
return ARM::getVMOVImm(N, 8, *CurDAG).getNode() != 0;
26875
case 70: { // Predicate_atomic_load_add_8
26878
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26881
case 71: { // Predicate_atomic_load_add_16
26884
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26887
case 72: { // Predicate_atomic_load_add_32
26890
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26893
case 73: { // Predicate_atomic_load_sub_8
26896
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26899
case 74: { // Predicate_atomic_load_sub_16
26902
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26905
case 75: { // Predicate_atomic_load_sub_32
26908
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26911
case 76: { // Predicate_atomic_load_and_8
26914
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26917
case 77: { // Predicate_atomic_load_and_16
26920
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26923
case 78: { // Predicate_atomic_load_and_32
26926
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26929
case 79: { // Predicate_atomic_load_or_8
26932
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26935
case 80: { // Predicate_atomic_load_or_16
26938
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26941
case 81: { // Predicate_atomic_load_or_32
26944
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26947
case 82: { // Predicate_atomic_load_xor_8
26950
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26953
case 83: { // Predicate_atomic_load_xor_16
26956
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26959
case 84: { // Predicate_atomic_load_xor_32
26962
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26965
case 85: { // Predicate_atomic_load_nand_8
26968
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26971
case 86: { // Predicate_atomic_load_nand_16
26974
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26977
case 87: { // Predicate_atomic_load_nand_32
26980
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
26983
case 88: { // Predicate_atomic_swap_8
26986
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
26989
case 89: { // Predicate_atomic_swap_16
26992
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
26995
case 90: { // Predicate_atomic_swap_32
26998
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
27001
case 91: { // Predicate_atomic_cmp_swap_8
27004
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
27007
case 92: { // Predicate_atomic_cmp_swap_16
27010
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
27013
case 93: { // Predicate_atomic_cmp_swap_32
27016
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
27022
bool CheckComplexPattern(SDNode *Root, SDValue N,
27023
unsigned PatternNo, SmallVectorImpl<SDValue> &Result) {
27024
switch (PatternNo) {
27025
default: assert(0 && "Invalid pattern # in table?");
27027
Result.resize(Result.size()+2);
27028
return SelectT2ShifterOperandReg(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27030
Result.resize(Result.size()+3);
27031
return SelectShifterOperandReg(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27033
Result.resize(Result.size()+3);
27034
return SelectAddrMode2(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27036
Result.resize(Result.size()+2);
27037
return SelectAddrModePC(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27039
Result.resize(Result.size()+2);
27040
return SelectThumbAddrModeRR(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27042
Result.resize(Result.size()+3);
27043
return SelectAddrMode3(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27045
Result.resize(Result.size()+3);
27046
return SelectThumbAddrModeS4(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27048
Result.resize(Result.size()+3);
27049
return SelectThumbAddrModeS1(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27051
Result.resize(Result.size()+3);
27052
return SelectThumbAddrModeS2(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27054
Result.resize(Result.size()+3);
27055
return SelectT2AddrModeSoReg(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27057
Result.resize(Result.size()+2);
27058
return SelectThumbAddrModeSP(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27060
Result.resize(Result.size()+2);
27061
return SelectT2AddrModeImm12(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27063
Result.resize(Result.size()+2);
27064
return SelectT2AddrModeImm8(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27066
Result.resize(Result.size()+2);
27067
return SelectAddrMode5(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27069
Result.resize(Result.size()+2);
27070
return SelectAddrMode4(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27072
Result.resize(Result.size()+2);
27073
return SelectAddrMode2Offset(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27075
Result.resize(Result.size()+2);
27076
return SelectAddrMode3Offset(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
27078
Result.resize(Result.size()+1);
27079
return SelectT2AddrModeImm8Offset(Root, N, Result[Result.size()-1]);
27081
Result.resize(Result.size()+4);
27082
return SelectAddrMode6(Root, N, Result[Result.size()-4], Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
27086
SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
27088
default: assert(0 && "Invalid xform # in table?");
27090
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27092
return CurDAG->getTargetConstant((uint32_t)N->getZExtValue() >> 16, MVT::i32);
27096
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27098
return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), MVT::i32);
27102
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27104
unsigned V = ARM_AM::getSOImmTwoPartFirst((unsigned)N->getZExtValue());
27105
return CurDAG->getTargetConstant(V, MVT::i32);
27109
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27111
unsigned V = ARM_AM::getSOImmTwoPartSecond((unsigned)N->getZExtValue());
27112
return CurDAG->getTargetConstant(V, MVT::i32);
27116
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27118
unsigned V = ARM_AM::getT2SOImmTwoPartFirst((unsigned)N->getZExtValue());
27119
return CurDAG->getTargetConstant(V, MVT::i32);
27123
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27125
unsigned V = ARM_AM::getT2SOImmTwoPartSecond((unsigned)N->getZExtValue());
27126
return CurDAG->getTargetConstant(V, MVT::i32);
27130
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27132
return CurDAG->getTargetConstant(5 + N->getZExtValue() / 4, MVT::i32);
27136
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27138
return CurDAG->getTargetConstant(N->getZExtValue() & 3, MVT::i32);
27142
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27144
return CurDAG->getTargetConstant(5 + N->getZExtValue() / 2, MVT::i32);
27148
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27150
return CurDAG->getTargetConstant(N->getZExtValue() & 1, MVT::i32);
27154
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27156
return CurDAG->getTargetConstant(-(int)N->getZExtValue(), MVT::i32);
27160
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27162
return CurDAG->getTargetConstant(-(int)N->getZExtValue(), MVT::i32);
27166
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27168
return CurDAG->getTargetConstant(-((int)N->getZExtValue()), MVT::i32);
27172
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27174
unsigned V = ARM_AM::getSOImmTwoPartFirst(-(int)N->getZExtValue());
27175
return CurDAG->getTargetConstant(V, MVT::i32);
27179
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27181
unsigned V = ARM_AM::getSOImmTwoPartSecond(-(int)N->getZExtValue());
27182
return CurDAG->getTargetConstant(V, MVT::i32);
27186
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27188
unsigned V = ARM_AM::getT2SOImmTwoPartFirst(-(int)N->getZExtValue());
27189
return CurDAG->getTargetConstant(V, MVT::i32);
27193
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27195
unsigned V = ARM_AM::getT2SOImmTwoPartSecond(-(int)N->getZExtValue());
27196
return CurDAG->getTargetConstant(V, MVT::i32);
27200
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27202
return CurDAG->getTargetConstant(~(int)N->getZExtValue(), MVT::i32);
27206
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27208
return CurDAG->getTargetConstant(5 + N->getZExtValue() / 8, MVT::i32);
27212
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27214
return CurDAG->getTargetConstant(N->getZExtValue() & 7, MVT::i32);
27218
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27220
return CurDAG->getTargetConstant(5 + N->getZExtValue(), MVT::i32);
27224
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27226
return CurDAG->getTargetConstant(1 + N->getZExtValue(), MVT::i32);
27230
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27232
return CurDAG->getTargetConstant(5 + (1 - N->getZExtValue()), MVT::i32);
27236
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27238
unsigned V = ARM_AM::getThumbImmNonShiftedVal((unsigned)N->getZExtValue());
27239
return CurDAG->getTargetConstant(V, MVT::i32);
27243
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27245
unsigned V = ARM_AM::getThumbImmValShift((unsigned)N->getZExtValue());
27246
return CurDAG->getTargetConstant(V, MVT::i32);
27250
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
27252
return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), MVT::i32);
27256
SDNode *N = V.getNode();
27258
return ARM::getVMOVImm(N, 1, *CurDAG);
27262
SDNode *N = V.getNode();
27264
return ARM::getVMOVImm(N, 2, *CurDAG);
27268
SDNode *N = V.getNode();
27270
return ARM::getVMOVImm(N, 4, *CurDAG);
27274
SDNode *N = V.getNode();
27276
return ARM::getVMOVImm(N, 8, *CurDAG);