1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -scheduler-stats -dispatch-stats -iterations=100 -timeline -timeline-max-iterations=1 < %s | FileCheck %s 3 4# LLVM-MCA-BEGIN 5movb %spl, (%rax) 6movb (%rcx), %bpl 7movb (%rdx), %sil 8movb %dil, (%rbx) 9# LLVM-MCA-END 10 11# LLVM-MCA-BEGIN 12movw %sp, (%rax) 13movw (%rcx), %bp 14movw (%rdx), %si 15movw %di, (%rbx) 16# LLVM-MCA-END 17 18# LLVM-MCA-BEGIN 19movl %esp, (%rax) 20movl (%rcx), %ebp 21movl (%rdx), %esi 22movl %edi, (%rbx) 23# LLVM-MCA-END 24 25# LLVM-MCA-BEGIN 26movq %rsp, (%rax) 27movq (%rcx), %rbp 28movq (%rdx), %rsi 29movq %rdi, (%rbx) 30# LLVM-MCA-END 31 32# LLVM-MCA-BEGIN 33movd %mm0, (%rax) 34movd (%rcx), %mm1 35movd (%rdx), %mm2 36movd %mm3, (%rbx) 37# LLVM-MCA-END 38 39# LLVM-MCA-BEGIN 40movaps %xmm0, (%rax) 41movaps (%rcx), %xmm1 42movaps (%rdx), %xmm2 43movaps %xmm3, (%rbx) 44# LLVM-MCA-END 45 46# CHECK: [0] Code Region 47 48# CHECK: Iterations: 100 49# CHECK-NEXT: Instructions: 400 50# CHECK-NEXT: Total Cycles: 306 51# CHECK-NEXT: Total uOps: 400 52 53# CHECK: Dispatch Width: 4 54# CHECK-NEXT: uOps Per Cycle: 1.31 55# CHECK-NEXT: IPC: 1.31 56# CHECK-NEXT: Block RThroughput: 3.0 57 58# CHECK: Instruction Info: 59# CHECK-NEXT: [1]: #uOps 60# CHECK-NEXT: [2]: Latency 61# CHECK-NEXT: [3]: RThroughput 62# CHECK-NEXT: [4]: MayLoad 63# CHECK-NEXT: [5]: MayStore 64# CHECK-NEXT: [6]: HasSideEffects (U) 65 66# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 67# CHECK-NEXT: 1 1 1.00 * movb %spl, (%rax) 68# CHECK-NEXT: 1 5 1.00 * movb (%rcx), %bpl 69# CHECK-NEXT: 1 5 1.00 * movb (%rdx), %sil 70# CHECK-NEXT: 1 1 1.00 * movb %dil, (%rbx) 71 72# CHECK: Dynamic Dispatch Stall Cycles: 73# CHECK-NEXT: RAT - Register unavailable: 0 74# CHECK-NEXT: RCU - Retire tokens unavailable: 0 75# CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%) 76# CHECK-NEXT: LQ - Load queue full: 0 77# CHECK-NEXT: SQ - Store queue full: 0 78# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 79# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 80 81# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 82# CHECK-NEXT: [# dispatched], [# cycles] 83# CHECK-NEXT: 0, 35 (11.4%) 84# CHECK-NEXT: 1, 171 (55.9%) 85# CHECK-NEXT: 2, 85 (27.8%) 86# CHECK-NEXT: 3, 1 (0.3%) 87# CHECK-NEXT: 4, 14 (4.6%) 88 89# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 90# CHECK-NEXT: [# issued], [# cycles] 91# CHECK-NEXT: 0, 6 (2.0%) 92# CHECK-NEXT: 1, 200 (65.4%) 93# CHECK-NEXT: 2, 100 (32.7%) 94 95# CHECK: Scheduler's queue usage: 96# CHECK-NEXT: [1] Resource name. 97# CHECK-NEXT: [2] Average number of used buffer entries. 98# CHECK-NEXT: [3] Maximum number of used buffer entries. 99# CHECK-NEXT: [4] Total number of buffer entries. 100 101# CHECK: [1] [2] [3] [4] 102# CHECK-NEXT: PdEX 36 40 40 103# CHECK-NEXT: PdFPU 0 0 64 104# CHECK-NEXT: PdLoad 21 24 40 105# CHECK-NEXT: PdStore 18 21 24 106 107# CHECK: Resources: 108# CHECK-NEXT: [0.0] - PdAGLU01 109# CHECK-NEXT: [0.1] - PdAGLU01 110# CHECK-NEXT: [1] - PdBranch 111# CHECK-NEXT: [2] - PdCount 112# CHECK-NEXT: [3] - PdDiv 113# CHECK-NEXT: [4] - PdEX0 114# CHECK-NEXT: [5] - PdEX1 115# CHECK-NEXT: [6] - PdFPCVT 116# CHECK-NEXT: [7.0] - PdFPFMA 117# CHECK-NEXT: [7.1] - PdFPFMA 118# CHECK-NEXT: [8.0] - PdFPMAL 119# CHECK-NEXT: [8.1] - PdFPMAL 120# CHECK-NEXT: [9] - PdFPMMA 121# CHECK-NEXT: [10] - PdFPSTO 122# CHECK-NEXT: [11] - PdFPU0 123# CHECK-NEXT: [12] - PdFPU1 124# CHECK-NEXT: [13] - PdFPU2 125# CHECK-NEXT: [14] - PdFPU3 126# CHECK-NEXT: [15] - PdFPXBR 127# CHECK-NEXT: [16.0] - PdLoad 128# CHECK-NEXT: [16.1] - PdLoad 129# CHECK-NEXT: [17] - PdMul 130# CHECK-NEXT: [18] - PdStore 131 132# CHECK: Resource pressure per iteration: 133# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 134# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00 135 136# CHECK: Resource pressure by instruction: 137# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 138# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movb %spl, (%rax) 139# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rcx), %bpl 140# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rdx), %sil 141# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movb %dil, (%rbx) 142 143# CHECK: Timeline view: 144# CHECK-NEXT: Index 012345678 145 146# CHECK: [0,0] DeER . . movb %spl, (%rax) 147# CHECK-NEXT: [0,1] DeeeeeER. movb (%rcx), %bpl 148# CHECK-NEXT: [0,2] D=eeeeeER movb (%rdx), %sil 149# CHECK-NEXT: [0,3] D==eE---R movb %dil, (%rbx) 150 151# CHECK: Average Wait times (based on the timeline view): 152# CHECK-NEXT: [0]: Executions 153# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 154# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 155# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 156 157# CHECK: [0] [1] [2] [3] 158# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb %spl, (%rax) 159# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl 160# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil 161# CHECK-NEXT: 3. 1 3.0 1.0 3.0 movb %dil, (%rbx) 162# CHECK-NEXT: 1 1.8 1.3 0.8 <total> 163 164# CHECK: [1] Code Region 165 166# CHECK: Iterations: 100 167# CHECK-NEXT: Instructions: 400 168# CHECK-NEXT: Total Cycles: 306 169# CHECK-NEXT: Total uOps: 400 170 171# CHECK: Dispatch Width: 4 172# CHECK-NEXT: uOps Per Cycle: 1.31 173# CHECK-NEXT: IPC: 1.31 174# CHECK-NEXT: Block RThroughput: 3.0 175 176# CHECK: Instruction Info: 177# CHECK-NEXT: [1]: #uOps 178# CHECK-NEXT: [2]: Latency 179# CHECK-NEXT: [3]: RThroughput 180# CHECK-NEXT: [4]: MayLoad 181# CHECK-NEXT: [5]: MayStore 182# CHECK-NEXT: [6]: HasSideEffects (U) 183 184# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 185# CHECK-NEXT: 1 1 1.00 * movw %sp, (%rax) 186# CHECK-NEXT: 1 5 1.00 * movw (%rcx), %bp 187# CHECK-NEXT: 1 5 1.00 * movw (%rdx), %si 188# CHECK-NEXT: 1 1 1.00 * movw %di, (%rbx) 189 190# CHECK: Dynamic Dispatch Stall Cycles: 191# CHECK-NEXT: RAT - Register unavailable: 0 192# CHECK-NEXT: RCU - Retire tokens unavailable: 0 193# CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%) 194# CHECK-NEXT: LQ - Load queue full: 0 195# CHECK-NEXT: SQ - Store queue full: 0 196# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 197# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 198 199# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 200# CHECK-NEXT: [# dispatched], [# cycles] 201# CHECK-NEXT: 0, 35 (11.4%) 202# CHECK-NEXT: 1, 171 (55.9%) 203# CHECK-NEXT: 2, 85 (27.8%) 204# CHECK-NEXT: 3, 1 (0.3%) 205# CHECK-NEXT: 4, 14 (4.6%) 206 207# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 208# CHECK-NEXT: [# issued], [# cycles] 209# CHECK-NEXT: 0, 6 (2.0%) 210# CHECK-NEXT: 1, 200 (65.4%) 211# CHECK-NEXT: 2, 100 (32.7%) 212 213# CHECK: Scheduler's queue usage: 214# CHECK-NEXT: [1] Resource name. 215# CHECK-NEXT: [2] Average number of used buffer entries. 216# CHECK-NEXT: [3] Maximum number of used buffer entries. 217# CHECK-NEXT: [4] Total number of buffer entries. 218 219# CHECK: [1] [2] [3] [4] 220# CHECK-NEXT: PdEX 36 40 40 221# CHECK-NEXT: PdFPU 0 0 64 222# CHECK-NEXT: PdLoad 21 24 40 223# CHECK-NEXT: PdStore 18 21 24 224 225# CHECK: Resources: 226# CHECK-NEXT: [0.0] - PdAGLU01 227# CHECK-NEXT: [0.1] - PdAGLU01 228# CHECK-NEXT: [1] - PdBranch 229# CHECK-NEXT: [2] - PdCount 230# CHECK-NEXT: [3] - PdDiv 231# CHECK-NEXT: [4] - PdEX0 232# CHECK-NEXT: [5] - PdEX1 233# CHECK-NEXT: [6] - PdFPCVT 234# CHECK-NEXT: [7.0] - PdFPFMA 235# CHECK-NEXT: [7.1] - PdFPFMA 236# CHECK-NEXT: [8.0] - PdFPMAL 237# CHECK-NEXT: [8.1] - PdFPMAL 238# CHECK-NEXT: [9] - PdFPMMA 239# CHECK-NEXT: [10] - PdFPSTO 240# CHECK-NEXT: [11] - PdFPU0 241# CHECK-NEXT: [12] - PdFPU1 242# CHECK-NEXT: [13] - PdFPU2 243# CHECK-NEXT: [14] - PdFPU3 244# CHECK-NEXT: [15] - PdFPXBR 245# CHECK-NEXT: [16.0] - PdLoad 246# CHECK-NEXT: [16.1] - PdLoad 247# CHECK-NEXT: [17] - PdMul 248# CHECK-NEXT: [18] - PdStore 249 250# CHECK: Resource pressure per iteration: 251# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 252# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00 253 254# CHECK: Resource pressure by instruction: 255# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 256# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movw %sp, (%rax) 257# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rcx), %bp 258# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rdx), %si 259# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movw %di, (%rbx) 260 261# CHECK: Timeline view: 262# CHECK-NEXT: Index 012345678 263 264# CHECK: [0,0] DeER . . movw %sp, (%rax) 265# CHECK-NEXT: [0,1] DeeeeeER. movw (%rcx), %bp 266# CHECK-NEXT: [0,2] D=eeeeeER movw (%rdx), %si 267# CHECK-NEXT: [0,3] D==eE---R movw %di, (%rbx) 268 269# CHECK: Average Wait times (based on the timeline view): 270# CHECK-NEXT: [0]: Executions 271# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 272# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 273# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 274 275# CHECK: [0] [1] [2] [3] 276# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw %sp, (%rax) 277# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp 278# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si 279# CHECK-NEXT: 3. 1 3.0 1.0 3.0 movw %di, (%rbx) 280# CHECK-NEXT: 1 1.8 1.3 0.8 <total> 281 282# CHECK: [2] Code Region 283 284# CHECK: Iterations: 100 285# CHECK-NEXT: Instructions: 400 286# CHECK-NEXT: Total Cycles: 306 287# CHECK-NEXT: Total uOps: 400 288 289# CHECK: Dispatch Width: 4 290# CHECK-NEXT: uOps Per Cycle: 1.31 291# CHECK-NEXT: IPC: 1.31 292# CHECK-NEXT: Block RThroughput: 3.0 293 294# CHECK: Instruction Info: 295# CHECK-NEXT: [1]: #uOps 296# CHECK-NEXT: [2]: Latency 297# CHECK-NEXT: [3]: RThroughput 298# CHECK-NEXT: [4]: MayLoad 299# CHECK-NEXT: [5]: MayStore 300# CHECK-NEXT: [6]: HasSideEffects (U) 301 302# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 303# CHECK-NEXT: 1 1 1.00 * movl %esp, (%rax) 304# CHECK-NEXT: 1 5 1.00 * movl (%rcx), %ebp 305# CHECK-NEXT: 1 5 1.00 * movl (%rdx), %esi 306# CHECK-NEXT: 1 1 1.00 * movl %edi, (%rbx) 307 308# CHECK: Dynamic Dispatch Stall Cycles: 309# CHECK-NEXT: RAT - Register unavailable: 0 310# CHECK-NEXT: RCU - Retire tokens unavailable: 0 311# CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%) 312# CHECK-NEXT: LQ - Load queue full: 0 313# CHECK-NEXT: SQ - Store queue full: 0 314# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 315# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 316 317# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 318# CHECK-NEXT: [# dispatched], [# cycles] 319# CHECK-NEXT: 0, 35 (11.4%) 320# CHECK-NEXT: 1, 171 (55.9%) 321# CHECK-NEXT: 2, 85 (27.8%) 322# CHECK-NEXT: 3, 1 (0.3%) 323# CHECK-NEXT: 4, 14 (4.6%) 324 325# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 326# CHECK-NEXT: [# issued], [# cycles] 327# CHECK-NEXT: 0, 6 (2.0%) 328# CHECK-NEXT: 1, 200 (65.4%) 329# CHECK-NEXT: 2, 100 (32.7%) 330 331# CHECK: Scheduler's queue usage: 332# CHECK-NEXT: [1] Resource name. 333# CHECK-NEXT: [2] Average number of used buffer entries. 334# CHECK-NEXT: [3] Maximum number of used buffer entries. 335# CHECK-NEXT: [4] Total number of buffer entries. 336 337# CHECK: [1] [2] [3] [4] 338# CHECK-NEXT: PdEX 36 40 40 339# CHECK-NEXT: PdFPU 0 0 64 340# CHECK-NEXT: PdLoad 21 24 40 341# CHECK-NEXT: PdStore 18 21 24 342 343# CHECK: Resources: 344# CHECK-NEXT: [0.0] - PdAGLU01 345# CHECK-NEXT: [0.1] - PdAGLU01 346# CHECK-NEXT: [1] - PdBranch 347# CHECK-NEXT: [2] - PdCount 348# CHECK-NEXT: [3] - PdDiv 349# CHECK-NEXT: [4] - PdEX0 350# CHECK-NEXT: [5] - PdEX1 351# CHECK-NEXT: [6] - PdFPCVT 352# CHECK-NEXT: [7.0] - PdFPFMA 353# CHECK-NEXT: [7.1] - PdFPFMA 354# CHECK-NEXT: [8.0] - PdFPMAL 355# CHECK-NEXT: [8.1] - PdFPMAL 356# CHECK-NEXT: [9] - PdFPMMA 357# CHECK-NEXT: [10] - PdFPSTO 358# CHECK-NEXT: [11] - PdFPU0 359# CHECK-NEXT: [12] - PdFPU1 360# CHECK-NEXT: [13] - PdFPU2 361# CHECK-NEXT: [14] - PdFPU3 362# CHECK-NEXT: [15] - PdFPXBR 363# CHECK-NEXT: [16.0] - PdLoad 364# CHECK-NEXT: [16.1] - PdLoad 365# CHECK-NEXT: [17] - PdMul 366# CHECK-NEXT: [18] - PdStore 367 368# CHECK: Resource pressure per iteration: 369# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 370# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00 371 372# CHECK: Resource pressure by instruction: 373# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 374# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movl %esp, (%rax) 375# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rcx), %ebp 376# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rdx), %esi 377# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movl %edi, (%rbx) 378 379# CHECK: Timeline view: 380# CHECK-NEXT: Index 012345678 381 382# CHECK: [0,0] DeER . . movl %esp, (%rax) 383# CHECK-NEXT: [0,1] DeeeeeER. movl (%rcx), %ebp 384# CHECK-NEXT: [0,2] D=eeeeeER movl (%rdx), %esi 385# CHECK-NEXT: [0,3] D==eE---R movl %edi, (%rbx) 386 387# CHECK: Average Wait times (based on the timeline view): 388# CHECK-NEXT: [0]: Executions 389# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 390# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 391# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 392 393# CHECK: [0] [1] [2] [3] 394# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl %esp, (%rax) 395# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp 396# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi 397# CHECK-NEXT: 3. 1 3.0 1.0 3.0 movl %edi, (%rbx) 398# CHECK-NEXT: 1 1.8 1.3 0.8 <total> 399 400# CHECK: [3] Code Region 401 402# CHECK: Iterations: 100 403# CHECK-NEXT: Instructions: 400 404# CHECK-NEXT: Total Cycles: 306 405# CHECK-NEXT: Total uOps: 400 406 407# CHECK: Dispatch Width: 4 408# CHECK-NEXT: uOps Per Cycle: 1.31 409# CHECK-NEXT: IPC: 1.31 410# CHECK-NEXT: Block RThroughput: 3.0 411 412# CHECK: Instruction Info: 413# CHECK-NEXT: [1]: #uOps 414# CHECK-NEXT: [2]: Latency 415# CHECK-NEXT: [3]: RThroughput 416# CHECK-NEXT: [4]: MayLoad 417# CHECK-NEXT: [5]: MayStore 418# CHECK-NEXT: [6]: HasSideEffects (U) 419 420# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 421# CHECK-NEXT: 1 1 1.00 * movq %rsp, (%rax) 422# CHECK-NEXT: 1 5 1.00 * movq (%rcx), %rbp 423# CHECK-NEXT: 1 5 1.00 * movq (%rdx), %rsi 424# CHECK-NEXT: 1 1 1.00 * movq %rdi, (%rbx) 425 426# CHECK: Dynamic Dispatch Stall Cycles: 427# CHECK-NEXT: RAT - Register unavailable: 0 428# CHECK-NEXT: RCU - Retire tokens unavailable: 0 429# CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%) 430# CHECK-NEXT: LQ - Load queue full: 0 431# CHECK-NEXT: SQ - Store queue full: 0 432# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 433# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 434 435# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 436# CHECK-NEXT: [# dispatched], [# cycles] 437# CHECK-NEXT: 0, 35 (11.4%) 438# CHECK-NEXT: 1, 171 (55.9%) 439# CHECK-NEXT: 2, 85 (27.8%) 440# CHECK-NEXT: 3, 1 (0.3%) 441# CHECK-NEXT: 4, 14 (4.6%) 442 443# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 444# CHECK-NEXT: [# issued], [# cycles] 445# CHECK-NEXT: 0, 6 (2.0%) 446# CHECK-NEXT: 1, 200 (65.4%) 447# CHECK-NEXT: 2, 100 (32.7%) 448 449# CHECK: Scheduler's queue usage: 450# CHECK-NEXT: [1] Resource name. 451# CHECK-NEXT: [2] Average number of used buffer entries. 452# CHECK-NEXT: [3] Maximum number of used buffer entries. 453# CHECK-NEXT: [4] Total number of buffer entries. 454 455# CHECK: [1] [2] [3] [4] 456# CHECK-NEXT: PdEX 36 40 40 457# CHECK-NEXT: PdFPU 0 0 64 458# CHECK-NEXT: PdLoad 21 24 40 459# CHECK-NEXT: PdStore 18 21 24 460 461# CHECK: Resources: 462# CHECK-NEXT: [0.0] - PdAGLU01 463# CHECK-NEXT: [0.1] - PdAGLU01 464# CHECK-NEXT: [1] - PdBranch 465# CHECK-NEXT: [2] - PdCount 466# CHECK-NEXT: [3] - PdDiv 467# CHECK-NEXT: [4] - PdEX0 468# CHECK-NEXT: [5] - PdEX1 469# CHECK-NEXT: [6] - PdFPCVT 470# CHECK-NEXT: [7.0] - PdFPFMA 471# CHECK-NEXT: [7.1] - PdFPFMA 472# CHECK-NEXT: [8.0] - PdFPMAL 473# CHECK-NEXT: [8.1] - PdFPMAL 474# CHECK-NEXT: [9] - PdFPMMA 475# CHECK-NEXT: [10] - PdFPSTO 476# CHECK-NEXT: [11] - PdFPU0 477# CHECK-NEXT: [12] - PdFPU1 478# CHECK-NEXT: [13] - PdFPU2 479# CHECK-NEXT: [14] - PdFPU3 480# CHECK-NEXT: [15] - PdFPXBR 481# CHECK-NEXT: [16.0] - PdLoad 482# CHECK-NEXT: [16.1] - PdLoad 483# CHECK-NEXT: [17] - PdMul 484# CHECK-NEXT: [18] - PdStore 485 486# CHECK: Resource pressure per iteration: 487# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 488# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00 489 490# CHECK: Resource pressure by instruction: 491# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 492# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movq %rsp, (%rax) 493# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rcx), %rbp 494# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rdx), %rsi 495# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movq %rdi, (%rbx) 496 497# CHECK: Timeline view: 498# CHECK-NEXT: Index 012345678 499 500# CHECK: [0,0] DeER . . movq %rsp, (%rax) 501# CHECK-NEXT: [0,1] DeeeeeER. movq (%rcx), %rbp 502# CHECK-NEXT: [0,2] D=eeeeeER movq (%rdx), %rsi 503# CHECK-NEXT: [0,3] D==eE---R movq %rdi, (%rbx) 504 505# CHECK: Average Wait times (based on the timeline view): 506# CHECK-NEXT: [0]: Executions 507# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 508# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 509# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 510 511# CHECK: [0] [1] [2] [3] 512# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq %rsp, (%rax) 513# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp 514# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi 515# CHECK-NEXT: 3. 1 3.0 1.0 3.0 movq %rdi, (%rbx) 516# CHECK-NEXT: 1 1.8 1.3 0.8 <total> 517 518# CHECK: [4] Code Region 519 520# CHECK: Iterations: 100 521# CHECK-NEXT: Instructions: 400 522# CHECK-NEXT: Total Cycles: 405 523# CHECK-NEXT: Total uOps: 400 524 525# CHECK: Dispatch Width: 4 526# CHECK-NEXT: uOps Per Cycle: 0.99 527# CHECK-NEXT: IPC: 0.99 528# CHECK-NEXT: Block RThroughput: 4.0 529 530# CHECK: Instruction Info: 531# CHECK-NEXT: [1]: #uOps 532# CHECK-NEXT: [2]: Latency 533# CHECK-NEXT: [3]: RThroughput 534# CHECK-NEXT: [4]: MayLoad 535# CHECK-NEXT: [5]: MayStore 536# CHECK-NEXT: [6]: HasSideEffects (U) 537 538# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 539# CHECK-NEXT: 1 2 1.50 * U movd %mm0, (%rax) 540# CHECK-NEXT: 1 5 1.50 * movd (%rcx), %mm1 541# CHECK-NEXT: 1 5 1.50 * movd (%rdx), %mm2 542# CHECK-NEXT: 1 2 1.50 * U movd %mm3, (%rbx) 543 544# CHECK: Dynamic Dispatch Stall Cycles: 545# CHECK-NEXT: RAT - Register unavailable: 0 546# CHECK-NEXT: RCU - Retire tokens unavailable: 0 547# CHECK-NEXT: SCHEDQ - Scheduler full: 347 (85.7%) 548# CHECK-NEXT: LQ - Load queue full: 0 549# CHECK-NEXT: SQ - Store queue full: 0 550# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 551# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 552 553# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 554# CHECK-NEXT: [# dispatched], [# cycles] 555# CHECK-NEXT: 0, 131 (32.3%) 556# CHECK-NEXT: 1, 174 (43.0%) 557# CHECK-NEXT: 2, 87 (21.5%) 558# CHECK-NEXT: 4, 13 (3.2%) 559 560# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 561# CHECK-NEXT: [# issued], [# cycles] 562# CHECK-NEXT: 0, 105 (25.9%) 563# CHECK-NEXT: 1, 200 (49.4%) 564# CHECK-NEXT: 2, 100 (24.7%) 565 566# CHECK: Scheduler's queue usage: 567# CHECK-NEXT: [1] Resource name. 568# CHECK-NEXT: [2] Average number of used buffer entries. 569# CHECK-NEXT: [3] Maximum number of used buffer entries. 570# CHECK-NEXT: [4] Total number of buffer entries. 571 572# CHECK: [1] [2] [3] [4] 573# CHECK-NEXT: PdEX 36 40 40 574# CHECK-NEXT: PdFPU 36 40 64 575# CHECK-NEXT: PdLoad 20 23 40 576# CHECK-NEXT: PdStore 19 22 24 577 578# CHECK: Resources: 579# CHECK-NEXT: [0.0] - PdAGLU01 580# CHECK-NEXT: [0.1] - PdAGLU01 581# CHECK-NEXT: [1] - PdBranch 582# CHECK-NEXT: [2] - PdCount 583# CHECK-NEXT: [3] - PdDiv 584# CHECK-NEXT: [4] - PdEX0 585# CHECK-NEXT: [5] - PdEX1 586# CHECK-NEXT: [6] - PdFPCVT 587# CHECK-NEXT: [7.0] - PdFPFMA 588# CHECK-NEXT: [7.1] - PdFPFMA 589# CHECK-NEXT: [8.0] - PdFPMAL 590# CHECK-NEXT: [8.1] - PdFPMAL 591# CHECK-NEXT: [9] - PdFPMMA 592# CHECK-NEXT: [10] - PdFPSTO 593# CHECK-NEXT: [11] - PdFPU0 594# CHECK-NEXT: [12] - PdFPU1 595# CHECK-NEXT: [13] - PdFPU2 596# CHECK-NEXT: [14] - PdFPU3 597# CHECK-NEXT: [15] - PdFPXBR 598# CHECK-NEXT: [16.0] - PdLoad 599# CHECK-NEXT: [16.1] - PdLoad 600# CHECK-NEXT: [17] - PdMul 601# CHECK-NEXT: [18] - PdStore 602 603# CHECK: Resource pressure per iteration: 604# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 605# CHECK-NEXT: 4.00 4.00 - - - - - - - - 3.00 3.00 - 2.00 1.00 1.00 3.00 3.00 - 3.00 3.00 - 2.00 606 607# CHECK: Resource pressure by instruction: 608# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 609# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movd %mm0, (%rax) 610# CHECK-NEXT: 3.00 - - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rcx), %mm1 611# CHECK-NEXT: - 3.00 - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rdx), %mm2 612# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movd %mm3, (%rbx) 613 614# CHECK: Timeline view: 615# CHECK-NEXT: Index 012345678 616 617# CHECK: [0,0] DeeER. . movd %mm0, (%rax) 618# CHECK-NEXT: [0,1] DeeeeeER. movd (%rcx), %mm1 619# CHECK-NEXT: [0,2] D=eeeeeER movd (%rdx), %mm2 620# CHECK-NEXT: [0,3] D===eeE-R movd %mm3, (%rbx) 621 622# CHECK: Average Wait times (based on the timeline view): 623# CHECK-NEXT: [0]: Executions 624# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 625# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 626# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 627 628# CHECK: [0] [1] [2] [3] 629# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd %mm0, (%rax) 630# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1 631# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2 632# CHECK-NEXT: 3. 1 4.0 2.0 1.0 movd %mm3, (%rbx) 633# CHECK-NEXT: 1 2.0 1.5 0.3 <total> 634 635# CHECK: [5] Code Region 636 637# CHECK: Iterations: 100 638# CHECK-NEXT: Instructions: 400 639# CHECK-NEXT: Total Cycles: 405 640# CHECK-NEXT: Total uOps: 400 641 642# CHECK: Dispatch Width: 4 643# CHECK-NEXT: uOps Per Cycle: 0.99 644# CHECK-NEXT: IPC: 0.99 645# CHECK-NEXT: Block RThroughput: 4.0 646 647# CHECK: Instruction Info: 648# CHECK-NEXT: [1]: #uOps 649# CHECK-NEXT: [2]: Latency 650# CHECK-NEXT: [3]: RThroughput 651# CHECK-NEXT: [4]: MayLoad 652# CHECK-NEXT: [5]: MayStore 653# CHECK-NEXT: [6]: HasSideEffects (U) 654 655# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 656# CHECK-NEXT: 1 1 1.50 * movaps %xmm0, (%rax) 657# CHECK-NEXT: 1 5 1.50 * movaps (%rcx), %xmm1 658# CHECK-NEXT: 1 5 1.50 * movaps (%rdx), %xmm2 659# CHECK-NEXT: 1 1 1.50 * movaps %xmm3, (%rbx) 660 661# CHECK: Dynamic Dispatch Stall Cycles: 662# CHECK-NEXT: RAT - Register unavailable: 0 663# CHECK-NEXT: RCU - Retire tokens unavailable: 0 664# CHECK-NEXT: SCHEDQ - Scheduler full: 347 (85.7%) 665# CHECK-NEXT: LQ - Load queue full: 0 666# CHECK-NEXT: SQ - Store queue full: 0 667# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 668# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 669 670# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 671# CHECK-NEXT: [# dispatched], [# cycles] 672# CHECK-NEXT: 0, 131 (32.3%) 673# CHECK-NEXT: 1, 174 (43.0%) 674# CHECK-NEXT: 2, 87 (21.5%) 675# CHECK-NEXT: 4, 13 (3.2%) 676 677# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 678# CHECK-NEXT: [# issued], [# cycles] 679# CHECK-NEXT: 0, 105 (25.9%) 680# CHECK-NEXT: 1, 200 (49.4%) 681# CHECK-NEXT: 2, 100 (24.7%) 682 683# CHECK: Scheduler's queue usage: 684# CHECK-NEXT: [1] Resource name. 685# CHECK-NEXT: [2] Average number of used buffer entries. 686# CHECK-NEXT: [3] Maximum number of used buffer entries. 687# CHECK-NEXT: [4] Total number of buffer entries. 688 689# CHECK: [1] [2] [3] [4] 690# CHECK-NEXT: PdEX 36 40 40 691# CHECK-NEXT: PdFPU 36 40 64 692# CHECK-NEXT: PdLoad 20 23 40 693# CHECK-NEXT: PdStore 19 21 24 694 695# CHECK: Resources: 696# CHECK-NEXT: [0.0] - PdAGLU01 697# CHECK-NEXT: [0.1] - PdAGLU01 698# CHECK-NEXT: [1] - PdBranch 699# CHECK-NEXT: [2] - PdCount 700# CHECK-NEXT: [3] - PdDiv 701# CHECK-NEXT: [4] - PdEX0 702# CHECK-NEXT: [5] - PdEX1 703# CHECK-NEXT: [6] - PdFPCVT 704# CHECK-NEXT: [7.0] - PdFPFMA 705# CHECK-NEXT: [7.1] - PdFPFMA 706# CHECK-NEXT: [8.0] - PdFPMAL 707# CHECK-NEXT: [8.1] - PdFPMAL 708# CHECK-NEXT: [9] - PdFPMMA 709# CHECK-NEXT: [10] - PdFPSTO 710# CHECK-NEXT: [11] - PdFPU0 711# CHECK-NEXT: [12] - PdFPU1 712# CHECK-NEXT: [13] - PdFPU2 713# CHECK-NEXT: [14] - PdFPU3 714# CHECK-NEXT: [15] - PdFPXBR 715# CHECK-NEXT: [16.0] - PdLoad 716# CHECK-NEXT: [16.1] - PdLoad 717# CHECK-NEXT: [17] - PdMul 718# CHECK-NEXT: [18] - PdStore 719 720# CHECK: Resource pressure per iteration: 721# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 722# CHECK-NEXT: 4.00 4.00 - - - - - - 3.00 3.00 - - - 2.00 1.00 1.00 3.00 3.00 - 3.00 3.00 - 2.00 723 724# CHECK: Resource pressure by instruction: 725# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 726# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movaps %xmm0, (%rax) 727# CHECK-NEXT: 3.00 - - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rcx), %xmm1 728# CHECK-NEXT: - 3.00 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rdx), %xmm2 729# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movaps %xmm3, (%rbx) 730 731# CHECK: Timeline view: 732# CHECK-NEXT: Index 012345678 733 734# CHECK: [0,0] DeER . . movaps %xmm0, (%rax) 735# CHECK-NEXT: [0,1] DeeeeeER. movaps (%rcx), %xmm1 736# CHECK-NEXT: [0,2] D=eeeeeER movaps (%rdx), %xmm2 737# CHECK-NEXT: [0,3] D===eE--R movaps %xmm3, (%rbx) 738 739# CHECK: Average Wait times (based on the timeline view): 740# CHECK-NEXT: [0]: Executions 741# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 742# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 743# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 744 745# CHECK: [0] [1] [2] [3] 746# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps %xmm0, (%rax) 747# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1 748# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2 749# CHECK-NEXT: 3. 1 4.0 2.0 2.0 movaps %xmm3, (%rbx) 750# CHECK-NEXT: 1 2.0 1.5 0.5 <total> 751