126 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-x280 -iterations=1 < %s | FileCheck %s3 4vsetvli zero, zero, e32, m1, tu, mu5 6vlse8.v v1, (a1), a27vlse16.v v1, (a1), a28vlse32.v v1, (a1), a29vlse64.v v1, (a1), a210 11vlse8.v v1, (a1), zero12vlse16.v v1, (a1), zero13vlse32.v v1, (a1), zero14vlse64.v v1, (a1), zero15 16vle8.v v1, (a1)17vle16.v v1, (a1)18vle32.v v1, (a1)19vle64.v v1, (a1)20 21vsetvli zero, zero, e64, m1, tu, mu22 23vlse8.v v1, (a1), a224vlse16.v v1, (a1), a225vlse32.v v1, (a1), a226vlse64.v v1, (a1), a227 28vlse8.v v1, (a1), zero29vlse16.v v1, (a1), zero30vlse32.v v1, (a1), zero31vlse64.v v1, (a1), zero32 33vle8.v v1, (a1)34vle16.v v1, (a1)35vle32.v v1, (a1)36vle64.v v1, (a1)37 38# CHECK: Iterations: 139# CHECK-NEXT: Instructions: 2640# CHECK-NEXT: Total Cycles: 23441# CHECK-NEXT: Total uOps: 2642 43# CHECK: Dispatch Width: 244# CHECK-NEXT: uOps Per Cycle: 0.1145# CHECK-NEXT: IPC: 0.1146# CHECK-NEXT: Block RThroughput: 229.047 48# CHECK: Instruction Info:49# CHECK-NEXT: [1]: #uOps50# CHECK-NEXT: [2]: Latency51# CHECK-NEXT: [3]: RThroughput52# CHECK-NEXT: [4]: MayLoad53# CHECK-NEXT: [5]: MayStore54# CHECK-NEXT: [6]: HasSideEffects (U)55 56# CHECK: [1] [2] [3] [4] [5] [6] Instructions:57# CHECK-NEXT: 1 3 1.00 U vsetvli zero, zero, e32, m1, tu, mu58# CHECK-NEXT: 1 19 16.00 * vlse8.v v1, (a1), a259# CHECK-NEXT: 1 19 16.00 * vlse16.v v1, (a1), a260# CHECK-NEXT: 1 19 16.00 * vlse32.v v1, (a1), a261# CHECK-NEXT: 1 19 16.00 * vlse64.v v1, (a1), a262# CHECK-NEXT: 1 19 16.00 * vlse8.v v1, (a1), zero63# CHECK-NEXT: 1 19 16.00 * vlse16.v v1, (a1), zero64# CHECK-NEXT: 1 19 16.00 * vlse32.v v1, (a1), zero65# CHECK-NEXT: 1 19 16.00 * vlse64.v v1, (a1), zero66# CHECK-NEXT: 1 4 1.00 * vle8.v v1, (a1)67# CHECK-NEXT: 1 4 1.00 * vle16.v v1, (a1)68# CHECK-NEXT: 1 4 2.00 * vle32.v v1, (a1)69# CHECK-NEXT: 1 4 4.00 * vle64.v v1, (a1)70# CHECK-NEXT: 1 3 1.00 U vsetvli zero, zero, e64, m1, tu, mu71# CHECK-NEXT: 1 11 8.00 * vlse8.v v1, (a1), a272# CHECK-NEXT: 1 11 8.00 * vlse16.v v1, (a1), a273# CHECK-NEXT: 1 11 8.00 * vlse32.v v1, (a1), a274# CHECK-NEXT: 1 11 8.00 * vlse64.v v1, (a1), a275# CHECK-NEXT: 1 11 8.00 * vlse8.v v1, (a1), zero76# CHECK-NEXT: 1 11 8.00 * vlse16.v v1, (a1), zero77# CHECK-NEXT: 1 11 8.00 * vlse32.v v1, (a1), zero78# CHECK-NEXT: 1 11 8.00 * vlse64.v v1, (a1), zero79# CHECK-NEXT: 1 4 1.00 * vle8.v v1, (a1)80# CHECK-NEXT: 1 4 1.00 * vle16.v v1, (a1)81# CHECK-NEXT: 1 4 1.00 * vle32.v v1, (a1)82# CHECK-NEXT: 1 4 2.00 * vle64.v v1, (a1)83 84# CHECK: Resources:85# CHECK-NEXT: [0] - VLEN512SiFive7FDiv86# CHECK-NEXT: [1] - VLEN512SiFive7IDiv87# CHECK-NEXT: [2] - VLEN512SiFive7PipeA88# CHECK-NEXT: [3] - VLEN512SiFive7PipeB89# CHECK-NEXT: [4] - VLEN512SiFive7VA90# CHECK-NEXT: [5] - VLEN512SiFive7VCQ91# CHECK-NEXT: [6] - VLEN512SiFive7VL92# CHECK-NEXT: [7] - VLEN512SiFive7VS93 94# CHECK: Resource pressure per iteration:95# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]96# CHECK-NEXT: - - 2.00 - - 24.00 229.00 -97 98# CHECK: Resource pressure by instruction:99# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:100# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e32, m1, tu, mu101# CHECK-NEXT: - - - - - 1.00 17.00 - vlse8.v v1, (a1), a2102# CHECK-NEXT: - - - - - 1.00 17.00 - vlse16.v v1, (a1), a2103# CHECK-NEXT: - - - - - 1.00 17.00 - vlse32.v v1, (a1), a2104# CHECK-NEXT: - - - - - 1.00 17.00 - vlse64.v v1, (a1), a2105# CHECK-NEXT: - - - - - 1.00 17.00 - vlse8.v v1, (a1), zero106# CHECK-NEXT: - - - - - 1.00 17.00 - vlse16.v v1, (a1), zero107# CHECK-NEXT: - - - - - 1.00 17.00 - vlse32.v v1, (a1), zero108# CHECK-NEXT: - - - - - 1.00 17.00 - vlse64.v v1, (a1), zero109# CHECK-NEXT: - - - - - 1.00 2.00 - vle8.v v1, (a1)110# CHECK-NEXT: - - - - - 1.00 2.00 - vle16.v v1, (a1)111# CHECK-NEXT: - - - - - 1.00 3.00 - vle32.v v1, (a1)112# CHECK-NEXT: - - - - - 1.00 5.00 - vle64.v v1, (a1)113# CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, zero, e64, m1, tu, mu114# CHECK-NEXT: - - - - - 1.00 9.00 - vlse8.v v1, (a1), a2115# CHECK-NEXT: - - - - - 1.00 9.00 - vlse16.v v1, (a1), a2116# CHECK-NEXT: - - - - - 1.00 9.00 - vlse32.v v1, (a1), a2117# CHECK-NEXT: - - - - - 1.00 9.00 - vlse64.v v1, (a1), a2118# CHECK-NEXT: - - - - - 1.00 9.00 - vlse8.v v1, (a1), zero119# CHECK-NEXT: - - - - - 1.00 9.00 - vlse16.v v1, (a1), zero120# CHECK-NEXT: - - - - - 1.00 9.00 - vlse32.v v1, (a1), zero121# CHECK-NEXT: - - - - - 1.00 9.00 - vlse64.v v1, (a1), zero122# CHECK-NEXT: - - - - - 1.00 2.00 - vle8.v v1, (a1)123# CHECK-NEXT: - - - - - 1.00 2.00 - vle16.v v1, (a1)124# CHECK-NEXT: - - - - - 1.00 2.00 - vle32.v v1, (a1)125# CHECK-NEXT: - - - - - 1.00 3.00 - vle64.v v1, (a1)126