• Home
  • Raw
  • Download

Lines Matching refs:Vn

2549         (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2550 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2551 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2553 let TwoOperandAliasConstraint = "$Vn = $Vd";
2562 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2563 OpcodeStr, "$Vd, $Vn, $Vm", "",
2564 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>{
2566 let TwoOperandAliasConstraint = "$Vn = $Vd";
2574 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2575 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2577 (Ty (ShOp (Ty DPR:$Vn),
2580 let TwoOperandAliasConstraint = "$Vn = $Vd";
2586 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2587 NVMulSLFrm, IIC_VMULi16D, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane","",
2589 (Ty (ShOp (Ty DPR:$Vn),
2592 let TwoOperandAliasConstraint = "$Vn = $Vd";
2600 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2601 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2602 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2604 let TwoOperandAliasConstraint = "$Vn = $Vd";
2611 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2612 OpcodeStr, "$Vd, $Vn, $Vm", "",
2613 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>{
2615 let TwoOperandAliasConstraint = "$Vn = $Vd";
2622 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2623 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2625 (ResTy (ShOp (ResTy QPR:$Vn),
2629 let TwoOperandAliasConstraint = "$Vn = $Vd";
2635 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2636 NVMulSLFrm, IIC_VMULi16Q, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane", "",
2638 (ResTy (ShOp (ResTy QPR:$Vn),
2642 let TwoOperandAliasConstraint = "$Vn = $Vd";
2651 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), f, itin,
2652 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2653 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2655 let TwoOperandAliasConstraint = "$Vn = $Vd";
2664 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin, OpcodeStr, Dt,
2665 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>;
2670 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2671 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2673 (Ty (IntOp (Ty DPR:$Vn),
2682 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2683 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2685 (Ty (IntOp (Ty DPR:$Vn),
2693 (outs DPR:$Vd), (ins DPR:$Vm, DPR:$Vn), f, itin,
2694 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2695 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm), (OpTy DPR:$Vn))))]> {
2704 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin,
2705 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2706 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2708 let TwoOperandAliasConstraint = "$Vn = $Vd";
2717 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin, OpcodeStr, Dt,
2718 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>;
2726 (outs QPR:$Vd), (ins QPR:$src, QPR:$Vn, QPR:$Vm),
2728 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$src), (OpTy QPR:$Vn),
2737 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2738 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2740 (ResTy (IntOp (ResTy QPR:$Vn),
2749 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2750 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2752 (ResTy (IntOp (ResTy QPR:$Vn),
2761 (outs QPR:$Vd), (ins QPR:$Vm, QPR:$Vn), f, itin,
2762 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2763 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm), (OpTy QPR:$Vn))))]> {
2773 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2774 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2776 (Ty (MulOp DPR:$Vn, DPR:$Vm)))))]>;
2783 (ins DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2785 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2788 (Ty (MulOp DPR:$Vn,
2796 (ins DPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2798 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2801 (Ty (MulOp DPR:$Vn,
2809 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2810 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2812 (Ty (MulOp QPR:$Vn, QPR:$Vm)))))]>;
2818 (ins QPR:$src1, QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2820 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2823 (ResTy (MulOp QPR:$Vn,
2832 (ins QPR:$src1, QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2834 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2837 (ResTy (MulOp QPR:$Vn,
2846 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2847 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2849 (Ty (IntOp (Ty DPR:$Vn), (Ty DPR:$Vm))))))]>;
2854 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2855 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2857 (Ty (IntOp (Ty QPR:$Vn), (Ty QPR:$Vm))))))]>;
2865 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2866 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2868 (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>;
2873 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2874 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2876 (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>;
2883 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2884 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2886 (TyQ (MulOp (TyD DPR:$Vn),
2892 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2894 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2897 (TyQ (MulOp (TyD DPR:$Vn),
2904 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2906 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2909 (TyQ (MulOp (TyD DPR:$Vn),
2919 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2920 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2922 (TyQ (ExtOp (TyD (IntOp (TyD DPR:$Vn),
2931 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2932 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2934 (TyQ (IntOp (TyQ QPR:$src1), (TyD DPR:$Vn), (TyD DPR:$Vm))))]>;
2940 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2942 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2945 (OpTy DPR:$Vn),
2953 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2955 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2958 (OpTy DPR:$Vn),
2967 (outs DPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINi4D,
2968 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2969 [(set DPR:$Vd, (TyD (IntOp (TyQ QPR:$Vn), (TyQ QPR:$Vm))))]> {
2978 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2979 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2980 [(set QPR:$Vd, (TyQ (OpNode (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
2988 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2989 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2991 (TyQ (OpNode (TyD DPR:$Vn),
2997 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2998 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3000 (TyQ (OpNode (TyD DPR:$Vn),
3009 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3010 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3011 [(set QPR:$Vd, (OpNode (TyQ (ExtOp (TyD DPR:$Vn))),
3022 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3023 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3024 [(set QPR:$Vd, (TyQ (ExtOp (TyD (IntOp (TyD DPR:$Vn),
3034 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3035 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3036 [(set QPR:$Vd, (TyQ (IntOp (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
3046 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin, OpcodeStr, Dt,
3047 [(set QPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>;
3053 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3054 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3056 (ResTy (IntOp (OpTy DPR:$Vn),
3063 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3064 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3066 (ResTy (IntOp (OpTy DPR:$Vn),
3075 (outs QPR:$Vd), (ins QPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VSUBiD,
3076 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3077 [(set QPR:$Vd, (OpNode (TyQ QPR:$Vn),
3080 let TwoOperandAliasConstraint = "$Vn = $Vd";
4163 def : Pat<(v8i8 (trunc (NEONvshru (add (v8i16 QPR:$Vn), QPR:$Vm), 8))),
4164 (VADDHNv8i8 QPR:$Vn, QPR:$Vm)>;
4165 def : Pat<(v4i16 (trunc (NEONvshru (add (v4i32 QPR:$Vn), QPR:$Vm), 16))),
4166 (VADDHNv4i16 QPR:$Vn, QPR:$Vm)>;
4167 def : Pat<(v2i32 (trunc (NEONvshru (add (v2i64 QPR:$Vn), QPR:$Vm), 32))),
4168 (VADDHNv2i32 QPR:$Vn, QPR:$Vm)>;
4371 (v4i16 (int_arm_neon_vqrdmulh (v4i16 DPR:$Vn),
4373 (v4i16 (VQRDMLAHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4376 (v2i32 (int_arm_neon_vqrdmulh (v2i32 DPR:$Vn),
4378 (v2i32 (VQRDMLAHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4381 (v8i16 (int_arm_neon_vqrdmulh (v8i16 QPR:$Vn),
4383 (v8i16 (VQRDMLAHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4386 (v4i32 (int_arm_neon_vqrdmulh (v4i32 QPR:$Vn),
4388 (v4i32 (VQRDMLAHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4396 (v4i16 DPR:$Vn),
4399 (v4i16 (VQRDMLAHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm,
4404 (v2i32 DPR:$Vn),
4407 (v2i32 (VQRDMLAHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4441 (v4i16 (int_arm_neon_vqrdmulh (v4i16 DPR:$Vn),
4443 (v4i16 (VQRDMLSHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4446 (v2i32 (int_arm_neon_vqrdmulh (v2i32 DPR:$Vn),
4448 (v2i32 (VQRDMLSHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4451 (v8i16 (int_arm_neon_vqrdmulh (v8i16 QPR:$Vn),
4453 (v8i16 (VQRDMLSHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4456 (v4i32 (int_arm_neon_vqrdmulh (v4i32 QPR:$Vn),
4458 (v4i32 (VQRDMLSHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4466 (v4i16 DPR:$Vn),
4469 (v4i16 (VQRDMLSHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane))>;
4473 (v2i32 DPR:$Vn),
4476 (v2i32 (VQRDMLSHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4509 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4511 (VQDMLALv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4513 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4515 (VQDMLALv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4517 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4520 (VQDMLALslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4522 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4525 (VQDMLALslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4597 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4599 (VQDMLSLv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4601 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4603 (VQDMLSLv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4605 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4608 (VQDMLSLslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4610 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4613 (VQDMLSLslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4646 def : Pat<(v2f32 (fma DPR:$Vn, DPR:$Vm, DPR:$src1)),
4647 (VFMAfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4649 def : Pat<(v4f32 (fma QPR:$Vn, QPR:$Vm, QPR:$src1)),
4650 (VFMAfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4652 def : Pat<(v2f32 (fma (fneg DPR:$Vn), DPR:$Vm, DPR:$src1)),
4653 (VFMSfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4655 def : Pat<(v4f32 (fma (fneg QPR:$Vn), QPR:$Vm, QPR:$src1)),
4656 (VFMSfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4702 def : Pat<(v8i8 (trunc (NEONvshru (sub (v8i16 QPR:$Vn), QPR:$Vm), 8))),
4703 (VSUBHNv8i8 QPR:$Vn, QPR:$Vm)>;
4704 def : Pat<(v4i16 (trunc (NEONvshru (sub (v4i32 QPR:$Vn), QPR:$Vm), 16))),
4705 (VSUBHNv4i16 QPR:$Vn, QPR:$Vm)>;
4706 def : Pat<(v2i32 (trunc (NEONvshru (sub (v2i64 QPR:$Vn), QPR:$Vm), 32))),
4707 (VSUBHNv2i32 QPR:$Vn, QPR:$Vm)>;
4801 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
4802 (VACGTfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
4803 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
4804 (VACGTfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
4805 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
4806 (VACGEfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
4807 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
4808 (VACGEfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
4810 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
4811 (VACGThd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
4812 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
4813 (VACGThq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
4814 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
4815 (VACGEhd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
4816 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
4817 (VACGEhq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
4903 let TwoOperandAliasConstraint = "$Vn = $Vd" in {
4905 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
4906 "vbic", "$Vd, $Vn, $Vm", "",
4907 [(set DPR:$Vd, (v2i32 (and DPR:$Vn,
4910 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
4911 "vbic", "$Vd, $Vn, $Vm", "",
4912 [(set QPR:$Vd, (v4i32 (and QPR:$Vn,
4954 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
4955 "vorn", "$Vd, $Vn, $Vm", "",
4956 [(set DPR:$Vd, (v2i32 (or DPR:$Vn,
4959 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
4960 "vorn", "$Vd, $Vn, $Vm", "",
4961 [(set QPR:$Vd, (v4i32 (or QPR:$Vn,
5011 (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5013 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5015 (v2i32 (NEONvbsl DPR:$src1, DPR:$Vn, DPR:$Vm)))]>;
5017 (v8i8 DPR:$Vn), (v8i8 DPR:$Vm))),
5018 (VBSLd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
5021 (v4i16 DPR:$Vn), (v4i16 DPR:$Vm))),
5022 (VBSLd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
5025 (v2i32 DPR:$Vn), (v2i32 DPR:$Vm))),
5026 (VBSLd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
5029 (v2f32 DPR:$Vn), (v2f32 DPR:$Vm))),
5030 (VBSLd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
5033 (v1i64 DPR:$Vn), (v1i64 DPR:$Vm))),
5034 (VBSLd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
5037 def : Pat<(v2i32 (or (and DPR:$Vn, DPR:$Vd),
5039 (VBSLd DPR:$Vd, DPR:$Vn, DPR:$Vm)>,
5042 def : Pat<(v1i64 (or (and DPR:$Vn, DPR:$Vd),
5044 (VBSLd DPR:$Vd, DPR:$Vn, DPR:$Vm)>,
5048 (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5050 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5052 (v4i32 (NEONvbsl QPR:$src1, QPR:$Vn, QPR:$Vm)))]>;
5055 (v16i8 QPR:$Vn), (v16i8 QPR:$Vm))),
5056 (VBSLq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
5059 (v8i16 QPR:$Vn), (v8i16 QPR:$Vm))),
5060 (VBSLq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
5063 (v4i32 QPR:$Vn), (v4i32 QPR:$Vm))),
5064 (VBSLq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
5067 (v4f32 QPR:$Vn), (v4f32 QPR:$Vm))),
5068 (VBSLq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
5071 (v2i64 QPR:$Vn), (v2i64 QPR:$Vm))),
5072 (VBSLq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
5075 def : Pat<(v4i32 (or (and QPR:$Vn, QPR:$Vd),
5077 (VBSLq QPR:$Vd, QPR:$Vn, QPR:$Vm)>,
5079 def : Pat<(v2i64 (or (and QPR:$Vn, QPR:$Vd),
5081 (VBSLq QPR:$Vd, QPR:$Vn, QPR:$Vm)>,
5088 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5090 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5093 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5095 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5102 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5104 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5107 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5109 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5470 def : Pat<(v8i8 (trunc (NEONvshru (v8i16 QPR:$Vn), shr_imm8:$amt))),
5471 (VSHRNv8i8 QPR:$Vn, shr_imm8:$amt)>;
5472 def : Pat<(v4i16 (trunc (NEONvshru (v4i32 QPR:$Vn), shr_imm16:$amt))),
5473 (VSHRNv4i16 QPR:$Vn, shr_imm16:$amt)>;
5474 def : Pat<(v2i32 (trunc (NEONvshru (v2i64 QPR:$Vn), shr_imm32:$amt))),
5475 (VSHRNv2i32 QPR:$Vn, shr_imm32:$amt)>;
6345 let TwoOperandAliasConstraint = "$Vn = $Vd" in {
6348 (ins DPR:$Vn, DPR:$Vm, immTy:$index), NVExtFrm,
6349 IIC_VEXTD, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
6350 [(set DPR:$Vd, (Ty (NEONvext (Ty DPR:$Vn),
6359 (ins QPR:$Vn, QPR:$Vm, imm0_15:$index), NVExtFrm,
6360 IIC_VEXTQ, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
6361 [(set QPR:$Vd, (Ty (NEONvext (Ty QPR:$Vn),
6379 def : Pat<(v2f32 (NEONvext (v2f32 DPR:$Vn),
6382 (VEXTd32 DPR:$Vn, DPR:$Vm, imm:$index)>;
6399 def : Pat<(v4f32 (NEONvext (v4f32 QPR:$Vn),
6402 (VEXTq32 QPR:$Vn, QPR:$Vm, imm:$index)>;
6444 (ins VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB1,
6445 "vtbl", "8", "$Vd, $Vn, $Vm", "",
6446 [(set DPR:$Vd, (v8i8 (int_arm_neon_vtbl1 VecListOneD:$Vn, DPR:$Vm)))]>;
6450 (ins VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB2,
6451 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
6454 (ins VecListThreeD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB3,
6455 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
6458 (ins VecListFourD:$Vn, DPR:$Vm),
6460 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
6471 (ins DPR:$orig, VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX1,
6472 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd",
6474 DPR:$orig, VecListOneD:$Vn, DPR:$Vm)))]>;
6478 (ins DPR:$orig, VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX2,
6479 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd", []>;
6482 (ins DPR:$orig, VecListThreeD:$Vn, DPR:$Vm),
6484 "vtbx", "8", "$Vd, $Vn, $Vm",
6488 (ins DPR:$orig, VecListFourD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX4,
6489 "vtbx", "8", "$Vd, $Vn, $Vm",
7142 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
7143 (VANDd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
7144 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
7145 (VANDq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
7146 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
7147 (VBICd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
7148 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
7149 (VBICq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
7150 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
7151 (VEORd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
7152 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
7153 (VEORq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
7154 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
7155 (VORRd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
7156 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
7157 (VORRq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8111 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
8112 (VBIFd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8113 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
8114 (VBITd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8115 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
8116 (VBSLd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8117 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
8118 (VBIFq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8119 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
8120 (VBITq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8121 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
8122 (VBSLq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;