291 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-BEGIN5pcmpeqb %mm0, %mm06paddb %mm0, %mm07# LLVM-MCA-END8 9# LLVM-MCA-BEGIN10pcmpeqw %mm0, %mm011paddw %mm0, %mm012# LLVM-MCA-END13 14# LLVM-MCA-BEGIN15pcmpeqd %mm0, %mm016paddd %mm0, %mm017# LLVM-MCA-END18 19# CHECK: [0] Code Region20 21# CHECK: Iterations: 100022# CHECK-NEXT: Instructions: 200023# CHECK-NEXT: Total Cycles: 50424# CHECK-NEXT: Total uOps: 200025 26# CHECK: Dispatch Width: 627# CHECK-NEXT: uOps Per Cycle: 3.9728# CHECK-NEXT: IPC: 3.9729# CHECK-NEXT: Block RThroughput: 0.530 31# CHECK: Instruction Info:32# CHECK-NEXT: [1]: #uOps33# CHECK-NEXT: [2]: Latency34# CHECK-NEXT: [3]: RThroughput35# CHECK-NEXT: [4]: MayLoad36# CHECK-NEXT: [5]: MayStore37# CHECK-NEXT: [6]: HasSideEffects (U)38 39# CHECK: [1] [2] [3] [4] [5] [6] Instructions:40# CHECK-NEXT: 1 1 0.25 pcmpeqb %mm0, %mm041# CHECK-NEXT: 1 1 0.25 paddb %mm0, %mm042 43# CHECK: Register File statistics:44# CHECK-NEXT: Total number of mappings created: 200045# CHECK-NEXT: Max number of mappings used: 7446 47# CHECK: * Register File #1 -- Zn3FpPRF:48# CHECK-NEXT: Number of physical registers: 16049# CHECK-NEXT: Total number of mappings created: 200050# CHECK-NEXT: Max number of mappings used: 7451 52# CHECK: * Register File #2 -- Zn3IntegerPRF:53# CHECK-NEXT: Number of physical registers: 19254# CHECK-NEXT: Total number of mappings created: 055# CHECK-NEXT: Max number of mappings used: 056 57# CHECK: Resources:58# CHECK-NEXT: [0] - Zn3AGU059# CHECK-NEXT: [1] - Zn3AGU160# CHECK-NEXT: [2] - Zn3AGU261# CHECK-NEXT: [3] - Zn3ALU062# CHECK-NEXT: [4] - Zn3ALU163# CHECK-NEXT: [5] - Zn3ALU264# CHECK-NEXT: [6] - Zn3ALU365# CHECK-NEXT: [7] - Zn3BRU166# CHECK-NEXT: [8] - Zn3FP067# CHECK-NEXT: [9] - Zn3FP168# CHECK-NEXT: [10] - Zn3FP269# CHECK-NEXT: [11] - Zn3FP370# CHECK-NEXT: [12.0] - Zn3FP4571# CHECK-NEXT: [12.1] - Zn3FP4572# CHECK-NEXT: [13] - Zn3FPSt73# CHECK-NEXT: [14.0] - Zn3LSU74# CHECK-NEXT: [14.1] - Zn3LSU75# CHECK-NEXT: [14.2] - Zn3LSU76# CHECK-NEXT: [15.0] - Zn3Load77# CHECK-NEXT: [15.1] - Zn3Load78# CHECK-NEXT: [15.2] - Zn3Load79# CHECK-NEXT: [16.0] - Zn3Store80# CHECK-NEXT: [16.1] - Zn3Store81 82# CHECK: Resource pressure per iteration:83# 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]84# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -85 86# CHECK: Resource pressure by instruction:87# 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:88# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqb %mm0, %mm089# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddb %mm0, %mm090 91# CHECK: Timeline view:92# CHECK-NEXT: Index 0123493 94# CHECK: [0,0] DeER. pcmpeqb %mm0, %mm095# CHECK-NEXT: [0,1] D=eER paddb %mm0, %mm096# CHECK-NEXT: [1,0] DeE-R pcmpeqb %mm0, %mm097# CHECK-NEXT: [1,1] D=eER paddb %mm0, %mm098 99# CHECK: Average Wait times (based on the timeline view):100# CHECK-NEXT: [0]: Executions101# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue102# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready103# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage104 105# CHECK: [0] [1] [2] [3]106# CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqb %mm0, %mm0107# CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddb %mm0, %mm0108# CHECK-NEXT: 2 1.5 0.5 0.3 <total>109 110# CHECK: [1] Code Region111 112# CHECK: Iterations: 1000113# CHECK-NEXT: Instructions: 2000114# CHECK-NEXT: Total Cycles: 504115# CHECK-NEXT: Total uOps: 2000116 117# CHECK: Dispatch Width: 6118# CHECK-NEXT: uOps Per Cycle: 3.97119# CHECK-NEXT: IPC: 3.97120# CHECK-NEXT: Block RThroughput: 0.5121 122# CHECK: Instruction Info:123# CHECK-NEXT: [1]: #uOps124# CHECK-NEXT: [2]: Latency125# CHECK-NEXT: [3]: RThroughput126# CHECK-NEXT: [4]: MayLoad127# CHECK-NEXT: [5]: MayStore128# CHECK-NEXT: [6]: HasSideEffects (U)129 130# CHECK: [1] [2] [3] [4] [5] [6] Instructions:131# CHECK-NEXT: 1 1 0.25 pcmpeqw %mm0, %mm0132# CHECK-NEXT: 1 1 0.25 paddw %mm0, %mm0133 134# CHECK: Register File statistics:135# CHECK-NEXT: Total number of mappings created: 2000136# CHECK-NEXT: Max number of mappings used: 74137 138# CHECK: * Register File #1 -- Zn3FpPRF:139# CHECK-NEXT: Number of physical registers: 160140# CHECK-NEXT: Total number of mappings created: 2000141# CHECK-NEXT: Max number of mappings used: 74142 143# CHECK: * Register File #2 -- Zn3IntegerPRF:144# CHECK-NEXT: Number of physical registers: 192145# CHECK-NEXT: Total number of mappings created: 0146# CHECK-NEXT: Max number of mappings used: 0147 148# CHECK: Resources:149# CHECK-NEXT: [0] - Zn3AGU0150# CHECK-NEXT: [1] - Zn3AGU1151# CHECK-NEXT: [2] - Zn3AGU2152# CHECK-NEXT: [3] - Zn3ALU0153# CHECK-NEXT: [4] - Zn3ALU1154# CHECK-NEXT: [5] - Zn3ALU2155# CHECK-NEXT: [6] - Zn3ALU3156# CHECK-NEXT: [7] - Zn3BRU1157# CHECK-NEXT: [8] - Zn3FP0158# CHECK-NEXT: [9] - Zn3FP1159# CHECK-NEXT: [10] - Zn3FP2160# CHECK-NEXT: [11] - Zn3FP3161# CHECK-NEXT: [12.0] - Zn3FP45162# CHECK-NEXT: [12.1] - Zn3FP45163# CHECK-NEXT: [13] - Zn3FPSt164# CHECK-NEXT: [14.0] - Zn3LSU165# CHECK-NEXT: [14.1] - Zn3LSU166# CHECK-NEXT: [14.2] - Zn3LSU167# CHECK-NEXT: [15.0] - Zn3Load168# CHECK-NEXT: [15.1] - Zn3Load169# CHECK-NEXT: [15.2] - Zn3Load170# CHECK-NEXT: [16.0] - Zn3Store171# CHECK-NEXT: [16.1] - Zn3Store172 173# CHECK: Resource pressure per iteration:174# 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]175# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -176 177# CHECK: Resource pressure by instruction:178# 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:179# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqw %mm0, %mm0180# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddw %mm0, %mm0181 182# CHECK: Timeline view:183# CHECK-NEXT: Index 01234184 185# CHECK: [0,0] DeER. pcmpeqw %mm0, %mm0186# CHECK-NEXT: [0,1] D=eER paddw %mm0, %mm0187# CHECK-NEXT: [1,0] DeE-R pcmpeqw %mm0, %mm0188# CHECK-NEXT: [1,1] D=eER paddw %mm0, %mm0189 190# CHECK: Average Wait times (based on the timeline view):191# CHECK-NEXT: [0]: Executions192# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue193# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready194# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage195 196# CHECK: [0] [1] [2] [3]197# CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqw %mm0, %mm0198# CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddw %mm0, %mm0199# CHECK-NEXT: 2 1.5 0.5 0.3 <total>200 201# CHECK: [2] Code Region202 203# CHECK: Iterations: 1000204# CHECK-NEXT: Instructions: 2000205# CHECK-NEXT: Total Cycles: 504206# CHECK-NEXT: Total uOps: 2000207 208# CHECK: Dispatch Width: 6209# CHECK-NEXT: uOps Per Cycle: 3.97210# CHECK-NEXT: IPC: 3.97211# CHECK-NEXT: Block RThroughput: 0.5212 213# CHECK: Instruction Info:214# CHECK-NEXT: [1]: #uOps215# CHECK-NEXT: [2]: Latency216# CHECK-NEXT: [3]: RThroughput217# CHECK-NEXT: [4]: MayLoad218# CHECK-NEXT: [5]: MayStore219# CHECK-NEXT: [6]: HasSideEffects (U)220 221# CHECK: [1] [2] [3] [4] [5] [6] Instructions:222# CHECK-NEXT: 1 1 0.25 pcmpeqd %mm0, %mm0223# CHECK-NEXT: 1 1 0.25 paddd %mm0, %mm0224 225# CHECK: Register File statistics:226# CHECK-NEXT: Total number of mappings created: 2000227# CHECK-NEXT: Max number of mappings used: 74228 229# CHECK: * Register File #1 -- Zn3FpPRF:230# CHECK-NEXT: Number of physical registers: 160231# CHECK-NEXT: Total number of mappings created: 2000232# CHECK-NEXT: Max number of mappings used: 74233 234# CHECK: * Register File #2 -- Zn3IntegerPRF:235# CHECK-NEXT: Number of physical registers: 192236# CHECK-NEXT: Total number of mappings created: 0237# CHECK-NEXT: Max number of mappings used: 0238 239# CHECK: Resources:240# CHECK-NEXT: [0] - Zn3AGU0241# CHECK-NEXT: [1] - Zn3AGU1242# CHECK-NEXT: [2] - Zn3AGU2243# CHECK-NEXT: [3] - Zn3ALU0244# CHECK-NEXT: [4] - Zn3ALU1245# CHECK-NEXT: [5] - Zn3ALU2246# CHECK-NEXT: [6] - Zn3ALU3247# CHECK-NEXT: [7] - Zn3BRU1248# CHECK-NEXT: [8] - Zn3FP0249# CHECK-NEXT: [9] - Zn3FP1250# CHECK-NEXT: [10] - Zn3FP2251# CHECK-NEXT: [11] - Zn3FP3252# CHECK-NEXT: [12.0] - Zn3FP45253# CHECK-NEXT: [12.1] - Zn3FP45254# CHECK-NEXT: [13] - Zn3FPSt255# CHECK-NEXT: [14.0] - Zn3LSU256# CHECK-NEXT: [14.1] - Zn3LSU257# CHECK-NEXT: [14.2] - Zn3LSU258# CHECK-NEXT: [15.0] - Zn3Load259# CHECK-NEXT: [15.1] - Zn3Load260# CHECK-NEXT: [15.2] - Zn3Load261# CHECK-NEXT: [16.0] - Zn3Store262# CHECK-NEXT: [16.1] - Zn3Store263 264# CHECK: Resource pressure per iteration:265# 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]266# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -267 268# CHECK: Resource pressure by instruction:269# 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:270# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqd %mm0, %mm0271# CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddd %mm0, %mm0272 273# CHECK: Timeline view:274# CHECK-NEXT: Index 01234275 276# CHECK: [0,0] DeER. pcmpeqd %mm0, %mm0277# CHECK-NEXT: [0,1] D=eER paddd %mm0, %mm0278# CHECK-NEXT: [1,0] DeE-R pcmpeqd %mm0, %mm0279# CHECK-NEXT: [1,1] D=eER paddd %mm0, %mm0280 281# CHECK: Average Wait times (based on the timeline view):282# CHECK-NEXT: [0]: Executions283# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue284# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready285# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage286 287# CHECK: [0] [1] [2] [3]288# CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqd %mm0, %mm0289# CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddd %mm0, %mm0290# CHECK-NEXT: 2 1.5 0.5 0.3 <total>291