From c774266248b625fcc1a115ed49c1eb7572dffd43 Mon Sep 17 00:00:00 2001 From: Hsiangkai Wang Date: Mon, 1 Feb 2021 16:08:46 +0800 Subject: [PATCH] [RISCV] Add new vector instructions in v0.10. * Add new vector instructions in v0.10. - load/store for mask value vle1.v vse1.v - vsetivli for 0-31 immediate vector length. * Rename vector instructions in v0.10. - vfrsqrte7 -> vfrsqrt7 - vfrece7 -> vfrec7 * Reserve memory width encodings for EEW>128b. Differential Revision: https://reviews.llvm.org/D95781 --- include/llvm/IR/IntrinsicsRISCV.td | 7 +- lib/Target/RISCV/RISCVCleanupVSETVLI.cpp | 37 +- lib/Target/RISCV/RISCVExpandPseudoInsts.cpp | 11 +- lib/Target/RISCV/RISCVISelDAGToDAG.cpp | 14 +- lib/Target/RISCV/RISCVInstrFormatsV.td | 23 +- lib/Target/RISCV/RISCVInstrInfoV.td | 98 +- lib/Target/RISCV/RISCVInstrInfoVPseudos.td | 38 +- test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir | 46 + .../RISCV/rvv/rv32-vsetvli-intrinsics.ll | 3 +- .../RISCV/rvv/rv64-vsetvli-intrinsics.ll | 3 +- test/CodeGen/RISCV/rvv/vfrec7-rv32.ll | 602 ++++++ test/CodeGen/RISCV/rvv/vfrec7-rv64.ll | 602 ++++++ test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll | 602 ++++++ test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll | 602 ++++++ test/CodeGen/RISCV/rvv/vle1-rv32.ll | 94 + test/CodeGen/RISCV/rvv/vle1-rv64.ll | 94 + test/CodeGen/RISCV/rvv/vse1-rv32.ll | 94 + test/CodeGen/RISCV/rvv/vse1-rv64.ll | 94 + test/CodeGen/RISCV/vfrece7-rv32.ll | 602 ------ test/CodeGen/RISCV/vfrece7-rv64.ll | 602 ------ test/CodeGen/RISCV/vfrsqrte7-rv32.ll | 602 ------ test/CodeGen/RISCV/vfrsqrte7-rv64.ll | 602 ------ test/MC/RISCV/rvv/fothers.s | 16 +- test/MC/RISCV/rvv/invalid.s | 9 + test/MC/RISCV/rvv/load.s | 246 +-- test/MC/RISCV/rvv/store.s | 102 +- test/MC/RISCV/rvv/vsetvl.s | 18 + test/MC/RISCV/rvv/zvlsseg.s | 1680 ----------------- 28 files changed, 3003 insertions(+), 4540 deletions(-) create mode 100644 test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir create mode 100644 test/CodeGen/RISCV/rvv/vfrec7-rv32.ll create mode 100644 test/CodeGen/RISCV/rvv/vfrec7-rv64.ll create mode 100644 test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll create mode 100644 test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll create mode 100644 test/CodeGen/RISCV/rvv/vle1-rv32.ll create mode 100644 test/CodeGen/RISCV/rvv/vle1-rv64.ll create mode 100644 test/CodeGen/RISCV/rvv/vse1-rv32.ll create mode 100644 test/CodeGen/RISCV/rvv/vse1-rv64.ll delete mode 100644 test/CodeGen/RISCV/vfrece7-rv32.ll delete mode 100644 test/CodeGen/RISCV/vfrece7-rv64.ll delete mode 100644 test/CodeGen/RISCV/vfrsqrte7-rv32.ll delete mode 100644 test/CodeGen/RISCV/vfrsqrte7-rv64.ll diff --git a/include/llvm/IR/IntrinsicsRISCV.td b/include/llvm/IR/IntrinsicsRISCV.td index ab5b09b72ac..c4056895f68 100644 --- a/include/llvm/IR/IntrinsicsRISCV.td +++ b/include/llvm/IR/IntrinsicsRISCV.td @@ -790,6 +790,9 @@ let TargetPrefix = "riscv" in { defm vsoxei : RISCVIStore; defm vsuxei : RISCVIStore; + def int_riscv_vle1 : RISCVUSLoad; + def int_riscv_vse1 : RISCVUSStore; + defm vamoswap : RISCVAMO; defm vamoadd : RISCVAMO; defm vamoxor : RISCVAMO; @@ -940,8 +943,8 @@ let TargetPrefix = "riscv" in { defm vfwnmsac : RISCVTernaryWide; defm vfsqrt : RISCVUnaryAA; - defm vfrsqrte7 : RISCVUnaryAA; - defm vfrece7 : RISCVUnaryAA; + defm vfrsqrt7 : RISCVUnaryAA; + defm vfrec7 : RISCVUnaryAA; defm vfmin : RISCVBinaryAAX; defm vfmax : RISCVBinaryAAX; diff --git a/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp b/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp index 6a12f99b890..ae32cbd1ae5 100644 --- a/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp +++ b/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp @@ -59,7 +59,8 @@ bool RISCVCleanupVSETVLI::runOnMachineBasicBlock(MachineBasicBlock &MBB) { for (auto MII = MBB.begin(), MIE = MBB.end(); MII != MIE;) { MachineInstr &MI = *MII++; - if (MI.getOpcode() != RISCV::PseudoVSETVLI) { + if (MI.getOpcode() != RISCV::PseudoVSETVLI && + MI.getOpcode() != RISCV::PseudoVSETIVLI) { if (PrevVSETVLI && (MI.isCall() || MI.modifiesRegister(RISCV::VL) || MI.modifiesRegister(RISCV::VTYPE))) { @@ -69,26 +70,48 @@ bool RISCVCleanupVSETVLI::runOnMachineBasicBlock(MachineBasicBlock &MBB) { continue; } - // If we don't have a previous VSETVLI or the VL output isn't dead, we + // If we don't have a previous VSET{I}VLI or the VL output isn't dead, we // can't remove this VSETVLI. if (!PrevVSETVLI || !MI.getOperand(0).isDead()) { PrevVSETVLI = &MI; continue; } - Register PrevAVLReg = PrevVSETVLI->getOperand(1).getReg(); - Register AVLReg = MI.getOperand(1).getReg(); + // If a previous "set vl" instruction opcode is different from this one, we + // can't differentiate the AVL values. + if (PrevVSETVLI->getOpcode() != MI.getOpcode()) { + PrevVSETVLI = &MI; + continue; + } + + // The remaining two cases are + // 1. PrevVSETVLI = PseudoVSETVLI + // MI = PseudoVSETVLI + // + // 2. PrevVSETVLI = PseudoVSETIVLI + // MI = PseudoVSETIVLI + Register AVLReg; + bool SameAVL = false; + if (MI.getOpcode() == RISCV::PseudoVSETVLI) { + AVLReg = MI.getOperand(1).getReg(); + SameAVL = PrevVSETVLI->getOperand(1).getReg() == AVLReg; + } else { // RISCV::PseudoVSETIVLI + SameAVL = + PrevVSETVLI->getOperand(1).getImm() == MI.getOperand(1).getImm(); + } int64_t PrevVTYPEImm = PrevVSETVLI->getOperand(2).getImm(); int64_t VTYPEImm = MI.getOperand(2).getImm(); - // Does this VSETVLI use the same AVL register and VTYPE immediate? - if (PrevAVLReg != AVLReg || PrevVTYPEImm != VTYPEImm) { + // Does this VSET{I}VLI use the same AVL register/value and VTYPE immediate? + if (!SameAVL || PrevVTYPEImm != VTYPEImm) { PrevVSETVLI = &MI; continue; } // If the AVLReg is X0 we need to look at the output VL of both VSETVLIs. - if (AVLReg == RISCV::X0) { + if ((MI.getOpcode() == RISCV::PseudoVSETVLI) && (AVLReg == RISCV::X0)) { + assert((PrevVSETVLI->getOpcode() == RISCV::PseudoVSETVLI) && + "Unexpected vsetvli opcode."); Register PrevOutVL = PrevVSETVLI->getOperand(0).getReg(); Register OutVL = MI.getOperand(0).getReg(); // We can't remove if the previous VSETVLI left VL unchanged and the diff --git a/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp b/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp index 5f50892ca88..ec9a3956995 100644 --- a/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp +++ b/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp @@ -103,6 +103,7 @@ bool RISCVExpandPseudo::expandMI(MachineBasicBlock &MBB, case RISCV::PseudoLA_TLS_GD: return expandLoadTLSGDAddress(MBB, MBBI, NextMBBI); case RISCV::PseudoVSETVLI: + case RISCV::PseudoVSETIVLI: return expandVSetVL(MBB, MBBI); case RISCV::PseudoVMCLR_M_B1: case RISCV::PseudoVMCLR_M_B2: @@ -217,9 +218,15 @@ bool RISCVExpandPseudo::expandVSetVL(MachineBasicBlock &MBB, DebugLoc DL = MBBI->getDebugLoc(); - assert(MBBI->getOpcode() == RISCV::PseudoVSETVLI && + assert((MBBI->getOpcode() == RISCV::PseudoVSETVLI || + MBBI->getOpcode() == RISCV::PseudoVSETIVLI) && "Unexpected pseudo instruction"); - const MCInstrDesc &Desc = TII->get(RISCV::VSETVLI); + unsigned Opcode; + if (MBBI->getOpcode() == RISCV::PseudoVSETVLI) + Opcode = RISCV::VSETVLI; + else + Opcode = RISCV::VSETIVLI; + const MCInstrDesc &Desc = TII->get(Opcode); assert(Desc.getNumOperands() == 3 && "Unexpected instruction format"); Register DstReg = MBBI->getOperand(0).getReg(); diff --git a/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/lib/Target/RISCV/RISCVISelDAGToDAG.cpp index d7cc1dfe587..fc45d03fe57 100644 --- a/lib/Target/RISCV/RISCVISelDAGToDAG.cpp +++ b/lib/Target/RISCV/RISCVISelDAGToDAG.cpp @@ -607,12 +607,14 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) { SDValue VLOperand = Node->getOperand(2); if (auto *C = dyn_cast(VLOperand)) { - if (C->isNullValue()) { - VLOperand = SDValue( - CurDAG->getMachineNode(RISCV::ADDI, DL, XLenVT, - CurDAG->getRegister(RISCV::X0, XLenVT), - CurDAG->getTargetConstant(0, DL, XLenVT)), - 0); + uint64_t AVL = C->getZExtValue(); + if (isUInt<5>(AVL)) { + SDValue VLImm = CurDAG->getTargetConstant(AVL, DL, XLenVT); + ReplaceNode(Node, + CurDAG->getMachineNode(RISCV::PseudoVSETIVLI, DL, XLenVT, + MVT::Other, VLImm, VTypeIOp, + /* Chain */ Node->getOperand(0))); + return; } } diff --git a/lib/Target/RISCV/RISCVInstrFormatsV.td b/lib/Target/RISCV/RISCVInstrFormatsV.td index 147993127e7..80f46b73bfd 100644 --- a/lib/Target/RISCV/RISCVInstrFormatsV.td +++ b/lib/Target/RISCV/RISCVInstrFormatsV.td @@ -38,9 +38,11 @@ class RISCVLSUMOP val> { bits<5> Value = val; } def LUMOPUnitStride : RISCVLSUMOP<0b00000>; +def LUMOPUnitStrideMask : RISCVLSUMOP<0b01011>; def LUMOPUnitStrideWholeReg : RISCVLSUMOP<0b01000>; def LUMOPUnitStrideFF: RISCVLSUMOP<0b10000>; def SUMOPUnitStride : RISCVLSUMOP<0b00000>; +def SUMOPUnitStrideMask : RISCVLSUMOP<0b01011>; def SUMOPUnitStrideWholeReg : RISCVLSUMOP<0b01000>; class RISCVAMOOP val> { @@ -63,10 +65,23 @@ def LSWidth8 : RISCVWidth<0b0000>; def LSWidth16 : RISCVWidth<0b0101>; def LSWidth32 : RISCVWidth<0b0110>; def LSWidth64 : RISCVWidth<0b0111>; -def LSWidth128 : RISCVWidth<0b1000>; -def LSWidth256 : RISCVWidth<0b1101>; -def LSWidth512 : RISCVWidth<0b1110>; -def LSWidth1024 : RISCVWidth<0b1111>; + +class RVInstSetiVLi + : RVInst { + bits<5> uimm; + bits<5> rd; + bits<10> vtypei; + + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29-20} = vtypei{9-0}; + let Inst{19-15} = uimm; + let Inst{14-12} = 0b111; + let Inst{11-7} = rd; + let Opcode = OPC_OP_V.Value; + + let Defs = [VTYPE, VL]; +} class RVInstSetVLi : RVInst { diff --git a/lib/Target/RISCV/RISCVInstrInfoV.td b/lib/Target/RISCV/RISCVInstrInfoV.td index e02c9f8bcbe..86fbc73d81d 100644 --- a/lib/Target/RISCV/RISCVInstrInfoV.td +++ b/lib/Target/RISCV/RISCVInstrInfoV.td @@ -82,6 +82,12 @@ def simm5_plus1 : Operand, ImmLeaf + : RVInstVLU<0b000, LSWidth8.Value{3}, LUMOPUnitStrideMask, LSWidth8.Value{2-0}, + (outs VR:$vd), + (ins GPR:$rs1), opcodestr, "$vd, (${rs1})">; + // load vd, (rs1), vm class VUnitStrideLoad @@ -137,6 +143,12 @@ class VIndexedSegmentLoad nf, RISCVMOP mop, RISCVWidth width, } // hasSideEffects = 0, mayLoad = 1, mayStore = 0 let hasSideEffects = 0, mayLoad = 0, mayStore = 1 in { +// store vd, vs3, (rs1), vm +class VUnitStrideStoreMask + : RVInstVSU<0b000, LSWidth8.Value{3}, SUMOPUnitStrideMask, LSWidth8.Value{2-0}, + (outs), (ins VR:$vs3, GPR:$rs1), opcodestr, + "$vs3, (${rs1})">; + // store vd, vs3, (rs1), vm class VUnitStrideStore @@ -423,10 +435,6 @@ multiclass VWholeLoad nf, string opcodestr> { def E16_V : VWholeLoad; def E32_V : VWholeLoad; def E64_V : VWholeLoad; - def E128_V : VWholeLoad; - def E256_V : VWholeLoad; - def E512_V : VWholeLoad; - def E1024_V : VWholeLoad; } //===----------------------------------------------------------------------===// @@ -438,6 +446,9 @@ let hasSideEffects = 1, mayLoad = 0, mayStore = 0 in { def VSETVLI : RVInstSetVLi<(outs GPR:$rd), (ins GPR:$rs1, VTypeIOp:$vtypei), "vsetvli", "$rd, $rs1, $vtypei">; +def VSETIVLI : RVInstSetiVLi<(outs GPR:$rd), (ins uimm5:$uimm, VTypeIOp:$vtypei), + "vsetivli", "$rd, $uimm, $vtypei">; + def VSETVL : RVInstSetVL<(outs GPR:$rd), (ins GPR:$rs1, GPR:$rs2), "vsetvl", "$rd, $rs1, $rs2">; } // hasSideEffects = 1, mayLoad = 0, mayStore = 0 @@ -447,47 +458,30 @@ def VLE8_V : VUnitStrideLoad; def VLE16_V : VUnitStrideLoad; def VLE32_V : VUnitStrideLoad; def VLE64_V : VUnitStrideLoad; -def VLE128_V : VUnitStrideLoad; -def VLE256_V : VUnitStrideLoad; -def VLE512_V : VUnitStrideLoad; -def VLE1024_V : VUnitStrideLoad; def VLE8FF_V : VUnitStrideLoad; def VLE16FF_V : VUnitStrideLoad; def VLE32FF_V : VUnitStrideLoad; def VLE64FF_V : VUnitStrideLoad; -def VLE128FF_V : VUnitStrideLoad; -def VLE256FF_V : VUnitStrideLoad; -def VLE512FF_V : VUnitStrideLoad; -def VLE1024FF_V : VUnitStrideLoad; + +def VLE1_V : VUnitStrideLoadMask<"vle1.v">; +def VSE1_V : VUnitStrideStoreMask<"vse1.v">; def VSE8_V : VUnitStrideStore; def VSE16_V : VUnitStrideStore; def VSE32_V : VUnitStrideStore; def VSE64_V : VUnitStrideStore; -def VSE128_V : VUnitStrideStore; -def VSE256_V : VUnitStrideStore; -def VSE512_V : VUnitStrideStore; -def VSE1024_V : VUnitStrideStore; // Vector Strided Instructions def VLSE8_V : VStridedLoad; def VLSE16_V : VStridedLoad; def VLSE32_V : VStridedLoad; def VLSE64_V : VStridedLoad; -def VLSE128_V : VStridedLoad; -def VLSE256_V : VStridedLoad; -def VLSE512_V : VStridedLoad; -def VLSE1024_V : VStridedLoad; def VSSE8_V : VStridedStore; def VSSE16_V : VStridedStore; def VSSE32_V : VStridedStore; def VSSE64_V : VStridedStore; -def VSSE128_V : VStridedStore; -def VSSE256_V : VStridedStore; -def VSSE512_V : VStridedStore; -def VSSE1024_V : VStridedStore; // Vector Indexed Instructions def VLUXEI8_V : VIndexedLoad; @@ -806,8 +800,8 @@ defm VFWNMSAC_V : VALUr_FV_V_F<"vfwnmsac", 0b111111>; // Vector Floating-Point Square-Root Instruction defm VFSQRT_V : VALU_FV_VS2<"vfsqrt.v", 0b010011, 0b00000>; -defm VFRSQRTE7_V : VALU_FV_VS2<"vfrsqrte7.v", 0b010011, 0b00100>; -defm VFRECE7_V : VALU_FV_VS2<"vfrece7.v", 0b010011, 0b00101>; +defm VFRSQRT7_V : VALU_FV_VS2<"vfrsqrt7.v", 0b010011, 0b00100>; +defm VFREC7_V : VALU_FV_VS2<"vfrec7.v", 0b010011, 0b00101>; // Vector Floating-Point MIN/MAX Instructions defm VFMIN_V : VALU_FV_V_F<"vfmin", 0b000100>; @@ -1058,47 +1052,27 @@ let Predicates = [HasStdExtZvlsseg] in { def VLSEG#nf#E16_V : VUnitStrideSegmentLoad; def VLSEG#nf#E32_V : VUnitStrideSegmentLoad; def VLSEG#nf#E64_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E128_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E256_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E512_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E1024_V : VUnitStrideSegmentLoad; def VLSEG#nf#E8FF_V : VUnitStrideSegmentLoad; def VLSEG#nf#E16FF_V : VUnitStrideSegmentLoad; def VLSEG#nf#E32FF_V : VUnitStrideSegmentLoad; def VLSEG#nf#E64FF_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E128FF_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E256FF_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E512FF_V : VUnitStrideSegmentLoad; - def VLSEG#nf#E1024FF_V : VUnitStrideSegmentLoad; def VSSEG#nf#E8_V : VUnitStrideSegmentStore; def VSSEG#nf#E16_V : VUnitStrideSegmentStore; def VSSEG#nf#E32_V : VUnitStrideSegmentStore; def VSSEG#nf#E64_V : VUnitStrideSegmentStore; - def VSSEG#nf#E128_V : VUnitStrideSegmentStore; - def VSSEG#nf#E256_V : VUnitStrideSegmentStore; - def VSSEG#nf#E512_V : VUnitStrideSegmentStore; - def VSSEG#nf#E1024_V : VUnitStrideSegmentStore; // Vector Strided Instructions def VLSSEG#nf#E8_V : VStridedSegmentLoad; def VLSSEG#nf#E16_V : VStridedSegmentLoad; def VLSSEG#nf#E32_V : VStridedSegmentLoad; def VLSSEG#nf#E64_V : VStridedSegmentLoad; - def VLSSEG#nf#E128_V : VStridedSegmentLoad; - def VLSSEG#nf#E256_V : VStridedSegmentLoad; - def VLSSEG#nf#E512_V : VStridedSegmentLoad; - def VLSSEG#nf#E1024_V : VStridedSegmentLoad; def VSSSEG#nf#E8_V : VStridedSegmentStore; def VSSSEG#nf#E16_V : VStridedSegmentStore; def VSSSEG#nf#E32_V : VStridedSegmentStore; def VSSSEG#nf#E64_V : VStridedSegmentStore; - def VSSSEG#nf#E128_V : VStridedSegmentStore; - def VSSSEG#nf#E256_V : VStridedSegmentStore; - def VSSSEG#nf#E512_V : VStridedSegmentStore; - def VSSSEG#nf#E1024_V : VStridedSegmentStore; // Vector Indexed Instructions def VLUXSEG#nf#EI8_V : VIndexedSegmentLoad; def VLUXSEG#nf#EI64_V : VIndexedSegmentLoad; - def VLUXSEG#nf#EI128_V : VIndexedSegmentLoad; - def VLUXSEG#nf#EI256_V : VIndexedSegmentLoad; - def VLUXSEG#nf#EI512_V : VIndexedSegmentLoad; - def VLUXSEG#nf#EI1024_V : VIndexedSegmentLoad; def VLOXSEG#nf#EI8_V : VIndexedSegmentLoad; @@ -1126,14 +1092,6 @@ let Predicates = [HasStdExtZvlsseg] in { LSWidth32, "vloxseg"#nf#"ei32.v">; def VLOXSEG#nf#EI64_V : VIndexedSegmentLoad; - def VLOXSEG#nf#EI128_V : VIndexedSegmentLoad; - def VLOXSEG#nf#EI256_V : VIndexedSegmentLoad; - def VLOXSEG#nf#EI512_V : VIndexedSegmentLoad; - def VLOXSEG#nf#EI1024_V : VIndexedSegmentLoad; def VSUXSEG#nf#EI8_V : VIndexedSegmentStore; @@ -1143,14 +1101,6 @@ let Predicates = [HasStdExtZvlsseg] in { LSWidth32, "vsuxseg"#nf#"ei32.v">; def VSUXSEG#nf#EI64_V : VIndexedSegmentStore; - def VSUXSEG#nf#EI128_V : VIndexedSegmentStore; - def VSUXSEG#nf#EI256_V : VIndexedSegmentStore; - def VSUXSEG#nf#EI512_V : VIndexedSegmentStore; - def VSUXSEG#nf#EI1024_V : VIndexedSegmentStore; def VSOXSEG#nf#EI8_V : VIndexedSegmentStore; @@ -1160,14 +1110,6 @@ let Predicates = [HasStdExtZvlsseg] in { LSWidth32, "vsoxseg"#nf#"ei32.v">; def VSOXSEG#nf#EI64_V : VIndexedSegmentStore; - def VSOXSEG#nf#EI128_V : VIndexedSegmentStore; - def VSOXSEG#nf#EI256_V : VIndexedSegmentStore; - def VSOXSEG#nf#EI512_V : VIndexedSegmentStore; - def VSOXSEG#nf#EI1024_V : VIndexedSegmentStore; } } // Predicates = [HasStdExtZvlsseg] diff --git a/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/lib/Target/RISCV/RISCVInstrInfoVPseudos.td index 2966c331dca..06d5b4b62fb 100644 --- a/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -1218,6 +1218,14 @@ multiclass VPseudoUSLoad { } } +multiclass VPseudoLoadMask { + foreach mti = AllMasks in { + let VLMul = mti.LMul.value in { + def "_V_" # mti.BX : VPseudoUSLoadNoMask; + } + } +} + multiclass VPseudoSLoad { foreach eew = EEWList in { foreach lmul = MxSet.m in { @@ -1260,6 +1268,14 @@ multiclass VPseudoUSStore { } } +multiclass VPseudoStoreMask { + foreach mti = AllMasks in { + let VLMul = mti.LMul.value in { + def "_V_" # mti.BX : VPseudoUSStoreNoMask; + } + } +} + multiclass VPseudoSStore { foreach eew = EEWList in { foreach lmul = MxSet.m in { @@ -3126,7 +3142,7 @@ def PseudoReadVL : Pseudo<(outs GPR:$rd), (ins), []>; // Pseudos. let hasSideEffects = 1, mayLoad = 0, mayStore = 0, Defs = [VL, VTYPE] in { def PseudoVSETVLI : Pseudo<(outs GPR:$rd), (ins GPR:$rs1, VTypeIOp:$vtypei), []>; - +def PseudoVSETIVLI : Pseudo<(outs GPR:$rd), (ins uimm5:$rs1, VTypeIOp:$vtypei), []>; } //===----------------------------------------------------------------------===// @@ -3141,6 +3157,9 @@ def PseudoVSETVLI : Pseudo<(outs GPR:$rd), (ins GPR:$rs1, VTypeIOp:$vtypei), []> defm PseudoVL : VPseudoUSLoad; defm PseudoVS : VPseudoUSStore; +defm PseudoVLE1 : VPseudoLoadMask; +defm PseudoVSE1 : VPseudoStoreMask; + //===----------------------------------------------------------------------===// // 7.5 Vector Strided Instructions //===----------------------------------------------------------------------===// @@ -3430,12 +3449,12 @@ defm PseudoVFSQRT : VPseudoUnaryV_V; //===----------------------------------------------------------------------===// // 14.9. Vector Floating-Point Reciprocal Square-Root Estimate Instruction //===----------------------------------------------------------------------===// -defm PseudoVFRSQRTE7 : VPseudoUnaryV_V; +defm PseudoVFRSQRT7 : VPseudoUnaryV_V; //===----------------------------------------------------------------------===// // 14.10. Vector Floating-Point Reciprocal Estimate Instruction //===----------------------------------------------------------------------===// -defm PseudoVFRECE7 : VPseudoUnaryV_V; +defm PseudoVFREC7 : VPseudoUnaryV_V; //===----------------------------------------------------------------------===// // 14.11. Vector Floating-Point Min/Max Instructions @@ -3712,6 +3731,15 @@ foreach vti = AllVectors in vti.Vector, vti.Mask, vti.SEW, vti.LMul, vti.RegClass>; } +foreach vti = AllMasks in { + defvar PseudoVLE1 = !cast("PseudoVLE1_V_"#vti.BX); + def : Pat<(vti.Mask (int_riscv_vle1 GPR:$rs1, (XLenVT (VLOp GPR:$vl)))), + (PseudoVLE1 $rs1, GPR:$vl, vti.SEW)>; + defvar PseudoVSE1 = !cast("PseudoVSE1_V_"#vti.BX); + def : Pat<(int_riscv_vse1 (vti.Mask VR:$rs3), GPR:$rs1, (XLenVT (VLOp GPR:$vl))), + (PseudoVSE1 $rs3, $rs1, GPR:$vl, vti.SEW)>; +} + //===----------------------------------------------------------------------===// // 7.5 Vector Strided Instructions //===----------------------------------------------------------------------===// @@ -4103,12 +4131,12 @@ defm "" : VPatUnaryV_V<"int_riscv_vfsqrt", "PseudoVFSQRT", AllFloatVectors>; //===----------------------------------------------------------------------===// // 14.9. Vector Floating-Point Reciprocal Square-Root Estimate Instruction //===----------------------------------------------------------------------===// -defm "" : VPatUnaryV_V<"int_riscv_vfrsqrte7", "PseudoVFRSQRTE7", AllFloatVectors>; +defm "" : VPatUnaryV_V<"int_riscv_vfrsqrt7", "PseudoVFRSQRT7", AllFloatVectors>; //===----------------------------------------------------------------------===// // 14.10. Vector Floating-Point Reciprocal Estimate Instruction //===----------------------------------------------------------------------===// -defm "" : VPatUnaryV_V<"int_riscv_vfrece7", "PseudoVFRECE7", AllFloatVectors>; +defm "" : VPatUnaryV_V<"int_riscv_vfrec7", "PseudoVFREC7", AllFloatVectors>; //===----------------------------------------------------------------------===// // 14.11. Vector Floating-Point Min/Max Instructions diff --git a/test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir b/test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir new file mode 100644 index 00000000000..ed8bc569806 --- /dev/null +++ b/test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir @@ -0,0 +1,46 @@ +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py +# RUN: llc %s -mtriple=riscv64 -run-pass=riscv-cleanup-vsetvli -o - | FileCheck %s + +# Make sure we don't combine these VSET{I}VLIs in the cleanup pass. We could not +# differentiate AVL values if the opcode of the previous one is different from +# current one. + +--- | + ; ModuleID = '../llvm/test/CodeGen/RISCV/rvv/add-vsetivli.ll' + source_filename = "../llvm/test/CodeGen/RISCV/rvv/add-vsetivli.ll" + target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" + target triple = "riscv64" + + define void @cleanup_vsetivli() #0 { + ret void + } + + attributes #0 = { "target-features"="+experimental-v" } + +... +--- +name: cleanup_vsetivli +alignment: 4 +tracksRegLiveness: true +registers: + - { id: 0, class: gpr } +frameInfo: + maxAlignment: 1 +machineFunctionInfo: {} +body: | + bb.0 (%ir-block.0): + ; CHECK-LABEL: name: cleanup_vsetivli + ; CHECK: dead %0:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype + ; CHECK: dead %1:gpr = PseudoVSETIVLI 5, 12, implicit-def $vl, implicit-def $vtype + ; CHECK: dead %3:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype + ; CHECK: dead %5:gpr = PseudoVSETIVLI 5, 12, implicit-def $vl, implicit-def $vtype + ; CHECK: PseudoRET + dead %0:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype + dead %1:gpr = PseudoVSETIVLI 5, 12, implicit-def $vl, implicit-def $vtype + dead %2:gpr = PseudoVSETIVLI 5, 12, implicit-def $vl, implicit-def $vtype + dead %3:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype + dead %4:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype + dead %5:gpr = PseudoVSETIVLI 5, 12, implicit-def $vl, implicit-def $vtype + PseudoRET + +... diff --git a/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll b/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll index d724d0df969..5e97df06470 100644 --- a/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll +++ b/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll @@ -16,8 +16,7 @@ define void @test_vsetvli_e64mf8(i32 %avl) nounwind { define void @test_vsetvli_e8mf2_zero_avl() nounwind { ; CHECK-LABEL: test_vsetvli_e8mf2_zero_avl: ; CHECK: # %bb.0: -; CHECK-NEXT: mv a0, zero -; CHECK-NEXT: vsetvli a0, a0, e8,mf2,ta,mu +; CHECK-NEXT: vsetivli a0, 0, e8,mf2,ta,mu ; CHECK-NEXT: ret call i32 @llvm.riscv.vsetvli.i32(i32 0, i32 0, i32 7) ret void diff --git a/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll b/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll index c28058c16ef..78d1008ce28 100644 --- a/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll +++ b/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll @@ -25,8 +25,7 @@ define void @test_vsetvli_e16mf4(i64 %avl) nounwind { define void @test_vsetvli_e32mf8_zero_avl() nounwind { ; CHECK-LABEL: test_vsetvli_e32mf8_zero_avl: ; CHECK: # %bb.0: -; CHECK-NEXT: mv a0, zero -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu +; CHECK-NEXT: vsetivli a0, 0, e16,mf4,ta,mu ; CHECK-NEXT: ret call i64 @llvm.riscv.vsetvli.i64(i64 0, i64 1, i64 6) ret void diff --git a/test/CodeGen/RISCV/rvv/vfrec7-rv32.ll b/test/CodeGen/RISCV/rvv/vfrec7-rv32.ll new file mode 100644 index 00000000000..244903fadb3 --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vfrec7-rv32.ll @@ -0,0 +1,602 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s +declare @llvm.riscv.vfrec7.nxv1f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv1f16_nxv1f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv2f16_nxv2f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv4f16_nxv4f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv8f16_nxv8f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv16f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv16f16_nxv16f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv16f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv16f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv16f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv32f16( + , + i32); + +define @intrinsic_vfrec7_v_nxv32f16_nxv32f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv32f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv32f16( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv32f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv1f32( + , + i32); + +define @intrinsic_vfrec7_v_nxv1f32_nxv1f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f32( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f32( + , + i32); + +define @intrinsic_vfrec7_v_nxv2f32_nxv2f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f32( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f32( + , + i32); + +define @intrinsic_vfrec7_v_nxv4f32_nxv4f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f32( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f32( + , + i32); + +define @intrinsic_vfrec7_v_nxv8f32_nxv8f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f32( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv16f32( + , + i32); + +define @intrinsic_vfrec7_v_nxv16f32_nxv16f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv16f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv16f32( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv16f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv1f64( + , + i32); + +define @intrinsic_vfrec7_v_nxv1f64_nxv1f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f64( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f64( + , + i32); + +define @intrinsic_vfrec7_v_nxv2f64_nxv2f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f64( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f64( + , + i32); + +define @intrinsic_vfrec7_v_nxv4f64_nxv4f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f64( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f64( + , + i32); + +define @intrinsic_vfrec7_v_nxv8f64_nxv8f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f64( + , + , + , + i32); + +define @intrinsic_vfrec7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vfrec7-rv64.ll b/test/CodeGen/RISCV/rvv/vfrec7-rv64.ll new file mode 100644 index 00000000000..7b24fb9b023 --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vfrec7-rv64.ll @@ -0,0 +1,602 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv64 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s +declare @llvm.riscv.vfrec7.nxv1f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv1f16_nxv1f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv2f16_nxv2f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv4f16_nxv4f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv8f16_nxv8f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv16f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv16f16_nxv16f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv16f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv16f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv16f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv32f16( + , + i64); + +define @intrinsic_vfrec7_v_nxv32f16_nxv32f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv32f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv32f16( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv32f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv1f32( + , + i64); + +define @intrinsic_vfrec7_v_nxv1f32_nxv1f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f32( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f32( + , + i64); + +define @intrinsic_vfrec7_v_nxv2f32_nxv2f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f32( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f32( + , + i64); + +define @intrinsic_vfrec7_v_nxv4f32_nxv4f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f32( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f32( + , + i64); + +define @intrinsic_vfrec7_v_nxv8f32_nxv8f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f32( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv16f32( + , + i64); + +define @intrinsic_vfrec7_v_nxv16f32_nxv16f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv16f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv16f32( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv16f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv1f64( + , + i64); + +define @intrinsic_vfrec7_v_nxv1f64_nxv1f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv1f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv1f64( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu +; CHECK-NEXT: vfrec7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv1f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv2f64( + , + i64); + +define @intrinsic_vfrec7_v_nxv2f64_nxv2f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv2f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv2f64( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu +; CHECK-NEXT: vfrec7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv2f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv4f64( + , + i64); + +define @intrinsic_vfrec7_v_nxv4f64_nxv4f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv4f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv4f64( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu +; CHECK-NEXT: vfrec7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv4f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrec7.nxv8f64( + , + i64); + +define @intrinsic_vfrec7_v_nxv8f64_nxv8f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu +; CHECK-NEXT: vfrec7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.nxv8f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrec7.mask.nxv8f64( + , + , + , + i64); + +define @intrinsic_vfrec7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrec7_mask_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu +; CHECK-NEXT: vfrec7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrec7.mask.nxv8f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll b/test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll new file mode 100644 index 00000000000..2740ecf3acf --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll @@ -0,0 +1,602 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s +declare @llvm.riscv.vfrsqrt7.nxv1f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv1f16_nxv1f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv2f16_nxv2f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv4f16_nxv4f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv8f16_nxv8f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv16f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv16f16_nxv16f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv16f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv16f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv16f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv32f16( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv32f16_nxv32f16( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv32f16( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv32f16( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv32f16( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv1f32( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv1f32_nxv1f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f32( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f32( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv2f32_nxv2f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f32( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f32( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv4f32_nxv4f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f32( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f32( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv8f32_nxv8f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f32( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv16f32( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv16f32_nxv16f32( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv16f32( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv16f32( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv16f32( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv1f64( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv1f64_nxv1f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f64( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f64( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv2f64_nxv2f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f64( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f64( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv4f64_nxv4f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f64( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f64( + , + i32); + +define @intrinsic_vfrsqrt7_v_nxv8f64_nxv8f64( %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f64( + %0, + i32 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f64( + , + , + , + i32); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i32 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f64( + %1, + %2, + %0, + i32 %3) + + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll b/test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll new file mode 100644 index 00000000000..3ea0f1d9eb6 --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll @@ -0,0 +1,602 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv64 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s +declare @llvm.riscv.vfrsqrt7.nxv1f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv1f16_nxv1f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f16_nxv1f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv2f16_nxv2f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f16_nxv2f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv4f16_nxv4f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f16_nxv4f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv8f16_nxv8f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f16_nxv8f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv16f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv16f16_nxv16f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv16f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv16f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv16f16_nxv16f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv16f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv32f16( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv32f16_nxv32f16( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv32f16( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv32f16( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv32f16_nxv32f16: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv32f16( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv1f32( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv1f32_nxv1f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f32( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f32_nxv1f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f32( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv2f32_nxv2f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f32( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f32_nxv2f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f32( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv4f32_nxv4f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f32( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f32_nxv4f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f32( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv8f32_nxv8f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f32( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f32_nxv8f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv16f32( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv16f32_nxv16f32( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv16f32( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv16f32( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv16f32_nxv16f32: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv16f32( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv1f64( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv1f64_nxv1f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv1f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv1f64( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv1f64_nxv1f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v9, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv1f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv2f64( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv2f64_nxv2f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv2f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv2f64( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv2f64_nxv2f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v10, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv2f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv4f64( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv4f64_nxv4f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv4f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv4f64( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv4f64_nxv4f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v12, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv4f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.nxv8f64( + , + i64); + +define @intrinsic_vfrsqrt7_v_nxv8f64_nxv8f64( %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu +; CHECK-NEXT: vfrsqrt7.v v8, v8 +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.nxv8f64( + %0, + i64 %1) + + ret %a +} + +declare @llvm.riscv.vfrsqrt7.mask.nxv8f64( + , + , + , + i64); + +define @intrinsic_vfrsqrt7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i64 %3) nounwind { +; CHECK-LABEL: intrinsic_vfrsqrt7_mask_v_nxv8f64_nxv8f64: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu +; CHECK-NEXT: vfrsqrt7.v v8, v16, v0.t +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vfrsqrt7.mask.nxv8f64( + %1, + %2, + %0, + i64 %3) + + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vle1-rv32.ll b/test/CodeGen/RISCV/rvv/vle1-rv32.ll new file mode 100644 index 00000000000..f7040f7885d --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vle1-rv32.ll @@ -0,0 +1,94 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -mattr=+experimental-v -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s + +declare @llvm.riscv.vle1.nxv1i1(*, i32); + +define @intrinsic_vle1_v_nxv1i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf8,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv1i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv2i1(*, i32); + +define @intrinsic_vle1_v_nxv2i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv2i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf4,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv2i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv4i1(*, i32); + +define @intrinsic_vle1_v_nxv4i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv4i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf2,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv4i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv8i1(*, i32); + +define @intrinsic_vle1_v_nxv8i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv8i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m1,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv8i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv16i1(*, i32); + +define @intrinsic_vle1_v_nxv16i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv16i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m2,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv16i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv32i1(*, i32); + +define @intrinsic_vle1_v_nxv32i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv32i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m4,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv32i1(* %0, i32 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv64i1(*, i32); + +define @intrinsic_vle1_v_nxv64i1(* %0, i32 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv64i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m8,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv64i1(* %0, i32 %1) + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vle1-rv64.ll b/test/CodeGen/RISCV/rvv/vle1-rv64.ll new file mode 100644 index 00000000000..46c91f5f6b3 --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vle1-rv64.ll @@ -0,0 +1,94 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv64 -mattr=+experimental-v -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s + +declare @llvm.riscv.vle1.nxv1i1(*, i64); + +define @intrinsic_vle1_v_nxv1i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf8,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv1i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv2i1(*, i64); + +define @intrinsic_vle1_v_nxv2i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv2i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf4,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv2i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv4i1(*, i64); + +define @intrinsic_vle1_v_nxv4i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv4i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf2,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv4i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv8i1(*, i64); + +define @intrinsic_vle1_v_nxv8i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv8i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m1,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv8i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv16i1(*, i64); + +define @intrinsic_vle1_v_nxv16i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv16i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m2,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv16i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv32i1(*, i64); + +define @intrinsic_vle1_v_nxv32i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv32i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m4,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv32i1(* %0, i64 %1) + ret %a +} + +declare @llvm.riscv.vle1.nxv64i1(*, i64); + +define @intrinsic_vle1_v_nxv64i1(* %0, i64 %1) nounwind { +; CHECK-LABEL: intrinsic_vle1_v_nxv64i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m8,ta,mu +; CHECK-NEXT: vle1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + %a = call @llvm.riscv.vle1.nxv64i1(* %0, i64 %1) + ret %a +} diff --git a/test/CodeGen/RISCV/rvv/vse1-rv32.ll b/test/CodeGen/RISCV/rvv/vse1-rv32.ll new file mode 100644 index 00000000000..d94125d7e6a --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vse1-rv32.ll @@ -0,0 +1,94 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -mattr=+experimental-v -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s + +declare void @llvm.riscv.vse1.nxv1i1(, *, i32); + +define void @intrinsic_vse1_v_nxv1i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf8,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv1i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv2i1(, *, i32); + +define void @intrinsic_vse1_v_nxv2i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv2i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf4,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv2i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv4i1(, *, i32); + +define void @intrinsic_vse1_v_nxv4i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv4i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf2,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv4i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv8i1(, *, i32); + +define void @intrinsic_vse1_v_nxv8i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv8i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m1,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv8i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv16i1(, *, i32); + +define void @intrinsic_vse1_v_nxv16i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv16i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m2,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv16i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv32i1(, *, i32); + +define void @intrinsic_vse1_v_nxv32i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv32i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m4,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv32i1( %0, * %1, i32 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv64i1(, *, i32); + +define void @intrinsic_vse1_v_nxv64i1( %0, * %1, i32 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv64i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m8,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv64i1( %0, * %1, i32 %2) + ret void +} diff --git a/test/CodeGen/RISCV/rvv/vse1-rv64.ll b/test/CodeGen/RISCV/rvv/vse1-rv64.ll new file mode 100644 index 00000000000..48d4585c01c --- /dev/null +++ b/test/CodeGen/RISCV/rvv/vse1-rv64.ll @@ -0,0 +1,94 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv64 -mattr=+experimental-v -verify-machineinstrs \ +; RUN: --riscv-no-aliases < %s | FileCheck %s + +declare void @llvm.riscv.vse1.nxv1i1(, *, i64); + +define void @intrinsic_vse1_v_nxv1i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf8,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv1i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv2i1(, *, i64); + +define void @intrinsic_vse1_v_nxv2i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv2i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf4,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv2i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv4i1(, *, i64); + +define void @intrinsic_vse1_v_nxv4i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv4i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,mf2,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv4i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv8i1(, *, i64); + +define void @intrinsic_vse1_v_nxv8i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv8i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m1,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv8i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv16i1(, *, i64); + +define void @intrinsic_vse1_v_nxv16i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv16i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m2,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv16i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv32i1(, *, i64); + +define void @intrinsic_vse1_v_nxv32i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv32i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m4,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv32i1( %0, * %1, i64 %2) + ret void +} + +declare void @llvm.riscv.vse1.nxv64i1(, *, i64); + +define void @intrinsic_vse1_v_nxv64i1( %0, * %1, i64 %2) nounwind { +; CHECK-LABEL: intrinsic_vse1_v_nxv64i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli a1, a1, e8,m8,ta,mu +; CHECK-NEXT: vse1.v v0, (a0) +; CHECK-NEXT: jalr zero, 0(ra) +entry: + call void @llvm.riscv.vse1.nxv64i1( %0, * %1, i64 %2) + ret void +} diff --git a/test/CodeGen/RISCV/vfrece7-rv32.ll b/test/CodeGen/RISCV/vfrece7-rv32.ll deleted file mode 100644 index 7a810f10d47..00000000000 --- a/test/CodeGen/RISCV/vfrece7-rv32.ll +++ /dev/null @@ -1,602 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv32 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ -; RUN: --riscv-no-aliases < %s | FileCheck %s -declare @llvm.riscv.vfrece7.nxv1f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv1f16_nxv1f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv2f16_nxv2f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv4f16_nxv4f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv8f16_nxv8f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv16f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv16f16_nxv16f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv16f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv16f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv16f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv32f16( - , - i32); - -define @intrinsic_vfrece7_v_nxv32f16_nxv32f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv32f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv32f16( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv32f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv1f32( - , - i32); - -define @intrinsic_vfrece7_v_nxv1f32_nxv1f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f32( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f32( - , - i32); - -define @intrinsic_vfrece7_v_nxv2f32_nxv2f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f32( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f32( - , - i32); - -define @intrinsic_vfrece7_v_nxv4f32_nxv4f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f32( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f32( - , - i32); - -define @intrinsic_vfrece7_v_nxv8f32_nxv8f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f32( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv16f32( - , - i32); - -define @intrinsic_vfrece7_v_nxv16f32_nxv16f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv16f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv16f32( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv16f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv1f64( - , - i32); - -define @intrinsic_vfrece7_v_nxv1f64_nxv1f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f64( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f64( - , - i32); - -define @intrinsic_vfrece7_v_nxv2f64_nxv2f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f64( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f64( - , - i32); - -define @intrinsic_vfrece7_v_nxv4f64_nxv4f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f64( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f64( - , - i32); - -define @intrinsic_vfrece7_v_nxv8f64_nxv8f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f64( - , - , - , - i32); - -define @intrinsic_vfrece7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} diff --git a/test/CodeGen/RISCV/vfrece7-rv64.ll b/test/CodeGen/RISCV/vfrece7-rv64.ll deleted file mode 100644 index 3af3fe4078c..00000000000 --- a/test/CodeGen/RISCV/vfrece7-rv64.ll +++ /dev/null @@ -1,602 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv64 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ -; RUN: --riscv-no-aliases < %s | FileCheck %s -declare @llvm.riscv.vfrece7.nxv1f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv1f16_nxv1f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv2f16_nxv2f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv4f16_nxv4f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv8f16_nxv8f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv16f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv16f16_nxv16f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv16f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv16f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv16f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv32f16( - , - i64); - -define @intrinsic_vfrece7_v_nxv32f16_nxv32f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv32f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv32f16( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv32f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv1f32( - , - i64); - -define @intrinsic_vfrece7_v_nxv1f32_nxv1f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f32( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f32( - , - i64); - -define @intrinsic_vfrece7_v_nxv2f32_nxv2f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f32( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f32( - , - i64); - -define @intrinsic_vfrece7_v_nxv4f32_nxv4f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f32( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f32( - , - i64); - -define @intrinsic_vfrece7_v_nxv8f32_nxv8f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f32( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv16f32( - , - i64); - -define @intrinsic_vfrece7_v_nxv16f32_nxv16f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv16f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv16f32( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv16f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv1f64( - , - i64); - -define @intrinsic_vfrece7_v_nxv1f64_nxv1f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv1f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv1f64( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu -; CHECK-NEXT: vfrece7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv1f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv2f64( - , - i64); - -define @intrinsic_vfrece7_v_nxv2f64_nxv2f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv2f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv2f64( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu -; CHECK-NEXT: vfrece7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv2f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv4f64( - , - i64); - -define @intrinsic_vfrece7_v_nxv4f64_nxv4f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv4f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv4f64( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu -; CHECK-NEXT: vfrece7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv4f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrece7.nxv8f64( - , - i64); - -define @intrinsic_vfrece7_v_nxv8f64_nxv8f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu -; CHECK-NEXT: vfrece7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.nxv8f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrece7.mask.nxv8f64( - , - , - , - i64); - -define @intrinsic_vfrece7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrece7_mask_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu -; CHECK-NEXT: vfrece7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrece7.mask.nxv8f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} diff --git a/test/CodeGen/RISCV/vfrsqrte7-rv32.ll b/test/CodeGen/RISCV/vfrsqrte7-rv32.ll deleted file mode 100644 index 083b411ef3c..00000000000 --- a/test/CodeGen/RISCV/vfrsqrte7-rv32.ll +++ /dev/null @@ -1,602 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv32 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ -; RUN: --riscv-no-aliases < %s | FileCheck %s -declare @llvm.riscv.vfrsqrte7.nxv1f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv1f16_nxv1f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv2f16_nxv2f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv4f16_nxv4f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv8f16_nxv8f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv16f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv16f16_nxv16f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv16f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv16f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv16f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv32f16( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv32f16_nxv32f16( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv32f16( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv32f16( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv32f16( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv1f32( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv1f32_nxv1f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f32( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f32( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv2f32_nxv2f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f32( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f32( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv4f32_nxv4f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f32( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f32( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv8f32_nxv8f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f32( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv16f32( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv16f32_nxv16f32( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv16f32( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv16f32( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv16f32( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv1f64( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv1f64_nxv1f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f64( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f64( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv2f64_nxv2f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f64( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f64( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv4f64_nxv4f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f64( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f64( - , - i32); - -define @intrinsic_vfrsqrte7_v_nxv8f64_nxv8f64( %0, i32 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f64( - %0, - i32 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f64( - , - , - , - i32); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i32 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f64( - %1, - %2, - %0, - i32 %3) - - ret %a -} diff --git a/test/CodeGen/RISCV/vfrsqrte7-rv64.ll b/test/CodeGen/RISCV/vfrsqrte7-rv64.ll deleted file mode 100644 index d0f4c9c4ac5..00000000000 --- a/test/CodeGen/RISCV/vfrsqrte7-rv64.ll +++ /dev/null @@ -1,602 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv64 -mattr=+experimental-v,+d,+experimental-zfh -verify-machineinstrs \ -; RUN: --riscv-no-aliases < %s | FileCheck %s -declare @llvm.riscv.vfrsqrte7.nxv1f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv1f16_nxv1f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f16_nxv1f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f16_nxv1f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv2f16_nxv2f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f16_nxv2f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f16_nxv2f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,mf2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv4f16_nxv4f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f16_nxv4f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f16_nxv4f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv8f16_nxv8f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f16_nxv8f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f16_nxv8f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv16f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv16f16_nxv16f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv16f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv16f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv16f16_nxv16f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv16f16_nxv16f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv16f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv32f16( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv32f16_nxv32f16( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv32f16( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv32f16( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv32f16_nxv32f16( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv32f16_nxv32f16: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e16,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv32f16( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv1f32( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv1f32_nxv1f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f32( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f32_nxv1f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f32_nxv1f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,mf2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f32( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv2f32_nxv2f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f32( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f32_nxv2f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f32_nxv2f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f32( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv4f32_nxv4f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f32( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f32_nxv4f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f32_nxv4f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f32( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv8f32_nxv8f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f32( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f32_nxv8f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f32_nxv8f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv16f32( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv16f32_nxv16f32( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv16f32( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv16f32( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv16f32_nxv16f32( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv16f32_nxv16f32: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e32,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv16f32( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv1f64( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv1f64_nxv1f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv1f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv1f64( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv1f64_nxv1f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv1f64_nxv1f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m1,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v9, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv1f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv2f64( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv2f64_nxv2f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv2f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv2f64( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv2f64_nxv2f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv2f64_nxv2f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m2,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v10, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv2f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv4f64( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv4f64_nxv4f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv4f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv4f64( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv4f64_nxv4f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv4f64_nxv4f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m4,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v12, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv4f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.nxv8f64( - , - i64); - -define @intrinsic_vfrsqrte7_v_nxv8f64_nxv8f64( %0, i64 %1) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,ta,mu -; CHECK-NEXT: vfrsqrte7.v v8, v8 -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.nxv8f64( - %0, - i64 %1) - - ret %a -} - -declare @llvm.riscv.vfrsqrte7.mask.nxv8f64( - , - , - , - i64); - -define @intrinsic_vfrsqrte7_mask_v_nxv8f64_nxv8f64( %0, %1, %2, i64 %3) nounwind { -; CHECK-LABEL: intrinsic_vfrsqrte7_mask_v_nxv8f64_nxv8f64: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vsetvli a0, a0, e64,m8,tu,mu -; CHECK-NEXT: vfrsqrte7.v v8, v16, v0.t -; CHECK-NEXT: jalr zero, 0(ra) -entry: - %a = call @llvm.riscv.vfrsqrte7.mask.nxv8f64( - %1, - %2, - %0, - i64 %3) - - ret %a -} diff --git a/test/MC/RISCV/rvv/fothers.s b/test/MC/RISCV/rvv/fothers.s index b54d66016fc..f894cbc5fc2 100644 --- a/test/MC/RISCV/rvv/fothers.s +++ b/test/MC/RISCV/rvv/fothers.s @@ -22,26 +22,26 @@ vfsqrt.v v8, v4 # CHECK-ERROR: instruction requires the following: 'F'{{.*}}'V' # CHECK-UNKNOWN: 57 14 40 4e -vfrsqrte7.v v8, v4, v0.t -# CHECK-INST: vfrsqrte7.v v8, v4, v0.t +vfrsqrt7.v v8, v4, v0.t +# CHECK-INST: vfrsqrt7.v v8, v4, v0.t # CHECK-ENCODING: [0x57,0x14,0x42,0x4c] # CHECK-ERROR: instruction requires the following: 'F'{{.*}}'V' # CHECK-UNKNOWN: 57 14 42 4c -vfrsqrte7.v v8, v4 -# CHECK-INST: vfrsqrte7.v v8, v4 +vfrsqrt7.v v8, v4 +# CHECK-INST: vfrsqrt7.v v8, v4 # CHECK-ENCODING: [0x57,0x14,0x42,0x4e] # CHECK-ERROR: instruction requires the following: 'F'{{.*}}'V' # CHECK-UNKNOWN: 57 14 42 4e -vfrece7.v v8, v4, v0.t -# CHECK-INST: vfrece7.v v8, v4, v0.t +vfrec7.v v8, v4, v0.t +# CHECK-INST: vfrec7.v v8, v4, v0.t # CHECK-ENCODING: [0x57,0x94,0x42,0x4c] # CHECK-ERROR: instruction requires the following: 'F'{{.*}}'V' # CHECK-UNKNOWN: 57 94 42 4c -vfrece7.v v8, v4 -# CHECK-INST: vfrece7.v v8, v4 +vfrec7.v v8, v4 +# CHECK-INST: vfrec7.v v8, v4 # CHECK-ENCODING: [0x57,0x94,0x42,0x4e] # CHECK-ERROR: instruction requires the following: 'F'{{.*}}'V' # CHECK-UNKNOWN: 57 94 42 4e diff --git a/test/MC/RISCV/rvv/invalid.s b/test/MC/RISCV/rvv/invalid.s index 9763dc07d12..d298e257263 100644 --- a/test/MC/RISCV/rvv/invalid.s +++ b/test/MC/RISCV/rvv/invalid.s @@ -1,6 +1,15 @@ # RUN: not llvm-mc -triple=riscv64 --mattr=+experimental-v --mattr=+f %s 2>&1 \ # RUN: | FileCheck %s --check-prefix=CHECK-ERROR +vsetivli a2, 32, e8,m1 +# CHECK-ERROR: unknown operand + +vsetivli a2, zero, e8,m1 +# CHECK-ERROR: unknown operand + +vsetivli a2, 5, e31 +# CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] + vsetvli a2, a0, e31 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] diff --git a/test/MC/RISCV/rvv/load.s b/test/MC/RISCV/rvv/load.s index 4841f5757e7..3d0dbb15c36 100644 --- a/test/MC/RISCV/rvv/load.s +++ b/test/MC/RISCV/rvv/load.s @@ -8,6 +8,12 @@ # RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+experimental-v %s \ # RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN +vle1.v v8, (a0) +# CHECK-INST: vle1.v v8, (a0) +# CHECK-ENCODING: [0x07,0x04,0xb5,0x00] +# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) +# CHECK-UNKNOWN: 07 04 b5 00 + vle8.v v8, (a0), v0.t # CHECK-INST: vle8.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x00] @@ -56,54 +62,6 @@ vle64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 05 02 -vle128.v v8, (a0), v0.t -# CHECK-INST: vle128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 05 10 - -vle128.v v8, (a0) -# CHECK-INST: vle128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 05 12 - -vle256.v v8, (a0), v0.t -# CHECK-INST: vle256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 05 10 - -vle256.v v8, (a0) -# CHECK-INST: vle256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 05 12 - -vle512.v v8, (a0), v0.t -# CHECK-INST: vle512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 05 10 - -vle512.v v8, (a0) -# CHECK-INST: vle512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 05 12 - -vle1024.v v8, (a0), v0.t -# CHECK-INST: vle1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 05 10 - -vle1024.v v8, (a0) -# CHECK-INST: vle1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 05 12 - vle8ff.v v8, (a0), v0.t # CHECK-INST: vle8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x01] @@ -152,54 +110,6 @@ vle64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 05 03 -vle128ff.v v8, (a0), v0.t -# CHECK-INST: vle128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x11] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 05 11 - -vle128ff.v v8, (a0) -# CHECK-INST: vle128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x13] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 05 13 - -vle256ff.v v8, (a0), v0.t -# CHECK-INST: vle256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x11] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 05 11 - -vle256ff.v v8, (a0) -# CHECK-INST: vle256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x13] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 05 13 - -vle512ff.v v8, (a0), v0.t -# CHECK-INST: vle512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x11] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 05 11 - -vle512ff.v v8, (a0) -# CHECK-INST: vle512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x13] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 05 13 - -vle1024ff.v v8, (a0), v0.t -# CHECK-INST: vle1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x11] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 05 11 - -vle1024ff.v v8, (a0) -# CHECK-INST: vle1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x13] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 05 13 - vlse8.v v8, (a0), a1, v0.t # CHECK-INST: vlse8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0x08] @@ -248,54 +158,6 @@ vlse64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 b5 0a -vlse128.v v8, (a0), a1, v0.t -# CHECK-INST: vlse128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 b5 18 - -vlse128.v v8, (a0), a1 -# CHECK-INST: vlse128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 b5 1a - -vlse256.v v8, (a0), a1, v0.t -# CHECK-INST: vlse256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 b5 18 - -vlse256.v v8, (a0), a1 -# CHECK-INST: vlse256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 b5 1a - -vlse512.v v8, (a0), a1, v0.t -# CHECK-INST: vlse512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 b5 18 - -vlse512.v v8, (a0), a1 -# CHECK-INST: vlse512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 b5 1a - -vlse1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlse1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 b5 18 - -vlse1024.v v8, (a0), a1 -# CHECK-INST: vlse1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 b5 1a - vluxei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0x04] @@ -416,30 +278,6 @@ vl1re64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 85 22 -vl1re128.v v8, (a0) -# CHECK-INST: vl1re128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x85,0x32] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 85 32 - -vl1re256.v v8, (a0) -# CHECK-INST: vl1re256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x85,0x32] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 85 32 - -vl1re512.v v8, (a0) -# CHECK-INST: vl1re512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x85,0x32] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 85 32 - -vl1re1024.v v8, (a0) -# CHECK-INST: vl1re1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x85,0x32] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 85 32 - vl2re8.v v8, (a0) # CHECK-INST: vl2re8.v v8, (a0) # CHECK-ENCODING: [0x07,0x04,0x85,0x42] @@ -464,30 +302,6 @@ vl2re64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 85 42 -vl2re128.v v8, (a0) -# CHECK-INST: vl2re128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x85,0x52] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 85 52 - -vl2re256.v v8, (a0) -# CHECK-INST: vl2re256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x85,0x52] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 85 52 - -vl2re512.v v8, (a0) -# CHECK-INST: vl2re512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x85,0x52] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 85 52 - -vl2re1024.v v8, (a0) -# CHECK-INST: vl2re1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x85,0x52] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 85 52 - vl4re8.v v8, (a0) # CHECK-INST: vl4re8.v v8, (a0) # CHECK-ENCODING: [0x07,0x04,0x85,0x82] @@ -512,30 +326,6 @@ vl4re64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 85 82 -vl4re128.v v8, (a0) -# CHECK-INST: vl4re128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x85,0x92] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 85 92 - -vl4re256.v v8, (a0) -# CHECK-INST: vl4re256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x85,0x92] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 85 92 - -vl4re512.v v8, (a0) -# CHECK-INST: vl4re512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x85,0x92] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 85 92 - -vl4re1024.v v8, (a0) -# CHECK-INST: vl4re1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x85,0x92] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 85 92 - vl8re8.v v8, (a0) # CHECK-INST: vl8re8.v v8, (a0) # CHECK-ENCODING: [0x07,0x04,0x85,0x02] @@ -559,27 +349,3 @@ vl8re64.v v8, (a0) # CHECK-ENCODING: [0x07,0x74,0x85,0x02] # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 07 74 85 02 - -vl8re128.v v8, (a0) -# CHECK-INST: vl8re128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x85,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 04 85 12 - -vl8re256.v v8, (a0) -# CHECK-INST: vl8re256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x85,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 54 85 12 - -vl8re512.v v8, (a0) -# CHECK-INST: vl8re512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x85,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 64 85 12 - -vl8re1024.v v8, (a0) -# CHECK-INST: vl8re1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x85,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 07 74 85 12 diff --git a/test/MC/RISCV/rvv/store.s b/test/MC/RISCV/rvv/store.s index 8437bf7f903..e4795aa1c2c 100644 --- a/test/MC/RISCV/rvv/store.s +++ b/test/MC/RISCV/rvv/store.s @@ -8,6 +8,12 @@ # RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+experimental-v %s \ # RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN +vse1.v v24, (a0) +# CHECK-INST: vse1.v v24, (a0) +# CHECK-ENCODING: [0x27,0x0c,0xb5,0x00] +# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) +# CHECK-UNKNOWN: 27 0c b5 00 + vse8.v v24, (a0), v0.t # CHECK-INST: vse8.v v24, (a0), v0.t # CHECK-ENCODING: [0x27,0x0c,0x05,0x00] @@ -56,54 +62,6 @@ vse64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 27 7c 05 02 -vse128.v v24, (a0), v0.t -# CHECK-INST: vse128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 0c 05 10 - -vse128.v v24, (a0) -# CHECK-INST: vse128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 0c 05 12 - -vse256.v v24, (a0), v0.t -# CHECK-INST: vse256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 5c 05 10 - -vse256.v v24, (a0) -# CHECK-INST: vse256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 5c 05 12 - -vse512.v v24, (a0), v0.t -# CHECK-INST: vse512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 6c 05 10 - -vse512.v v24, (a0) -# CHECK-INST: vse512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 6c 05 12 - -vse1024.v v24, (a0), v0.t -# CHECK-INST: vse1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0x10] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 7c 05 10 - -vse1024.v v24, (a0) -# CHECK-INST: vse1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0x12] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 7c 05 12 - vsse8.v v24, (a0), a1, v0.t # CHECK-INST: vsse8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0x08] @@ -152,54 +110,6 @@ vsse64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 27 7c b5 0a -vsse128.v v24, (a0), a1, v0.t -# CHECK-INST: vsse128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 0c b5 18 - -vsse128.v v24, (a0), a1 -# CHECK-INST: vsse128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 0c b5 1a - -vsse256.v v24, (a0), a1, v0.t -# CHECK-INST: vsse256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 5c b5 18 - -vsse256.v v24, (a0), a1 -# CHECK-INST: vsse256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 5c b5 1a - -vsse512.v v24, (a0), a1, v0.t -# CHECK-INST: vsse512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 6c b5 18 - -vsse512.v v24, (a0), a1 -# CHECK-INST: vsse512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 6c b5 1a - -vsse1024.v v24, (a0), a1, v0.t -# CHECK-INST: vsse1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x18] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 7c b5 18 - -vsse1024.v v24, (a0), a1 -# CHECK-INST: vsse1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x1a] -# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) -# CHECK-UNKNOWN: 27 7c b5 1a - vsuxei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0x04] diff --git a/test/MC/RISCV/rvv/vsetvl.s b/test/MC/RISCV/rvv/vsetvl.s index c32126b0e24..d792908627a 100644 --- a/test/MC/RISCV/rvv/vsetvl.s +++ b/test/MC/RISCV/rvv/vsetvl.s @@ -79,3 +79,21 @@ vsetvl a2, a0, a1 # CHECK-ENCODING: [0x57,0x76,0xb5,0x80] # CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) # CHECK-UNKNOWN: 57 76 b5 80 + +vsetivli a2, 0, e32,m1,ta,ma +# CHECK-INST: vsetivli a2, 0, e32,m1,ta,ma +# CHECK-ENCODING: [0x57,0x76,0x00,0xcd] +# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) +# CHECK-UNKNOWN: 57 76 00 cd + +vsetivli a2, 15, e32,m1,ta,ma +# CHECK-INST: vsetivli a2, 15, e32,m1,ta,ma +# CHECK-ENCODING: [0x57,0xf6,0x07,0xcd] +# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) +# CHECK-UNKNOWN: 57 f6 07 cd + +vsetivli a2, 31, e32,m1,ta,ma +# CHECK-INST: vsetivli a2, 31, e32,m1,ta,ma +# CHECK-ENCODING: [0x57,0xf6,0x0f,0xcd] +# CHECK-ERROR: instruction requires the following: 'V' (Vector Instructions) +# CHECK-UNKNOWN: 57 f6 0f cd diff --git a/test/MC/RISCV/rvv/zvlsseg.s b/test/MC/RISCV/rvv/zvlsseg.s index b41b6984bcb..98c7a59eb31 100644 --- a/test/MC/RISCV/rvv/zvlsseg.s +++ b/test/MC/RISCV/rvv/zvlsseg.s @@ -60,54 +60,6 @@ vlseg2e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 22 -vlseg2e128.v v8, (a0), v0.t -# CHECK-INST: vlseg2e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 30 - -vlseg2e128.v v8, (a0) -# CHECK-INST: vlseg2e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 32 - -vlseg2e256.v v8, (a0), v0.t -# CHECK-INST: vlseg2e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 30 - -vlseg2e256.v v8, (a0) -# CHECK-INST: vlseg2e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 32 - -vlseg2e512.v v8, (a0), v0.t -# CHECK-INST: vlseg2e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 30 - -vlseg2e512.v v8, (a0) -# CHECK-INST: vlseg2e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 32 - -vlseg2e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg2e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 30 - -vlseg2e1024.v v8, (a0) -# CHECK-INST: vlseg2e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 32 - vlseg2e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg2e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x21] @@ -156,54 +108,6 @@ vlseg2e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 23 -vlseg2e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg2e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x31] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 31 - -vlseg2e128ff.v v8, (a0) -# CHECK-INST: vlseg2e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x33] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 33 - -vlseg2e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg2e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x31] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 31 - -vlseg2e256ff.v v8, (a0) -# CHECK-INST: vlseg2e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x33] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 33 - -vlseg2e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg2e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x31] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 31 - -vlseg2e512ff.v v8, (a0) -# CHECK-INST: vlseg2e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x33] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 33 - -vlseg2e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg2e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x31] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 31 - -vlseg2e1024ff.v v8, (a0) -# CHECK-INST: vlseg2e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x33] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 33 - vlsseg2e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg2e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0x28] @@ -252,54 +156,6 @@ vlsseg2e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 2a -vlsseg2e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg2e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 38 - -vlsseg2e128.v v8, (a0), a1 -# CHECK-INST: vlsseg2e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 3a - -vlsseg2e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg2e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 38 - -vlsseg2e256.v v8, (a0), a1 -# CHECK-INST: vlsseg2e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 3a - -vlsseg2e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg2e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 38 - -vlsseg2e512.v v8, (a0), a1 -# CHECK-INST: vlsseg2e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 3a - -vlsseg2e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg2e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 38 - -vlsseg2e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg2e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 3a - vluxseg2ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg2ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0x24] @@ -444,54 +300,6 @@ vlseg3e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 42 -vlseg3e128.v v8, (a0), v0.t -# CHECK-INST: vlseg3e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 50 - -vlseg3e128.v v8, (a0) -# CHECK-INST: vlseg3e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 52 - -vlseg3e256.v v8, (a0), v0.t -# CHECK-INST: vlseg3e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 50 - -vlseg3e256.v v8, (a0) -# CHECK-INST: vlseg3e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 52 - -vlseg3e512.v v8, (a0), v0.t -# CHECK-INST: vlseg3e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 50 - -vlseg3e512.v v8, (a0) -# CHECK-INST: vlseg3e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 52 - -vlseg3e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg3e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 50 - -vlseg3e1024.v v8, (a0) -# CHECK-INST: vlseg3e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 52 - vlseg3e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg3e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x41] @@ -540,54 +348,6 @@ vlseg3e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 43 -vlseg3e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg3e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x51] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 51 - -vlseg3e128ff.v v8, (a0) -# CHECK-INST: vlseg3e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x53] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 53 - -vlseg3e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg3e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x51] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 51 - -vlseg3e256ff.v v8, (a0) -# CHECK-INST: vlseg3e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x53] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 53 - -vlseg3e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg3e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x51] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 51 - -vlseg3e512ff.v v8, (a0) -# CHECK-INST: vlseg3e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x53] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 53 - -vlseg3e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg3e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x51] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 51 - -vlseg3e1024ff.v v8, (a0) -# CHECK-INST: vlseg3e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x53] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 53 - vlsseg3e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg3e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0x48] @@ -636,54 +396,6 @@ vlsseg3e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 4a -vlsseg3e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg3e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 58 - -vlsseg3e128.v v8, (a0), a1 -# CHECK-INST: vlsseg3e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 5a - -vlsseg3e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg3e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 58 - -vlsseg3e256.v v8, (a0), a1 -# CHECK-INST: vlsseg3e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 5a - -vlsseg3e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg3e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 58 - -vlsseg3e512.v v8, (a0), a1 -# CHECK-INST: vlsseg3e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 5a - -vlsseg3e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg3e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 58 - -vlsseg3e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg3e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 5a - vluxseg3ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg3ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0x44] @@ -828,54 +540,6 @@ vlseg4e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 62 -vlseg4e128.v v8, (a0), v0.t -# CHECK-INST: vlseg4e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 70 - -vlseg4e128.v v8, (a0) -# CHECK-INST: vlseg4e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 72 - -vlseg4e256.v v8, (a0), v0.t -# CHECK-INST: vlseg4e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 70 - -vlseg4e256.v v8, (a0) -# CHECK-INST: vlseg4e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 72 - -vlseg4e512.v v8, (a0), v0.t -# CHECK-INST: vlseg4e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 70 - -vlseg4e512.v v8, (a0) -# CHECK-INST: vlseg4e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 72 - -vlseg4e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg4e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 70 - -vlseg4e1024.v v8, (a0) -# CHECK-INST: vlseg4e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 72 - vlseg4e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg4e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x61] @@ -924,54 +588,6 @@ vlseg4e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 63 -vlseg4e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg4e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x71] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 71 - -vlseg4e128ff.v v8, (a0) -# CHECK-INST: vlseg4e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x73] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 73 - -vlseg4e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg4e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x71] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 71 - -vlseg4e256ff.v v8, (a0) -# CHECK-INST: vlseg4e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x73] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 73 - -vlseg4e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg4e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x71] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 71 - -vlseg4e512ff.v v8, (a0) -# CHECK-INST: vlseg4e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x73] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 73 - -vlseg4e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg4e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x71] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 71 - -vlseg4e1024ff.v v8, (a0) -# CHECK-INST: vlseg4e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x73] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 73 - vlsseg4e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg4e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0x68] @@ -1020,54 +636,6 @@ vlsseg4e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 6a -vlsseg4e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg4e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 78 - -vlsseg4e128.v v8, (a0), a1 -# CHECK-INST: vlsseg4e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 7a - -vlsseg4e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg4e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 78 - -vlsseg4e256.v v8, (a0), a1 -# CHECK-INST: vlsseg4e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 7a - -vlsseg4e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg4e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 78 - -vlsseg4e512.v v8, (a0), a1 -# CHECK-INST: vlsseg4e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 7a - -vlsseg4e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg4e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 78 - -vlsseg4e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg4e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 7a - vluxseg4ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg4ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0x64] @@ -1212,54 +780,6 @@ vlseg5e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 82 -vlseg5e128.v v8, (a0), v0.t -# CHECK-INST: vlseg5e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 90 - -vlseg5e128.v v8, (a0) -# CHECK-INST: vlseg5e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 92 - -vlseg5e256.v v8, (a0), v0.t -# CHECK-INST: vlseg5e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 90 - -vlseg5e256.v v8, (a0) -# CHECK-INST: vlseg5e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 92 - -vlseg5e512.v v8, (a0), v0.t -# CHECK-INST: vlseg5e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 90 - -vlseg5e512.v v8, (a0) -# CHECK-INST: vlseg5e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 92 - -vlseg5e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg5e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 90 - -vlseg5e1024.v v8, (a0) -# CHECK-INST: vlseg5e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 92 - vlseg5e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg5e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0x81] @@ -1308,54 +828,6 @@ vlseg5e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 83 -vlseg5e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg5e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0x91] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 91 - -vlseg5e128ff.v v8, (a0) -# CHECK-INST: vlseg5e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0x93] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 93 - -vlseg5e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg5e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0x91] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 91 - -vlseg5e256ff.v v8, (a0) -# CHECK-INST: vlseg5e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0x93] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 93 - -vlseg5e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg5e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0x91] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 91 - -vlseg5e512ff.v v8, (a0) -# CHECK-INST: vlseg5e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0x93] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 93 - -vlseg5e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg5e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0x91] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 91 - -vlseg5e1024ff.v v8, (a0) -# CHECK-INST: vlseg5e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0x93] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 93 - vlsseg5e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg5e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0x88] @@ -1404,54 +876,6 @@ vlsseg5e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 8a -vlsseg5e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg5e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 98 - -vlsseg5e128.v v8, (a0), a1 -# CHECK-INST: vlsseg5e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 9a - -vlsseg5e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg5e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 98 - -vlsseg5e256.v v8, (a0), a1 -# CHECK-INST: vlsseg5e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 9a - -vlsseg5e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg5e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 98 - -vlsseg5e512.v v8, (a0), a1 -# CHECK-INST: vlsseg5e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 9a - -vlsseg5e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg5e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 98 - -vlsseg5e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg5e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 9a - vluxseg5ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg5ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0x84] @@ -1596,54 +1020,6 @@ vlseg6e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 a2 -vlseg6e128.v v8, (a0), v0.t -# CHECK-INST: vlseg6e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 b0 - -vlseg6e128.v v8, (a0) -# CHECK-INST: vlseg6e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 b2 - -vlseg6e256.v v8, (a0), v0.t -# CHECK-INST: vlseg6e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 b0 - -vlseg6e256.v v8, (a0) -# CHECK-INST: vlseg6e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 b2 - -vlseg6e512.v v8, (a0), v0.t -# CHECK-INST: vlseg6e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 b0 - -vlseg6e512.v v8, (a0) -# CHECK-INST: vlseg6e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 b2 - -vlseg6e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg6e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 b0 - -vlseg6e1024.v v8, (a0) -# CHECK-INST: vlseg6e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 b2 - vlseg6e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg6e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0xa1] @@ -1692,54 +1068,6 @@ vlseg6e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 a3 -vlseg6e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg6e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xb1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 b1 - -vlseg6e128ff.v v8, (a0) -# CHECK-INST: vlseg6e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xb3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 b3 - -vlseg6e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg6e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xb1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 b1 - -vlseg6e256ff.v v8, (a0) -# CHECK-INST: vlseg6e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xb3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 b3 - -vlseg6e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg6e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xb1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 b1 - -vlseg6e512ff.v v8, (a0) -# CHECK-INST: vlseg6e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xb3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 b3 - -vlseg6e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg6e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xb1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 b1 - -vlseg6e1024ff.v v8, (a0) -# CHECK-INST: vlseg6e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xb3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 b3 - vlsseg6e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg6e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0xa8] @@ -1788,54 +1116,6 @@ vlsseg6e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 aa -vlsseg6e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg6e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 b8 - -vlsseg6e128.v v8, (a0), a1 -# CHECK-INST: vlsseg6e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 ba - -vlsseg6e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg6e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 b8 - -vlsseg6e256.v v8, (a0), a1 -# CHECK-INST: vlsseg6e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 ba - -vlsseg6e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg6e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 b8 - -vlsseg6e512.v v8, (a0), a1 -# CHECK-INST: vlsseg6e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 ba - -vlsseg6e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg6e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 b8 - -vlsseg6e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg6e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 ba - vluxseg6ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg6ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0xa4] @@ -1980,54 +1260,6 @@ vlseg7e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 c2 -vlseg7e128.v v8, (a0), v0.t -# CHECK-INST: vlseg7e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 d0 - -vlseg7e128.v v8, (a0) -# CHECK-INST: vlseg7e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 d2 - -vlseg7e256.v v8, (a0), v0.t -# CHECK-INST: vlseg7e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 d0 - -vlseg7e256.v v8, (a0) -# CHECK-INST: vlseg7e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 d2 - -vlseg7e512.v v8, (a0), v0.t -# CHECK-INST: vlseg7e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 d0 - -vlseg7e512.v v8, (a0) -# CHECK-INST: vlseg7e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 d2 - -vlseg7e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg7e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 d0 - -vlseg7e1024.v v8, (a0) -# CHECK-INST: vlseg7e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 d2 - vlseg7e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg7e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0xc1] @@ -2076,54 +1308,6 @@ vlseg7e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 c3 -vlseg7e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg7e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xd1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 d1 - -vlseg7e128ff.v v8, (a0) -# CHECK-INST: vlseg7e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xd3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 d3 - -vlseg7e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg7e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xd1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 d1 - -vlseg7e256ff.v v8, (a0) -# CHECK-INST: vlseg7e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xd3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 d3 - -vlseg7e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg7e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xd1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 d1 - -vlseg7e512ff.v v8, (a0) -# CHECK-INST: vlseg7e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xd3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 d3 - -vlseg7e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg7e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xd1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 d1 - -vlseg7e1024ff.v v8, (a0) -# CHECK-INST: vlseg7e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xd3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 d3 - vlsseg7e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg7e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0xc8] @@ -2172,54 +1356,6 @@ vlsseg7e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 ca -vlsseg7e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg7e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 d8 - -vlsseg7e128.v v8, (a0), a1 -# CHECK-INST: vlsseg7e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 da - -vlsseg7e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg7e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 d8 - -vlsseg7e256.v v8, (a0), a1 -# CHECK-INST: vlsseg7e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 da - -vlsseg7e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg7e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 d8 - -vlsseg7e512.v v8, (a0), a1 -# CHECK-INST: vlsseg7e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 da - -vlsseg7e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg7e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 d8 - -vlsseg7e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg7e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 da - vluxseg7ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg7ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0xc4] @@ -2364,54 +1500,6 @@ vlseg8e64.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 e2 -vlseg8e128.v v8, (a0), v0.t -# CHECK-INST: vlseg8e128.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 f0 - -vlseg8e128.v v8, (a0) -# CHECK-INST: vlseg8e128.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 f2 - -vlseg8e256.v v8, (a0), v0.t -# CHECK-INST: vlseg8e256.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 f0 - -vlseg8e256.v v8, (a0) -# CHECK-INST: vlseg8e256.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 f2 - -vlseg8e512.v v8, (a0), v0.t -# CHECK-INST: vlseg8e512.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 f0 - -vlseg8e512.v v8, (a0) -# CHECK-INST: vlseg8e512.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 f2 - -vlseg8e1024.v v8, (a0), v0.t -# CHECK-INST: vlseg8e1024.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 f0 - -vlseg8e1024.v v8, (a0) -# CHECK-INST: vlseg8e1024.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 f2 - vlseg8e8ff.v v8, (a0), v0.t # CHECK-INST: vlseg8e8ff.v v8, (a0), v0.t # CHECK-ENCODING: [0x07,0x04,0x05,0xe1] @@ -2460,54 +1548,6 @@ vlseg8e64ff.v v8, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 05 e3 -vlseg8e128ff.v v8, (a0), v0.t -# CHECK-INST: vlseg8e128ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x04,0x05,0xf1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 f1 - -vlseg8e128ff.v v8, (a0) -# CHECK-INST: vlseg8e128ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x04,0x05,0xf3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 05 f3 - -vlseg8e256ff.v v8, (a0), v0.t -# CHECK-INST: vlseg8e256ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x54,0x05,0xf1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 f1 - -vlseg8e256ff.v v8, (a0) -# CHECK-INST: vlseg8e256ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x54,0x05,0xf3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 05 f3 - -vlseg8e512ff.v v8, (a0), v0.t -# CHECK-INST: vlseg8e512ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x64,0x05,0xf1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 f1 - -vlseg8e512ff.v v8, (a0) -# CHECK-INST: vlseg8e512ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x64,0x05,0xf3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 05 f3 - -vlseg8e1024ff.v v8, (a0), v0.t -# CHECK-INST: vlseg8e1024ff.v v8, (a0), v0.t -# CHECK-ENCODING: [0x07,0x74,0x05,0xf1] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 f1 - -vlseg8e1024ff.v v8, (a0) -# CHECK-INST: vlseg8e1024ff.v v8, (a0) -# CHECK-ENCODING: [0x07,0x74,0x05,0xf3] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 05 f3 - vlsseg8e8.v v8, (a0), a1, v0.t # CHECK-INST: vlsseg8e8.v v8, (a0), a1, v0.t # CHECK-ENCODING: [0x07,0x04,0xb5,0xe8] @@ -2556,54 +1596,6 @@ vlsseg8e64.v v8, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 07 74 b5 ea -vlsseg8e128.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg8e128.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x04,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 f8 - -vlsseg8e128.v v8, (a0), a1 -# CHECK-INST: vlsseg8e128.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x04,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 04 b5 fa - -vlsseg8e256.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg8e256.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x54,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 f8 - -vlsseg8e256.v v8, (a0), a1 -# CHECK-INST: vlsseg8e256.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x54,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 54 b5 fa - -vlsseg8e512.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg8e512.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x64,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 f8 - -vlsseg8e512.v v8, (a0), a1 -# CHECK-INST: vlsseg8e512.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x64,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 64 b5 fa - -vlsseg8e1024.v v8, (a0), a1, v0.t -# CHECK-INST: vlsseg8e1024.v v8, (a0), a1, v0.t -# CHECK-ENCODING: [0x07,0x74,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 f8 - -vlsseg8e1024.v v8, (a0), a1 -# CHECK-INST: vlsseg8e1024.v v8, (a0), a1 -# CHECK-ENCODING: [0x07,0x74,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 07 74 b5 fa - vluxseg8ei8.v v8, (a0), v4, v0.t # CHECK-INST: vluxseg8ei8.v v8, (a0), v4, v0.t # CHECK-ENCODING: [0x07,0x04,0x45,0xe4] @@ -2748,54 +1740,6 @@ vsseg2e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 22 -vsseg2e128.v v24, (a0), v0.t -# CHECK-INST: vsseg2e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 30 - -vsseg2e128.v v24, (a0) -# CHECK-INST: vsseg2e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 32 - -vsseg2e256.v v24, (a0), v0.t -# CHECK-INST: vsseg2e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 30 - -vsseg2e256.v v24, (a0) -# CHECK-INST: vsseg2e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 32 - -vsseg2e512.v v24, (a0), v0.t -# CHECK-INST: vsseg2e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 30 - -vsseg2e512.v v24, (a0) -# CHECK-INST: vsseg2e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 32 - -vsseg2e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg2e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0x30] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 30 - -vsseg2e1024.v v24, (a0) -# CHECK-INST: vsseg2e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0x32] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 32 - vssseg2e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg2e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0x28] @@ -2844,54 +1788,6 @@ vssseg2e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 2a -vssseg2e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg2e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 38 - -vssseg2e128.v v24, (a0), a1 -# CHECK-INST: vssseg2e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 3a - -vssseg2e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg2e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 38 - -vssseg2e256.v v24, (a0), a1 -# CHECK-INST: vssseg2e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 3a - -vssseg2e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg2e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 38 - -vssseg2e512.v v24, (a0), a1 -# CHECK-INST: vssseg2e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 3a - -vssseg2e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg2e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x38] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 38 - -vssseg2e1024.v v24, (a0), a1 -# CHECK-INST: vssseg2e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x3a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 3a - vsuxseg2ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg2ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0x24] @@ -3036,54 +1932,6 @@ vsseg3e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 42 -vsseg3e128.v v24, (a0), v0.t -# CHECK-INST: vsseg3e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 50 - -vsseg3e128.v v24, (a0) -# CHECK-INST: vsseg3e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 52 - -vsseg3e256.v v24, (a0), v0.t -# CHECK-INST: vsseg3e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 50 - -vsseg3e256.v v24, (a0) -# CHECK-INST: vsseg3e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 52 - -vsseg3e512.v v24, (a0), v0.t -# CHECK-INST: vsseg3e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 50 - -vsseg3e512.v v24, (a0) -# CHECK-INST: vsseg3e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 52 - -vsseg3e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg3e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0x50] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 50 - -vsseg3e1024.v v24, (a0) -# CHECK-INST: vsseg3e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0x52] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 52 - vssseg3e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg3e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0x48] @@ -3132,54 +1980,6 @@ vssseg3e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 4a -vssseg3e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg3e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 58 - -vssseg3e128.v v24, (a0), a1 -# CHECK-INST: vssseg3e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 5a - -vssseg3e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg3e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 58 - -vssseg3e256.v v24, (a0), a1 -# CHECK-INST: vssseg3e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 5a - -vssseg3e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg3e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 58 - -vssseg3e512.v v24, (a0), a1 -# CHECK-INST: vssseg3e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 5a - -vssseg3e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg3e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x58] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 58 - -vssseg3e1024.v v24, (a0), a1 -# CHECK-INST: vssseg3e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x5a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 5a - vsuxseg3ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg3ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0x44] @@ -3324,54 +2124,6 @@ vsseg4e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 62 -vsseg4e128.v v24, (a0), v0.t -# CHECK-INST: vsseg4e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 70 - -vsseg4e128.v v24, (a0) -# CHECK-INST: vsseg4e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 72 - -vsseg4e256.v v24, (a0), v0.t -# CHECK-INST: vsseg4e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 70 - -vsseg4e256.v v24, (a0) -# CHECK-INST: vsseg4e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 72 - -vsseg4e512.v v24, (a0), v0.t -# CHECK-INST: vsseg4e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 70 - -vsseg4e512.v v24, (a0) -# CHECK-INST: vsseg4e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 72 - -vsseg4e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg4e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0x70] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 70 - -vsseg4e1024.v v24, (a0) -# CHECK-INST: vsseg4e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0x72] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 72 - vssseg4e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg4e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0x68] @@ -3420,54 +2172,6 @@ vssseg4e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 6a -vssseg4e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg4e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 78 - -vssseg4e128.v v24, (a0), a1 -# CHECK-INST: vssseg4e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 7a - -vssseg4e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg4e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 78 - -vssseg4e256.v v24, (a0), a1 -# CHECK-INST: vssseg4e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 7a - -vssseg4e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg4e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 78 - -vssseg4e512.v v24, (a0), a1 -# CHECK-INST: vssseg4e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 7a - -vssseg4e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg4e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x78] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 78 - -vssseg4e1024.v v24, (a0), a1 -# CHECK-INST: vssseg4e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x7a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 7a - vsuxseg4ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg4ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0x64] @@ -3612,54 +2316,6 @@ vsseg5e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 82 -vsseg5e128.v v24, (a0), v0.t -# CHECK-INST: vsseg5e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 90 - -vsseg5e128.v v24, (a0) -# CHECK-INST: vsseg5e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 92 - -vsseg5e256.v v24, (a0), v0.t -# CHECK-INST: vsseg5e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 90 - -vsseg5e256.v v24, (a0) -# CHECK-INST: vsseg5e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 92 - -vsseg5e512.v v24, (a0), v0.t -# CHECK-INST: vsseg5e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 90 - -vsseg5e512.v v24, (a0) -# CHECK-INST: vsseg5e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 92 - -vsseg5e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg5e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0x90] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 90 - -vsseg5e1024.v v24, (a0) -# CHECK-INST: vsseg5e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0x92] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 92 - vssseg5e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg5e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0x88] @@ -3708,54 +2364,6 @@ vssseg5e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 8a -vssseg5e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg5e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 98 - -vssseg5e128.v v24, (a0), a1 -# CHECK-INST: vssseg5e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 9a - -vssseg5e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg5e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 98 - -vssseg5e256.v v24, (a0), a1 -# CHECK-INST: vssseg5e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 9a - -vssseg5e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg5e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 98 - -vssseg5e512.v v24, (a0), a1 -# CHECK-INST: vssseg5e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 9a - -vssseg5e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg5e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x98] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 98 - -vssseg5e1024.v v24, (a0), a1 -# CHECK-INST: vssseg5e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0x9a] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 9a - vsuxseg5ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg5ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0x84] @@ -3900,54 +2508,6 @@ vsseg6e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 a2 -vsseg6e128.v v24, (a0), v0.t -# CHECK-INST: vsseg6e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 b0 - -vsseg6e128.v v24, (a0) -# CHECK-INST: vsseg6e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 b2 - -vsseg6e256.v v24, (a0), v0.t -# CHECK-INST: vsseg6e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 b0 - -vsseg6e256.v v24, (a0) -# CHECK-INST: vsseg6e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 b2 - -vsseg6e512.v v24, (a0), v0.t -# CHECK-INST: vsseg6e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 b0 - -vsseg6e512.v v24, (a0) -# CHECK-INST: vsseg6e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 b2 - -vsseg6e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg6e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0xb0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 b0 - -vsseg6e1024.v v24, (a0) -# CHECK-INST: vsseg6e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0xb2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 b2 - vssseg6e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg6e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0xa8] @@ -3996,54 +2556,6 @@ vssseg6e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 aa -vssseg6e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg6e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 b8 - -vssseg6e128.v v24, (a0), a1 -# CHECK-INST: vssseg6e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 ba - -vssseg6e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg6e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 b8 - -vssseg6e256.v v24, (a0), a1 -# CHECK-INST: vssseg6e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 ba - -vssseg6e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg6e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 b8 - -vssseg6e512.v v24, (a0), a1 -# CHECK-INST: vssseg6e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 ba - -vssseg6e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg6e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xb8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 b8 - -vssseg6e1024.v v24, (a0), a1 -# CHECK-INST: vssseg6e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xba] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 ba - vsuxseg6ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg6ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0xa4] @@ -4188,54 +2700,6 @@ vsseg7e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 c2 -vsseg7e128.v v24, (a0), v0.t -# CHECK-INST: vsseg7e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 d0 - -vsseg7e128.v v24, (a0) -# CHECK-INST: vsseg7e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 d2 - -vsseg7e256.v v24, (a0), v0.t -# CHECK-INST: vsseg7e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 d0 - -vsseg7e256.v v24, (a0) -# CHECK-INST: vsseg7e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 d2 - -vsseg7e512.v v24, (a0), v0.t -# CHECK-INST: vsseg7e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 d0 - -vsseg7e512.v v24, (a0) -# CHECK-INST: vsseg7e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 d2 - -vsseg7e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg7e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0xd0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 d0 - -vsseg7e1024.v v24, (a0) -# CHECK-INST: vsseg7e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0xd2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 d2 - vssseg7e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg7e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0xc8] @@ -4284,54 +2748,6 @@ vssseg7e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 ca -vssseg7e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg7e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 d8 - -vssseg7e128.v v24, (a0), a1 -# CHECK-INST: vssseg7e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 da - -vssseg7e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg7e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 d8 - -vssseg7e256.v v24, (a0), a1 -# CHECK-INST: vssseg7e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 da - -vssseg7e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg7e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 d8 - -vssseg7e512.v v24, (a0), a1 -# CHECK-INST: vssseg7e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 da - -vssseg7e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg7e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xd8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 d8 - -vssseg7e1024.v v24, (a0), a1 -# CHECK-INST: vssseg7e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xda] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 da - vsuxseg7ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg7ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0xc4] @@ -4476,54 +2892,6 @@ vsseg8e64.v v24, (a0) # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c 05 e2 -vsseg8e128.v v24, (a0), v0.t -# CHECK-INST: vsseg8e128.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x0c,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 f0 - -vsseg8e128.v v24, (a0) -# CHECK-INST: vsseg8e128.v v24, (a0) -# CHECK-ENCODING: [0x27,0x0c,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c 05 f2 - -vsseg8e256.v v24, (a0), v0.t -# CHECK-INST: vsseg8e256.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x5c,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 f0 - -vsseg8e256.v v24, (a0) -# CHECK-INST: vsseg8e256.v v24, (a0) -# CHECK-ENCODING: [0x27,0x5c,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c 05 f2 - -vsseg8e512.v v24, (a0), v0.t -# CHECK-INST: vsseg8e512.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x6c,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 f0 - -vsseg8e512.v v24, (a0) -# CHECK-INST: vsseg8e512.v v24, (a0) -# CHECK-ENCODING: [0x27,0x6c,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c 05 f2 - -vsseg8e1024.v v24, (a0), v0.t -# CHECK-INST: vsseg8e1024.v v24, (a0), v0.t -# CHECK-ENCODING: [0x27,0x7c,0x05,0xf0] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 f0 - -vsseg8e1024.v v24, (a0) -# CHECK-INST: vsseg8e1024.v v24, (a0) -# CHECK-ENCODING: [0x27,0x7c,0x05,0xf2] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c 05 f2 - vssseg8e8.v v24, (a0), a1, v0.t # CHECK-INST: vssseg8e8.v v24, (a0), a1, v0.t # CHECK-ENCODING: [0x27,0x0c,0xb5,0xe8] @@ -4572,54 +2940,6 @@ vssseg8e64.v v24, (a0), a1 # CHECK-ERROR: instruction requires the following: 'Zvlsseg' # CHECK-UNKNOWN: 27 7c b5 ea -vssseg8e128.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg8e128.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 f8 - -vssseg8e128.v v24, (a0), a1 -# CHECK-INST: vssseg8e128.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x0c,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 0c b5 fa - -vssseg8e256.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg8e256.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 f8 - -vssseg8e256.v v24, (a0), a1 -# CHECK-INST: vssseg8e256.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x5c,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 5c b5 fa - -vssseg8e512.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg8e512.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 f8 - -vssseg8e512.v v24, (a0), a1 -# CHECK-INST: vssseg8e512.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x6c,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 6c b5 fa - -vssseg8e1024.v v24, (a0), a1, v0.t -# CHECK-INST: vssseg8e1024.v v24, (a0), a1, v0.t -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xf8] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 f8 - -vssseg8e1024.v v24, (a0), a1 -# CHECK-INST: vssseg8e1024.v v24, (a0), a1 -# CHECK-ENCODING: [0x27,0x7c,0xb5,0xfa] -# CHECK-ERROR: instruction requires the following: 'Zvlsseg' -# CHECK-UNKNOWN: 27 7c b5 fa - vsuxseg8ei8.v v24, (a0), v4, v0.t # CHECK-INST: vsuxseg8ei8.v v24, (a0), v4, v0.t # CHECK-ENCODING: [0x27,0x0c,0x45,0xe4]