Lines Matching refs:Vn
2623 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2624 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2625 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2627 let TwoOperandAliasConstraint = "$Vn = $Vd";
2636 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2637 OpcodeStr, "$Vd, $Vn, $Vm", "",
2638 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>{
2640 let TwoOperandAliasConstraint = "$Vn = $Vd";
2648 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2649 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2651 (Ty (ShOp (Ty DPR:$Vn),
2654 let TwoOperandAliasConstraint = "$Vn = $Vd";
2660 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2661 NVMulSLFrm, IIC_VMULi16D, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane","",
2663 (Ty (ShOp (Ty DPR:$Vn),
2666 let TwoOperandAliasConstraint = "$Vn = $Vd";
2674 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2675 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2676 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2678 let TwoOperandAliasConstraint = "$Vn = $Vd";
2685 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2686 OpcodeStr, "$Vd, $Vn, $Vm", "",
2687 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>{
2689 let TwoOperandAliasConstraint = "$Vn = $Vd";
2696 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2697 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2699 (ResTy (ShOp (ResTy QPR:$Vn),
2703 let TwoOperandAliasConstraint = "$Vn = $Vd";
2709 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2710 NVMulSLFrm, IIC_VMULi16Q, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane", "",
2712 (ResTy (ShOp (ResTy QPR:$Vn),
2716 let TwoOperandAliasConstraint = "$Vn = $Vd";
2725 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), f, itin,
2726 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2727 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2729 let TwoOperandAliasConstraint = "$Vn = $Vd";
2738 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), f, itin, OpcodeStr, Dt,
2739 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2747 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2748 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2750 (Ty (IntOp (Ty DPR:$Vn),
2759 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2760 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2762 (Ty (IntOp (Ty DPR:$Vn),
2770 (outs DPR:$Vd), (ins DPR:$Vm, DPR:$Vn), f, itin,
2771 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2772 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm), (OpTy DPR:$Vn))))]> {
2781 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin,
2782 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2783 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2785 let TwoOperandAliasConstraint = "$Vn = $Vd";
2794 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin, OpcodeStr, Dt,
2795 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2805 (outs QPR:$Vd), (ins QPR:$src, QPR:$Vn, QPR:$Vm),
2807 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$src), (OpTy QPR:$Vn),
2817 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2818 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2820 (ResTy (IntOp (ResTy QPR:$Vn),
2829 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2830 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2832 (ResTy (IntOp (ResTy QPR:$Vn),
2841 (outs QPR:$Vd), (ins QPR:$Vm, QPR:$Vn), f, itin,
2842 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2843 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm), (OpTy QPR:$Vn))))]> {
2853 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2854 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2856 (Ty (MulOp DPR:$Vn, DPR:$Vm)))))]>;
2863 (ins DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2865 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2868 (Ty (MulOp DPR:$Vn,
2876 (ins DPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2878 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2881 (Ty (MulOp DPR:$Vn,
2889 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2890 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2892 (Ty (MulOp QPR:$Vn, QPR:$Vm)))))]>;
2898 (ins QPR:$src1, QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2900 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2903 (ResTy (MulOp QPR:$Vn,
2912 (ins QPR:$src1, QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2914 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2917 (ResTy (MulOp QPR:$Vn,
2926 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2927 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2929 (Ty (IntOp (Ty DPR:$Vn), (Ty DPR:$Vm))))))]>;
2934 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2935 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2937 (Ty (IntOp (Ty QPR:$Vn), (Ty QPR:$Vm))))))]>;
2945 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2946 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2948 (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>;
2953 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2954 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2956 (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>;
2963 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2964 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2966 (TyQ (MulOp (TyD DPR:$Vn),
2972 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2974 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2977 (TyQ (MulOp (TyD DPR:$Vn),
2984 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2986 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2989 (TyQ (MulOp (TyD DPR:$Vn),
2999 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3000 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
3002 (TyQ (ExtOp (TyD (IntOp (TyD DPR:$Vn),
3011 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3012 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
3014 (TyQ (IntOp (TyQ QPR:$src1), (TyD DPR:$Vn), (TyD DPR:$Vm))))]>;
3020 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3022 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
3025 (OpTy DPR:$Vn),
3033 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3035 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
3038 (OpTy DPR:$Vn),
3047 (outs DPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINi4D,
3048 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3049 [(set DPR:$Vd, (TyD (IntOp (TyQ QPR:$Vn), (TyQ QPR:$Vm))))]> {
3058 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3059 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3060 [(set QPR:$Vd, (TyQ (OpNode (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
3068 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3069 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3071 (TyQ (OpNode (TyD DPR:$Vn),
3077 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3078 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3080 (TyQ (OpNode (TyD DPR:$Vn),
3089 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3090 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3091 [(set QPR:$Vd, (OpNode (TyQ (ExtOp (TyD DPR:$Vn))),
3102 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3103 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3104 [(set QPR:$Vd, (TyQ (ExtOp (TyD (IntOp (TyD DPR:$Vn),
3114 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3115 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3116 [(set QPR:$Vd, (TyQ (IntOp (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
3126 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin, OpcodeStr, Dt,
3127 [(set QPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
3136 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3137 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3139 (ResTy (IntOp (OpTy DPR:$Vn),
3146 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3147 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3149 (ResTy (IntOp (OpTy DPR:$Vn),
3158 (outs QPR:$Vd), (ins QPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VSUBiD,
3159 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3160 [(set QPR:$Vd, (OpNode (TyQ QPR:$Vn),
3163 let TwoOperandAliasConstraint = "$Vn = $Vd";
3377 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
3378 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3379 [(set QPR:$Vd, (ResTy (ARMvcmp (OpTy QPR:$Vn), (OpTy QPR:$Vm), fc)))]> {
3381 let TwoOperandAliasConstraint = "$Vn = $Vd";
3389 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3390 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3391 [(set DPR:$Vd, (ResTy (ARMvcmp (OpTy DPR:$Vn), (OpTy DPR:$Vm), fc)))]> {
3393 let TwoOperandAliasConstraint = "$Vn = $Vd";
4300 def : Pat<(v8i8 (trunc (ARMvshruImm (add (v8i16 QPR:$Vn), QPR:$Vm), 8))),
4301 (VADDHNv8i8 QPR:$Vn, QPR:$Vm)>;
4302 def : Pat<(v4i16 (trunc (ARMvshruImm (add (v4i32 QPR:$Vn), QPR:$Vm), 16))),
4303 (VADDHNv4i16 QPR:$Vn, QPR:$Vm)>;
4304 def : Pat<(v2i32 (trunc (ARMvshruImm (add (v2i64 QPR:$Vn), QPR:$Vm), 32))),
4305 (VADDHNv2i32 QPR:$Vn, QPR:$Vm)>;
4529 def : Pat<(v4i16 (int_arm_neon_vqrdmlah (v4i16 DPR:$src1), (v4i16 DPR:$Vn),
4531 (v4i16 (VQRDMLAHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4532 def : Pat<(v2i32 (int_arm_neon_vqrdmlah (v2i32 DPR:$src1), (v2i32 DPR:$Vn),
4534 (v2i32 (VQRDMLAHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4535 def : Pat<(v8i16 (int_arm_neon_vqrdmlah (v8i16 QPR:$src1), (v8i16 QPR:$Vn),
4537 (v8i16 (VQRDMLAHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4538 def : Pat<(v4i32 (int_arm_neon_vqrdmlah (v4i32 QPR:$src1), (v4i32 QPR:$Vn),
4540 (v4i32 (VQRDMLAHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4546 (v4i16 DPR:$Vn),
4549 (v4i16 (VQRDMLAHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm,
4552 (v2i32 DPR:$Vn),
4555 (v2i32 (VQRDMLAHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4583 def : Pat<(v4i16 (int_arm_neon_vqrdmlsh (v4i16 DPR:$src1), (v4i16 DPR:$Vn),
4585 (v4i16 (VQRDMLSHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4586 def : Pat<(v2i32 (int_arm_neon_vqrdmlsh (v2i32 DPR:$src1), (v2i32 DPR:$Vn),
4588 (v2i32 (VQRDMLSHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4589 def : Pat<(v8i16 (int_arm_neon_vqrdmlsh (v8i16 QPR:$src1), (v8i16 QPR:$Vn),
4591 (v8i16 (VQRDMLSHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4592 def : Pat<(v4i32 (int_arm_neon_vqrdmlsh (v4i32 QPR:$src1), (v4i32 QPR:$Vn),
4594 (v4i32 (VQRDMLSHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4600 (v4i16 DPR:$Vn),
4603 (v4i16 (VQRDMLSHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane))>;
4605 (v2i32 DPR:$Vn),
4608 (v2i32 (VQRDMLSHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4638 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4640 (VQDMLALv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4642 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4644 (VQDMLALv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4646 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4649 (VQDMLALslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4651 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4654 (VQDMLALslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4730 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4732 (VQDMLSLv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4734 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4736 (VQDMLSLv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4738 (v4i32 (int_arm_neon_vqdmull (v4i16 DPR:$Vn),
4741 (VQDMLSLslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4743 (v2i64 (int_arm_neon_vqdmull (v2i32 DPR:$Vn),
4746 (VQDMLSLslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4780 def : Pat<(v4f16 (fma DPR:$Vn, DPR:$Vm, DPR:$src1)),
4781 (VFMAhd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4783 def : Pat<(v8f16 (fma QPR:$Vn, QPR:$Vm, QPR:$src1)),
4784 (VFMAhq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4786 def : Pat<(v2f32 (fma DPR:$Vn, DPR:$Vm, DPR:$src1)),
4787 (VFMAfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4789 def : Pat<(v4f32 (fma QPR:$Vn, QPR:$Vm, QPR:$src1)),
4790 (VFMAfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4792 def : Pat<(v2f32 (fma (fneg DPR:$Vn), DPR:$Vm, DPR:$src1)),
4793 (VFMSfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4795 def : Pat<(v4f32 (fma (fneg QPR:$Vn), QPR:$Vm, QPR:$src1)),
4796 (VFMSfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4807 (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm), N3RegFrm, IIC_VDOTPROD,
4811 (InputTy RegTy:$Vn),
4828 (ins Ty:$Vd, Ty:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
4832 let AsmString = !strconcat(opc, ".", dt, "\t$Vd, $Vn, $Vm$lane");
4840 (InputType Ty:$Vn),
4844 (!cast<Instruction>(NAME) Ty:$Vd, Ty:$Vn, RHS, VectorIndex32:$lane)>;
4861 (ins QPR:$Vd, QPR:$Vn, QPR:$Vm), N3RegFrm, NoItinerary,
4864 (v16i8 QPR:$Vn),
4875 (ins RegTy:$Vd, RegTy:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane), N3RegFrm,
4879 let AsmString = !strconcat(Asm, ".", AsmTy, "\t$Vd, $Vn, $Vm$lane");
4886 (InputTy RegTy:$Vn),
4890 (!cast<Instruction>(NAME) RegTy:$Vd, RegTy:$Vn, RHS, VectorIndex32:$lane)>;
4901 (InputTy RegTy:$Vn))),
4902 (!cast<Instruction>(NAME) RegTy:$Vd, RegTy:$Vn, RHS, VectorIndex32:$lane)>;
4924 iops, itin, opc, dt, "$Vd, $Vn, $Vm, $rot", "$src1 = $Vd", pattern>{
4933 iops, itin, opc, dt, "$Vd, $Vn, $Vm, $rot", "", pattern> {
4942 "$Vd, $Vn, $Vm$lane, $rot", "$src1 = $Vd", pattern> {
4954 "$Vd, $Vn, $Vm$lane, $rot", "$src1 = $Vd", pattern> {
4970 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, complexrotateop:$rot),
4973 (ins QPR:$src1, QPR:$Vn, QPR:$Vm, complexrotateop:$rot),
4978 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, complexrotateop:$rot),
4981 (ins QPR:$src1, QPR:$Vn, QPR:$Vm, complexrotateop:$rot),
4991 (ins DPR:$Vn, DPR:$Vm, complexrotateopodd:$rot),
4995 (ins QPR:$Vn, QPR:$Vm, complexrotateopodd:$rot),
5001 (ins DPR:$Vn, DPR:$Vm, complexrotateopodd:$rot),
5005 (ins QPR:$Vn, QPR:$Vm, complexrotateopodd:$rot),
5016 (ins DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
5021 (ins QPR:$src1, QPR:$Vn, DPR_VFP2:$Vm,
5028 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, VectorIndex64:$lane,
5033 (ins QPR:$src1, QPR:$Vn, DPR:$Vm, VectorIndex64:$lane,
5108 def : Pat<(v8i8 (trunc (ARMvshruImm (sub (v8i16 QPR:$Vn), QPR:$Vm), 8))),
5109 (VSUBHNv8i8 QPR:$Vn, QPR:$Vm)>;
5110 def : Pat<(v4i16 (trunc (ARMvshruImm (sub (v4i32 QPR:$Vn), QPR:$Vm), 16))),
5111 (VSUBHNv4i16 QPR:$Vn, QPR:$Vm)>;
5112 def : Pat<(v2i32 (trunc (ARMvshruImm (sub (v2i64 QPR:$Vn), QPR:$Vm), 32))),
5113 (VSUBHNv2i32 QPR:$Vn, QPR:$Vm)>;
5208 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
5209 (VACGTfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5210 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
5211 (VACGTfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5212 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
5213 (VACGEfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5214 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
5215 (VACGEfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5217 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
5218 (VACGThd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5219 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
5220 (VACGThq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5221 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
5222 (VACGEhd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5223 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
5224 (VACGEhq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5232 : N3VCP8<op1, op2, 1, op3, (outs Td:$Vd), (ins Tn:$Vn, Tm:$Vm), NoItinerary,
5233 asm, "f16", "$Vd, $Vn, $Vm", "", []>;
5237 : N3VCP8Q0<op1, op2, 0, op3, (outs Td:$Vd), (ins Tn:$Vn, Tm:$Vm), NoItinerary,
5238 asm, "f16", "$Vd, $Vn, $Vm", "", []>;
5243 (ins SPR:$Vn, SPR_8:$Vm, VectorIndex32:$idx),
5244 IIC_VMACD, opc, type, "$Vd, $Vn, $Vm$idx", "", []> {
5247 let Inst{19-16} = Vn{4-1};
5248 let Inst{7} = Vn{0};
5256 (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$idx),
5257 IIC_VMACD, opc, type, "$Vd, $Vn, $Vm$idx", "", []> {
5381 let TwoOperandAliasConstraint = "$Vn = $Vd" in {
5383 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
5384 "vbic", "$Vd, $Vn, $Vm", "",
5385 [(set DPR:$Vd, (v2i32 (and DPR:$Vn,
5388 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
5389 "vbic", "$Vd, $Vn, $Vm", "",
5390 [(set QPR:$Vd, (v4i32 (and QPR:$Vn,
5437 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
5438 "vorn", "$Vd, $Vn, $Vm", "",
5439 [(set DPR:$Vd, (v2i32 (or DPR:$Vn,
5442 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
5443 "vorn", "$Vd, $Vn, $Vm", "",
5444 [(set QPR:$Vd, (v4i32 (or QPR:$Vn,
5514 : PseudoNeonI<(outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5517 (v2i32 (NEONvbsp DPR:$src1, DPR:$Vn, DPR:$Vm)))]>;
5520 (v8i8 DPR:$Vn), (v8i8 DPR:$Vm))),
5521 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5523 (v4i16 DPR:$Vn), (v4i16 DPR:$Vm))),
5524 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5526 (v2i32 DPR:$Vn), (v2i32 DPR:$Vm))),
5527 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5529 (v2f32 DPR:$Vn), (v2f32 DPR:$Vm))),
5530 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5532 (v1i64 DPR:$Vn), (v1i64 DPR:$Vm))),
5533 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5535 def : Pat<(v8i8 (or (and DPR:$Vn, DPR:$Vd),
5537 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5538 def : Pat<(v4i16 (or (and DPR:$Vn, DPR:$Vd),
5540 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5541 def : Pat<(v2i32 (or (and DPR:$Vn, DPR:$Vd),
5543 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5544 def : Pat<(v1i64 (or (and DPR:$Vn, DPR:$Vd),
5546 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5550 : PseudoNeonI<(outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5553 (v4i32 (NEONvbsp QPR:$src1, QPR:$Vn, QPR:$Vm)))]>;
5556 (v16i8 QPR:$Vn), (v16i8 QPR:$Vm))),
5557 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5559 (v8i16 QPR:$Vn), (v8i16 QPR:$Vm))),
5560 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5562 (v4i32 QPR:$Vn), (v4i32 QPR:$Vm))),
5563 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5565 (v4f32 QPR:$Vn), (v4f32 QPR:$Vm))),
5566 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5568 (v2i64 QPR:$Vn), (v2i64 QPR:$Vm))),
5569 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5571 def : Pat<(v16i8 (or (and QPR:$Vn, QPR:$Vd),
5573 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5574 def : Pat<(v8i16 (or (and QPR:$Vn, QPR:$Vd),
5576 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5577 def : Pat<(v4i32 (or (and QPR:$Vn, QPR:$Vd),
5579 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5580 def : Pat<(v2i64 (or (and QPR:$Vn, QPR:$Vd),
5582 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5587 (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5589 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5593 (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5595 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5601 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5603 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5606 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5608 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5614 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5616 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5619 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5621 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
6024 def : Pat<(v8i8 (trunc (ARMvshruImm (v8i16 QPR:$Vn), shr_imm8:$amt))),
6025 (VSHRNv8i8 QPR:$Vn, shr_imm8:$amt)>;
6026 def : Pat<(v4i16 (trunc (ARMvshruImm (v4i32 QPR:$Vn), shr_imm16:$amt))),
6027 (VSHRNv4i16 QPR:$Vn, shr_imm16:$amt)>;
6028 def : Pat<(v2i32 (trunc (ARMvshruImm (v2i64 QPR:$Vn), shr_imm32:$amt))),
6029 (VSHRNv2i32 QPR:$Vn, shr_imm32:$amt)>;
7054 let TwoOperandAliasConstraint = "$Vn = $Vd" in {
7057 (ins DPR:$Vn, DPR:$Vm, immTy:$index), NVExtFrm,
7058 IIC_VEXTD, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
7059 [(set DPR:$Vd, (Ty (NEONvext (Ty DPR:$Vn),
7068 (ins QPR:$Vn, QPR:$Vm, immTy:$index), NVExtFrm,
7069 IIC_VEXTQ, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
7070 [(set QPR:$Vd, (Ty (NEONvext (Ty QPR:$Vn),
7085 def : Pat<(v4f16 (NEONvext (v4f16 DPR:$Vn), (v4f16 DPR:$Vm), (i32 imm:$index))),
7086 (VEXTd16 DPR:$Vn, DPR:$Vm, imm:$index)>;
7094 def : Pat<(v2f32 (NEONvext (v2f32 DPR:$Vn), (v2f32 DPR:$Vm), (i32 imm:$index))),
7095 (VEXTd32 DPR:$Vn, DPR:$Vm, imm:$index)>;
7106 def : Pat<(v8f16 (NEONvext (v8f16 QPR:$Vn), (v8f16 QPR:$Vm), (i32 imm:$index))),
7107 (VEXTq16 QPR:$Vn, QPR:$Vm, imm:$index)>;
7119 def : Pat<(v4f32 (NEONvext (v4f32 QPR:$Vn), (v4f32 QPR:$Vm), (i32 imm:$index))),
7120 (VEXTq32 QPR:$Vn, QPR:$Vm, imm:$index)>;
7163 (ins VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB1,
7164 "vtbl", "8", "$Vd, $Vn, $Vm", "",
7165 [(set DPR:$Vd, (v8i8 (NEONvtbl1 VecListOneD:$Vn, DPR:$Vm)))]>;
7170 (ins VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB2,
7171 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7174 (ins VecListThreeD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB3,
7175 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7178 (ins VecListFourD:$Vn, DPR:$Vm),
7180 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7191 (ins DPR:$orig, VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX1,
7192 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd",
7194 DPR:$orig, VecListOneD:$Vn, DPR:$Vm)))]>;
7198 (ins DPR:$orig, VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX2,
7199 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd", []>;
7202 (ins DPR:$orig, VecListThreeD:$Vn, DPR:$Vm),
7204 "vtbx", "8", "$Vd, $Vn, $Vm",
7208 (ins DPR:$orig, VecListFourD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX4,
7209 "vtbx", "8", "$Vd, $Vn, $Vm",
8103 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
8104 (VANDd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8105 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
8106 (VANDq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8107 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
8108 (VBICd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8109 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
8110 (VBICq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8111 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
8112 (VEORd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8113 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
8114 (VEORq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8115 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
8116 (VORRd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8117 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
8118 (VORRq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9072 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
9073 (VBIFd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9074 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
9075 (VBITd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9076 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
9077 (VBSLd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9078 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
9079 (VBIFq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9080 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
9081 (VBITq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9082 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
9083 (VBSLq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9156 (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm),
9159 (InputTy RegTy:$Vn),
9162 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm");
9170 (ins RegTy:$Vd, RegTy:$Vn,
9175 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm$lane");
9181 (InputTy RegTy:$Vn),
9185 (!cast<Instruction>(NAME) RegTy:$Vd, RegTy:$Vn, RHS, VectorIndex32:$lane)>;
9197 (outs RegTy:$dst), (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm),
9200 (v8bf16 QPR:$Vn),
9203 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm");
9211 (outs QPR:$dst), (ins QPR:$Vd, QPR:$Vn, QPR:$Vm),
9212 NoItinerary, "vfma" # suffix, "bf16", "$Vd, $Vn, $Vm", "",
9215 (v8bf16 QPR:$Vn),
9226 (ins QPR:$Vd, QPR:$Vn, DPR_8:$Vm, VectorIndex16:$idx),
9227 IIC_VMACD, "vfma" # suffix, "bf16", "$Vd, $Vn, $Vm$idx", "", []> {
9237 (v8bf16 QPR:$Vn),
9241 QPR:$Vn,