1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-x280 -timeline -iterations=1 < %s | FileCheck %s
4 # llvm-mca should use `WorstCase` SEW if there is no instrument that specifies
5 # which SEW to use. On sifive-x280, `WorstCase` SEW is the smallest SEW, so
6 # the first vadd.vv should use E8 and the second should use E64.
9 vsetvli zero
, a0
, e8
, m8
, tu
, mu
10 # LLVM-MCA-RISCV-LMUL M8
11 # LLVM-MCA-RISCV-SEW E64
14 # CHECK: Iterations: 1
15 # CHECK-NEXT: Instructions: 3
16 # CHECK-NEXT: Total Cycles: 2834
17 # CHECK-NEXT: Total uOps: 3
19 # CHECK: Dispatch Width: 2
20 # CHECK-NEXT: uOps Per Cycle: 0.00
21 # CHECK-NEXT: IPC: 0.00
22 # CHECK-NEXT: Block RThroughput: 2834.0
24 # CHECK: Instruction Info:
25 # CHECK-NEXT: [1]: #uOps
26 # CHECK-NEXT: [2]: Latency
27 # CHECK-NEXT: [3]: RThroughput
28 # CHECK-NEXT: [4]: MayLoad
29 # CHECK-NEXT: [5]: MayStore
30 # CHECK-NEXT: [6]: HasSideEffects (U)
32 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
33 # CHECK-NEXT: 1 1920 1921.00 vdiv.vv v8, v8, v12
34 # CHECK-NEXT: 1 3 1.00 U vsetvli zero, a0, e8, m8, tu, mu
35 # CHECK-NEXT: 1 912 913.00 vdiv.vv v8, v8, v12
38 # CHECK-NEXT: [0] - SiFive7FDiv
39 # CHECK-NEXT: [1] - SiFive7IDiv
40 # CHECK-NEXT: [2] - SiFive7PipeA
41 # CHECK-NEXT: [3] - SiFive7PipeB
42 # CHECK-NEXT: [4] - SiFive7VA
43 # CHECK-NEXT: [5] - SiFive7VCQ
44 # CHECK-NEXT: [6] - SiFive7VL
45 # CHECK-NEXT: [7] - SiFive7VS
47 # CHECK: Resource pressure per iteration:
48 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
49 # CHECK-NEXT: - - 1.00 - 2834.00 2.00 - -
51 # CHECK: Resource pressure by instruction:
52 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
53 # CHECK-NEXT: - - - - 1921.00 1.00 - - vdiv.vv v8, v8, v12
54 # CHECK-NEXT: - - 1.00 - - - - - vsetvli zero, a0, e8, m8, tu, mu
55 # CHECK-NEXT: - - - - 913.00 1.00 - - vdiv.vv v8, v8, v12
57 # CHECK: Timeline view:
59 # CHECK-NEXT: Truncated display due to cycle limit
61 # CHECK: Average Wait times (based on the timeline view):
62 # CHECK-NEXT: [0]: Executions
63 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
64 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
65 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
67 # CHECK: [0] [1] [2] [3]
68 # CHECK-NEXT: 0. 1 0.0 0.0 0.0 vdiv.vv v8, v8, v12
69 # CHECK-NEXT: 1. 1 0.0 0.0 0.0 vsetvli zero, a0, e8, m8, tu, mu
70 # CHECK-NEXT: 2. 1 0.0 0.0 0.0 vdiv.vv v8, v8, v12
71 # CHECK-NEXT: 1 0.0 0.0 0.0 <total>