Lines Matching refs:Vm

2525         (ins DPR:$Vm), IIC_VUNAD, OpcodeStr, Dt,"$Vd, $Vm", "",
2526 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vm))))]>;
2531 (ins QPR:$Vm), IIC_VUNAQ, OpcodeStr, Dt,"$Vd, $Vm", "",
2532 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vm))))]>;
2540 (ins DPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2541 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm))))]>;
2547 (ins QPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2548 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm))))]>;
2554 : N2Vnp<op19_18, op17_16, op10_8, op7, 0, (outs DPR:$Vd), (ins DPR:$Vm),
2556 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm))))]>;
2561 : N2Vnp<op19_18, op17_16, op10_8, op7, 1, (outs QPR:$Vd), (ins QPR:$Vm),
2563 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm))))]>;
2569 : N2Vnp<op19_18, op17_16, op10_8, op7, op6, (outs QPR:$Vd), (ins QPR:$Vm),
2571 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm))))]>;
2578 (outs QPR:$Vd), (ins QPR:$src, QPR:$Vm),
2580 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$src), (OpTy QPR:$Vm))))]> {
2590 (ins QPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2591 [(set DPR:$Vd, (TyD (OpNode (TyQ QPR:$Vm))))]>;
2599 (ins QPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2600 [(set DPR:$Vd, (TyD (IntOp (TyQ QPR:$Vm))))]>;
2608 (ins DPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2609 [(set QPR:$Vd, (TyQ (OpNode (TyD DPR:$Vm))))]>;
2617 (ins DPR:$Vm), itin, OpcodeStr, Dt, "$Vd, $Vm", "",
2618 [(set QPR:$Vd, (TyQ (IntOp (TyD DPR:$Vm))))]>;
2622 : N2V<0b11, 0b11, op19_18, 0b10, op11_7, 0, 0, (outs DPR:$Vd, DPR:$Vm),
2624 OpcodeStr, Dt, "$Vd, $Vm",
2625 "$src1 = $Vd, $src2 = $Vm", []>;
2628 : N2V<0b11, 0b11, op19_18, 0b10, op11_7, 1, 0, (outs QPR:$Vd, QPR:$Vm),
2629 (ins QPR:$src1, QPR:$src2), itin, OpcodeStr, Dt, "$Vd, $Vm",
2630 "$src1 = $Vd, $src2 = $Vm", []>;
2637 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2638 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2639 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2650 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2651 OpcodeStr, "$Vd, $Vn, $Vm", "",
2652 [(set DPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>{
2662 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2663 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2666 (Ty (ARMvduplane (Ty DPR_VFP2:$Vm),imm:$lane)))))]> {
2674 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2675 NVMulSLFrm, IIC_VMULi16D, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane","",
2678 (Ty (ARMvduplane (Ty DPR_8:$Vm), imm:$lane)))))]> {
2688 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2689 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2690 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2699 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2700 OpcodeStr, "$Vd, $Vn, $Vm", "",
2701 [(set QPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>{
2710 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2711 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2714 (ResTy (ARMvduplane (OpTy DPR_VFP2:$Vm),
2723 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2724 NVMulSLFrm, IIC_VMULi16Q, OpcodeStr, Dt,"$Vd, $Vn, $Vm$lane", "",
2727 (ResTy (ARMvduplane (OpTy DPR_8:$Vm),
2739 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), f, itin,
2740 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2741 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2752 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), f, itin, OpcodeStr, Dt,
2753 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
2761 (outs DPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2762 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2765 (Ty (ARMvduplane (Ty DPR_VFP2:$Vm),
2773 (outs DPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2774 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2777 (Ty (ARMvduplane (Ty DPR_8:$Vm), imm:$lane)))))]> {
2784 (outs DPR:$Vd), (ins DPR:$Vm, DPR:$Vn), f, itin,
2785 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2786 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm), (OpTy DPR:$Vn))))]> {
2787 let TwoOperandAliasConstraint = "$Vm = $Vd";
2795 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin,
2796 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
2797 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2808 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), f, itin, OpcodeStr, Dt,
2809 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]> {
2819 (outs QPR:$Vd), (ins QPR:$src, QPR:$Vn, QPR:$Vm),
2822 (OpTy QPR:$Vm))))]> {
2831 (outs QPR:$Vd), (ins QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2832 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2835 (ResTy (ARMvduplane (OpTy DPR_VFP2:$Vm),
2843 (outs QPR:$Vd), (ins QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2844 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
2847 (ResTy (ARMvduplane (OpTy DPR_8:$Vm),
2855 (outs QPR:$Vd), (ins QPR:$Vm, QPR:$Vn), f, itin,
2856 OpcodeStr, Dt, "$Vd, $Vm, $Vn", "",
2857 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm), (OpTy QPR:$Vn))))]> {
2858 let TwoOperandAliasConstraint = "$Vm = $Vd";
2867 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2868 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2870 (Ty (MulOp DPR:$Vn, DPR:$Vm)))))]>;
2877 (ins DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2879 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2883 (Ty (ARMvduplane (Ty DPR_VFP2:$Vm),
2890 (ins DPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2892 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2896 (Ty (ARMvduplane (Ty DPR_8:$Vm),
2903 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2904 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2906 (Ty (MulOp QPR:$Vn, QPR:$Vm)))))]>;
2912 (ins QPR:$src1, QPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2914 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2918 (ResTy (ARMvduplane (OpTy DPR_VFP2:$Vm),
2926 (ins QPR:$src1, QPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
2928 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2932 (ResTy (ARMvduplane (OpTy DPR_8:$Vm),
2940 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2941 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2943 (Ty (IntOp (Ty DPR:$Vn), (Ty DPR:$Vm))))))]>;
2948 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2949 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2951 (Ty (IntOp (Ty QPR:$Vn), (Ty QPR:$Vm))))))]>;
2959 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2960 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2962 (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]>;
2967 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
2968 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2970 (OpTy QPR:$Vn), (OpTy QPR:$Vm))))]>;
2977 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
2978 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
2981 (TyD DPR:$Vm)))))]>;
2986 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
2988 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
2992 (TyD (ARMvduplane (TyD DPR_VFP2:$Vm),
2998 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3000 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
3004 (TyD (ARMvduplane (TyD DPR_8:$Vm),
3013 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3014 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
3017 (TyD DPR:$Vm)))))))]>;
3025 (outs QPR:$Vd), (ins QPR:$src1, DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3026 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "$src1 = $Vd",
3028 (TyQ (IntOp (TyQ QPR:$src1), (TyD DPR:$Vn), (TyD DPR:$Vm))))]>;
3034 (ins QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3036 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
3040 (OpTy (ARMvduplane (OpTy DPR_VFP2:$Vm),
3047 (ins QPR:$src1, DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3049 OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "$src1 = $Vd",
3053 (OpTy (ARMvduplane (OpTy DPR_8:$Vm),
3061 (outs DPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINi4D,
3062 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3063 [(set DPR:$Vd, (TyD (IntOp (TyQ QPR:$Vn), (TyQ QPR:$Vm))))]> {
3072 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3073 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3074 [(set QPR:$Vd, (TyQ (OpNode (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
3082 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3083 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3086 (TyD (ARMvduplane (TyD DPR_VFP2:$Vm),imm:$lane)))))]>;
3091 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3092 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3095 (TyD (ARMvduplane (TyD DPR_8:$Vm), imm:$lane)))))]>;
3103 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3104 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3106 (TyQ (ExtOp (TyD DPR:$Vm)))))]> {
3116 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3117 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3119 (TyD DPR:$Vm))))))]> {
3128 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3129 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3130 [(set QPR:$Vd, (TyQ (IntOp (TyD DPR:$Vn), (TyD DPR:$Vm))))]> {
3140 (outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin, OpcodeStr, Dt,
3141 [(set QPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vn), (OpTy DPR:$Vm))))]> {
3150 (outs QPR:$Vd), (ins DPR:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
3151 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3154 (OpTy (ARMvduplane (OpTy DPR_VFP2:$Vm),
3160 (outs QPR:$Vd), (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$lane),
3161 NVMulSLFrm, itin, OpcodeStr, Dt, "$Vd, $Vn, $Vm$lane", "",
3164 (OpTy (ARMvduplane (OpTy DPR_8:$Vm),
3172 (outs QPR:$Vd), (ins QPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VSUBiD,
3173 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3175 (TyQ (ExtOp (TyD DPR:$Vm)))))]> {
3187 (ins DPR:$Vm), IIC_VSHLiD, OpcodeStr, Dt, "$Vd, $Vm", "",
3188 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm))))]>;
3194 (ins QPR:$Vm), IIC_VSHLiD, OpcodeStr, Dt, "$Vd, $Vm", "",
3195 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm))))]>;
3205 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vm), IIC_VPALiD,
3206 OpcodeStr, Dt, "$Vd, $Vm", "$src1 = $Vd",
3207 [(set DPR:$Vd, (ResTy (IntOp (ResTy DPR:$src1), (OpTy DPR:$Vm))))]>;
3213 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vm), IIC_VPALiQ,
3214 OpcodeStr, Dt, "$Vd, $Vm", "$src1 = $Vd",
3215 [(set QPR:$Vd, (ResTy (IntOp (ResTy QPR:$src1), (OpTy QPR:$Vm))))]>;
3219 let TwoOperandAliasConstraint = "$Vm = $Vd" in {
3224 (outs DPR:$Vd), (ins DPR:$Vm, ImmTy:$SIMM), f, itin,
3225 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3226 [(set DPR:$Vd, (Ty (OpNode (Ty DPR:$Vm), (i32 imm:$SIMM))))]>;
3231 (outs QPR:$Vd), (ins QPR:$Vm, ImmTy:$SIMM), f, itin,
3232 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3233 [(set QPR:$Vd, (Ty (OpNode (Ty QPR:$Vm), (i32 imm:$SIMM))))]>;
3242 (outs QPR:$Vd), (ins DPR:$Vm, ImmTy:$SIMM), N2RegVShLFrm,
3243 IIC_VSHLiD, OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3244 [(set QPR:$Vd, (ResTy (OpNode (OpTy DPR:$Vm), ImmTy:$SIMM)))]>;
3252 (outs DPR:$Vd), (ins QPR:$Vm, ImmTy:$SIMM), N2RegVShRFrm, itin,
3253 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3254 [(set DPR:$Vd, (ResTy (OpNode (OpTy QPR:$Vm),
3259 let TwoOperandAliasConstraint = "$Vm = $Vd" in {
3264 (ins DPR:$src1, DPR:$Vm, ImmTy:$SIMM), N2RegVShRFrm, IIC_VPALiD,
3265 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "$src1 = $Vd",
3267 (Ty (ShOp DPR:$Vm, (i32 imm:$SIMM))))))]>;
3272 (ins QPR:$src1, QPR:$Vm, ImmTy:$SIMM), N2RegVShRFrm, IIC_VPALiD,
3273 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "$src1 = $Vd",
3275 (Ty (ShOp QPR:$Vm, (i32 imm:$SIMM))))))]>;
3280 let TwoOperandAliasConstraint = "$Vm = $Vd" in {
3285 (ins DPR:$src1, DPR:$Vm, ImmTy:$SIMM), f, IIC_VSHLiD,
3286 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "$src1 = $Vd",
3287 [(set DPR:$Vd, (Ty (ShOp DPR:$src1, DPR:$Vm, (i32 imm:$SIMM))))]>;
3292 (ins QPR:$src1, QPR:$Vm, ImmTy:$SIMM), f, IIC_VSHLiQ,
3293 OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "$src1 = $Vd",
3294 [(set QPR:$Vd, (Ty (ShOp QPR:$src1, QPR:$Vm, (i32 imm:$SIMM))))]>;
3303 (outs DPR:$Vd), (ins DPR:$Vm, neon_vcvt_imm32:$SIMM), NVCVTFrm,
3304 IIC_VUNAD, OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3305 [(set DPR:$Vd, (ResTy (IntOp (OpTy DPR:$Vm), (i32 imm:$SIMM))))]>;
3310 (outs QPR:$Vd), (ins QPR:$Vm, neon_vcvt_imm32:$SIMM), NVCVTFrm,
3311 IIC_VUNAQ, OpcodeStr, Dt, "$Vd, $Vm, $SIMM", "",
3312 [(set QPR:$Vd, (ResTy (IntOp (OpTy QPR:$Vm), (i32 imm:$SIMM))))]>;
3333 (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
3335 [(set DPR:$Vd, (v8i8 (ARMvcmpz (v8i8 DPR:$Vm), fc)))]>;
3337 (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
3339 [(set DPR:$Vd, (v4i16 (ARMvcmpz (v4i16 DPR:$Vm), fc)))]>;
3341 (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
3343 [(set DPR:$Vd, (v2i32 (ARMvcmpz (v2i32 DPR:$Vm), fc)))]>;
3345 (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
3347 [(set DPR:$Vd, (v2i32 (ARMvcmpz (v2f32 DPR:$Vm), fc)))]> {
3351 (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
3353 [(set DPR:$Vd, (v4i16 (ARMvcmpz (v4f16 DPR:$Vm), fc)))]>,
3360 (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
3362 [(set QPR:$Vd, (v16i8 (ARMvcmpz (v16i8 QPR:$Vm), fc)))]>;
3364 (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
3366 [(set QPR:$Vd, (v8i16 (ARMvcmpz (v8i16 QPR:$Vm), fc)))]>;
3368 (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
3370 [(set QPR:$Vd, (v4i32 (ARMvcmpz (v4i32 QPR:$Vm), fc)))]>;
3372 (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
3374 [(set QPR:$Vd, (v4i32 (ARMvcmpz (v4f32 QPR:$Vm), fc)))]> {
3378 (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
3380 [(set QPR:$Vd, (v8i16 (ARMvcmpz (v8f16 QPR:$Vm), fc)))]>,
3391 (outs QPR:$Vd), (ins QPR:$Vn, QPR:$Vm), N3RegFrm, itin,
3392 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3393 [(set QPR:$Vd, (ResTy (ARMvcmp (OpTy QPR:$Vn), (OpTy QPR:$Vm), fc)))]> {
3403 (outs DPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
3404 OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
3405 [(set DPR:$Vd, (ResTy (ARMvcmp (OpTy DPR:$Vn), (OpTy DPR:$Vm), fc)))]> {
4314 def : Pat<(v8i8 (trunc (ARMvshruImm (add (v8i16 QPR:$Vn), QPR:$Vm), 8))),
4315 (VADDHNv8i8 QPR:$Vn, QPR:$Vm)>;
4316 def : Pat<(v4i16 (trunc (ARMvshruImm (add (v4i32 QPR:$Vn), QPR:$Vm), 16))),
4317 (VADDHNv4i16 QPR:$Vn, QPR:$Vm)>;
4318 def : Pat<(v2i32 (trunc (ARMvshruImm (add (v2i64 QPR:$Vn), QPR:$Vm), 32))),
4319 (VADDHNv2i32 QPR:$Vn, QPR:$Vm)>;
4544 (v4i16 DPR:$Vm))),
4545 (v4i16 (VQRDMLAHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4547 (v2i32 DPR:$Vm))),
4548 (v2i32 (VQRDMLAHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4550 (v8i16 QPR:$Vm))),
4551 (v8i16 (VQRDMLAHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4553 (v4i32 QPR:$Vm))),
4554 (v4i32 (VQRDMLAHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4561 (v4i16 (ARMvduplane (v4i16 DPR_8:$Vm),
4563 (v4i16 (VQRDMLAHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm,
4567 (v2i32 (ARMvduplane (v2i32 DPR_VFP2:$Vm),
4569 (v2i32 (VQRDMLAHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4598 (v4i16 DPR:$Vm))),
4599 (v4i16 (VQRDMLSHv4i16 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4601 (v2i32 DPR:$Vm))),
4602 (v2i32 (VQRDMLSHv2i32 DPR:$src1, DPR:$Vn, DPR:$Vm))>;
4604 (v8i16 QPR:$Vm))),
4605 (v8i16 (VQRDMLSHv8i16 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4607 (v4i32 QPR:$Vm))),
4608 (v4i32 (VQRDMLSHv4i32 QPR:$src1, QPR:$Vn, QPR:$Vm))>;
4615 (v4i16 (ARMvduplane (v4i16 DPR_8:$Vm),
4617 (v4i16 (VQRDMLSHslv4i16 DPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane))>;
4620 (v2i32 (ARMvduplane (v2i32 DPR_VFP2:$Vm),
4622 (v2i32 (VQRDMLSHslv2i32 DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
4653 (v4i16 DPR:$Vm))))),
4654 (VQDMLALv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4657 (v2i32 DPR:$Vm))))),
4658 (VQDMLALv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4661 (v4i16 (ARMvduplane (v4i16 DPR_8:$Vm),
4663 (VQDMLALslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4666 (v2i32 (ARMvduplane (v2i32 DPR_VFP2:$Vm),
4668 (VQDMLALslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4745 (v4i16 DPR:$Vm))))),
4746 (VQDMLSLv4i32 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4749 (v2i32 DPR:$Vm))))),
4750 (VQDMLSLv2i64 QPR:$src1, DPR:$Vn, DPR:$Vm)>;
4753 (v4i16 (ARMvduplane (v4i16 DPR_8:$Vm),
4755 (VQDMLSLslv4i16 QPR:$src1, DPR:$Vn, DPR_8:$Vm, imm:$lane)>;
4758 (v2i32 (ARMvduplane (v2i32 DPR_VFP2:$Vm),
4760 (VQDMLSLslv2i32 QPR:$src1, DPR:$Vn, DPR_VFP2:$Vm, imm:$lane)>;
4794 def : Pat<(v4f16 (fma DPR:$Vn, DPR:$Vm, DPR:$src1)),
4795 (VFMAhd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4797 def : Pat<(v8f16 (fma QPR:$Vn, QPR:$Vm, QPR:$src1)),
4798 (VFMAhq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4800 def : Pat<(v2f32 (fma DPR:$Vn, DPR:$Vm, DPR:$src1)),
4801 (VFMAfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4803 def : Pat<(v4f32 (fma QPR:$Vn, QPR:$Vm, QPR:$src1)),
4804 (VFMAfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4806 def : Pat<(v2f32 (fma (fneg DPR:$Vn), DPR:$Vm, DPR:$src1)),
4807 (VFMSfd DPR:$src1, DPR:$Vn, DPR:$Vm)>,
4809 def : Pat<(v4f32 (fma (fneg QPR:$Vn), QPR:$Vm, QPR:$src1)),
4810 (VFMSfq QPR:$src1, QPR:$Vn, QPR:$Vm)>,
4821 (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm), N3RegFrm, IIC_VDOTPROD,
4826 (InputTy RegTy:$Vm)))]> {
4842 (ins Ty:$Vd, Ty:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane),
4846 let AsmString = !strconcat(opc, ".", dt, "\t$Vd, $Vn, $Vm$lane");
4856 (ARMvduplane (AccumType Ty:$Vm),
4862 int_arm_neon_udot, (v2i32 DPR_VFP2:$Vm)>;
4864 int_arm_neon_sdot, (v2i32 DPR_VFP2:$Vm)>;
4866 int_arm_neon_udot, (EXTRACT_SUBREG QPR:$Vm, dsub_0)>;
4868 int_arm_neon_sdot, (EXTRACT_SUBREG QPR:$Vm, dsub_0)>;
4875 (ins QPR:$Vd, QPR:$Vn, QPR:$Vm), N3RegFrm, NoItinerary,
4879 (v16i8 QPR:$Vm)))]> {
4889 (ins RegTy:$Vd, RegTy:$Vn, DPR_VFP2:$Vm, VectorIndex32:$lane), N3RegFrm,
4893 let AsmString = !strconcat(Asm, ".", AsmTy, "\t$Vd, $Vn, $Vm$lane");
4902 (ARMvduplane (AccumTy RegTy:$Vm),
4913 (ARMvduplane (AccumTy RegTy:$Vm),
4926 int_arm_neon_usdot, (v2i32 DPR_VFP2:$Vm)>;
4928 int_arm_neon_usdot, (EXTRACT_SUBREG QPR:$Vm, dsub_0)>;
4929 defm VSUDOTDI : SUDOTLane<0, DPR, v2i32, v8i8, (v2i32 DPR_VFP2:$Vm)>;
4930 defm VSUDOTQI : SUDOTLane<1, QPR, v4i32, v16i8, (EXTRACT_SUBREG QPR:$Vm, dsub_0)>;
4938 iops, itin, opc, dt, "$Vd, $Vn, $Vm, $rot", "$src1 = $Vd", pattern>{
4947 iops, itin, opc, dt, "$Vd, $Vn, $Vm, $rot", "", pattern> {
4956 "$Vd, $Vn, $Vm$lane, $rot", "$src1 = $Vd", pattern> {
4968 "$Vd, $Vn, $Vm$lane, $rot", "$src1 = $Vd", pattern> {
4973 let Inst{5} = Vm{4};
4984 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, complexrotateop:$rot),
4987 (ins QPR:$src1, QPR:$Vn, QPR:$Vm, complexrotateop:$rot),
4992 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, complexrotateop:$rot),
4995 (ins QPR:$src1, QPR:$Vn, QPR:$Vm, complexrotateop:$rot),
5005 (ins DPR:$Vn, DPR:$Vm, complexrotateopodd:$rot),
5009 (ins QPR:$Vn, QPR:$Vm, complexrotateopodd:$rot),
5015 (ins DPR:$Vn, DPR:$Vm, complexrotateopodd:$rot),
5019 (ins QPR:$Vn, QPR:$Vm, complexrotateopodd:$rot),
5030 (ins DPR:$src1, DPR:$Vn, DPR_VFP2:$Vm,
5035 (ins QPR:$src1, QPR:$Vn, DPR_VFP2:$Vm,
5042 (ins DPR:$src1, DPR:$Vn, DPR:$Vm, VectorIndex64:$lane,
5047 (ins QPR:$src1, QPR:$Vn, DPR:$Vm, VectorIndex64:$lane,
5122 def : Pat<(v8i8 (trunc (ARMvshruImm (sub (v8i16 QPR:$Vn), QPR:$Vm), 8))),
5123 (VSUBHNv8i8 QPR:$Vn, QPR:$Vm)>;
5124 def : Pat<(v4i16 (trunc (ARMvshruImm (sub (v4i32 QPR:$Vn), QPR:$Vm), 16))),
5125 (VSUBHNv4i16 QPR:$Vn, QPR:$Vm)>;
5126 def : Pat<(v2i32 (trunc (ARMvshruImm (sub (v2i64 QPR:$Vn), QPR:$Vm), 32))),
5127 (VSUBHNv2i32 QPR:$Vn, QPR:$Vm)>;
5146 let TwoOperandAliasConstraint = "$Vm = $Vd" in
5148 "$Vd, $Vm, #0", ARMCCeq>;
5166 let TwoOperandAliasConstraint = "$Vm = $Vd" in {
5168 "$Vd, $Vm, #0", ARMCCge>;
5170 "$Vd, $Vm, #0", ARMCCle>;
5189 let TwoOperandAliasConstraint = "$Vm = $Vd" in {
5191 "$Vd, $Vm, #0", ARMCCgt>;
5193 "$Vd, $Vm, #0", ARMCClt>;
5222 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
5223 (VACGTfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5224 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vn, $Vm",
5225 (VACGTfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5226 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
5227 (VACGEfd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5228 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vn, $Vm",
5229 (VACGEfq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5231 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
5232 (VACGThd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5233 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vn, $Vm",
5234 (VACGThq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5235 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
5236 (VACGEhd DPR:$Vd, DPR:$Vm, DPR:$Vn, pred:$p)>;
5237 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vn, $Vm",
5238 (VACGEhq QPR:$Vd, QPR:$Vm, QPR:$Vn, pred:$p)>;
5246 : N3VCP8<op1, op2, 1, op3, (outs Td:$Vd), (ins Tn:$Vn, Tm:$Vm), NoItinerary,
5247 asm, "f16", "$Vd, $Vn, $Vm", "", []>;
5251 : N3VCP8Q0<op1, op2, 0, op3, (outs Td:$Vd), (ins Tn:$Vn, Tm:$Vm), NoItinerary,
5252 asm, "f16", "$Vd, $Vn, $Vm", "", []>;
5257 (ins SPR:$Vn, SPR_8:$Vm, VectorIndex32:$idx),
5258 IIC_VMACD, opc, type, "$Vd, $Vn, $Vm$idx", "", []> {
5263 let Inst{5} = Vm{0};
5264 let Inst{2-0} = Vm{3-1};
5270 (ins DPR:$Vn, DPR_8:$Vm, VectorIndex16:$idx),
5271 IIC_VMACD, opc, type, "$Vd, $Vn, $Vm$idx", "", []> {
5289 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vm",
5290 (VACGTfd DPR:$Vd, DPR:$Vm, DPR:$Vd, pred:$p)>;
5291 def: NEONInstAlias<"vaclt${p}.f32 $Vd, $Vm",
5292 (VACGTfq QPR:$Vd, QPR:$Vm, QPR:$Vd, pred:$p)>;
5293 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vm",
5294 (VACGEfd DPR:$Vd, DPR:$Vm, DPR:$Vd, pred:$p)>;
5295 def: NEONInstAlias<"vacle${p}.f32 $Vd, $Vm",
5296 (VACGEfq QPR:$Vd, QPR:$Vm, QPR:$Vd, pred:$p)>;
5298 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vm",
5299 (VACGThd DPR:$Vd, DPR:$Vm, DPR:$Vd, pred:$p)>;
5300 def: NEONInstAlias<"vaclt${p}.f16 $Vd, $Vm",
5301 (VACGThq QPR:$Vd, QPR:$Vm, QPR:$Vd, pred:$p)>;
5302 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vm",
5303 (VACGEhd DPR:$Vd, DPR:$Vm, DPR:$Vd, pred:$p)>;
5304 def: NEONInstAlias<"vacle${p}.f16 $Vd, $Vm",
5305 (VACGEhq QPR:$Vd, QPR:$Vm, QPR:$Vd, pred:$p)>;
5397 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
5398 "vbic", "$Vd, $Vn, $Vm", "",
5400 (vnotd DPR:$Vm))))]>;
5402 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
5403 "vbic", "$Vd, $Vn, $Vm", "",
5405 (vnotq QPR:$Vm))))]>;
5451 (ins DPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VBINiD,
5452 "vorn", "$Vd, $Vn, $Vm", "",
5454 (vnotd DPR:$Vm))))]>;
5456 (ins QPR:$Vn, QPR:$Vm), N3RegFrm, IIC_VBINiQ,
5457 "vorn", "$Vd, $Vn, $Vm", "",
5459 (vnotq QPR:$Vm))))]>;
5501 (outs DPR:$Vd), (ins DPR:$Vm), IIC_VSUBiD,
5502 "vmvn", "$Vd, $Vm", "",
5503 [(set DPR:$Vd, (v2i32 (vnotd DPR:$Vm)))]>;
5505 (outs QPR:$Vd), (ins QPR:$Vm), IIC_VSUBiD,
5506 "vmvn", "$Vd, $Vm", "",
5507 [(set QPR:$Vd, (v4i32 (vnotq QPR:$Vm)))]>;
5528 : PseudoNeonI<(outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5531 (v2i32 (NEONvbsp DPR:$src1, DPR:$Vn, DPR:$Vm)))]>;
5534 (v8i8 DPR:$Vn), (v8i8 DPR:$Vm))),
5535 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5537 (v4i16 DPR:$Vn), (v4i16 DPR:$Vm))),
5538 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5540 (v2i32 DPR:$Vn), (v2i32 DPR:$Vm))),
5541 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5543 (v2f32 DPR:$Vn), (v2f32 DPR:$Vm))),
5544 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5546 (v1i64 DPR:$Vn), (v1i64 DPR:$Vm))),
5547 (VBSPd DPR:$src1, DPR:$Vn, DPR:$Vm)>;
5550 (and DPR:$Vm, (vnotd DPR:$Vd)))),
5551 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5553 (and DPR:$Vm, (vnotd DPR:$Vd)))),
5554 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5556 (and DPR:$Vm, (vnotd DPR:$Vd)))),
5557 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5559 (and DPR:$Vm, (vnotd DPR:$Vd)))),
5560 (VBSPd DPR:$Vd, DPR:$Vn, DPR:$Vm)>;
5564 : PseudoNeonI<(outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5567 (v4i32 (NEONvbsp QPR:$src1, QPR:$Vn, QPR:$Vm)))]>;
5570 (v16i8 QPR:$Vn), (v16i8 QPR:$Vm))),
5571 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5573 (v8i16 QPR:$Vn), (v8i16 QPR:$Vm))),
5574 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5576 (v4i32 QPR:$Vn), (v4i32 QPR:$Vm))),
5577 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5579 (v4f32 QPR:$Vn), (v4f32 QPR:$Vm))),
5580 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5582 (v2i64 QPR:$Vn), (v2i64 QPR:$Vm))),
5583 (VBSPq QPR:$src1, QPR:$Vn, QPR:$Vm)>;
5586 (and QPR:$Vm, (vnotq QPR:$Vd)))),
5587 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5589 (and QPR:$Vm, (vnotq QPR:$Vd)))),
5590 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5592 (and QPR:$Vm, (vnotq QPR:$Vd)))),
5593 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5595 (and QPR:$Vm, (vnotq QPR:$Vd)))),
5596 (VBSPq QPR:$Vd, QPR:$Vn, QPR:$Vm)>;
5601 (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5603 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5607 (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5609 "vbsl", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5615 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5617 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5620 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5622 "vbif", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5628 (outs DPR:$Vd), (ins DPR:$src1, DPR:$Vn, DPR:$Vm),
5630 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
5633 (outs QPR:$Vd), (ins QPR:$src1, QPR:$Vn, QPR:$Vm),
5635 "vbit", "$Vd, $Vn, $Vm", "$src1 = $Vd",
6137 : N2V<0b11, 0b11, size, 0b01, 0b00111, 0, 0, (outs DPR:$Vd), (ins DPR:$Vm),
6138 IIC_VSHLiD, OpcodeStr, Dt, "$Vd, $Vm", "",
6139 [(set DPR:$Vd, (Ty (vnegd DPR:$Vm)))]>;
6141 : N2V<0b11, 0b11, size, 0b01, 0b00111, 1, 0, (outs QPR:$Vd), (ins QPR:$Vm),
6142 IIC_VSHLiQ, OpcodeStr, Dt, "$Vd, $Vm", "",
6143 [(set QPR:$Vd, (Ty (vnegq QPR:$Vm)))]>;
6155 (outs DPR:$Vd), (ins DPR:$Vm), IIC_VUNAD,
6156 "vneg", "f32", "$Vd, $Vm", "",
6157 [(set DPR:$Vd, (v2f32 (fneg DPR:$Vm)))]>;
6159 (outs QPR:$Vd), (ins QPR:$Vm), IIC_VUNAQ,
6160 "vneg", "f32", "$Vd, $Vm", "",
6161 [(set QPR:$Vd, (v4f32 (fneg QPR:$Vm)))]>;
6163 (outs DPR:$Vd), (ins DPR:$Vm), IIC_VUNAD,
6164 "vneg", "f16", "$Vd, $Vm", "",
6165 [(set DPR:$Vd, (v4f16 (fneg DPR:$Vm)))]>,
6168 (outs QPR:$Vd), (ins QPR:$Vm), IIC_VUNAQ,
6169 "vneg", "f16", "$Vd, $Vm", "",
6170 [(set QPR:$Vd, (v8f16 (fneg QPR:$Vm)))]>,
6207 (outs DPR:$Vd, DPR:$Vm), (ins DPR:$in1, DPR:$in2),
6208 NoItinerary, "vswp", "$Vd, $Vm", "$in1 = $Vd, $in2 = $Vm",
6211 (outs QPR:$Vd, QPR:$Vm), (ins QPR:$in1, QPR:$in2),
6212 NoItinerary, "vswp", "$Vd, $Vm", "$in1 = $Vd, $in2 = $Vm",
6218 def : NEONInstAlias<"vmov${p} $Vd, $Vm",
6219 (VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
6220 def : NEONInstAlias<"vmov${p} $Vd, $Vm",
6221 (VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
6294 def : NEONInstAlias<"vmov${p}.i" # To.Size # " $Vd, $Vm",
6295 (VMOVv8i8 DPR:$Vd, nImmVMOVIReplicate<i8, To>:$Vm, pred:$p)>;
6296 def : NEONInstAlias<"vmov${p}.i" # To.Size # " $Vd, $Vm",
6297 (VMOVv16i8 QPR:$Vd, nImmVMOVIReplicate<i8, To>:$Vm, pred:$p)>;
6302 def : NEONInstAlias<"vmvn${p}.i" # To.Size # " $Vd, $Vm",
6303 (VMOVv8i8 DPR:$Vd, nImmVINVIReplicate<i8, To>:$Vm, pred:$p)>;
6304 def : NEONInstAlias<"vmvn${p}.i" # To.Size # " $Vd, $Vm",
6305 (VMOVv16i8 QPR:$Vd, nImmVINVIReplicate<i8, To>:$Vm, pred:$p)>;
6318 def : NEONInstAlias<"vmov${p}.i" # To.Size # " $Vd, $Vm",
6319 (V8 DPR:$Vd, nImmVMOVIReplicate<From, To>:$Vm, pred:$p)>;
6320 def : NEONInstAlias<"vmov${p}.i" # To.Size # " $Vd, $Vm",
6321 (V16 QPR:$Vd, nImmVMOVIReplicate<From, To>:$Vm, pred:$p)>;
6322 def : NEONInstAlias<"vmvn${p}.i" # To.Size # " $Vd, $Vm",
6323 (NV8 DPR:$Vd, nImmVMOVIReplicate<From, To>:$Vm, pred:$p)>;
6324 def : NEONInstAlias<"vmvn${p}.i" # To.Size # " $Vd, $Vm",
6325 (NV16 QPR:$Vd, nImmVMOVIReplicate<From, To>:$Vm, pred:$p)>;
6668 : NVDupLane<op19_16, 0, (outs DPR:$Vd), (ins DPR:$Vm, IdxTy:$lane),
6669 IIC_VMOVD, OpcodeStr, Dt, "$Vd, $Vm$lane",
6670 [(set DPR:$Vd, (Ty (ARMvduplane (Ty DPR:$Vm), imm:$lane)))]>;
6674 : NVDupLane<op19_16, 1, (outs QPR:$Vd), (ins DPR:$Vm, IdxTy:$lane),
6675 IIC_VMOVQ, OpcodeStr, Dt, "$Vd, $Vm$lane",
6676 [(set QPR:$Vd, (ResTy (ARMvduplane (OpTy DPR:$Vm),
6707 def : Pat<(v4f16 (ARMvduplane (v4f16 DPR:$Vm), imm:$lane)),
6708 (VDUPLN16d DPR:$Vm, imm:$lane)>;
6710 def : Pat<(v2f32 (ARMvduplane (v2f32 DPR:$Vm), imm:$lane)),
6711 (VDUPLN32d DPR:$Vm, imm:$lane)>;
6713 def : Pat<(v4f32 (ARMvduplane (v2f32 DPR:$Vm), imm:$lane)),
6714 (VDUPLN32q DPR:$Vm, imm:$lane)>;
6752 def : Pat<(v4bf16 (ARMvduplane (v4bf16 DPR:$Vm), imm:$lane)),
6753 (VDUPLN16d DPR:$Vm, imm:$lane)>;
6783 def : Pat<(v8i16 (anyext (v8i8 DPR:$Vm))), (VMOVLuv8i16 DPR:$Vm)>;
6784 def : Pat<(v4i32 (anyext (v4i16 DPR:$Vm))), (VMOVLuv4i32 DPR:$Vm)>;
6785 def : Pat<(v2i64 (anyext (v2i32 DPR:$Vm))), (VMOVLuv2i64 DPR:$Vm)>;
6966 (ins DPR:$Vm), IIC_VMOVD,
6967 OpcodeStr, Dt, "$Vd, $Vm", "",
6968 [(set DPR:$Vd, (Ty (ARMvrev64 (Ty DPR:$Vm))))]>;
6971 (ins QPR:$Vm), IIC_VMOVQ,
6972 OpcodeStr, Dt, "$Vd, $Vm", "",
6973 [(set QPR:$Vd, (Ty (ARMvrev64 (Ty QPR:$Vm))))]>;
6979 def : Pat<(v2f32 (ARMvrev64 (v2f32 DPR:$Vm))), (VREV64d32 DPR:$Vm)>;
6987 def : Pat<(v4f32 (ARMvrev64 (v4f32 QPR:$Vm))),
6988 (VREV64q32 QPR:$Vm)>;
6989 def : Pat<(v8f16 (ARMvrev64 (v8f16 QPR:$Vm))),
6990 (VREV64q16 QPR:$Vm)>;
6991 def : Pat<(v4f16 (ARMvrev64 (v4f16 DPR:$Vm))),
6992 (VREV64d16 DPR:$Vm)>;
6993 def : Pat<(v8bf16 (ARMvrev64 (v8bf16 QPR:$Vm))),
6994 (VREV64q16 QPR:$Vm)>;
6995 def : Pat<(v4bf16 (ARMvrev64 (v4bf16 DPR:$Vm))),
6996 (VREV64d16 DPR:$Vm)>;
7003 (ins DPR:$Vm), IIC_VMOVD,
7004 OpcodeStr, Dt, "$Vd, $Vm", "",
7005 [(set DPR:$Vd, (Ty (ARMvrev32 (Ty DPR:$Vm))))]>;
7008 (ins QPR:$Vm), IIC_VMOVQ,
7009 OpcodeStr, Dt, "$Vd, $Vm", "",
7010 [(set QPR:$Vd, (Ty (ARMvrev32 (Ty QPR:$Vm))))]>;
7019 def : Pat<(v8f16 (ARMvrev32 (v8f16 QPR:$Vm))),
7020 (VREV32q16 QPR:$Vm)>;
7021 def : Pat<(v4f16 (ARMvrev32 (v4f16 DPR:$Vm))),
7022 (VREV32d16 DPR:$Vm)>;
7023 def : Pat<(v8bf16 (ARMvrev32 (v8bf16 QPR:$Vm))),
7024 (VREV32q16 QPR:$Vm)>;
7025 def : Pat<(v4bf16 (ARMvrev32 (v4bf16 DPR:$Vm))),
7026 (VREV32d16 DPR:$Vm)>;
7033 (ins DPR:$Vm), IIC_VMOVD,
7034 OpcodeStr, Dt, "$Vd, $Vm", "",
7035 [(set DPR:$Vd, (Ty (ARMvrev16 (Ty DPR:$Vm))))]>;
7038 (ins QPR:$Vm), IIC_VMOVQ,
7039 OpcodeStr, Dt, "$Vd, $Vm", "",
7040 [(set QPR:$Vd, (Ty (ARMvrev16 (Ty QPR:$Vm))))]>;
7069 (ins DPR:$Vn, DPR:$Vm, immTy:$index), NVExtFrm,
7070 IIC_VEXTD, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
7072 (Ty DPR:$Vm), imm:$index)))]> {
7080 (ins QPR:$Vn, QPR:$Vm, immTy:$index), NVExtFrm,
7081 IIC_VEXTQ, OpcodeStr, Dt, "$Vd, $Vn, $Vm, $index", "",
7083 (Ty QPR:$Vm), imm:$index)))]> {
7097 def : Pat<(v4f16 (NEONvext (v4f16 DPR:$Vn), (v4f16 DPR:$Vm), (i32 imm:$index))),
7098 (VEXTd16 DPR:$Vn, DPR:$Vm, imm:$index)>;
7099 def : Pat<(v4bf16 (NEONvext (v4bf16 DPR:$Vn), (v4bf16 DPR:$Vm), (i32 imm:$index))),
7100 (VEXTd16 DPR:$Vn, DPR:$Vm, imm:$index)>;
7108 def : Pat<(v2f32 (NEONvext (v2f32 DPR:$Vn), (v2f32 DPR:$Vm), (i32 imm:$index))),
7109 (VEXTd32 DPR:$Vn, DPR:$Vm, imm:$index)>;
7120 def : Pat<(v8f16 (NEONvext (v8f16 QPR:$Vn), (v8f16 QPR:$Vm), (i32 imm:$index))),
7121 (VEXTq16 QPR:$Vn, QPR:$Vm, imm:$index)>;
7122 def : Pat<(v8bf16 (NEONvext (v8bf16 QPR:$Vn), (v8bf16 QPR:$Vm), (i32 imm:$index))),
7123 (VEXTq16 QPR:$Vn, QPR:$Vm, imm:$index)>;
7135 def : Pat<(v4f32 (NEONvext (v4f32 QPR:$Vn), (v4f32 QPR:$Vm), (i32 imm:$index))),
7136 (VEXTq32 QPR:$Vn, QPR:$Vm, imm:$index)>;
7179 (ins VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB1,
7180 "vtbl", "8", "$Vd, $Vn, $Vm", "",
7181 [(set DPR:$Vd, (v8i8 (NEONvtbl1 VecListOneD:$Vn, DPR:$Vm)))]>;
7186 (ins VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB2,
7187 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7190 (ins VecListThreeD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTB3,
7191 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7194 (ins VecListFourD:$Vn, DPR:$Vm),
7196 "vtbl", "8", "$Vd, $Vn, $Vm", "", []>;
7207 (ins DPR:$orig, VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX1,
7208 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd",
7210 DPR:$orig, VecListOneD:$Vn, DPR:$Vm)))]>;
7214 (ins DPR:$orig, VecListDPair:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX2,
7215 "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd", []>;
7218 (ins DPR:$orig, VecListThreeD:$Vn, DPR:$Vm),
7220 "vtbx", "8", "$Vd, $Vn, $Vm",
7224 (ins DPR:$orig, VecListFourD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX4,
7225 "vtbx", "8", "$Vd, $Vn, $Vm",
7238 def : Pat<(v8i8 (NEONvtbl2 v8i8:$Vn0, v8i8:$Vn1, v8i8:$Vm)),
7241 v8i8:$Vm))>;
7243 v8i8:$Vm)),
7247 v8i8:$Vm))>;
7250 v8i8:$Vn2, v8i8:$Vm)),
7255 v8i8:$Vm))>;
7257 v8i8:$Vn2, v8i8:$Vm)),
7263 v8i8:$Vm))>;
7266 v8i8:$Vn2, v8i8:$Vn3, v8i8:$Vm)),
7271 v8i8:$Vm))>;
7273 v8i8:$Vn2, v8i8:$Vn3, v8i8:$Vm)),
7279 v8i8:$Vm))>;
8118 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
8119 (VANDd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8120 defm : NEONDTAnyInstAlias<"vand${p}", "$Vd, $Vn, $Vm",
8121 (VANDq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8122 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
8123 (VBICd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8124 defm : NEONDTAnyInstAlias<"vbic${p}", "$Vd, $Vn, $Vm",
8125 (VBICq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8126 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
8127 (VEORd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8128 defm : NEONDTAnyInstAlias<"veor${p}", "$Vd, $Vn, $Vm",
8129 (VEORq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8130 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
8131 (VORRd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
8132 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vd, $Vn, $Vm",
8133 (VORRq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
8135 defm : NEONDTAnyInstAlias<"vand${p}", "$Vdn, $Vm",
8136 (VANDd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
8137 defm : NEONDTAnyInstAlias<"vand${p}", "$Vdn, $Vm",
8138 (VANDq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
8139 defm : NEONDTAnyInstAlias<"veor${p}", "$Vdn, $Vm",
8140 (VEORd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
8141 defm : NEONDTAnyInstAlias<"veor${p}", "$Vdn, $Vm",
8142 (VEORq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
8143 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vdn, $Vm",
8144 (VORRd DPR:$Vdn, DPR:$Vdn, DPR:$Vm, pred:$p)>;
8145 defm : NEONDTAnyInstAlias<"vorr${p}", "$Vdn, $Vm",
8146 (VORRq QPR:$Vdn, QPR:$Vdn, QPR:$Vm, pred:$p)>;
8994 defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
8995 (VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
8996 defm : NEONDTAnyInstAlias<"vmov${p}", "$Vd, $Vm",
8997 (VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
8999 defm : NEONDTAnyInstAlias<"vmvn${p}", "$Vd, $Vm",
9000 (VMVNd DPR:$Vd, DPR:$Vm, pred:$p)>;
9001 defm : NEONDTAnyInstAlias<"vmvn${p}", "$Vd, $Vm",
9002 (VMVNq QPR:$Vd, QPR:$Vm, pred:$p)>;
9081 defm : NEONDTAnyInstAlias<"vswp${p}", "$Vd, $Vm",
9082 (VSWPd DPR:$Vd, DPR:$Vm, pred:$p)>;
9083 defm : NEONDTAnyInstAlias<"vswp${p}", "$Vd, $Vm",
9084 (VSWPq QPR:$Vd, QPR:$Vm, pred:$p)>;
9087 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
9088 (VBIFd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9089 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
9090 (VBITd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9091 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
9092 (VBSLd DPR:$Vd, DPR:$Vn, DPR:$Vm, pred:$p)>;
9093 defm : NEONDTAnyInstAlias<"vbif${p}", "$Vd, $Vn, $Vm",
9094 (VBIFq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9095 defm : NEONDTAnyInstAlias<"vbit${p}", "$Vd, $Vn, $Vm",
9096 (VBITq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9097 defm : NEONDTAnyInstAlias<"vbsl${p}", "$Vd, $Vn, $Vm",
9098 (VBSLq QPR:$Vd, QPR:$Vn, QPR:$Vm, pred:$p)>;
9171 (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm),
9175 (InputTy RegTy:$Vm)))]> {
9177 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm");
9186 DPR_VFP2:$Vm, VectorIndex32:$lane), []> {
9190 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm$lane");
9198 (ARMvduplane (AccumTy RegTy:$Vm),
9206 defm BF16VDOTI_VDOTD : BF16VDOTI<0, DPR, "vdot", v2f32, v4bf16, (v2f32 DPR_VFP2:$Vm)>;
9207 defm BF16VDOTI_VDOTQ : BF16VDOTI<1, QPR, "vdot", v4f32, v8bf16, (EXTRACT_SUBREG QPR:$Vm, dsub_0)>;
9212 (outs RegTy:$dst), (ins RegTy:$Vd, RegTy:$Vn, RegTy:$Vm),
9216 (v8bf16 QPR:$Vm)))]> {
9218 let AsmString = !strconcat(opc, ".bf16", "\t$Vd, $Vn, $Vm");
9226 (outs QPR:$dst), (ins QPR:$Vd, QPR:$Vn, QPR:$Vm),
9227 NoItinerary, "vfma" # suffix, "bf16", "$Vd, $Vn, $Vm", "",
9231 (v8bf16 QPR:$Vm)))]> {
9241 (ins QPR:$Vd, QPR:$Vn, DPR_8:$Vm, VectorIndex16:$idx),
9242 IIC_VMACD, "vfma" # suffix, "bf16", "$Vd, $Vn, $Vm$idx", "", []> {
9253 (v8bf16 (ARMvduplane (v8bf16 QPR:$Vm),
9257 (EXTRACT_SUBREG QPR:$Vm,
9266 (outs DPR:$Vd), (ins QPR:$Vm),
9267 NoItinerary, "vcvt", "bf16.f32", "$Vd, $Vm", "", []>;