115 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p670 -iterations=1 < %s | FileCheck %s3 4# These instructions only support e325 6vsetvli zero, zero, e32, mf2, tu, mu7vsm4k.vi v4, v8, 88vsm4r.vv v4, v89vsm4r.vs v4, v810 11vsetvli zero, zero, e32, m1, tu, mu12vsm4k.vi v4, v8, 813vsm4r.vv v4, v814vsm4r.vs v4, v815 16vsetvli zero, zero, e32, m2, tu, mu17vsm4k.vi v4, v8, 818vsm4r.vv v4, v819vsm4r.vs v4, v820 21vsetvli zero, zero, e32, m4, tu, mu22vsm4k.vi v4, v8, 823vsm4r.vv v4, v824vsm4r.vs v4, v825 26vsetvli zero, zero, e32, m8, tu, mu27vsm4k.vi v8, v16, 828vsm4r.vv v8, v1629vsm4r.vs v8, v1630 31# CHECK: Iterations: 132# CHECK-NEXT: Instructions: 2033# CHECK-NEXT: Total Cycles: 4734# CHECK-NEXT: Total uOps: 2035 36# CHECK: Dispatch Width: 437# CHECK-NEXT: uOps Per Cycle: 0.4338# CHECK-NEXT: IPC: 0.4339# CHECK-NEXT: Block RThroughput: 48.040 41# CHECK: Instruction Info:42# CHECK-NEXT: [1]: #uOps43# CHECK-NEXT: [2]: Latency44# CHECK-NEXT: [3]: RThroughput45# CHECK-NEXT: [4]: MayLoad46# CHECK-NEXT: [5]: MayStore47# CHECK-NEXT: [6]: HasSideEffects (U)48 49# CHECK: [1] [2] [3] [4] [5] [6] Instructions:50# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, mf2, tu, mu51# CHECK-NEXT: 1 3 1.00 vsm4k.vi v4, v8, 852# CHECK-NEXT: 1 3 1.00 vsm4r.vv v4, v853# CHECK-NEXT: 1 3 1.00 vsm4r.vs v4, v854# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu55# CHECK-NEXT: 1 3 1.00 vsm4k.vi v4, v8, 856# CHECK-NEXT: 1 3 1.00 vsm4r.vv v4, v857# CHECK-NEXT: 1 3 1.00 vsm4r.vs v4, v858# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu59# CHECK-NEXT: 1 3 2.00 vsm4k.vi v4, v8, 860# CHECK-NEXT: 1 3 2.00 vsm4r.vv v4, v861# CHECK-NEXT: 1 3 2.00 vsm4r.vs v4, v862# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu63# CHECK-NEXT: 1 3 4.00 vsm4k.vi v4, v8, 864# CHECK-NEXT: 1 3 4.00 vsm4r.vv v4, v865# CHECK-NEXT: 1 3 4.00 vsm4r.vs v4, v866# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu67# CHECK-NEXT: 1 3 8.00 vsm4k.vi v8, v16, 868# CHECK-NEXT: 1 3 8.00 vsm4r.vv v8, v1669# CHECK-NEXT: 1 3 8.00 vsm4r.vs v8, v1670 71# CHECK: Resources:72# CHECK-NEXT: [0] - SiFiveP600Div73# CHECK-NEXT: [1] - SiFiveP600FEXQ074# CHECK-NEXT: [2] - SiFiveP600FEXQ175# CHECK-NEXT: [3] - SiFiveP600FloatDiv76# CHECK-NEXT: [4] - SiFiveP600IEXQ077# CHECK-NEXT: [5] - SiFiveP600IEXQ178# CHECK-NEXT: [6] - SiFiveP600IEXQ279# CHECK-NEXT: [7] - SiFiveP600IEXQ380# CHECK-NEXT: [8.0] - SiFiveP600LDST81# CHECK-NEXT: [8.1] - SiFiveP600LDST82# CHECK-NEXT: [9] - SiFiveP600VDiv83# CHECK-NEXT: [10] - SiFiveP600VEXQ084# CHECK-NEXT: [11] - SiFiveP600VEXQ185# CHECK-NEXT: [12] - SiFiveP600VFloatDiv86# CHECK-NEXT: [13] - SiFiveP600VLD87# CHECK-NEXT: [14] - SiFiveP600VST88 89# CHECK: Resource pressure per iteration:90# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14]91# CHECK-NEXT: - - - - 5.00 - - - - - - 48.00 - - - -92 93# CHECK: Resource pressure by instruction:94# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14] Instructions:95# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, mf2, tu, mu96# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4k.vi v4, v8, 897# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4r.vv v4, v898# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4r.vs v4, v899# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu100# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4k.vi v4, v8, 8101# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4r.vv v4, v8102# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsm4r.vs v4, v8103# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu104# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsm4k.vi v4, v8, 8105# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsm4r.vv v4, v8106# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsm4r.vs v4, v8107# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu108# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsm4k.vi v4, v8, 8109# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsm4r.vv v4, v8110# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsm4r.vs v4, v8111# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu112# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsm4k.vi v8, v16, 8113# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsm4r.vv v8, v16114# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsm4r.vs v8, v16115