484 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p870 -iterations=1 -instruction-tables=full < %s | FileCheck %s3 4vsetvli zero, zero, e8, mf8, tu, mu5vandn.vv v4, v8, v126vandn.vx v4, v8, a07vbrev.v v4, v88vbrev8.v v4, v89vrev8.v v4, v810vclz.v v4, v811vctz.v v4, v812vcpop.v v4, v813vrol.vv v4, v8, v1214vrol.vx v4, v8, a015vror.vv v4, v8, v1216vror.vx v4, v8, a017vror.vi v4, v8, 818 19vwsll.vv v4, v8, v1220vwsll.vx v4, v8, a021vwsll.vi v4, v8, 822 23vsetvli zero, zero, e16, mf4, tu, mu24vandn.vv v4, v8, v1225vandn.vx v4, v8, a026vbrev.v v4, v827vbrev8.v v4, v828vrev8.v v4, v829vclz.v v4, v830vctz.v v4, v831vcpop.v v4, v832vrol.vv v4, v8, v1233vrol.vx v4, v8, a034vror.vv v4, v8, v1235vror.vx v4, v8, a036vror.vi v4, v8, 837 38vwsll.vv v4, v8, v1239vwsll.vx v4, v8, a040vwsll.vi v4, v8, 841 42vsetvli zero, zero, e32, mf2, tu, mu43vandn.vv v4, v8, v1244vandn.vx v4, v8, a045vbrev.v v4, v846vbrev8.v v4, v847vrev8.v v4, v848vclz.v v4, v849vctz.v v4, v850vcpop.v v4, v851vrol.vv v4, v8, v1252vrol.vx v4, v8, a053vror.vv v4, v8, v1254vror.vx v4, v8, a055vror.vi v4, v8, 856 57vwsll.vv v4, v8, v1258vwsll.vx v4, v8, a059vwsll.vi v4, v8, 860 61vsetvli zero, zero, e32, m1, tu, mu62vandn.vv v4, v8, v1263vandn.vx v4, v8, a064vbrev.v v4, v865vbrev8.v v4, v866vrev8.v v4, v867vclz.v v4, v868vctz.v v4, v869vcpop.v v4, v870vrol.vv v4, v8, v1271vrol.vx v4, v8, a072vror.vv v4, v8, v1273vror.vx v4, v8, a074vror.vi v4, v8, 875 76vwsll.vv v4, v8, v1277vwsll.vx v4, v8, a078vwsll.vi v4, v8, 879 80vsetvli zero, zero, e32, m2, tu, mu81vandn.vv v4, v8, v1282vandn.vx v4, v8, a083vbrev.v v4, v884vbrev8.v v4, v885vrev8.v v4, v886vclz.v v4, v887vctz.v v4, v888vcpop.v v4, v889vrol.vv v4, v8, v1290vrol.vx v4, v8, a091vror.vv v4, v8, v1292vror.vx v4, v8, a093vror.vi v4, v8, 894 95vwsll.vv v4, v8, v1296vwsll.vx v4, v8, a097vwsll.vi v4, v8, 898 99vsetvli zero, zero, e32, m4, tu, mu100vandn.vv v4, v8, v12101vandn.vx v4, v8, a0102vbrev.v v4, v8103vbrev8.v v4, v8104vrev8.v v4, v8105vclz.v v4, v8106vctz.v v4, v8107vcpop.v v4, v8108vrol.vv v4, v8, v12109vrol.vx v4, v8, a0110vror.vv v4, v8, v12111vror.vx v4, v8, a0112vror.vi v4, v8, 8113 114vwsll.vv v8, v4, v12115vwsll.vx v8, v4, a0116vwsll.vi v8, v4, 8117 118vsetvli zero, zero, e32, m8, tu, mu119vandn.vv v8, v16, v24120vandn.vx v8, v16, a0121vbrev.v v8, v16122vbrev8.v v8, v16123vrev8.v v8, v16124vclz.v v8, v16125vctz.v v8, v16126vcpop.v v8, v16127vrol.vv v8, v16, v24128vrol.vx v8, v16, a0129vror.vv v8, v16, v24130vror.vx v8, v16, a0131vror.vi v8, v16, 8132 133# Show SEW does not matter134vsetvli zero, zero, e16, m4, tu, mu135vandn.vv v4, v8, v12136vandn.vx v4, v8, a0137vbrev.v v4, v8138vbrev8.v v4, v8139vrev8.v v4, v8140vclz.v v4, v8141vctz.v v4, v8142vcpop.v v4, v8143vrol.vv v4, v8, v12144vrol.vx v4, v8, a0145vror.vv v4, v8, v12146vror.vx v4, v8, a0147vror.vi v4, v8, 8148vwsll.vv v8, v4, v12149vwsll.vx v8, v4, a0150vwsll.vi v8, v4, 8151 152# CHECK: Resources:153# CHECK-NEXT: [0] - SiFiveP800Branch:2 SiFiveP800IEXQ4, SiFiveP800IEXQ5154# CHECK-NEXT: [1] - SiFiveP800Div:1155# CHECK-NEXT: [2] - SiFiveP800FEXQ0:1156# CHECK-NEXT: [3] - SiFiveP800FEXQ1:1157# CHECK-NEXT: [4] - SiFiveP800FloatArith:2 SiFiveP800FEXQ0, SiFiveP800FEXQ1158# CHECK-NEXT: [5] - SiFiveP800FloatDiv:1159# CHECK-NEXT: [6] - SiFiveP800IEXQ0:1160# CHECK-NEXT: [7] - SiFiveP800IEXQ1:1161# CHECK-NEXT: [8] - SiFiveP800IEXQ2:1162# CHECK-NEXT: [9] - SiFiveP800IEXQ3:1163# CHECK-NEXT: [10] - SiFiveP800IEXQ4:1164# CHECK-NEXT: [11] - SiFiveP800IEXQ5:1165# CHECK-NEXT: [12] - SiFiveP800IntArith:4 SiFiveP800IEXQ0, SiFiveP800IEXQ1, SiFiveP800IEXQ2, SiFiveP800IEXQ3166# CHECK-NEXT: [13] - SiFiveP800LD:1167# CHECK-NEXT: [14] - SiFiveP800LDST:2168# CHECK-NEXT: [15] - SiFiveP800Load:3 SiFiveP800LDST, SiFiveP800LDST, SiFiveP800LD169# CHECK-NEXT: [16] - SiFiveP800Mul:2 SiFiveP800IEXQ1, SiFiveP800IEXQ3170# CHECK-NEXT: [17] - SiFiveP800VDiv:1171# CHECK-NEXT: [18] - SiFiveP800VEXQ0:1172# CHECK-NEXT: [19] - SiFiveP800VEXQ1:1173# CHECK-NEXT: [20] - SiFiveP800VFloatDiv:1174# CHECK-NEXT: [21] - SiFiveP800VLD:1175# CHECK-NEXT: [22] - SiFiveP800VST:1176# CHECK-NEXT: [23] - SiFiveP800VectorArith:2 SiFiveP800VEXQ0, SiFiveP800VEXQ1177 178# CHECK: Instruction Info:179# CHECK-NEXT: [1]: #uOps180# CHECK-NEXT: [2]: Latency181# CHECK-NEXT: [3]: RThroughput182# CHECK-NEXT: [4]: MayLoad183# CHECK-NEXT: [5]: MayStore184# CHECK-NEXT: [6]: HasSideEffects (U)185# CHECK-NEXT: [7]: Bypass Latency186# CHECK-NEXT: [8]: Resources (<Name> | <Name>[<ReleaseAtCycle>] | <Name>[<AcquireAtCycle>,<ReleaseAtCycle])187# CHECK-NEXT: [9]: LLVM Opcode Name188 189# CHECK: [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:190# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e8, mf8, tu, mu191# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VV vandn.vv v4, v8, v12192# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VX vandn.vx v4, v8, a0193# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV_V vbrev.v v4, v8194# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV8_V vbrev8.v v4, v8195# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VREV8_V vrev8.v v4, v8196# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCLZ_V vclz.v v4, v8197# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCTZ_V vctz.v v4, v8198# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCPOP_V vcpop.v v4, v8199# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VV vrol.vv v4, v8, v12200# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VX vrol.vx v4, v8, a0201# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VV vror.vv v4, v8, v12202# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VX vror.vx v4, v8, a0203# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VI vror.vi v4, v8, 8204# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VV vwsll.vv v4, v8, v12205# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VX vwsll.vx v4, v8, a0206# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VI vwsll.vi v4, v8, 8207# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e16, mf4, tu, mu208# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VV vandn.vv v4, v8, v12209# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VX vandn.vx v4, v8, a0210# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV_V vbrev.v v4, v8211# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV8_V vbrev8.v v4, v8212# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VREV8_V vrev8.v v4, v8213# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCLZ_V vclz.v v4, v8214# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCTZ_V vctz.v v4, v8215# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCPOP_V vcpop.v v4, v8216# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VV vrol.vv v4, v8, v12217# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VX vrol.vx v4, v8, a0218# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VV vror.vv v4, v8, v12219# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VX vror.vx v4, v8, a0220# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VI vror.vi v4, v8, 8221# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VV vwsll.vv v4, v8, v12222# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VX vwsll.vx v4, v8, a0223# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VI vwsll.vi v4, v8, 8224# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e32, mf2, tu, mu225# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VV vandn.vv v4, v8, v12226# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VX vandn.vx v4, v8, a0227# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV_V vbrev.v v4, v8228# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV8_V vbrev8.v v4, v8229# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VREV8_V vrev8.v v4, v8230# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCLZ_V vclz.v v4, v8231# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCTZ_V vctz.v v4, v8232# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCPOP_V vcpop.v v4, v8233# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VV vrol.vv v4, v8, v12234# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VX vrol.vx v4, v8, a0235# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VV vror.vv v4, v8, v12236# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VX vror.vx v4, v8, a0237# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VI vror.vi v4, v8, 8238# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VV vwsll.vv v4, v8, v12239# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VX vwsll.vx v4, v8, a0240# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VI vwsll.vi v4, v8, 8241# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e32, m1, tu, mu242# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VV vandn.vv v4, v8, v12243# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VANDN_VX vandn.vx v4, v8, a0244# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV_V vbrev.v v4, v8245# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VBREV8_V vbrev8.v v4, v8246# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VREV8_V vrev8.v v4, v8247# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCLZ_V vclz.v v4, v8248# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCTZ_V vctz.v v4, v8249# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VCPOP_V vcpop.v v4, v8250# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VV vrol.vv v4, v8, v12251# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROL_VX vrol.vx v4, v8, a0252# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VV vror.vv v4, v8, v12253# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VX vror.vx v4, v8, a0254# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VROR_VI vror.vi v4, v8, 8255# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VV vwsll.vv v4, v8, v12256# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VX vwsll.vx v4, v8, a0257# CHECK-NEXT: 1 2 0.50 2 SiFiveP800VectorArith VWSLL_VI vwsll.vi v4, v8, 8258# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e32, m2, tu, mu259# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VANDN_VV vandn.vv v4, v8, v12260# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VANDN_VX vandn.vx v4, v8, a0261# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VBREV_V vbrev.v v4, v8262# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VBREV8_V vbrev8.v v4, v8263# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VREV8_V vrev8.v v4, v8264# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VCLZ_V vclz.v v4, v8265# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VCTZ_V vctz.v v4, v8266# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VCPOP_V vcpop.v v4, v8267# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VROL_VV vrol.vv v4, v8, v12268# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VROL_VX vrol.vx v4, v8, a0269# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VROR_VV vror.vv v4, v8, v12270# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VROR_VX vror.vx v4, v8, a0271# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VROR_VI vror.vi v4, v8, 8272# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VWSLL_VV vwsll.vv v4, v8, v12273# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VWSLL_VX vwsll.vx v4, v8, a0274# CHECK-NEXT: 1 2 1.00 2 SiFiveP800VectorArith[2] VWSLL_VI vwsll.vi v4, v8, 8275# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e32, m4, tu, mu276# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VANDN_VV vandn.vv v4, v8, v12277# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VANDN_VX vandn.vx v4, v8, a0278# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VBREV_V vbrev.v v4, v8279# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VBREV8_V vbrev8.v v4, v8280# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VREV8_V vrev8.v v4, v8281# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCLZ_V vclz.v v4, v8282# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCTZ_V vctz.v v4, v8283# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCPOP_V vcpop.v v4, v8284# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROL_VV vrol.vv v4, v8, v12285# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROL_VX vrol.vx v4, v8, a0286# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VV vror.vv v4, v8, v12287# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VX vror.vx v4, v8, a0288# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VI vror.vi v4, v8, 8289# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VV vwsll.vv v8, v4, v12290# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VX vwsll.vx v8, v4, a0291# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VI vwsll.vi v8, v4, 8292# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e32, m8, tu, mu293# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VANDN_VV vandn.vv v8, v16, v24294# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VANDN_VX vandn.vx v8, v16, a0295# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VBREV_V vbrev.v v8, v16296# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VBREV8_V vbrev8.v v8, v16297# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VREV8_V vrev8.v v8, v16298# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VCLZ_V vclz.v v8, v16299# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VCTZ_V vctz.v v8, v16300# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VCPOP_V vcpop.v v8, v16301# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VROL_VV vrol.vv v8, v16, v24302# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VROL_VX vrol.vx v8, v16, a0303# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VROR_VV vror.vv v8, v16, v24304# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VROR_VX vror.vx v8, v16, a0305# CHECK-NEXT: 1 2 4.00 2 SiFiveP800VectorArith[8] VROR_VI vror.vi v8, v16, 8306# CHECK-NEXT: 1 1 1.00 U 1 SiFiveP800IEXQ1,SiFiveP800IntArith,SiFiveP800Mul VSETVLI vsetvli zero, zero, e16, m4, tu, mu307# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VANDN_VV vandn.vv v4, v8, v12308# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VANDN_VX vandn.vx v4, v8, a0309# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VBREV_V vbrev.v v4, v8310# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VBREV8_V vbrev8.v v4, v8311# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VREV8_V vrev8.v v4, v8312# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCLZ_V vclz.v v4, v8313# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCTZ_V vctz.v v4, v8314# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VCPOP_V vcpop.v v4, v8315# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROL_VV vrol.vv v4, v8, v12316# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROL_VX vrol.vx v4, v8, a0317# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VV vror.vv v4, v8, v12318# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VX vror.vx v4, v8, a0319# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VROR_VI vror.vi v4, v8, 8320# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VV vwsll.vv v8, v4, v12321# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VX vwsll.vx v8, v4, a0322# CHECK-NEXT: 1 2 2.00 2 SiFiveP800VectorArith[4] VWSLL_VI vwsll.vi v8, v4, 8323 324# CHECK: Resources:325# CHECK-NEXT: [0] - SiFiveP800Div326# CHECK-NEXT: [1] - SiFiveP800FEXQ0327# CHECK-NEXT: [2] - SiFiveP800FEXQ1328# CHECK-NEXT: [3] - SiFiveP800FloatDiv329# CHECK-NEXT: [4] - SiFiveP800IEXQ0330# CHECK-NEXT: [5] - SiFiveP800IEXQ1331# CHECK-NEXT: [6] - SiFiveP800IEXQ2332# CHECK-NEXT: [7] - SiFiveP800IEXQ3333# CHECK-NEXT: [8] - SiFiveP800IEXQ4334# CHECK-NEXT: [9] - SiFiveP800IEXQ5335# CHECK-NEXT: [10] - SiFiveP800LD336# CHECK-NEXT: [11.0] - SiFiveP800LDST337# CHECK-NEXT: [11.1] - SiFiveP800LDST338# CHECK-NEXT: [12] - SiFiveP800VDiv339# CHECK-NEXT: [13] - SiFiveP800VEXQ0340# CHECK-NEXT: [14] - SiFiveP800VEXQ1341# CHECK-NEXT: [15] - SiFiveP800VFloatDiv342# CHECK-NEXT: [16] - SiFiveP800VLD343# CHECK-NEXT: [17] - SiFiveP800VST344 345# CHECK: Resource pressure per iteration:346# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11.0] [11.1] [12] [13] [14] [15] [16] [17]347# CHECK-NEXT: - - - - - 8.00 - - - - - - - - 164.00 164.00 - - -348 349# CHECK: Resource pressure by instruction:350# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11.0] [11.1] [12] [13] [14] [15] [16] [17] Instructions:351# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e8, mf8, tu, mu352# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vv v4, v8, v12353# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vx v4, v8, a0354# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev.v v4, v8355# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev8.v v4, v8356# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrev8.v v4, v8357# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vclz.v v4, v8358# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vctz.v v4, v8359# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vcpop.v v4, v8360# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vv v4, v8, v12361# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vx v4, v8, a0362# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vv v4, v8, v12363# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vx v4, v8, a0364# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vi v4, v8, 8365# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vv v4, v8, v12366# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vx v4, v8, a0367# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vi v4, v8, 8368# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e16, mf4, tu, mu369# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vv v4, v8, v12370# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vx v4, v8, a0371# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev.v v4, v8372# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev8.v v4, v8373# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrev8.v v4, v8374# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vclz.v v4, v8375# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vctz.v v4, v8376# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vcpop.v v4, v8377# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vv v4, v8, v12378# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vx v4, v8, a0379# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vv v4, v8, v12380# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vx v4, v8, a0381# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vi v4, v8, 8382# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vv v4, v8, v12383# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vx v4, v8, a0384# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vi v4, v8, 8385# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu386# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vv v4, v8, v12387# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vx v4, v8, a0388# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev.v v4, v8389# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev8.v v4, v8390# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrev8.v v4, v8391# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vclz.v v4, v8392# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vctz.v v4, v8393# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vcpop.v v4, v8394# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vv v4, v8, v12395# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vx v4, v8, a0396# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vv v4, v8, v12397# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vx v4, v8, a0398# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vi v4, v8, 8399# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vv v4, v8, v12400# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vx v4, v8, a0401# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vi v4, v8, 8402# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu403# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vv v4, v8, v12404# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vandn.vx v4, v8, a0405# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev.v v4, v8406# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vbrev8.v v4, v8407# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrev8.v v4, v8408# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vclz.v v4, v8409# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vctz.v v4, v8410# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vcpop.v v4, v8411# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vv v4, v8, v12412# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vrol.vx v4, v8, a0413# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vv v4, v8, v12414# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vx v4, v8, a0415# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vror.vi v4, v8, 8416# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vv v4, v8, v12417# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vx v4, v8, a0418# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 0.50 - - - vwsll.vi v4, v8, 8419# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu420# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vandn.vv v4, v8, v12421# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vandn.vx v4, v8, a0422# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vbrev.v v4, v8423# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vbrev8.v v4, v8424# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vrev8.v v4, v8425# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vclz.v v4, v8426# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vctz.v v4, v8427# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vcpop.v v4, v8428# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vrol.vv v4, v8, v12429# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vrol.vx v4, v8, a0430# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vror.vv v4, v8, v12431# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vror.vx v4, v8, a0432# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vror.vi v4, v8, 8433# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vwsll.vv v4, v8, v12434# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vwsll.vx v4, v8, a0435# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 - - - vwsll.vi v4, v8, 8436# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu437# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vandn.vv v4, v8, v12438# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vandn.vx v4, v8, a0439# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vbrev.v v4, v8440# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vbrev8.v v4, v8441# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrev8.v v4, v8442# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vclz.v v4, v8443# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vctz.v v4, v8444# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vcpop.v v4, v8445# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrol.vv v4, v8, v12446# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrol.vx v4, v8, a0447# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vv v4, v8, v12448# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vx v4, v8, a0449# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vi v4, v8, 8450# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vv v8, v4, v12451# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vx v8, v4, a0452# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vi v8, v4, 8453# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu454# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vandn.vv v8, v16, v24455# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vandn.vx v8, v16, a0456# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vbrev.v v8, v16457# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vbrev8.v v8, v16458# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vrev8.v v8, v16459# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vclz.v v8, v16460# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vctz.v v8, v16461# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vcpop.v v8, v16462# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vrol.vv v8, v16, v24463# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vrol.vx v8, v16, a0464# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vror.vv v8, v16, v24465# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vror.vx v8, v16, a0466# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 - - - vror.vi v8, v16, 8467# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu468# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vandn.vv v4, v8, v12469# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vandn.vx v4, v8, a0470# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vbrev.v v4, v8471# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vbrev8.v v4, v8472# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrev8.v v4, v8473# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vclz.v v4, v8474# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vctz.v v4, v8475# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vcpop.v v4, v8476# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrol.vv v4, v8, v12477# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vrol.vx v4, v8, a0478# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vv v4, v8, v12479# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vx v4, v8, a0480# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vror.vi v4, v8, 8481# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vv v8, v4, v12482# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vx v8, v4, a0483# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 2.00 - - - vwsll.vi v8, v4, 8484