201 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p550 -iterations=1 < %s | FileCheck %s3 4add t0, t0, t05addw t2, t2, t26sub t1, t1, t17subw t3, t3, t38 9addi t0, t0, 10010addiw t2, t2, 20011 12and t2, t2, t213or t3, t3, t314xor t4, t4, t415 16andi t2, t2, 1017ori t3, t3, 2018xori t4, t4, 3019 20sll t5, t5, t621srl t0, s0, t622sra s1, s1, t623 24slli t5, t5, 125srli t0, s0, 226srai s1, s1, 327 28mul s6, s6, s729mulw s4, s4, a230 31div a0, a0, a032divw a1, a1, a133rem a2, a2, a234remw a2, a2, a235 36rol t5, t5, t637ror t6, t6, t538rori t5, t5, 539 40rolw t5, t5, t641rorw t6, t6, t542roriw t5, t5, 543 44andn a0, a0, a145orn a1, a2, a346xnor a2, a3, a447 48min a3, a4, a549max a4, a5, a650minu a5, a6, a751maxu a6, a7, s052 53orc.b s0, s154rev8 s1, s255 56cpop t1, t157cpopw t2, t258 59sh1add t0, t1, t260sh2add t0, t1, t261sh3add t0, t1, t262 63add.uw s0, s1, s264sh1add.uw t0, t1, t265sh2add.uw t0, t1, t266sh3add.uw t0, t1, t267 68# CHECK: Iterations: 169# CHECK-NEXT: Instructions: 4870# CHECK-NEXT: Total Cycles: 12071# CHECK-NEXT: Total uOps: 4872 73# CHECK: Dispatch Width: 374# CHECK-NEXT: uOps Per Cycle: 0.4075# CHECK-NEXT: IPC: 0.4076# CHECK-NEXT: Block RThroughput: 106.077 78# CHECK: Instruction Info:79# CHECK-NEXT: [1]: #uOps80# CHECK-NEXT: [2]: Latency81# CHECK-NEXT: [3]: RThroughput82# CHECK-NEXT: [4]: MayLoad83# CHECK-NEXT: [5]: MayStore84# CHECK-NEXT: [6]: HasSideEffects (U)85 86# CHECK: [1] [2] [3] [4] [5] [6] Instructions:87# CHECK-NEXT: 1 1 0.33 add t0, t0, t088# CHECK-NEXT: 1 1 0.33 addw t2, t2, t289# CHECK-NEXT: 1 1 0.33 sub t1, t1, t190# CHECK-NEXT: 1 1 0.33 subw t3, t3, t391# CHECK-NEXT: 1 1 0.33 addi t0, t0, 10092# CHECK-NEXT: 1 1 0.33 addiw t2, t2, 20093# CHECK-NEXT: 1 1 0.33 and t2, t2, t294# CHECK-NEXT: 1 1 0.33 or t3, t3, t395# CHECK-NEXT: 1 1 0.33 xor t4, t4, t496# CHECK-NEXT: 1 1 0.33 andi t2, t2, 1097# CHECK-NEXT: 1 1 0.33 ori t3, t3, 2098# CHECK-NEXT: 1 1 0.33 xori t4, t4, 3099# CHECK-NEXT: 1 1 0.33 sll t5, t5, t6100# CHECK-NEXT: 1 1 0.33 srl t0, s0, t6101# CHECK-NEXT: 1 1 0.33 sra s1, s1, t6102# CHECK-NEXT: 1 1 0.33 slli t5, t5, 1103# CHECK-NEXT: 1 1 0.33 srli t0, s0, 2104# CHECK-NEXT: 1 1 0.33 srai s1, s1, 3105# CHECK-NEXT: 1 3 1.00 mul s6, s6, s7106# CHECK-NEXT: 1 3 1.00 mulw s4, s4, a2107# CHECK-NEXT: 1 35 34.00 div a0, a0, a0108# CHECK-NEXT: 1 20 19.00 divw a1, a1, a1109# CHECK-NEXT: 1 35 34.00 rem a2, a2, a2110# CHECK-NEXT: 1 20 19.00 remw a2, a2, a2111# CHECK-NEXT: 1 1 0.33 rol t5, t5, t6112# CHECK-NEXT: 1 1 0.33 ror t6, t6, t5113# CHECK-NEXT: 1 1 0.33 rori t5, t5, 5114# CHECK-NEXT: 1 1 0.33 rolw t5, t5, t6115# CHECK-NEXT: 1 1 0.33 rorw t6, t6, t5116# CHECK-NEXT: 1 1 0.33 roriw t5, t5, 5117# CHECK-NEXT: 1 1 0.33 andn a0, a0, a1118# CHECK-NEXT: 1 1 0.33 orn a1, a2, a3119# CHECK-NEXT: 1 1 0.33 xnor a2, a3, a4120# CHECK-NEXT: 1 1 0.33 min a3, a4, a5121# CHECK-NEXT: 1 1 0.33 max a4, a5, a6122# CHECK-NEXT: 1 1 0.33 minu a5, a6, a7123# CHECK-NEXT: 1 1 0.33 maxu a6, a7, s0124# CHECK-NEXT: 1 1 0.33 orc.b s0, s1125# CHECK-NEXT: 1 1 0.33 rev8 s1, s2126# CHECK-NEXT: 1 3 1.00 cpop t1, t1127# CHECK-NEXT: 1 3 1.00 cpopw t2, t2128# CHECK-NEXT: 1 1 0.33 sh1add t0, t1, t2129# CHECK-NEXT: 1 1 0.33 sh2add t0, t1, t2130# CHECK-NEXT: 1 1 0.33 sh3add t0, t1, t2131# CHECK-NEXT: 1 1 0.33 add.uw s0, s1, s2132# CHECK-NEXT: 1 1 0.33 sh1add.uw t0, t1, t2133# CHECK-NEXT: 1 1 0.33 sh2add.uw t0, t1, t2134# CHECK-NEXT: 1 1 0.33 sh3add.uw t0, t1, t2135 136# CHECK: Resources:137# CHECK-NEXT: [0] - SiFiveP500Div138# CHECK-NEXT: [1] - SiFiveP500FEXQ0139# CHECK-NEXT: [2] - SiFiveP500FEXQ1140# CHECK-NEXT: [3] - SiFiveP500FloatDiv141# CHECK-NEXT: [4] - SiFiveP500IEXQ0142# CHECK-NEXT: [5] - SiFiveP500IEXQ1143# CHECK-NEXT: [6] - SiFiveP500IEXQ2144# CHECK-NEXT: [7] - SiFiveP500Load145# CHECK-NEXT: [8] - SiFiveP500Store146 147# CHECK: Resource pressure per iteration:148# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8]149# CHECK-NEXT: 106.00 - - - 14.00 15.00 19.00 - -150 151# CHECK: Resource pressure by instruction:152# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] Instructions:153# CHECK-NEXT: - - - - - - 1.00 - - add t0, t0, t0154# CHECK-NEXT: - - - - - 1.00 - - - addw t2, t2, t2155# CHECK-NEXT: - - - - 1.00 - - - - sub t1, t1, t1156# CHECK-NEXT: - - - - - - 1.00 - - subw t3, t3, t3157# CHECK-NEXT: - - - - - 1.00 - - - addi t0, t0, 100158# CHECK-NEXT: - - - - 1.00 - - - - addiw t2, t2, 200159# CHECK-NEXT: - - - - - - 1.00 - - and t2, t2, t2160# CHECK-NEXT: - - - - - 1.00 - - - or t3, t3, t3161# CHECK-NEXT: - - - - 1.00 - - - - xor t4, t4, t4162# CHECK-NEXT: - - - - - - 1.00 - - andi t2, t2, 10163# CHECK-NEXT: - - - - - 1.00 - - - ori t3, t3, 20164# CHECK-NEXT: - - - - 1.00 - - - - xori t4, t4, 30165# CHECK-NEXT: - - - - - - 1.00 - - sll t5, t5, t6166# CHECK-NEXT: - - - - - 1.00 - - - srl t0, s0, t6167# CHECK-NEXT: - - - - 1.00 - - - - sra s1, s1, t6168# CHECK-NEXT: - - - - - - 1.00 - - slli t5, t5, 1169# CHECK-NEXT: - - - - - 1.00 - - - srli t0, s0, 2170# CHECK-NEXT: - - - - 1.00 - - - - srai s1, s1, 3171# CHECK-NEXT: - - - - - - 1.00 - - mul s6, s6, s7172# CHECK-NEXT: - - - - - - 1.00 - - mulw s4, s4, a2173# CHECK-NEXT: 34.00 - - - - - 1.00 - - div a0, a0, a0174# CHECK-NEXT: 19.00 - - - - - 1.00 - - divw a1, a1, a1175# CHECK-NEXT: 34.00 - - - - - 1.00 - - rem a2, a2, a2176# CHECK-NEXT: 19.00 - - - - - 1.00 - - remw a2, a2, a2177# CHECK-NEXT: - - - - - 1.00 - - - rol t5, t5, t6178# CHECK-NEXT: - - - - 1.00 - - - - ror t6, t6, t5179# CHECK-NEXT: - - - - - 1.00 - - - rori t5, t5, 5180# CHECK-NEXT: - - - - 1.00 - - - - rolw t5, t5, t6181# CHECK-NEXT: - - - - - 1.00 - - - rorw t6, t6, t5182# CHECK-NEXT: - - - - 1.00 - - - - roriw t5, t5, 5183# CHECK-NEXT: - - - - - 1.00 - - - andn a0, a0, a1184# CHECK-NEXT: - - - - 1.00 - - - - orn a1, a2, a3185# CHECK-NEXT: - - - - - - 1.00 - - xnor a2, a3, a4186# CHECK-NEXT: - - - - - - 1.00 - - min a3, a4, a5187# CHECK-NEXT: - - - - - 1.00 - - - max a4, a5, a6188# CHECK-NEXT: - - - - 1.00 - - - - minu a5, a6, a7189# CHECK-NEXT: - - - - - - 1.00 - - maxu a6, a7, s0190# CHECK-NEXT: - - - - - 1.00 - - - orc.b s0, s1191# CHECK-NEXT: - - - - 1.00 - - - - rev8 s1, s2192# CHECK-NEXT: - - - - - - 1.00 - - cpop t1, t1193# CHECK-NEXT: - - - - - - 1.00 - - cpopw t2, t2194# CHECK-NEXT: - - - - 1.00 - - - - sh1add t0, t1, t2195# CHECK-NEXT: - - - - - 1.00 - - - sh2add t0, t1, t2196# CHECK-NEXT: - - - - - - 1.00 - - sh3add t0, t1, t2197# CHECK-NEXT: - - - - - 1.00 - - - add.uw s0, s1, s2198# CHECK-NEXT: - - - - - 1.00 - - - sh1add.uw t0, t1, t2199# CHECK-NEXT: - - - - 1.00 - - - - sh2add.uw t0, t1, t2200# CHECK-NEXT: - - - - - - 1.00 - - sh3add.uw t0, t1, t2201