Lines Matching refs:Qd
1406 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm), itin, iname, suffix,
1407 "$Qd, $Qn, $Qm", vpred_r, cstr, vecsize, pattern> {
1408 bits<4> Qd;
1412 let Inst{22} = Qd{3};
1415 let Inst{15-13} = Qd{2-0};
1506 bits<4> Qd;
1509 let Inst{22} = Qd{3};
1510 let Inst{15-13} = Qd{2-0};
1515 def MVE_VBIC : MVE_bit_arith<(outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm),
1516 "vbic", "", "$Qd, $Qn, $Qm", "", 0b00> {
1534 : MVE_bit_arith<(outs MQPR:$Qd), (ins MQPR:$Qm), iname,
1535 suffix, "$Qd, $Qm", cstr, vecsize> {
1549 def MVE_VREV64_8 : MVE_VREV<"vrev64", "8", 0b00, 0b00, 0b11, "@earlyclobber $Qd">;
1550 def MVE_VREV64_16 : MVE_VREV<"vrev64", "16", 0b01, 0b00, 0b11, "@earlyclobber $Qd">;
1551 def MVE_VREV64_32 : MVE_VREV<"vrev64", "32", 0b10, 0b00, 0b11, "@earlyclobber $Qd">;
1590 def MVE_VMVN : MVE_bit_arith<(outs MQPR:$Qd), (ins MQPR:$Qm),
1591 "vmvn", "", "$Qd, $Qm", "", 0b00> {
1613 : MVE_bit_arith<(outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm),
1614 iname, "", "$Qd, $Qn, $Qm", "", 0b00> {
1686 : MVE_p<(outs MQPR:$Qd), inOps, NoItinerary,
1687 iname, suffix, "$Qd, $imm", vpred_n, "$Qd = $Qd_src", vecsize> {
1689 bits<4> Qd;
1693 let Inst{22} = Qd{3};
1696 let Inst{15-13} = Qd{2-0};
1740 def MVE_VORNimmi16 : MVEInstAlias<"vorn${vp}.i16\t$Qd, $imm",
1741 (MVE_VORRimmi16 MQPR:$Qd, nImmSplatNotI16:$imm, vpred_n:$vp), 0>;
1742 def MVE_VORNimmi32 : MVEInstAlias<"vorn${vp}.i32\t$Qd, $imm",
1743 (MVE_VORRimmi32 MQPR:$Qd, nImmSplatNotI32:$imm, vpred_n:$vp), 0>;
1745 def MVE_VANDimmi16 : MVEInstAlias<"vand${vp}.i16\t$Qd, $imm",
1746 (MVE_VBICimmi16 MQPR:$Qd, nImmSplatNotI16:$imm, vpred_n:$vp), 0>;
1747 def MVE_VANDimmi32 : MVEInstAlias<"vand${vp}.i32\t$Qd, $imm",
1748 (MVE_VBICimmi32 MQPR:$Qd, nImmSplatNotI32:$imm, vpred_n:$vp), 0>;
1750 def MVE_VMOV : MVEInstAlias<"vmov${vp}\t$Qd, $Qm",
1751 (MVE_VORR MQPR:$Qd, MQPR:$Qm, MQPR:$Qm, vpred_r:$vp)>;
1763 let iops = (ins MQPR:$Qd);
1764 let ops = "$Rt, $Qd$Idx";
1769 let oops = (outs MQPR:$Qd);
1771 let ops = "$Qd$Idx, $Rt";
1772 let cstr = "$Qd = $Qd_src";
1779 bits<4> Qd;
1785 let Inst{19-17} = Qd{2-0};
1788 let Inst{7} = Qd{3};
1943 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm), NoItinerary,
1944 iname, suffix, "$Qd, $Qn, $Qm", vpred_r, "", size, pattern> {
1945 bits<4> Qd;
1949 let Inst{22} = Qd{3};
1952 let Inst{15-13} = Qd{2-0};
2375 : MVE_p<(outs MQPR:$Qd), (ins rGPR:$Rt), NoItinerary,
2376 "vdup", suffix, "$Qd, $Rt", vpred_r, "", vecsize, pattern> {
2377 bits<4> Qd;
2384 let Inst{19-17} = Qd{2-0};
2388 let Inst{7} = Qd{3};
2443 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qm), NoItinerary,
2444 iname, suffix, "$Qd, $Qm", vpred_r, "", size, pattern> {
2445 bits<4> Qd;
2448 let Inst{22} = Qd{3};
2450 let Inst{15-13} = Qd{2-0};
2590 : MVE_p<(outs MQPR:$Qd), iops, NoItinerary, iname, suffix, "$Qd, $imm",
2593 bits<4> Qd;
2597 let Inst{22} = Qd{3};
2600 let Inst{15-13} = Qd{2-0};
2663 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qd_src, MQPR:$Qm),
2664 NoItinerary, iname, suffix, "$Qd, $Qm", vpred_n, "$Qd = $Qd_src",
2666 bits<4> Qd;
2671 let Inst{22} = Qd{3};
2675 let Inst{15-13} = Qd{2-0};
2692 def : Pat<(VTI.Vec (unpred_op (VTI.Vec MQPR:$Qd), (abs (VTI.Vec MQPR:$Qm)))),
2693 (VTI.Vec (Inst (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm)))>;
2696 def : Pat<(VTI.Vec (pred_int (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm),
2698 (VTI.Vec (Inst (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm),
2721 def MVE_VSHLC : MVE_p<(outs rGPR:$RdmDest, MQPR:$Qd),
2724 vpred_n, "$RdmDest = $RdmSrc,$Qd = $QdSrc", 0b10> {
2726 bits<4> Qd;
2731 let Inst{22} = Qd{3};
2734 let Inst{15-13} = Qd{2-0};
2743 bits<4> Qd;
2746 let Inst{22} = Qd{3};
2747 let Inst{15-13} = Qd{2-0};
2754 : MVE_shift_imm<(outs MQPR:$Qd), (ins MQPR:$Qm),
2755 iname, suffix, "$Qd, $Qm", vpred_r, "",
2823 : MVE_shift_imm<(outs MQPR:$Qd), (ins MQPR:$Qm, immtype:$imm),
2824 iname, suffix, "$Qd, $Qm, $imm", vpred_r, "", vecsize, pattern> {
2870 : MVE_shift_imm<(outs MQPR:$Qd), (ins MQPR:$Qm),
2893 defm MVE_VSHLL_lws8 : MVE_VSHLL_lw<"vshll", "s8", 0b00, 0b0, "$Qd, $Qm, #8">;
2894 defm MVE_VSHLL_lws16 : MVE_VSHLL_lw<"vshll", "s16", 0b01, 0b0, "$Qd, $Qm, #16">;
2895 defm MVE_VSHLL_lwu8 : MVE_VSHLL_lw<"vshll", "u8", 0b00, 0b1, "$Qd, $Qm, #8">;
2896 defm MVE_VSHLL_lwu16 : MVE_VSHLL_lw<"vshll", "u16", 0b01, 0b1, "$Qd, $Qm, #16">;
2934 : MVE_shift_imm<(outs MQPR:$Qd), (ins MQPR:$QdSrc, MQPR:$Qm, imm:$imm),
2935 iname, suffix, "$Qd, $Qm, $imm", vpred_n, "$Qd = $QdSrc", vecsize> {
3136 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qm, MQPR:$Qn), NoItinerary,
3137 iname, suffix, "$Qd, $Qm, $Qn", vpred_r, "", size, []> {
3139 bits<4> Qd;
3146 let Inst{22} = Qd{3};
3150 let Inst{15-13} = Qd{2-0};
3213 bits<4> Qd;
3217 let Inst{22} = Qd{3};
3218 let Inst{15-13} = Qd{2-0};
3236 : MVE_shift_with_imm<iname, suffix, (outs MQPR:$Qd),
3238 "$Qd, $Qm, $imm", vpred_n, "$Qd = $Qd_src", vecsize> {
3297 : MVE_shift_with_imm<"vqshl", VTI_.Suffix, (outs MQPR:$Qd),
3298 (ins MQPR:$Qm, immType:$imm), "$Qd, $Qm, $imm",
3337 : MVE_shift_with_imm<"vqshlu", VTI_.Suffix, (outs MQPR:$Qd),
3338 (ins MQPR:$Qm, immType:$imm), "$Qd, $Qm, $imm",
3367 : MVE_shift_with_imm<"vrshr", VTI_.Suffix, (outs MQPR:$Qd),
3368 (ins MQPR:$Qm, immType:$imm), "$Qd, $Qm, $imm",
3444 : MVE_shift_with_imm<"vshr", suffix, (outs MQPR:$Qd),
3445 !con((ins MQPR:$Qm), imm), "$Qd, $Qm, $imm",
3485 : MVE_shift_with_imm<"vshl", suffix, (outs MQPR:$Qd),
3486 !con((ins MQPR:$Qm), imm), "$Qd, $Qm, $imm",
3561 : MVE_float<!strconcat("vrint", rmode), suffix, (outs MQPR:$Qd),
3562 (ins MQPR:$Qm), "$Qd, $Qm", vpred_r, "", size, pattern> {
3563 bits<4> Qd;
3567 let Inst{22} = Qd{3};
3571 let Inst{15-13} = Qd{2-0};
3616 : MVEFloatArithNeon<iname, suffix, size{0}, (outs MQPR:$Qd),
3617 (ins MQPR:$Qn, MQPR:$Qm), "$Qd, $Qn, $Qm", vpred_r, "",
3619 bits<4> Qd;
3624 let Inst{22} = Qd{3};
3627 let Inst{15-13} = Qd{2-0};
3654 : MVEFloatArithNeon<"vcmla", suffix, size{1}, (outs MQPR:$Qd),
3656 "$Qd, $Qn, $Qm, $rot", vpred_n, "$Qd = $Qd_src", size, []> {
3657 bits<4> Qd;
3664 let Inst{22} = Qd{3};
3667 let Inst{15-13} = Qd{2-0};
3709 : MVEFloatArithNeon<iname, suffix, size{0}, (outs MQPR:$Qd),
3710 !con(iops, (ins MQPR:$Qn, MQPR:$Qm)), "$Qd, $Qn, $Qm",
3712 bits<4> Qd;
3717 let Inst{22} = Qd{3};
3720 let Inst{15-13} = Qd{2-0};
3730 (ins MQPR:$Qd_src), vpred_n, "$Qd = $Qd_src">;
3795 : MVEFloatArithNeon<"vcadd", suffix, size{1}, (outs MQPR:$Qd),
3797 "$Qd, $Qn, $Qm, $rot", vpred_r, cstr, size, []> {
3798 bits<4> Qd;
3806 let Inst{22} = Qd{3};
3809 let Inst{15-13} = Qd{2-0};
3837 defm MVE_VCADDf32 : MVE_VCADD_m<MVE_v4f32, "@earlyclobber $Qd">;
3840 : MVE_float<"vabd", suffix, (outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm),
3841 "$Qd, $Qn, $Qm", vpred_r, "", size> {
3842 bits<4> Qd;
3847 let Inst{22} = Qd{3};
3852 let Inst{15-13} = Qd{2-0};
3893 (outs MQPR:$Qd), (ins MQPR:$Qm, imm_operand_type:$imm6),
3894 "$Qd, $Qm, $imm6", vpred_r, "", !if(fsi, 0b10, 0b01), []> {
3895 bits<4> Qd;
3900 let Inst{22} = Qd{3};
3903 let Inst{15-13} = Qd{2-0};
3976 : MVE_float<!strconcat("vcvt", anpm), suffix, (outs MQPR:$Qd),
3977 (ins MQPR:$Qm), "$Qd, $Qm", vpred_r, "", size, pattern> {
3978 bits<4> Qd;
3982 let Inst{22} = Qd{3};
3986 let Inst{15-13} = Qd{2-0};
4033 : MVE_float<"vcvt", suffix, (outs MQPR:$Qd),
4034 (ins MQPR:$Qm), "$Qd, $Qm", vpred_r, "", size, pattern> {
4035 bits<4> Qd;
4039 let Inst{22} = Qd{3};
4043 let Inst{15-13} = Qd{2-0};
4096 : MVE_float<iname, suffix, (outs MQPR:$Qd),
4097 (ins MQPR:$Qm), "$Qd, $Qm", vpred_r, "", size, pattern> {
4098 bits<4> Qd;
4102 let Inst{22} = Qd{3};
4106 let Inst{15-13} = Qd{2-0};
4138 : MVE_f<(outs MQPR:$Qd), (ins MQPR:$Qd_src, MQPR:$Qm),
4139 NoItinerary, iname, suffix, "$Qd, $Qm", vpred_n, "$Qd = $Qd_src",
4141 bits<4> Qd;
4146 let Inst{22} = Qd{3};
4148 let Inst{15-13} = Qd{2-0};
4168 def : Pat<(VTI.Vec (unpred_op (fabs (VTI.Vec MQPR:$Qd)),
4170 (VTI.Vec (Inst (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm)))>;
4173 def : Pat<(VTI.Vec (pred_int (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm),
4175 (VTI.Vec (Inst (VTI.Vec MQPR:$Qd), (VTI.Vec MQPR:$Qm),
4532 bits<4> Qd;
4536 let Inst{22} = Qd{3};
4537 let Inst{15-13} = Qd{2-0};
4548 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4549 (ins MQPR:$Qd_src, MQPR:$Qn, MQPR:$Qm), "$Qd, $Qn, $Qm",
4550 vpred_n, "$Qd = $Qd_src"#cstr, size, pattern> {
4566 !if(!eq(VTI.LaneBits, 32), ",@earlyclobber $Qd", "")>;
4601 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4603 "$Qd, $Qn, $Qm, $rot", vpred_r, cstr, size,
4643 defm MVE_VCMULf32 : MVE_VCMUL_m<"vcmul", MVE_v4f32, "@earlyclobber $Qd">;
4647 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4648 (ins MQPR:$Qn, MQPR:$Qm), "$Qd, $Qn, $Qm",
4650 bits<4> Qd;
4706 "@earlyclobber $Qd">;
4709 "@earlyclobber $Qd">;
4721 "@earlyclobber $Qd">;
4724 "@earlyclobber $Qd">;
4781 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4782 (ins MQPR:$Qn, MQPR:$Qm), "$Qd, $Qn, $Qm",
4846 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4847 (ins MQPR:$Qd_src, MQPR:$Qm), "$Qd, $Qm",
4848 vpred_n, "$Qd = $Qd_src", !if(size, 0b10, 0b01), pattern> {
4991 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
4992 !con(iops_extra, (ins MQPR:$Qm)), "$Qd, $Qm",
5011 (ins MQPR:$Qd_src), vpred_n, "$Qd = $Qd_src">;
5054 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
5056 "$Qd, $Qn, $Qm, $rot", vpred_r, cstr, size, []> {
5094 defm MVE_VCADDi32 : MVE_VxCADD_m<"vcadd", MVE_v4i32, 0b1, "@earlyclobber $Qd">;
5098 defm MVE_VHCADDs32 : MVE_VxCADD_m<"vhcadd", MVE_v4s32, 0b0, "@earlyclobber $Qd">;
5102 : MVE_qDest_qSrc<iname, "i32", (outs MQPR:$Qd, cl_FPSCR_NZCV:$carryout),
5104 "$Qd, $Qn, $Qm", vpred_r, "", 0b10, pattern> {
5129 : MVE_qDest_qSrc<iname, suffix, (outs MQPR:$Qd),
5130 (ins MQPR:$Qn, MQPR:$Qm), "$Qd, $Qn, $Qm",
5173 defm MVE_VQDMULLs32 : MVE_VQDMULL_halves<MVE_v4s32, 0b1, "@earlyclobber $Qd">;
5182 bits<4> Qd;
5187 let Inst{22} = Qd{3};
5189 let Inst{15-13} = Qd{2-0};
5198 : MVE_qr_base<(outs MQPR:$Qd), (ins MQPR:$Qn, rGPR:$Rm),
5199 iname, suffix, "$Qd, $Qn, $Rm", vpred_r, cstr,
5203 : MVE_qr_base<(outs MQPR:$Qd), (ins MQPR:$Qd_src, MQPR:$Qn, rGPR:$Rm),
5204 iname, suffix, "$Qd, $Qn, $Rm", vpred_n, "$Qd = $Qd_src",
5208 : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qd_src, rGPR:$Rm), NoItinerary, iname,
5209 suffix, "$Qd, $Rm", vpred_n, "$Qd = $Qd_src", vecsize, pattern> {
5210 bits<4> Qd;
5213 let Inst{22} = Qd{3};
5214 let Inst{15-13} = Qd{2-0};
5357 defm MVE_VQDMULL_qr_s32 : MVE_VQDMULL_qr_halves<MVE_v4s32, 0b1, "@earlyclobber $Qd">;
5759 : MVE_p<(outs MQPR:$Qd, tGPREven:$Rn),
5761 iname, suffix, "$Qd, $Rn, $imm", vpred_r, "$Rn = $Rn_src", size,
5762 [(set (VT MQPR:$Qd), (i32 tGPREven:$Rn),
5764 bits<4> Qd;
5770 let Inst{22} = Qd{3};
5774 let Inst{15-13} = Qd{2-0};
5794 : MVE_p<(outs MQPR:$Qd, tGPREven:$Rn),
5796 iname, suffix, "$Qd, $Rn, $Rm, $imm", vpred_r, "$Rn = $Rn_src", size,
5798 bits<4> Qd;
5805 let Inst{22} = Qd{3};
5809 let Inst{15-13} = Qd{2-0};
5874 bits<4> Qd;
5879 let Inst{22} = Qd{3};
5883 let Inst{15-13} = Qd{2-0};
5906 // ($Qd), and the second one is the input ($QdSrc). Binding them
5919 def MVE_VMOV_q_rr : MVE_VMOV_64bit<(outs MQPR:$Qd),
5921 0b1, "$Qd$idx, $QdSrc$idx2, $Rt, $Rt2",
5922 "$Qd = $QdSrc"> {
5926 def MVE_VMOV_rr_q : MVE_VMOV_64bit<(outs rGPR:$Rt, rGPR:$Rt2), (ins MQPR:$Qd),
5927 0b0, "$Rt, $Rt2, $Qd$idx, $Qd$idx2", ""> {
6132 def MVE_ld: MVE_ldst_direction<1, (outs MQPR:$Qd), (ins), ",@earlyclobber $Qd">;
6133 def MVE_st: MVE_ldst_direction<0, (outs), (ins MQPR:$Qd)>;
6177 bits<3> Qd;
6185 let Inst{15-13} = Qd{2-0};
6247 asm, suffix, IndexModeNone, "$Qd, $addr", "">;
6253 asm, suffix, IndexModePre, "$Qd, $addr!", "$addr.base = $wb"> {
6262 asm, suffix, IndexModePost, "$Qd, $Rn$addr", "$Rn.base = $wb"> {
6275 asm, suffix, IndexModeNone, "$Qd, $addr", "">;
6281 asm, suffix, IndexModePre, "$Qd, $addr!", "$addr.base = $wb"> {
6290 asm, suffix, IndexModePost, "$Qd, $Rn$addr", "$Rn.base = $wb"> {
6344 asm, suffix, "$Qd, $addr", dir.cstr, size> {
6477 asm, suffix, "$Qd, $addr" # wbAsm, cstr # dir.cstr, memsz.encoding> {
6765 def MVE_VPSEL : MVE_p<(outs MQPR:$Qd), (ins MQPR:$Qn, MQPR:$Qm), NoItinerary,
6766 "vpsel", "", "$Qd, $Qn, $Qm", vpred_n, "", 0b00, []> {
6768 bits<4> Qd;
6773 let Inst{22} = Qd{3};
6777 let Inst{15-13} = Qd{2-0};
6790 def : MVEInstAlias<"vpsel${vp}." # suffix # "\t$Qd, $Qn, $Qm",
6791 (MVE_VPSEL MQPR:$Qd, MQPR:$Qn, MQPR:$Qm, vpred_n:$vp)>;