387 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -timeline -timeline-max-iterations=2 -register-file-stats -iterations=1000 < %s | FileCheck %s3 4# LLVM-MCA-BEGIN5vpcmpeqb %ymm0, %ymm0, %ymm06vpaddb %ymm0, %ymm0, %ymm07# LLVM-MCA-END8 9# LLVM-MCA-BEGIN10vpcmpeqw %ymm0, %ymm0, %ymm011vpaddw %ymm0, %ymm0, %ymm012# LLVM-MCA-END13 14# LLVM-MCA-BEGIN15vpcmpeqd %ymm0, %ymm0, %ymm016vpaddd %ymm0, %ymm0, %ymm017# LLVM-MCA-END18 19# LLVM-MCA-BEGIN20vpcmpeqq %ymm0, %ymm0, %ymm021vpaddq %ymm0, %ymm0, %ymm022# LLVM-MCA-END23 24# CHECK: [0] Code Region25 26# CHECK: Iterations: 100027# CHECK-NEXT: Instructions: 200028# CHECK-NEXT: Total Cycles: 50429# CHECK-NEXT: Total uOps: 200030 31# CHECK: Dispatch Width: 632# CHECK-NEXT: uOps Per Cycle: 3.9733# CHECK-NEXT: IPC: 3.9734# CHECK-NEXT: Block RThroughput: 0.535 36# CHECK: Instruction Info:37# CHECK-NEXT: [1]: #uOps38# CHECK-NEXT: [2]: Latency39# CHECK-NEXT: [3]: RThroughput40# CHECK-NEXT: [4]: MayLoad41# CHECK-NEXT: [5]: MayStore42# CHECK-NEXT: [6]: HasSideEffects (U)43 44# CHECK: [1] [2] [3] [4] [5] [6] Instructions:45# CHECK-NEXT: 1 1 0.25 vpcmpeqb %ymm0, %ymm0, %ymm046# CHECK-NEXT: 1 1 0.25 vpaddb %ymm0, %ymm0, %ymm047 48# CHECK: Register File statistics:49# CHECK-NEXT: Total number of mappings created: 200050# CHECK-NEXT: Max number of mappings used: 7451 52# CHECK: * Register File #1 -- Zn3FpPRF:53# CHECK-NEXT: Number of physical registers: 16054# CHECK-NEXT: Total number of mappings created: 200055# CHECK-NEXT: Max number of mappings used: 7456 57# CHECK: * Register File #2 -- Zn3IntegerPRF:58# CHECK-NEXT: Number of physical registers: 19259# CHECK-NEXT: Total number of mappings created: 060# CHECK-NEXT: Max number of mappings used: 061 62# CHECK: Resources:63# CHECK-NEXT: [0] - Zn3AGU064# CHECK-NEXT: [1] - Zn3AGU165# CHECK-NEXT: [2] - Zn3AGU266# CHECK-NEXT: [3] - Zn3ALU067# CHECK-NEXT: [4] - Zn3ALU168# CHECK-NEXT: [5] - Zn3ALU269# CHECK-NEXT: [6] - Zn3ALU370# CHECK-NEXT: [7] - Zn3BRU171# CHECK-NEXT: [8] - Zn3FP072# CHECK-NEXT: [9] - Zn3FP173# CHECK-NEXT: [10] - Zn3FP274# CHECK-NEXT: [11] - Zn3FP375# CHECK-NEXT: [12.0] - Zn3FP4576# CHECK-NEXT: [12.1] - Zn3FP4577# CHECK-NEXT: [13] - Zn3FPSt78# CHECK-NEXT: [14.0] - Zn3LSU79# CHECK-NEXT: [14.1] - Zn3LSU80# CHECK-NEXT: [14.2] - Zn3LSU81# CHECK-NEXT: [15.0] - Zn3Load82# CHECK-NEXT: [15.1] - Zn3Load83# CHECK-NEXT: [15.2] - Zn3Load84# CHECK-NEXT: [16.0] - Zn3Store85# CHECK-NEXT: [16.1] - Zn3Store86 87# CHECK: Resource pressure per iteration:88# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]89# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -90 91# CHECK: Resource pressure by instruction:92# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:93# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - vpcmpeqb %ymm0, %ymm0, %ymm094# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - vpaddb %ymm0, %ymm0, %ymm095 96# CHECK: Timeline view:97# CHECK-NEXT: Index 0123498 99# CHECK: [0,0] DeER. vpcmpeqb %ymm0, %ymm0, %ymm0100# CHECK-NEXT: [0,1] D=eER vpaddb %ymm0, %ymm0, %ymm0101# CHECK-NEXT: [1,0] DeE-R vpcmpeqb %ymm0, %ymm0, %ymm0102# CHECK-NEXT: [1,1] D=eER vpaddb %ymm0, %ymm0, %ymm0103 104# CHECK: Average Wait times (based on the timeline view):105# CHECK-NEXT: [0]: Executions106# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue107# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready108# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage109 110# CHECK: [0] [1] [2] [3]111# CHECK-NEXT: 0. 2 1.0 1.0 0.5 vpcmpeqb %ymm0, %ymm0, %ymm0112# CHECK-NEXT: 1. 2 2.0 0.0 0.0 vpaddb %ymm0, %ymm0, %ymm0113# CHECK-NEXT: 2 1.5 0.5 0.3 <total>114 115# CHECK: [1] Code Region116 117# CHECK: Iterations: 1000118# CHECK-NEXT: Instructions: 2000119# CHECK-NEXT: Total Cycles: 504120# CHECK-NEXT: Total uOps: 2000121 122# CHECK: Dispatch Width: 6123# CHECK-NEXT: uOps Per Cycle: 3.97124# CHECK-NEXT: IPC: 3.97125# CHECK-NEXT: Block RThroughput: 0.5126 127# CHECK: Instruction Info:128# CHECK-NEXT: [1]: #uOps129# CHECK-NEXT: [2]: Latency130# CHECK-NEXT: [3]: RThroughput131# CHECK-NEXT: [4]: MayLoad132# CHECK-NEXT: [5]: MayStore133# CHECK-NEXT: [6]: HasSideEffects (U)134 135# CHECK: [1] [2] [3] [4] [5] [6] Instructions:136# CHECK-NEXT: 1 1 0.25 vpcmpeqw %ymm0, %ymm0, %ymm0137# CHECK-NEXT: 1 1 0.25 vpaddw %ymm0, %ymm0, %ymm0138 139# CHECK: Register File statistics:140# CHECK-NEXT: Total number of mappings created: 2000141# CHECK-NEXT: Max number of mappings used: 74142 143# CHECK: * Register File #1 -- Zn3FpPRF:144# CHECK-NEXT: Number of physical registers: 160145# CHECK-NEXT: Total number of mappings created: 2000146# CHECK-NEXT: Max number of mappings used: 74147 148# CHECK: * Register File #2 -- Zn3IntegerPRF:149# CHECK-NEXT: Number of physical registers: 192150# CHECK-NEXT: Total number of mappings created: 0151# CHECK-NEXT: Max number of mappings used: 0152 153# CHECK: Resources:154# CHECK-NEXT: [0] - Zn3AGU0155# CHECK-NEXT: [1] - Zn3AGU1156# CHECK-NEXT: [2] - Zn3AGU2157# CHECK-NEXT: [3] - Zn3ALU0158# CHECK-NEXT: [4] - Zn3ALU1159# CHECK-NEXT: [5] - Zn3ALU2160# CHECK-NEXT: [6] - Zn3ALU3161# CHECK-NEXT: [7] - Zn3BRU1162# CHECK-NEXT: [8] - Zn3FP0163# CHECK-NEXT: [9] - Zn3FP1164# CHECK-NEXT: [10] - Zn3FP2165# CHECK-NEXT: [11] - Zn3FP3166# CHECK-NEXT: [12.0] - Zn3FP45167# CHECK-NEXT: [12.1] - Zn3FP45168# CHECK-NEXT: [13] - Zn3FPSt169# CHECK-NEXT: [14.0] - Zn3LSU170# CHECK-NEXT: [14.1] - Zn3LSU171# CHECK-NEXT: [14.2] - Zn3LSU172# CHECK-NEXT: [15.0] - Zn3Load173# CHECK-NEXT: [15.1] - Zn3Load174# CHECK-NEXT: [15.2] - Zn3Load175# CHECK-NEXT: [16.0] - Zn3Store176# CHECK-NEXT: [16.1] - Zn3Store177 178# CHECK: Resource pressure per iteration:179# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]180# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -181 182# CHECK: Resource pressure by instruction:183# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:184# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - vpcmpeqw %ymm0, %ymm0, %ymm0185# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - vpaddw %ymm0, %ymm0, %ymm0186 187# CHECK: Timeline view:188# CHECK-NEXT: Index 01234189 190# CHECK: [0,0] DeER. vpcmpeqw %ymm0, %ymm0, %ymm0191# CHECK-NEXT: [0,1] D=eER vpaddw %ymm0, %ymm0, %ymm0192# CHECK-NEXT: [1,0] DeE-R vpcmpeqw %ymm0, %ymm0, %ymm0193# CHECK-NEXT: [1,1] D=eER vpaddw %ymm0, %ymm0, %ymm0194 195# CHECK: Average Wait times (based on the timeline view):196# CHECK-NEXT: [0]: Executions197# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue198# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready199# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage200 201# CHECK: [0] [1] [2] [3]202# CHECK-NEXT: 0. 2 1.0 1.0 0.5 vpcmpeqw %ymm0, %ymm0, %ymm0203# CHECK-NEXT: 1. 2 2.0 0.0 0.0 vpaddw %ymm0, %ymm0, %ymm0204# CHECK-NEXT: 2 1.5 0.5 0.3 <total>205 206# CHECK: [2] Code Region207 208# CHECK: Iterations: 1000209# CHECK-NEXT: Instructions: 2000210# CHECK-NEXT: Total Cycles: 504211# CHECK-NEXT: Total uOps: 2000212 213# CHECK: Dispatch Width: 6214# CHECK-NEXT: uOps Per Cycle: 3.97215# CHECK-NEXT: IPC: 3.97216# CHECK-NEXT: Block RThroughput: 0.5217 218# CHECK: Instruction Info:219# CHECK-NEXT: [1]: #uOps220# CHECK-NEXT: [2]: Latency221# CHECK-NEXT: [3]: RThroughput222# CHECK-NEXT: [4]: MayLoad223# CHECK-NEXT: [5]: MayStore224# CHECK-NEXT: [6]: HasSideEffects (U)225 226# CHECK: [1] [2] [3] [4] [5] [6] Instructions:227# CHECK-NEXT: 1 1 0.25 vpcmpeqd %ymm0, %ymm0, %ymm0228# CHECK-NEXT: 1 1 0.25 vpaddd %ymm0, %ymm0, %ymm0229 230# CHECK: Register File statistics:231# CHECK-NEXT: Total number of mappings created: 2000232# CHECK-NEXT: Max number of mappings used: 74233 234# CHECK: * Register File #1 -- Zn3FpPRF:235# CHECK-NEXT: Number of physical registers: 160236# CHECK-NEXT: Total number of mappings created: 2000237# CHECK-NEXT: Max number of mappings used: 74238 239# CHECK: * Register File #2 -- Zn3IntegerPRF:240# CHECK-NEXT: Number of physical registers: 192241# CHECK-NEXT: Total number of mappings created: 0242# CHECK-NEXT: Max number of mappings used: 0243 244# CHECK: Resources:245# CHECK-NEXT: [0] - Zn3AGU0246# CHECK-NEXT: [1] - Zn3AGU1247# CHECK-NEXT: [2] - Zn3AGU2248# CHECK-NEXT: [3] - Zn3ALU0249# CHECK-NEXT: [4] - Zn3ALU1250# CHECK-NEXT: [5] - Zn3ALU2251# CHECK-NEXT: [6] - Zn3ALU3252# CHECK-NEXT: [7] - Zn3BRU1253# CHECK-NEXT: [8] - Zn3FP0254# CHECK-NEXT: [9] - Zn3FP1255# CHECK-NEXT: [10] - Zn3FP2256# CHECK-NEXT: [11] - Zn3FP3257# CHECK-NEXT: [12.0] - Zn3FP45258# CHECK-NEXT: [12.1] - Zn3FP45259# CHECK-NEXT: [13] - Zn3FPSt260# CHECK-NEXT: [14.0] - Zn3LSU261# CHECK-NEXT: [14.1] - Zn3LSU262# CHECK-NEXT: [14.2] - Zn3LSU263# CHECK-NEXT: [15.0] - Zn3Load264# CHECK-NEXT: [15.1] - Zn3Load265# CHECK-NEXT: [15.2] - Zn3Load266# CHECK-NEXT: [16.0] - Zn3Store267# CHECK-NEXT: [16.1] - Zn3Store268 269# CHECK: Resource pressure per iteration:270# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]271# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -272 273# CHECK: Resource pressure by instruction:274# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:275# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - vpcmpeqd %ymm0, %ymm0, %ymm0276# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - vpaddd %ymm0, %ymm0, %ymm0277 278# CHECK: Timeline view:279# CHECK-NEXT: Index 01234280 281# CHECK: [0,0] DeER. vpcmpeqd %ymm0, %ymm0, %ymm0282# CHECK-NEXT: [0,1] D=eER vpaddd %ymm0, %ymm0, %ymm0283# CHECK-NEXT: [1,0] DeE-R vpcmpeqd %ymm0, %ymm0, %ymm0284# CHECK-NEXT: [1,1] D=eER vpaddd %ymm0, %ymm0, %ymm0285 286# CHECK: Average Wait times (based on the timeline view):287# CHECK-NEXT: [0]: Executions288# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue289# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready290# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage291 292# CHECK: [0] [1] [2] [3]293# CHECK-NEXT: 0. 2 1.0 1.0 0.5 vpcmpeqd %ymm0, %ymm0, %ymm0294# CHECK-NEXT: 1. 2 2.0 0.0 0.0 vpaddd %ymm0, %ymm0, %ymm0295# CHECK-NEXT: 2 1.5 0.5 0.3 <total>296 297# CHECK: [3] Code Region298 299# CHECK: Iterations: 1000300# CHECK-NEXT: Instructions: 2000301# CHECK-NEXT: Total Cycles: 504302# CHECK-NEXT: Total uOps: 2000303 304# CHECK: Dispatch Width: 6305# CHECK-NEXT: uOps Per Cycle: 3.97306# CHECK-NEXT: IPC: 3.97307# CHECK-NEXT: Block RThroughput: 0.5308 309# CHECK: Instruction Info:310# CHECK-NEXT: [1]: #uOps311# CHECK-NEXT: [2]: Latency312# CHECK-NEXT: [3]: RThroughput313# CHECK-NEXT: [4]: MayLoad314# CHECK-NEXT: [5]: MayStore315# CHECK-NEXT: [6]: HasSideEffects (U)316 317# CHECK: [1] [2] [3] [4] [5] [6] Instructions:318# CHECK-NEXT: 1 1 0.50 vpcmpeqq %ymm0, %ymm0, %ymm0319# CHECK-NEXT: 1 1 0.25 vpaddq %ymm0, %ymm0, %ymm0320 321# CHECK: Register File statistics:322# CHECK-NEXT: Total number of mappings created: 2000323# CHECK-NEXT: Max number of mappings used: 73324 325# CHECK: * Register File #1 -- Zn3FpPRF:326# CHECK-NEXT: Number of physical registers: 160327# CHECK-NEXT: Total number of mappings created: 2000328# CHECK-NEXT: Max number of mappings used: 73329 330# CHECK: * Register File #2 -- Zn3IntegerPRF:331# CHECK-NEXT: Number of physical registers: 192332# CHECK-NEXT: Total number of mappings created: 0333# CHECK-NEXT: Max number of mappings used: 0334 335# CHECK: Resources:336# CHECK-NEXT: [0] - Zn3AGU0337# CHECK-NEXT: [1] - Zn3AGU1338# CHECK-NEXT: [2] - Zn3AGU2339# CHECK-NEXT: [3] - Zn3ALU0340# CHECK-NEXT: [4] - Zn3ALU1341# CHECK-NEXT: [5] - Zn3ALU2342# CHECK-NEXT: [6] - Zn3ALU3343# CHECK-NEXT: [7] - Zn3BRU1344# CHECK-NEXT: [8] - Zn3FP0345# CHECK-NEXT: [9] - Zn3FP1346# CHECK-NEXT: [10] - Zn3FP2347# CHECK-NEXT: [11] - Zn3FP3348# CHECK-NEXT: [12.0] - Zn3FP45349# CHECK-NEXT: [12.1] - Zn3FP45350# CHECK-NEXT: [13] - Zn3FPSt351# CHECK-NEXT: [14.0] - Zn3LSU352# CHECK-NEXT: [14.1] - Zn3LSU353# CHECK-NEXT: [14.2] - Zn3LSU354# CHECK-NEXT: [15.0] - Zn3Load355# CHECK-NEXT: [15.1] - Zn3Load356# CHECK-NEXT: [15.2] - Zn3Load357# CHECK-NEXT: [16.0] - Zn3Store358# CHECK-NEXT: [16.1] - Zn3Store359 360# CHECK: Resource pressure per iteration:361# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]362# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -363 364# CHECK: Resource pressure by instruction:365# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:366# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - - - - - - - - vpcmpeqq %ymm0, %ymm0, %ymm0367# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - vpaddq %ymm0, %ymm0, %ymm0368 369# CHECK: Timeline view:370# CHECK-NEXT: Index 01234371 372# CHECK: [0,0] DeER. vpcmpeqq %ymm0, %ymm0, %ymm0373# CHECK-NEXT: [0,1] D=eER vpaddq %ymm0, %ymm0, %ymm0374# CHECK-NEXT: [1,0] DeE-R vpcmpeqq %ymm0, %ymm0, %ymm0375# CHECK-NEXT: [1,1] D=eER vpaddq %ymm0, %ymm0, %ymm0376 377# CHECK: Average Wait times (based on the timeline view):378# CHECK-NEXT: [0]: Executions379# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue380# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready381# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage382 383# CHECK: [0] [1] [2] [3]384# CHECK-NEXT: 0. 2 1.0 1.0 0.5 vpcmpeqq %ymm0, %ymm0, %ymm0385# CHECK-NEXT: 1. 2 2.0 0.0 0.0 vpaddq %ymm0, %ymm0, %ymm0386# CHECK-NEXT: 2 1.5 0.5 0.3 <total>387