158 lines
7.7 KiB
ArmAsm
158 lines
7.7 KiB
ArmAsm
|
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
|
||
|
# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-u74 -mattr=+c -timeline \
|
||
|
# RUN: -timeline-max-cycles=1000 -iterations=1 < %s | FileCheck %s
|
||
|
|
||
|
c.lui a0, 1
|
||
|
c.add a0, a0
|
||
|
c.addi a0, 1
|
||
|
c.addw a0, a0
|
||
|
c.addiw a0, 1
|
||
|
c.sub a0, a0
|
||
|
c.subw a0, a0
|
||
|
c.and a0, a0
|
||
|
c.andi a0, 1
|
||
|
c.or a0, a0
|
||
|
c.xor a0, a0
|
||
|
c.slli a0, 1
|
||
|
c.srli a0, 1
|
||
|
c.srai a0, 1
|
||
|
c.add a0, a0
|
||
|
beqz a0, 1f
|
||
|
1:
|
||
|
c.add a0, a0
|
||
|
bnez a0, 1f
|
||
|
1:
|
||
|
c.add a0, a0
|
||
|
c.jr a0
|
||
|
|
||
|
# CHECK: Iterations: 1
|
||
|
# CHECK-NEXT: Instructions: 20
|
||
|
# CHECK-NEXT: Total Cycles: 21
|
||
|
# CHECK-NEXT: Total uOps: 20
|
||
|
|
||
|
# CHECK: Dispatch Width: 2
|
||
|
# CHECK-NEXT: uOps Per Cycle: 0.95
|
||
|
# CHECK-NEXT: IPC: 0.95
|
||
|
# CHECK-NEXT: Block RThroughput: 10.0
|
||
|
|
||
|
# 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: [1] [2] [3] [4] [5] [6] Instructions:
|
||
|
# CHECK-NEXT: 1 3 0.50 lui a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 add a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 addi a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 addw a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 addiw a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 sub a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 subw a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 and a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 andi a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 or a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 xor a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 0.50 slli a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 srli a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 srai a0, a0, 1
|
||
|
# CHECK-NEXT: 1 3 0.50 add a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 1.00 beqz a0, .Ltmp0
|
||
|
# CHECK-NEXT: 1 3 0.50 add a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 1.00 bnez a0, .Ltmp1
|
||
|
# CHECK-NEXT: 1 3 0.50 add a0, a0, a0
|
||
|
# CHECK-NEXT: 1 3 1.00 jr a0
|
||
|
|
||
|
# CHECK: Resources:
|
||
|
# CHECK-NEXT: [0] - SiFive7FDiv
|
||
|
# CHECK-NEXT: [1] - SiFive7IDiv
|
||
|
# CHECK-NEXT: [2] - SiFive7PipeA
|
||
|
# CHECK-NEXT: [3] - SiFive7PipeB
|
||
|
# CHECK-NEXT: [4] - SiFive7VA
|
||
|
# CHECK-NEXT: [5] - SiFive7VCQ
|
||
|
# CHECK-NEXT: [6] - SiFive7VL
|
||
|
# CHECK-NEXT: [7] - SiFive7VS
|
||
|
|
||
|
# CHECK: Resource pressure per iteration:
|
||
|
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
|
||
|
# CHECK-NEXT: - - 9.00 11.00 - - - -
|
||
|
|
||
|
# CHECK: Resource pressure by instruction:
|
||
|
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - lui a0, 1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - addi a0, a0, 1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - addw a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - addiw a0, a0, 1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - sub a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - subw a0, a0, a0
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - and a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - andi a0, a0, 1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - or a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - xor a0, a0, a0
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - slli a0, a0, 1
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - srli a0, a0, 1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - srai a0, a0, 1
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - add a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - beqz a0, .Ltmp0
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - bnez a0, .Ltmp1
|
||
|
# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
|
||
|
# CHECK-NEXT: - - - 1.00 - - - - jr a0
|
||
|
|
||
|
# CHECK: Timeline view:
|
||
|
# CHECK-NEXT: 0123456789
|
||
|
# CHECK-NEXT: Index 0123456789 0
|
||
|
|
||
|
# CHECK: [0,0] DeeE . . . . lui a0, 1
|
||
|
# CHECK-NEXT: [0,1] .DeeE. . . . add a0, a0, a0
|
||
|
# CHECK-NEXT: [0,2] . DeeE . . . addi a0, a0, 1
|
||
|
# CHECK-NEXT: [0,3] . DeeE . . . addw a0, a0, a0
|
||
|
# CHECK-NEXT: [0,4] . DeeE . . . addiw a0, a0, 1
|
||
|
# CHECK-NEXT: [0,5] . DeeE . . . sub a0, a0, a0
|
||
|
# CHECK-NEXT: [0,6] . .DeeE. . . subw a0, a0, a0
|
||
|
# CHECK-NEXT: [0,7] . . DeeE . . and a0, a0, a0
|
||
|
# CHECK-NEXT: [0,8] . . DeeE . . andi a0, a0, 1
|
||
|
# CHECK-NEXT: [0,9] . . DeeE . . or a0, a0, a0
|
||
|
# CHECK-NEXT: [0,10] . . DeeE . . xor a0, a0, a0
|
||
|
# CHECK-NEXT: [0,11] . . .DeeE. . slli a0, a0, 1
|
||
|
# CHECK-NEXT: [0,12] . . . DeeE . srli a0, a0, 1
|
||
|
# CHECK-NEXT: [0,13] . . . DeeE . srai a0, a0, 1
|
||
|
# CHECK-NEXT: [0,14] . . . DeeE . add a0, a0, a0
|
||
|
# CHECK-NEXT: [0,15] . . . DeeE . beqz a0, .Ltmp0
|
||
|
# CHECK-NEXT: [0,16] . . . DeeE . add a0, a0, a0
|
||
|
# CHECK-NEXT: [0,17] . . . .DeeE. bnez a0, .Ltmp1
|
||
|
# CHECK-NEXT: [0,18] . . . .DeeE. add a0, a0, a0
|
||
|
# CHECK-NEXT: [0,19] . . . . DeeE jr a0
|
||
|
|
||
|
# CHECK: Average Wait times (based on the timeline view):
|
||
|
# CHECK-NEXT: [0]: Executions
|
||
|
# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
|
||
|
# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
|
||
|
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
|
||
|
|
||
|
# CHECK: [0] [1] [2] [3]
|
||
|
# CHECK-NEXT: 0. 1 0.0 0.0 0.0 lui a0, 1
|
||
|
# CHECK-NEXT: 1. 1 0.0 0.0 0.0 add a0, a0, a0
|
||
|
# CHECK-NEXT: 2. 1 0.0 0.0 0.0 addi a0, a0, 1
|
||
|
# CHECK-NEXT: 3. 1 0.0 0.0 0.0 addw a0, a0, a0
|
||
|
# CHECK-NEXT: 4. 1 0.0 0.0 0.0 addiw a0, a0, 1
|
||
|
# CHECK-NEXT: 5. 1 0.0 0.0 0.0 sub a0, a0, a0
|
||
|
# CHECK-NEXT: 6. 1 0.0 0.0 0.0 subw a0, a0, a0
|
||
|
# CHECK-NEXT: 7. 1 0.0 0.0 0.0 and a0, a0, a0
|
||
|
# CHECK-NEXT: 8. 1 0.0 0.0 0.0 andi a0, a0, 1
|
||
|
# CHECK-NEXT: 9. 1 0.0 0.0 0.0 or a0, a0, a0
|
||
|
# CHECK-NEXT: 10. 1 0.0 0.0 0.0 xor a0, a0, a0
|
||
|
# CHECK-NEXT: 11. 1 0.0 0.0 0.0 slli a0, a0, 1
|
||
|
# CHECK-NEXT: 12. 1 0.0 0.0 0.0 srli a0, a0, 1
|
||
|
# CHECK-NEXT: 13. 1 0.0 0.0 0.0 srai a0, a0, 1
|
||
|
# CHECK-NEXT: 14. 1 0.0 0.0 0.0 add a0, a0, a0
|
||
|
# CHECK-NEXT: 15. 1 0.0 0.0 0.0 beqz a0, .Ltmp0
|
||
|
# CHECK-NEXT: 16. 1 0.0 0.0 0.0 add a0, a0, a0
|
||
|
# CHECK-NEXT: 17. 1 0.0 0.0 0.0 bnez a0, .Ltmp1
|
||
|
# CHECK-NEXT: 18. 1 0.0 0.0 0.0 add a0, a0, a0
|
||
|
# CHECK-NEXT: 19. 1 0.0 0.0 0.0 jr a0
|
||
|
# CHECK-NEXT: 1 0.0 0.0 0.0 <total>
|