diff options
| author | Min-Yih Hsu <min.hsu@sifive.com> | 2025-09-26 11:08:51 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-26 11:08:51 -0700 |
| commit | 24bc1a60978cf6871d3381dcf92211509f658c76 (patch) | |
| tree | ded1ed827097dc2eab5e75352a5c12aa83ef8d91 | |
| parent | e9185af70a4898d050899aa83aa350e570459128 (diff) | |
[RISCV] Update SiFive7's scheduling models with their optimizations on permutation instructions (#160763)
In newer SiFIve7 cores like X390, permutation instructions like
vrgather.vv operates on LMUL smaller than a single DLEN could yield a
constant cycle. For slightly larger data that fits in the constraint of
`log2(SEW/8) + log2(LMUL) <= log2(DLEN / 32)`, these instructions can
also yield cycles that are proportional to the quadratic of LMUL, rather
than being proportional to VL.
Co-authored-by: Michael Maitland <michaeltmaitland@gmail.com>
| -rw-r--r-- | llvm/lib/Target/RISCV/RISCVSchedSiFive7.td | 104 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-mca/RISCV/SiFive7/vgather-vcompress.s | 314 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-mca/RISCV/SiFiveX390/vgather-vcompress.s | 268 |
3 files changed, 542 insertions, 144 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td index 2e14ae3af957..3f2e7dbd07a6 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td +++ b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td @@ -169,6 +169,64 @@ class SiFive7GetOrderedReductionCycles<string mx, int sew, int VLEN> { int c = !mul(6, VLUpperBound); } +class isSingleDLEN<string mx> { + bit c = !or(!eq(mx, "MF2"), !or(!eq(mx, "MF4"), !eq(mx, "MF8"))); +} + +class SiFive7GetCyclesVRGatherVV<string mx, int sew, int VLEN, + bit hasFastGather> { + // if (hasFastGather && isSingleDLEN(mx)) + // c = 1; + // else if (hasFastGather && (log2(SEW/8) + log2(LMUL) <= log2(DLEN / 32)) + // c = LMUL * 2 * ceil(vl * SEW / DLEN); + // else + // c = vl; + + defvar y = !logtwo(!div(sew, 8)); + defvar x = !cond( + !eq(mx, "M1") : y, + !eq(mx, "M2") : !add(y, 1), + !eq(mx, "M4") : !add(y, 2), + !eq(mx, "M8") : !add(y, 3), + // Give isSingleDLEN(mx) cases a garbage value to avoid build failures, + // even though x will go unused. + true : 1 + ); + // LMUL * 2 * ceil(vl * SEW / DLEN) = LMUL * 2 * ceil(2 * LMUL) + defvar z = !cond( + !eq(mx, "M1") : 4, + !eq(mx, "M2") : 16, + !eq(mx, "M4") : 64, + !eq(mx, "M8") : 256, + // Give isSingleDLEN(mx) cases a garbage value to avoid build failures, + // even though z will go unused. + true : 1 + ); + defvar VLUpperBound = SiFive7GetCyclesOnePerElement<mx, sew, VLEN>.c; + bit IsSingleDLEN = isSingleDLEN<mx>.c; + + int c = !cond( + !and(hasFastGather, IsSingleDLEN) : 1, + !and(hasFastGather, !le(x, !logtwo(!div(VLEN, 64)))) : z, + true: VLUpperBound + ); +} + +class SiFive7GetCyclesVCompress<string mx, int sew, int VLEN, + bit hasFastGather> { + + // if (hasFastGather && isSingleDLEN(mx)) + // c = 1 + // else + // c = vl + defvar VLUpperBound = SiFive7GetCyclesOnePerElement<mx, sew, VLEN>.c; + bit IsSingleDLEN = isSingleDLEN<mx>.c; + + int c = !if(!and(hasFastGather, IsSingleDLEN), + 1, + VLUpperBound); +} + class SiFive7GetSiFiveVFNRClipCycles<string mx, int VLEN> { int latency = !cond( !eq(mx, "MF8"): 7, @@ -259,7 +317,8 @@ multiclass SiFive7WriteResBase<int VLEN, ProcResourceKind VL, ProcResourceKind VS, ProcResourceKind VCQ, SiFive7FPLatencies fpLatencies, - bit isFP64Throttled = false> { + bit isFP64Throttled = false, + bit hasFastGather = false> { // Branching let Latency = 3 in { @@ -976,13 +1035,33 @@ multiclass SiFive7WriteResBase<int VLEN, foreach mx = SchedMxList in { foreach sew = SchedSEWSet<mx>.val in { - defvar Cycles = SiFive7GetCyclesOnePerElement<mx, sew, VLEN>.c; defvar IsWorstCase = SiFive7IsWorstCaseMXSEW<mx, sew, SchedMxList>.c; - let Latency = !add(Cycles, 3), AcquireAtCycles = [0, 1], ReleaseAtCycles = [1, !add(1, Cycles)] in { - defm : LMULSEWWriteResMXSEW<"WriteVRGatherVV", [VCQ, VA1], mx, sew, IsWorstCase>; - defm : LMULSEWWriteResMXSEW<"WriteVRGatherEI16VV", [VCQ, VA1], mx, sew, IsWorstCase>; - defm : LMULSEWWriteResMXSEW<"WriteVCompressV", [VCQ, VA1], mx, sew, IsWorstCase>; - } + defvar IsSingleDLEN = isSingleDLEN<mx>.c; + + defvar GatherVVCycles = + SiFive7GetCyclesVRGatherVV<mx, sew, VLEN, hasFastGather>.c; + // 7 + DLEN/ SEW + defvar SlowGatherLat = !add(7, !div(!div(VLEN, 2), sew)); + defvar GatherVVLat = !if(hasFastGather, + !add(3, GatherVVCycles), SlowGatherLat); + + let Latency = GatherVVLat, AcquireAtCycles = [0, 1], + ReleaseAtCycles = [1, !add(5, GatherVVCycles)] in + defm "" : LMULSEWWriteResMXSEW<"WriteVRGatherVV", [VCQ, VA1], mx, sew, IsWorstCase>; + + // VRGatherEI16VV is not improved by fastGather. + defvar GatherEI16VVCycles = SiFive7GetCyclesOnePerElement<mx, sew, VLEN>.c; + let Latency = SlowGatherLat, AcquireAtCycles = [0, 1], + ReleaseAtCycles = [1, !add(5, GatherEI16VVCycles)] in + defm "" : LMULSEWWriteResMXSEW<"WriteVRGatherEI16VV", [VCQ, VA1], mx, sew, IsWorstCase>; + + defvar CompressCycles = SiFive7GetCyclesVCompress<mx, sew, VLEN, hasFastGather>.c; + defvar CompressLat = !if(!and(hasFastGather, IsSingleDLEN), + 4, + !add(7, CompressCycles)); // 7 + VL + let Latency = CompressLat, AcquireAtCycles = [0, 1], + ReleaseAtCycles = [1, !add(8, CompressCycles)] in + defm "" : LMULSEWWriteResMXSEW<"WriteVCompressV", [VCQ, VA1], mx, sew, IsWorstCase>; } } @@ -1408,7 +1487,8 @@ multiclass SiFive7ReadAdvance { /// eventually be supplied by different SchedMachineModels. multiclass SiFive7SchedResources<int vlen, bit extraVALU, SiFive7FPLatencies fpLatencies, - bit isFP64Throttled> { + bit isFP64Throttled, + bit hasFastGather> { defm SiFive7 : SiFive7ProcResources<extraVALU>; // Pull out defs from SiFive7ProcResources so we can refer to them by name. @@ -1435,7 +1515,8 @@ multiclass SiFive7SchedResources<int vlen, bit extraVALU, : SiFive7WriteResBase<vlen, SiFive7PipeA, SiFive7PipeB, SiFive7PipeAB, SiFive7IDiv, SiFive7FDiv, SiFive7VA1, SiFive7VA1OrVA2, SiFive7VL, SiFive7VS, - SiFive7VCQ, fpLatencies, isFP64Throttled>; + SiFive7VCQ, fpLatencies, isFP64Throttled, + hasFastGather>; //===----------------------------------------------------------------------===// // Bypass and advance @@ -1468,6 +1549,7 @@ class SiFive7SchedMachineModel<int vlen> : SchedMachineModel { SiFive7FPLatencies FPLatencies; bit IsFP64Throttled = false; + bit HasFastGather = false; string Name = !subst("Model", "", !subst("SiFive7", "", NAME)); } @@ -1494,6 +1576,7 @@ def SiFive7VLEN1024X300Model : SiFive7SchedMachineModel<1024> { let HasExtraVALU = true; let FPLatencies = SiFive7LowFPLatencies; let IsFP64Throttled = true; + let HasFastGather = true; } /// Binding models to their scheduling resources. @@ -1501,7 +1584,8 @@ foreach model = [SiFive7VLEN512Model, SiFive7VLEN1024X300Model] in { let SchedModel = model in defm model.Name : SiFive7SchedResources<model.VLEN, model.HasExtraVALU, model.FPLatencies, - model.IsFP64Throttled>; + model.IsFP64Throttled, + model.HasFastGather>; } // Some model name aliases. diff --git a/llvm/test/tools/llvm-mca/RISCV/SiFive7/vgather-vcompress.s b/llvm/test/tools/llvm-mca/RISCV/SiFive7/vgather-vcompress.s new file mode 100644 index 000000000000..4ec1683a886d --- /dev/null +++ b/llvm/test/tools/llvm-mca/RISCV/SiFive7/vgather-vcompress.s @@ -0,0 +1,314 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-x280 -instruction-tables=full -iterations=1 < %s | FileCheck %s + +# The legal (SEW, LMUL) pairs are: +# (e8, mf8) (e8, mf4) (e8, mf2) (e8, m1) (e8, m2) (e8, m4) (e8, m8) +# (e16, mf4) (e16, mf2) (e16, m1) (e16, m2) (e16, m4) (e16, m8) +# (e32, mf2) (e32, m1) (e32, m2) (e32, m4) (e32, m8) +# (e64, m1) (e64, m2) (e64, m4) (e64, m8) + +vsetvli zero, zero, e8, mf8, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, mf4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, mf2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, m1, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, m2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, m4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e8, m8, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, mf4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, mf2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, m1, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, m2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, m4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e16, m8, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e32, mf2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e32, m1, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e32, m2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e32, m4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e32, m8, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e64, m1, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e64, m2, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e64, m4, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 +vsetvli zero, zero, e64, m8, tu, mu +vrgather.vv v8, v16, v24 +vrgatherei16.vv v8, v16, v24 +vcompress.vm v8, v16, v24 + +# CHECK: Resources: +# CHECK-NEXT: [0] - VLEN512SiFive7FDiv:1 +# CHECK-NEXT: [1] - VLEN512SiFive7IDiv:1 +# CHECK-NEXT: [2] - VLEN512SiFive7PipeA:1 +# CHECK-NEXT: [3] - VLEN512SiFive7PipeAB:2 VLEN512SiFive7PipeA, VLEN512SiFive7PipeB +# CHECK-NEXT: [4] - VLEN512SiFive7PipeB:1 +# CHECK-NEXT: [5] - VLEN512SiFive7VA:1 +# CHECK-NEXT: [6] - VLEN512SiFive7VCQ:1 +# CHECK-NEXT: [7] - VLEN512SiFive7VL:1 +# CHECK-NEXT: [8] - VLEN512SiFive7VS:1 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) +# CHECK-NEXT: [7]: Bypass Latency +# CHECK-NEXT: [8]: Resources (<Name> | <Name>[<ReleaseAtCycle>] | <Name>[<AcquireAtCycle>,<ReleaseAtCycle]) +# CHECK-NEXT: [9]: LLVM Opcode Name + +# CHECK: [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf8, tu, mu +# CHECK-NEXT: 1 39 12.00 39 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 12.00 39 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 15 15.00 15 VLEN512SiFive7VA[1,16],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf4, tu, mu +# CHECK-NEXT: 1 39 20.00 39 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 20.00 39 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 23 23.00 23 VLEN512SiFive7VA[1,24],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf2, tu, mu +# CHECK-NEXT: 1 39 36.00 39 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 36.00 39 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN512SiFive7VA[1,40],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m1, tu, mu +# CHECK-NEXT: 1 39 68.00 39 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 68.00 39 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN512SiFive7VA[1,72],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m2, tu, mu +# CHECK-NEXT: 1 39 132.00 39 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 132.00 39 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN512SiFive7VA[1,136],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m4, tu, mu +# CHECK-NEXT: 1 39 260.00 39 VLEN512SiFive7VA[1,261],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 260.00 39 VLEN512SiFive7VA[1,261],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 263 263.00 263 VLEN512SiFive7VA[1,264],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m8, tu, mu +# CHECK-NEXT: 1 39 516.00 39 VLEN512SiFive7VA[1,517],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 516.00 39 VLEN512SiFive7VA[1,517],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 519 519.00 519 VLEN512SiFive7VA[1,520],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, mf4, tu, mu +# CHECK-NEXT: 1 23 12.00 23 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 12.00 23 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 15 15.00 15 VLEN512SiFive7VA[1,16],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, mf2, tu, mu +# CHECK-NEXT: 1 23 20.00 23 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 20.00 23 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 23 23.00 23 VLEN512SiFive7VA[1,24],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m1, tu, mu +# CHECK-NEXT: 1 23 36.00 23 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 36.00 23 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN512SiFive7VA[1,40],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m2, tu, mu +# CHECK-NEXT: 1 23 68.00 23 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 68.00 23 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN512SiFive7VA[1,72],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m4, tu, mu +# CHECK-NEXT: 1 23 132.00 23 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 132.00 23 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN512SiFive7VA[1,136],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m8, tu, mu +# CHECK-NEXT: 1 23 260.00 23 VLEN512SiFive7VA[1,261],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 260.00 23 VLEN512SiFive7VA[1,261],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 263 263.00 263 VLEN512SiFive7VA[1,264],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, mf2, tu, mu +# CHECK-NEXT: 1 15 12.00 15 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 12.00 15 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 15 15.00 15 VLEN512SiFive7VA[1,16],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m1, tu, mu +# CHECK-NEXT: 1 15 20.00 15 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 20.00 15 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 23 23.00 23 VLEN512SiFive7VA[1,24],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m2, tu, mu +# CHECK-NEXT: 1 15 36.00 15 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 36.00 15 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN512SiFive7VA[1,40],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: 1 15 68.00 15 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 68.00 15 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN512SiFive7VA[1,72],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m8, tu, mu +# CHECK-NEXT: 1 15 132.00 15 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 132.00 15 VLEN512SiFive7VA[1,133],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN512SiFive7VA[1,136],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m1, tu, mu +# CHECK-NEXT: 1 11 12.00 11 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 11 12.00 11 VLEN512SiFive7VA[1,13],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 15 15.00 15 VLEN512SiFive7VA[1,16],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m2, tu, mu +# CHECK-NEXT: 1 11 20.00 11 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 11 20.00 11 VLEN512SiFive7VA[1,21],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 23 23.00 23 VLEN512SiFive7VA[1,24],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m4, tu, mu +# CHECK-NEXT: 1 11 36.00 11 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 11 36.00 11 VLEN512SiFive7VA[1,37],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN512SiFive7VA[1,40],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 3 1.00 U 1 VLEN512SiFive7PipeA,VLEN512SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m8, tu, mu +# CHECK-NEXT: 1 11 68.00 11 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 11 68.00 11 VLEN512SiFive7VA[1,69],VLEN512SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN512SiFive7VA[1,72],VLEN512SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 + +# CHECK: Resources: +# CHECK-NEXT: [0] - VLEN512SiFive7FDiv +# CHECK-NEXT: [1] - VLEN512SiFive7IDiv +# CHECK-NEXT: [2] - VLEN512SiFive7PipeA +# CHECK-NEXT: [3] - VLEN512SiFive7PipeB +# CHECK-NEXT: [4] - VLEN512SiFive7VA +# CHECK-NEXT: [5] - VLEN512SiFive7VCQ +# CHECK-NEXT: [6] - VLEN512SiFive7VL +# CHECK-NEXT: [7] - VLEN512SiFive7VS + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] +# CHECK-NEXT: - - 22.00 - 6060.00 66.00 - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, mf8, tu, mu +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 16.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, mf4, tu, mu +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 24.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, mf2, tu, mu +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, m1, tu, mu +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, m2, tu, mu +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, m4, tu, mu +# CHECK-NEXT: - - - - 261.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 264.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e8, m8, tu, mu +# CHECK-NEXT: - - - - 517.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 517.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 520.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, mf4, tu, mu +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 16.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, mf2, tu, mu +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 24.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, m1, tu, mu +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, m2, tu, mu +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, m4, tu, mu +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e16, m8, tu, mu +# CHECK-NEXT: - - - - 261.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 264.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, mf2, tu, mu +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 16.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, m1, tu, mu +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 24.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, m2, tu, mu +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, m4, tu, mu +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, m8, tu, mu +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e64, m1, tu, mu +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 13.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 16.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e64, m2, tu, mu +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 24.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e64, m4, tu, mu +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e64, m8, tu, mu +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 1.00 - - vcompress.vm v8, v16, v24 diff --git a/llvm/test/tools/llvm-mca/RISCV/SiFiveX390/vgather-vcompress.s b/llvm/test/tools/llvm-mca/RISCV/SiFiveX390/vgather-vcompress.s index d3f129a19b01..5ebed106132a 100644 --- a/llvm/test/tools/llvm-mca/RISCV/SiFiveX390/vgather-vcompress.s +++ b/llvm/test/tools/llvm-mca/RISCV/SiFiveX390/vgather-vcompress.s @@ -1,7 +1,7 @@ # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py # RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-x390 -instruction-tables=full -iterations=1 < %s | FileCheck %s -# The legal (SEW, LMUL) pairs on sifive-x280 are: +# The legal (SEW, LMUL) pairs are: # (e8, mf8) (e8, mf4) (e8, mf2) (e8, m1) (e8, m2) (e8, m4) (e8, m8) # (e16, mf4) (e16, mf2) (e16, m1) (e16, m2) (e16, m4) (e16, m8) # (e32, mf2) (e32, m1) (e32, m2) (e32, m4) (e32, m8) @@ -122,93 +122,93 @@ vcompress.vm v8, v16, v24 # CHECK: [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf8, tu, mu -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 20.00 71 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf4, tu, mu -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 36.00 71 VLEN1024X300SiFive7VA1[1,37],VLEN1024X300SiFive7VA1OrVA2[1,37],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, mf2, tu, mu -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 68.00 71 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m1, tu, mu -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 7 8.00 7 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 132.00 71 VLEN1024X300SiFive7VA1[1,133],VLEN1024X300SiFive7VA1OrVA2[1,133],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN1024X300SiFive7VA1[1,136],VLEN1024X300SiFive7VA1OrVA2[1,136],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 19 20.00 19 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 260.00 71 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 263 263.00 263 VLEN1024X300SiFive7VA1[1,264],VLEN1024X300SiFive7VA1OrVA2[1,264],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 67 68.00 67 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 516.00 71 VLEN1024X300SiFive7VA1[1,517],VLEN1024X300SiFive7VA1OrVA2[1,517],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 519 519.00 519 VLEN1024X300SiFive7VA1[1,520],VLEN1024X300SiFive7VA1OrVA2[1,520],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e8, m8, tu, mu -# CHECK-NEXT: 1 1027 1024.00 1027 VLEN1024X300SiFive7VA1[1,1025],VLEN1024X300SiFive7VA1OrVA2[1,1025],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 1027 1024.00 1027 VLEN1024X300SiFive7VA1[1,1025],VLEN1024X300SiFive7VA1OrVA2[1,1025],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 1027 1024.00 1027 VLEN1024X300SiFive7VA1[1,1025],VLEN1024X300SiFive7VA1OrVA2[1,1025],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 259 260.00 259 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 71 1028.00 71 VLEN1024X300SiFive7VA1[1,1029],VLEN1024X300SiFive7VA1OrVA2[1,1029],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 1031 1031.00 1031 VLEN1024X300SiFive7VA1[1,1032],VLEN1024X300SiFive7VA1OrVA2[1,1032],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 20.00 39 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 36.00 39 VLEN1024X300SiFive7VA1[1,37],VLEN1024X300SiFive7VA1OrVA2[1,37],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m1, tu, mu -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 7 8.00 7 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 68.00 39 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN1024X300SiFive7VA1[1,72],VLEN1024X300SiFive7VA1OrVA2[1,72],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 19 20.00 19 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 132.00 39 VLEN1024X300SiFive7VA1[1,133],VLEN1024X300SiFive7VA1OrVA2[1,133],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN1024X300SiFive7VA1[1,136],VLEN1024X300SiFive7VA1OrVA2[1,136],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 67 68.00 67 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 260.00 39 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 263 263.00 263 VLEN1024X300SiFive7VA1[1,264],VLEN1024X300SiFive7VA1OrVA2[1,264],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e16, m8, tu, mu -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 515 512.00 515 VLEN1024X300SiFive7VA1[1,513],VLEN1024X300SiFive7VA1OrVA2[1,513],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 259 260.00 259 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 39 516.00 39 VLEN1024X300SiFive7VA1[1,517],VLEN1024X300SiFive7VA1OrVA2[1,517],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 519 519.00 519 VLEN1024X300SiFive7VA1[1,520],VLEN1024X300SiFive7VA1OrVA2[1,520],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 4 5.00 4 VLEN1024X300SiFive7VA1[1,6],VLEN1024X300SiFive7VA1OrVA2[1,6],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 20.00 23 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 4 8.00 4 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m1, tu, mu -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 7 8.00 7 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 36.00 23 VLEN1024X300SiFive7VA1[1,37],VLEN1024X300SiFive7VA1OrVA2[1,37],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN1024X300SiFive7VA1[1,40],VLEN1024X300SiFive7VA1OrVA2[1,40],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 19 20.00 19 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 68.00 23 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN1024X300SiFive7VA1[1,72],VLEN1024X300SiFive7VA1OrVA2[1,72],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m4, tu, mu -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 67 68.00 67 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 132.00 23 VLEN1024X300SiFive7VA1[1,133],VLEN1024X300SiFive7VA1OrVA2[1,133],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN1024X300SiFive7VA1[1,136],VLEN1024X300SiFive7VA1OrVA2[1,136],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e32, m8, tu, mu -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 259 256.00 259 VLEN1024X300SiFive7VA1[1,257],VLEN1024X300SiFive7VA1OrVA2[1,257],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 259 260.00 259 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 23 260.00 23 VLEN1024X300SiFive7VA1[1,261],VLEN1024X300SiFive7VA1OrVA2[1,261],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 263 263.00 263 VLEN1024X300SiFive7VA1[1,264],VLEN1024X300SiFive7VA1OrVA2[1,264],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m1, tu, mu -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 19 16.00 19 VLEN1024X300SiFive7VA1[1,17],VLEN1024X300SiFive7VA1OrVA2[1,17],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 7 8.00 7 VLEN1024X300SiFive7VA1[1,9],VLEN1024X300SiFive7VA1OrVA2[1,9],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 20.00 15 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 23 23.00 23 VLEN1024X300SiFive7VA1[1,24],VLEN1024X300SiFive7VA1OrVA2[1,24],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m2, tu, mu -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 35 32.00 35 VLEN1024X300SiFive7VA1[1,33],VLEN1024X300SiFive7VA1OrVA2[1,33],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 19 20.00 19 VLEN1024X300SiFive7VA1[1,21],VLEN1024X300SiFive7VA1OrVA2[1,21],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 36.00 15 VLEN1024X300SiFive7VA1[1,37],VLEN1024X300SiFive7VA1OrVA2[1,37],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 39 39.00 39 VLEN1024X300SiFive7VA1[1,40],VLEN1024X300SiFive7VA1OrVA2[1,40],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m4, tu, mu -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 67 64.00 67 VLEN1024X300SiFive7VA1[1,65],VLEN1024X300SiFive7VA1OrVA2[1,65],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 67 68.00 67 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 68.00 15 VLEN1024X300SiFive7VA1[1,69],VLEN1024X300SiFive7VA1OrVA2[1,69],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 71 71.00 71 VLEN1024X300SiFive7VA1[1,72],VLEN1024X300SiFive7VA1OrVA2[1,72],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK-NEXT: 1 3 1.00 U 1 VLEN1024X300SiFive7PipeA,VLEN1024X300SiFive7PipeAB VSETVLI vsetvli zero, zero, e64, m8, tu, mu -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: 1 131 128.00 131 VLEN1024X300SiFive7VA1[1,129],VLEN1024X300SiFive7VA1OrVA2[1,129],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 +# CHECK-NEXT: 1 131 132.00 131 VLEN1024X300SiFive7VA1[1,133],VLEN1024X300SiFive7VA1OrVA2[1,133],VLEN1024X300SiFive7VCQ VRGATHER_VV vrgather.vv v8, v16, v24 +# CHECK-NEXT: 1 15 132.00 15 VLEN1024X300SiFive7VA1[1,133],VLEN1024X300SiFive7VA1OrVA2[1,133],VLEN1024X300SiFive7VCQ VRGATHEREI16_VV vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: 1 135 135.00 135 VLEN1024X300SiFive7VA1[1,136],VLEN1024X300SiFive7VA1OrVA2[1,136],VLEN1024X300SiFive7VCQ VCOMPRESS_VM vcompress.vm v8, v16, v24 # CHECK: Resources: # CHECK-NEXT: [0] - VLEN1024X300SiFive7FDiv @@ -223,95 +223,95 @@ vcompress.vm v8, v16, v24 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] -# CHECK-NEXT: - - 22.00 - 11394.00 - 66.00 - - +# CHECK-NEXT: - - 22.00 - 9016.00 - 66.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] Instructions: # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, mf8, tu, mu -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, mf4, tu, mu -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, mf2, tu, mu -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, m1, tu, mu -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, m2, tu, mu -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 264.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, m4, tu, mu -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 517.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 520.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e8, m8, tu, mu -# CHECK-NEXT: - - - - 1025.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 1025.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 1025.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 1029.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 1032.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, mf4, tu, mu -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, mf2, tu, mu -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, m1, tu, mu -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, m2, tu, mu -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, m4, tu, mu -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 264.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e16, m8, tu, mu -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 513.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 517.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 520.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e32, mf2, tu, mu -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 6.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e32, m1, tu, mu -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e32, m2, tu, mu -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e32, m4, tu, mu -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e32, m8, tu, mu -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 257.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 261.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 264.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e64, m1, tu, mu -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 17.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 9.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 24.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e64, m2, tu, mu -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 33.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 21.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 37.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 40.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e64, m4, tu, mu -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 65.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 69.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 72.00 - 1.00 - - vcompress.vm v8, v16, v24 # CHECK-NEXT: - - 1.00 - - - - - - vsetvli zero, zero, e64, m8, tu, mu -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgather.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 -# CHECK-NEXT: - - - - 129.00 - 1.00 - - vcompress.vm v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 - 1.00 - - vrgather.vv v8, v16, v24 +# CHECK-NEXT: - - - - 133.00 - 1.00 - - vrgatherei16.vv v8, v16, v24 +# CHECK-NEXT: - - - - 136.00 - 1.00 - - vcompress.vm v8, v16, v24 |
