From dc206615d6753870b2e123debf3c713d70cf672b Mon Sep 17 00:00:00 2001 From: Min-Yih Hsu Date: Wed, 26 Feb 2025 14:55:13 -0800 Subject: [PATCH 1/3] [RISCV][MCA] Pick the correct VPseudo sched class for indexed memory operations --- .../Target/RISCV/MCA/RISCVCustomBehaviour.cpp | 72 ++++- llvm/lib/Target/RISCV/RISCVInstrInfoV.td | 24 ++ .../llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s | 270 +++++++++--------- .../llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s | 270 +++++++++--------- 4 files changed, 359 insertions(+), 277 deletions(-) diff --git a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp index 289f9aa51195d..827ad4e6ec869 100644 --- a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp +++ b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp @@ -14,12 +14,33 @@ #include "RISCVCustomBehaviour.h" #include "MCTargetDesc/RISCVMCTargetDesc.h" #include "RISCV.h" +#include "RISCVISelDAGToDAG.h" #include "TargetInfo/RISCVTargetInfo.h" #include "llvm/MC/TargetRegistry.h" #include "llvm/Support/Debug.h" #define DEBUG_TYPE "llvm-mca-riscv-custombehaviour" +namespace llvm::RISCV::mca { +struct VXMemOpInfo { + unsigned Log2IdxEEW : 3; + unsigned IsOrdered : 1; + unsigned IsStore : 1; + unsigned NF : 4; + unsigned BaseInstr; +}; + +#define GET_RISCVBaseVXMemOpTable_DECL +#define GET_RISCVBaseVXMemOpTable_IMPL +// We need to include the implementation code here because RISCVCustomBehavior +// is not linked against RISCVCodeGen. +#define GET_RISCVVLXSEGTable_IMPL +#define GET_RISCVVSXSEGTable_IMPL +#define GET_RISCVVLXTable_IMPL +#define GET_RISCVVSXTable_IMPL +#include "RISCVGenSearchableTables.inc" +} // namespace llvm::RISCV::mca + namespace llvm { namespace mca { @@ -247,21 +268,58 @@ unsigned RISCVInstrumentManager::getSchedClassID( // and SEW, or (Opcode, LMUL, 0) if does not depend on SEW. uint8_t SEW = SI ? SI->getSEW() : 0; - const RISCVVInversePseudosTable::PseudoInfo *RVV = nullptr; - if (opcodeHasEEWAndEMULInfo(Opcode)) { + std::optional VPOpcode; + if (const auto *VXMO = RISCV::mca::getVXMemOpInfo(Opcode)) { + // Calculate the expected index EMUL. For indexed operations, + // the DataEEW and DataEMUL are equal to SEW and LMUL, respectively. + unsigned IndexEMUL = ((1 << VXMO->Log2IdxEEW) * LMUL) / SEW; + + if (!VXMO->NF) { + // Indexed Load / Store. + if (VXMO->IsStore) { + if (const auto *VXP = RISCV::mca::getVSXPseudo( + /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, + IndexEMUL)) + VPOpcode = VXP->Pseudo; + } else { + if (const auto *VXP = RISCV::mca::getVLXPseudo( + /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, + IndexEMUL)) + VPOpcode = VXP->Pseudo; + } + } else { + // Segmented Indexed Load / Store. + if (VXMO->IsStore) { + if (const auto *VXP = RISCV::mca::getVSXSEGPseudo( + VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, + IndexEMUL)) + VPOpcode = VXP->Pseudo; + } else { + if (const auto *VXP = RISCV::mca::getVLXSEGPseudo( + VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, + IndexEMUL)) + VPOpcode = VXP->Pseudo; + } + } + } else if (opcodeHasEEWAndEMULInfo(Opcode)) { RISCVVType::VLMUL VLMUL = static_cast(LMUL); auto [EEW, EMUL] = getEEWAndEMUL(Opcode, VLMUL, SEW); - RVV = RISCVVInversePseudosTable::getBaseInfo(Opcode, EMUL, EEW); + if (const auto *RVV = + RISCVVInversePseudosTable::getBaseInfo(Opcode, EMUL, EEW)) + VPOpcode = RVV->Pseudo; } else { // Check if it depends on LMUL and SEW - RVV = RISCVVInversePseudosTable::getBaseInfo(Opcode, LMUL, SEW); + const auto *RVV = RISCVVInversePseudosTable::getBaseInfo(Opcode, LMUL, SEW); // Check if it depends only on LMUL if (!RVV) RVV = RISCVVInversePseudosTable::getBaseInfo(Opcode, LMUL, 0); + + if (RVV) + VPOpcode = RVV->Pseudo; } // Not a RVV instr - if (!RVV) { + if (!VPOpcode) { LLVM_DEBUG( dbgs() << "RVCB: Could not find PseudoInstruction for Opcode " << MCII.getName(Opcode) @@ -277,8 +335,8 @@ unsigned RISCVInstrumentManager::getSchedClassID( << MCII.getName(Opcode) << ", LMUL=" << LI->getData() << ", SEW=" << (SI ? SI->getData() : "Unspecified") << ". Overriding original SchedClassID=" << SchedClassID - << " with " << MCII.getName(RVV->Pseudo) << '\n'); - return MCII.get(RVV->Pseudo).getSchedClass(); + << " with " << MCII.getName(*VPOpcode) << '\n'); + return MCII.get(*VPOpcode).getSchedClass(); } } // namespace mca diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td index 9bd1b0de82757..73345c92b0694 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td @@ -316,6 +316,22 @@ class VSXSEGSched: VSXSEGSched; +class RISCVVXMemOpMC E, bit Ordered, bit Store, bits<4> N = 0> { + bits<3> Log2EEW = E; + bits<1> IsOrdered = Ordered; + bits<1> IsStore = Store; + bits<4> NF = N; + Instruction BaseInstr = !cast(NAME); +} + +def RISCVBaseVXMemOpTable : GenericTable { + let FilterClass = "RISCVVXMemOpMC"; + let CppTypeName = "VXMemOpInfo"; + let Fields = ["Log2EEW", "IsOrdered", "IsStore", "NF", "BaseInstr"]; + let PrimaryKey = ["BaseInstr"]; + let PrimaryKeyName = "getVXMemOpInfo"; +} + //===----------------------------------------------------------------------===// // Instruction class templates //===----------------------------------------------------------------------===// @@ -560,16 +576,20 @@ multiclass VIndexLoadStore { def VLUXEI # eew # _V : VIndexedLoad, + RISCVVXMemOpMC, VLXSchedMC; def VLOXEI # eew # _V : VIndexedLoad, + RISCVVXMemOpMC, VLXSchedMC; def VSUXEI # eew # _V : VIndexedStore, + RISCVVXMemOpMC, VSXSchedMC; def VSOXEI # eew # _V : VIndexedStore, + RISCVVXMemOpMC, VSXSchedMC; } @@ -1760,18 +1780,22 @@ let Predicates = [HasVInstructions] in { def VLUXSEG#nf#EI#eew#_V : VIndexedSegmentLoad, + RISCVVXMemOpMC, VLXSEGSchedMC; def VLOXSEG#nf#EI#eew#_V : VIndexedSegmentLoad, + RISCVVXMemOpMC, VLXSEGSchedMC; def VSUXSEG#nf#EI#eew#_V : VIndexedSegmentStore, + RISCVVXMemOpMC, VSXSEGSchedMC; def VSOXSEG#nf#EI#eew#_V : VIndexedSegmentStore, + RISCVVXMemOpMC, VSXSEGSchedMC; } } diff --git a/llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s b/llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s index a3f14f316e874..41e9101486ead 100644 --- a/llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s +++ b/llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s @@ -1606,13 +1606,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK: Iterations: 1 # CHECK-NEXT: Instructions: 1540 -# CHECK-NEXT: Total Cycles: 28335 +# CHECK-NEXT: Total Cycles: 28599 # CHECK-NEXT: Total uOps: 1540 # CHECK: Dispatch Width: 3 # CHECK-NEXT: uOps Per Cycle: 0.05 # CHECK-NEXT: IPC: 0.05 -# CHECK-NEXT: Block RThroughput: 17896.0 +# CHECK-NEXT: Block RThroughput: 18160.0 # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -2492,27 +2492,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: 1 44 44.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 16 16.00 * vluxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2528,21 +2528,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vluxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 108 108.00 * vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 60 60.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 18 18.00 * vluxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2556,21 +2556,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vluxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vluxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2584,13 +2584,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 92 92.00 * vluxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 32 32.00 * vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 52 52.00 * vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 32 32.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 52 52.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 32 32.00 * vluxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 32 32.00 * vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2604,13 +2604,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 108 108.00 * vluxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2624,13 +2624,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 124 124.00 * vluxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 40 40.00 * vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 68 68.00 * vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 40 40.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 68 68.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 40 40.00 * vluxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 40 40.00 * vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2644,13 +2644,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 140 140.00 * vluxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2664,27 +2664,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: 1 44 44.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 16 16.00 * vloxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2700,21 +2700,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vloxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 108 108.00 * vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 60 60.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 18 18.00 * vloxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2728,21 +2728,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vloxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vloxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2756,13 +2756,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 92 92.00 * vloxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 32 32.00 * vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 52 52.00 * vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 32 32.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 52 52.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 32 32.00 * vloxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 32 32.00 * vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2776,13 +2776,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 108 108.00 * vloxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2796,13 +2796,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 124 124.00 * vloxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 40 40.00 * vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 68 68.00 * vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 40 40.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 68 68.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 40 40.00 * vloxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 40 40.00 * vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2816,13 +2816,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 140 140.00 * vloxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -3181,7 +3181,7 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: - - - - 770.00 - - - - - - 17896.00 14240.00 +# CHECK-NEXT: - - - - 770.00 - - - - - - 18160.00 14240.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: @@ -4054,27 +4054,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 140.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 16.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 16.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 16.00 - vluxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4090,21 +4090,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 60.00 - vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 60.00 - vluxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 108.00 - vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 18.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 60.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 18.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 18.00 - vluxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4118,21 +4118,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 140.00 - vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 20.00 - vluxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4146,13 +4146,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 92.00 - vluxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 32.00 - vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 22.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 52.00 - vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 32.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 52.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 32.00 - vluxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 22.00 - vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 32.00 - vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4166,13 +4166,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 108.00 - vluxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 60.00 - vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 60.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 36.00 - vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4186,13 +4186,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 124.00 - vluxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 40.00 - vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 26.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 68.00 - vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 40.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 68.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 40.00 - vluxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 26.00 - vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 40.00 - vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4206,13 +4206,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 140.00 - vluxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 76.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4226,27 +4226,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 140.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 16.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 16.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 16.00 - vloxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4262,21 +4262,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 60.00 - vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 60.00 - vloxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 108.00 - vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 18.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 60.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 18.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 18.00 - vloxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4290,21 +4290,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 140.00 - vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 20.00 - vloxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4318,13 +4318,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 92.00 - vloxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 32.00 - vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 22.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 52.00 - vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 32.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 52.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 32.00 - vloxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 22.00 - vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 32.00 - vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4338,13 +4338,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 108.00 - vloxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 60.00 - vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 60.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 24.00 - vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 36.00 - vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4358,13 +4358,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 124.00 - vloxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 40.00 - vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 26.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 68.00 - vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 40.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 68.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 40.00 - vloxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 26.00 - vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 40.00 - vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4378,13 +4378,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 140.00 - vloxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 76.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - 28.00 - vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - 44.00 - vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu diff --git a/llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s b/llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s index d20b29a7834ba..e690dbebfb26a 100644 --- a/llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s +++ b/llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s @@ -1606,13 +1606,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK: Iterations: 1 # CHECK-NEXT: Instructions: 1540 -# CHECK-NEXT: Total Cycles: 24845 +# CHECK-NEXT: Total Cycles: 25109 # CHECK-NEXT: Total uOps: 1540 # CHECK: Dispatch Width: 4 # CHECK-NEXT: uOps Per Cycle: 0.06 # CHECK-NEXT: IPC: 0.06 -# CHECK-NEXT: Block RThroughput: 17896.0 +# CHECK-NEXT: Block RThroughput: 18160.0 # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps @@ -2492,27 +2492,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vluxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: 1 44 44.00 * vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 16 16.00 * vluxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2528,21 +2528,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vluxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 108 108.00 * vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 60 60.00 * vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 18 18.00 * vluxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2556,21 +2556,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vluxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vluxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2584,13 +2584,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 92 92.00 * vluxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 32 32.00 * vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 52 52.00 * vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 32 32.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 52 52.00 * vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 32 32.00 * vluxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 32 32.00 * vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2604,13 +2604,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 108 108.00 * vluxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vluxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2624,13 +2624,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 124 124.00 * vluxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 40 40.00 * vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 68 68.00 * vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 40 40.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 68 68.00 * vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 40 40.00 * vluxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 40 40.00 * vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2644,13 +2644,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 140 140.00 * vluxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vluxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2664,27 +2664,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 16 16.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 20 20.00 * vloxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: 1 44 44.00 * vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 16 16.00 * vloxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2700,21 +2700,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vloxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 108 108.00 * vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 60 60.00 * vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 18 18.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 24 24.00 * vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 18 18.00 * vloxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2728,21 +2728,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vloxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: 1 140 140.00 * vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 76 76.00 * vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 20 20.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 28 28.00 * vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: 1 20 20.00 * vloxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu @@ -2756,13 +2756,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 92 92.00 * vloxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 32 32.00 * vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 52 52.00 * vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 32 32.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 52 52.00 * vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 32 32.00 * vloxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 22 22.00 * vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 32 32.00 * vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2776,13 +2776,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 108 108.00 * vloxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 60 60.00 * vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 36 36.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 60 60.00 * vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 36 36.00 * vloxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 24 24.00 * vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 36 36.00 * vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2796,13 +2796,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 124 124.00 * vloxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 40 40.00 * vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 68 68.00 * vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 40 40.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 68 68.00 * vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 40 40.00 * vloxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 26 26.00 * vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 40 40.00 * vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -2816,13 +2816,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: 1 140 140.00 * vloxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 76 76.00 * vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: 1 44 44.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: 1 76 76.00 * vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 44 44.00 * vloxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: 1 28 28.00 * vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: 1 44 44.00 * vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu @@ -3184,7 +3184,7 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14] -# CHECK-NEXT: - - - - 770.00 - - - - - - - - - 17896.00 14240.00 +# CHECK-NEXT: - - - - 770.00 - - - - - - - - - 18160.00 14240.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14] Instructions: @@ -4057,27 +4057,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vluxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vluxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4093,21 +4093,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vluxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 108.00 - vluxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vluxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vluxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4121,21 +4121,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vluxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vluxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4149,13 +4149,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 92.00 - vluxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 22.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 52.00 - vluxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 52.00 - vluxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vluxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 22.00 - vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vluxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4169,13 +4169,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 108.00 - vluxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vluxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vluxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vluxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4189,13 +4189,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 124.00 - vluxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 26.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 68.00 - vluxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 68.00 - vluxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vluxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 26.00 - vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vluxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4209,13 +4209,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vluxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vluxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vluxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4229,27 +4229,27 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg2ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vloxseg2ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg2ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg2ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg2ei32.v v8, (a0), v16 -# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg2ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg2ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 16.00 - vloxseg2ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4265,21 +4265,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vloxseg3ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 108.00 - vloxseg3ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg3ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vloxseg3ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg3ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg3ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 18.00 - vloxseg3ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4293,21 +4293,21 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg4ei8.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vloxseg4ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg4ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg4ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg4ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg4ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 20.00 - vloxseg4ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu @@ -4321,13 +4321,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 92.00 - vloxseg5ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 22.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 52.00 - vloxseg5ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 52.00 - vloxseg5ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vloxseg5ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 22.00 - vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 32.00 - vloxseg5ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4341,13 +4341,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 108.00 - vloxseg6ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vloxseg6ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 60.00 - vloxseg6ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg6ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 24.00 - vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 36.00 - vloxseg6ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4361,13 +4361,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 124.00 - vloxseg7ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 26.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 68.00 - vloxseg7ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 68.00 - vloxseg7ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vloxseg7ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 26.00 - vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 40.00 - vloxseg7ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu @@ -4381,13 +4381,13 @@ vsoxseg8ei64.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e8, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 140.00 - vloxseg8ei8.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg8ei16.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 76.00 - vloxseg8ei16.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg8ei32.v v8, (a0), v16 +# CHECK-NEXT: - - - - - - - - - - - - - - 28.00 - vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu # CHECK-NEXT: - - - - - - - - - - - - - - 44.00 - vloxseg8ei32.v v8, (a0), v16 # CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu From 3b00b138c5a7ed7bf8134c0315c444a52212894a Mon Sep 17 00:00:00 2001 From: Min-Yih Hsu Date: Thu, 27 Feb 2025 09:48:24 -0800 Subject: [PATCH 2/3] Remove redundant DECL macro definition --- llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp index 827ad4e6ec869..316afc318687d 100644 --- a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp +++ b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp @@ -30,7 +30,6 @@ struct VXMemOpInfo { unsigned BaseInstr; }; -#define GET_RISCVBaseVXMemOpTable_DECL #define GET_RISCVBaseVXMemOpTable_IMPL // We need to include the implementation code here because RISCVCustomBehavior // is not linked against RISCVCodeGen. From 1cdf85fa3207cce93a680fbeb7f362b465f59689 Mon Sep 17 00:00:00 2001 From: Min-Yih Hsu Date: Fri, 28 Feb 2025 12:11:48 -0800 Subject: [PATCH 3/3] Rebase to use the new search tables --- .../Target/RISCV/MCA/RISCVCustomBehaviour.cpp | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp index 316afc318687d..5a4850f8a08a3 100644 --- a/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp +++ b/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp @@ -21,7 +21,7 @@ #define DEBUG_TYPE "llvm-mca-riscv-custombehaviour" -namespace llvm::RISCV::mca { +namespace llvm::RISCV { struct VXMemOpInfo { unsigned Log2IdxEEW : 3; unsigned IsOrdered : 1; @@ -31,14 +31,8 @@ struct VXMemOpInfo { }; #define GET_RISCVBaseVXMemOpTable_IMPL -// We need to include the implementation code here because RISCVCustomBehavior -// is not linked against RISCVCodeGen. -#define GET_RISCVVLXSEGTable_IMPL -#define GET_RISCVVSXSEGTable_IMPL -#define GET_RISCVVLXTable_IMPL -#define GET_RISCVVSXTable_IMPL #include "RISCVGenSearchableTables.inc" -} // namespace llvm::RISCV::mca +} // namespace llvm::RISCV namespace llvm { namespace mca { @@ -268,7 +262,7 @@ unsigned RISCVInstrumentManager::getSchedClassID( uint8_t SEW = SI ? SI->getSEW() : 0; std::optional VPOpcode; - if (const auto *VXMO = RISCV::mca::getVXMemOpInfo(Opcode)) { + if (const auto *VXMO = RISCV::getVXMemOpInfo(Opcode)) { // Calculate the expected index EMUL. For indexed operations, // the DataEEW and DataEMUL are equal to SEW and LMUL, respectively. unsigned IndexEMUL = ((1 << VXMO->Log2IdxEEW) * LMUL) / SEW; @@ -276,12 +270,12 @@ unsigned RISCVInstrumentManager::getSchedClassID( if (!VXMO->NF) { // Indexed Load / Store. if (VXMO->IsStore) { - if (const auto *VXP = RISCV::mca::getVSXPseudo( + if (const auto *VXP = RISCV::getVSXPseudo( /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, IndexEMUL)) VPOpcode = VXP->Pseudo; } else { - if (const auto *VXP = RISCV::mca::getVLXPseudo( + if (const auto *VXP = RISCV::getVLXPseudo( /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, IndexEMUL)) VPOpcode = VXP->Pseudo; @@ -289,14 +283,14 @@ unsigned RISCVInstrumentManager::getSchedClassID( } else { // Segmented Indexed Load / Store. if (VXMO->IsStore) { - if (const auto *VXP = RISCV::mca::getVSXSEGPseudo( - VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, - IndexEMUL)) + if (const auto *VXP = + RISCV::getVSXSEGPseudo(VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, + VXMO->Log2IdxEEW, LMUL, IndexEMUL)) VPOpcode = VXP->Pseudo; } else { - if (const auto *VXP = RISCV::mca::getVLXSEGPseudo( - VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, VXMO->Log2IdxEEW, LMUL, - IndexEMUL)) + if (const auto *VXP = + RISCV::getVLXSEGPseudo(VXMO->NF, /*Masked=*/0, VXMO->IsOrdered, + VXMO->Log2IdxEEW, LMUL, IndexEMUL)) VPOpcode = VXP->Pseudo; } }