158 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-u74 -mattr=+c -timeline \3# RUN: -timeline-max-cycles=1000 -iterations=1 < %s | FileCheck %s4 5c.lui a0, 16c.add a0, a07c.addi a0, 18c.addw a0, a09c.addiw a0, 110c.sub a0, a011c.subw a0, a012c.and a0, a013c.andi a0, 114c.or a0, a015c.xor a0, a016c.slli a0, 117c.srli a0, 118c.srai a0, 119c.add a0, a020beqz a0, 1f211:22c.add a0, a023bnez a0, 1f241:25c.add a0, a026c.jr a027 28# CHECK: Iterations: 129# CHECK-NEXT: Instructions: 2030# CHECK-NEXT: Total Cycles: 2131# CHECK-NEXT: Total uOps: 2032 33# CHECK: Dispatch Width: 234# CHECK-NEXT: uOps Per Cycle: 0.9535# CHECK-NEXT: IPC: 0.9536# CHECK-NEXT: Block RThroughput: 10.037 38# CHECK: Instruction Info:39# CHECK-NEXT: [1]: #uOps40# CHECK-NEXT: [2]: Latency41# CHECK-NEXT: [3]: RThroughput42# CHECK-NEXT: [4]: MayLoad43# CHECK-NEXT: [5]: MayStore44# CHECK-NEXT: [6]: HasSideEffects (U)45 46# CHECK: [1] [2] [3] [4] [5] [6] Instructions:47# CHECK-NEXT: 1 3 0.50 lui a0, 148# CHECK-NEXT: 1 3 0.50 add a0, a0, a049# CHECK-NEXT: 1 3 0.50 addi a0, a0, 150# CHECK-NEXT: 1 3 0.50 addw a0, a0, a051# CHECK-NEXT: 1 3 0.50 addiw a0, a0, 152# CHECK-NEXT: 1 3 0.50 sub a0, a0, a053# CHECK-NEXT: 1 3 0.50 subw a0, a0, a054# CHECK-NEXT: 1 3 0.50 and a0, a0, a055# CHECK-NEXT: 1 3 0.50 andi a0, a0, 156# CHECK-NEXT: 1 3 0.50 or a0, a0, a057# CHECK-NEXT: 1 3 0.50 xor a0, a0, a058# CHECK-NEXT: 1 3 0.50 slli a0, a0, 159# CHECK-NEXT: 1 3 0.50 srli a0, a0, 160# CHECK-NEXT: 1 3 0.50 srai a0, a0, 161# CHECK-NEXT: 1 3 0.50 add a0, a0, a062# CHECK-NEXT: 1 3 1.00 beqz a0, .Ltmp063# CHECK-NEXT: 1 3 0.50 add a0, a0, a064# CHECK-NEXT: 1 3 1.00 bnez a0, .Ltmp165# CHECK-NEXT: 1 3 0.50 add a0, a0, a066# CHECK-NEXT: 1 3 1.00 jr a067 68# CHECK: Resources:69# CHECK-NEXT: [0] - VLEN512SiFive7FDiv70# CHECK-NEXT: [1] - VLEN512SiFive7IDiv71# CHECK-NEXT: [2] - VLEN512SiFive7PipeA72# CHECK-NEXT: [3] - VLEN512SiFive7PipeB73# CHECK-NEXT: [4] - VLEN512SiFive7VA74# CHECK-NEXT: [5] - VLEN512SiFive7VCQ75# CHECK-NEXT: [6] - VLEN512SiFive7VL76# CHECK-NEXT: [7] - VLEN512SiFive7VS77 78# CHECK: Resource pressure per iteration:79# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]80# CHECK-NEXT: - - 9.00 11.00 - - - -81 82# CHECK: Resource pressure by instruction:83# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:84# CHECK-NEXT: - - - 1.00 - - - - lui a0, 185# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a086# CHECK-NEXT: - - - 1.00 - - - - addi a0, a0, 187# CHECK-NEXT: - - 1.00 - - - - - addw a0, a0, a088# CHECK-NEXT: - - - 1.00 - - - - addiw a0, a0, 189# CHECK-NEXT: - - 1.00 - - - - - sub a0, a0, a090# CHECK-NEXT: - - - 1.00 - - - - subw a0, a0, a091# CHECK-NEXT: - - 1.00 - - - - - and a0, a0, a092# CHECK-NEXT: - - - 1.00 - - - - andi a0, a0, 193# CHECK-NEXT: - - 1.00 - - - - - or a0, a0, a094# CHECK-NEXT: - - - 1.00 - - - - xor a0, a0, a095# CHECK-NEXT: - - 1.00 - - - - - slli a0, a0, 196# CHECK-NEXT: - - - 1.00 - - - - srli a0, a0, 197# CHECK-NEXT: - - 1.00 - - - - - srai a0, a0, 198# CHECK-NEXT: - - - 1.00 - - - - add a0, a0, a099# CHECK-NEXT: - - - 1.00 - - - - beqz a0, .Ltmp0100# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0101# CHECK-NEXT: - - - 1.00 - - - - bnez a0, .Ltmp1102# CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0103# CHECK-NEXT: - - - 1.00 - - - - jr a0104 105# CHECK: Timeline view:106# CHECK-NEXT: 0123456789107# CHECK-NEXT: Index 0123456789 0108 109# CHECK: [0,0] DeeE . . . . lui a0, 1110# CHECK-NEXT: [0,1] .DeeE. . . . add a0, a0, a0111# CHECK-NEXT: [0,2] . DeeE . . . addi a0, a0, 1112# CHECK-NEXT: [0,3] . DeeE . . . addw a0, a0, a0113# CHECK-NEXT: [0,4] . DeeE . . . addiw a0, a0, 1114# CHECK-NEXT: [0,5] . DeeE . . . sub a0, a0, a0115# CHECK-NEXT: [0,6] . .DeeE. . . subw a0, a0, a0116# CHECK-NEXT: [0,7] . . DeeE . . and a0, a0, a0117# CHECK-NEXT: [0,8] . . DeeE . . andi a0, a0, 1118# CHECK-NEXT: [0,9] . . DeeE . . or a0, a0, a0119# CHECK-NEXT: [0,10] . . DeeE . . xor a0, a0, a0120# CHECK-NEXT: [0,11] . . .DeeE. . slli a0, a0, 1121# CHECK-NEXT: [0,12] . . . DeeE . srli a0, a0, 1122# CHECK-NEXT: [0,13] . . . DeeE . srai a0, a0, 1123# CHECK-NEXT: [0,14] . . . DeeE . add a0, a0, a0124# CHECK-NEXT: [0,15] . . . DeeE . beqz a0, .Ltmp0125# CHECK-NEXT: [0,16] . . . DeeE . add a0, a0, a0126# CHECK-NEXT: [0,17] . . . .DeeE. bnez a0, .Ltmp1127# CHECK-NEXT: [0,18] . . . .DeeE. add a0, a0, a0128# CHECK-NEXT: [0,19] . . . . DeeE jr a0129 130# CHECK: Average Wait times (based on the timeline view):131# CHECK-NEXT: [0]: Executions132# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue133# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready134# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage135 136# CHECK: [0] [1] [2] [3]137# CHECK-NEXT: 0. 1 0.0 0.0 0.0 lui a0, 1138# CHECK-NEXT: 1. 1 0.0 0.0 0.0 add a0, a0, a0139# CHECK-NEXT: 2. 1 0.0 0.0 0.0 addi a0, a0, 1140# CHECK-NEXT: 3. 1 0.0 0.0 0.0 addw a0, a0, a0141# CHECK-NEXT: 4. 1 0.0 0.0 0.0 addiw a0, a0, 1142# CHECK-NEXT: 5. 1 0.0 0.0 0.0 sub a0, a0, a0143# CHECK-NEXT: 6. 1 0.0 0.0 0.0 subw a0, a0, a0144# CHECK-NEXT: 7. 1 0.0 0.0 0.0 and a0, a0, a0145# CHECK-NEXT: 8. 1 0.0 0.0 0.0 andi a0, a0, 1146# CHECK-NEXT: 9. 1 0.0 0.0 0.0 or a0, a0, a0147# CHECK-NEXT: 10. 1 0.0 0.0 0.0 xor a0, a0, a0148# CHECK-NEXT: 11. 1 0.0 0.0 0.0 slli a0, a0, 1149# CHECK-NEXT: 12. 1 0.0 0.0 0.0 srli a0, a0, 1150# CHECK-NEXT: 13. 1 0.0 0.0 0.0 srai a0, a0, 1151# CHECK-NEXT: 14. 1 0.0 0.0 0.0 add a0, a0, a0152# CHECK-NEXT: 15. 1 0.0 0.0 0.0 beqz a0, .Ltmp0153# CHECK-NEXT: 16. 1 0.0 0.0 0.0 add a0, a0, a0154# CHECK-NEXT: 17. 1 0.0 0.0 0.0 bnez a0, .Ltmp1155# CHECK-NEXT: 18. 1 0.0 0.0 0.0 add a0, a0, a0156# CHECK-NEXT: 19. 1 0.0 0.0 0.0 jr a0157# CHECK-NEXT: 1 0.0 0.0 0.0 <total>158