1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -scheduler-stats -dispatch-stats -iterations=100 -timeline -timeline-max-iterations=1 -noalias=true < %s | FileCheck %s 3 4# LLVM-MCA-BEGIN 5movb %spl, (%rax) 6movb %bpl, (%rcx) 7movb %sil, (%rdx) 8movb %dil, (%rbx) 9# LLVM-MCA-END 10 11# LLVM-MCA-BEGIN 12movw %sp, (%rax) 13movw %bp, (%rcx) 14movw %si, (%rdx) 15movw %di, (%rbx) 16# LLVM-MCA-END 17 18# LLVM-MCA-BEGIN 19movl %esp, (%rax) 20movl %ebp, (%rcx) 21movl %esi, (%rdx) 22movl %edi, (%rbx) 23# LLVM-MCA-END 24 25# LLVM-MCA-BEGIN 26movq %rsp, (%rax) 27movq %rbp, (%rcx) 28movq %rsi, (%rdx) 29movq %rdi, (%rbx) 30# LLVM-MCA-END 31 32# LLVM-MCA-BEGIN 33movd %mm0, (%rax) 34movd %mm1, (%rcx) 35movd %mm2, (%rdx) 36movd %mm3, (%rbx) 37# LLVM-MCA-END 38 39# LLVM-MCA-BEGIN 40movaps %xmm0, (%rax) 41movaps %xmm1, (%rcx) 42movaps %xmm2, (%rdx) 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: 403 51# CHECK-NEXT: Total uOps: 400 52 53# CHECK: Dispatch Width: 4 54# CHECK-NEXT: uOps Per Cycle: 0.99 55# CHECK-NEXT: IPC: 0.99 56# CHECK-NEXT: Block RThroughput: 4.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 1 1.00 * movb %bpl, (%rcx) 69# CHECK-NEXT: 1 1 1.00 * movb %sil, (%rdx) 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: 329 (81.6%) 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, 56 (13.9%) 84# CHECK-NEXT: 1, 329 (81.6%) 85# CHECK-NEXT: 3, 1 (0.2%) 86# CHECK-NEXT: 4, 17 (4.2%) 87 88# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 89# CHECK-NEXT: [# issued], [# cycles] 90# CHECK-NEXT: 0, 3 (0.7%) 91# CHECK-NEXT: 1, 400 (99.3%) 92 93# CHECK: Scheduler's queue usage: 94# CHECK-NEXT: [1] Resource name. 95# CHECK-NEXT: [2] Average number of used buffer entries. 96# CHECK-NEXT: [3] Maximum number of used buffer entries. 97# CHECK-NEXT: [4] Total number of buffer entries. 98 99# CHECK: [1] [2] [3] [4] 100# CHECK-NEXT: SBPortAny 49 54 54 101 102# CHECK: Resources: 103# CHECK-NEXT: [0] - SBDivider 104# CHECK-NEXT: [1] - SBFPDivider 105# CHECK-NEXT: [2] - SBPort0 106# CHECK-NEXT: [3] - SBPort1 107# CHECK-NEXT: [4] - SBPort4 108# CHECK-NEXT: [5] - SBPort5 109# CHECK-NEXT: [6.0] - SBPort23 110# CHECK-NEXT: [6.1] - SBPort23 111 112# CHECK: Resource pressure per iteration: 113# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 114# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 115 116# CHECK: Resource pressure by instruction: 117# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 118# CHECK-NEXT: - - - - 1.00 - - 1.00 movb %spl, (%rax) 119# CHECK-NEXT: - - - - 1.00 - 1.00 - movb %bpl, (%rcx) 120# CHECK-NEXT: - - - - 1.00 - - 1.00 movb %sil, (%rdx) 121# CHECK-NEXT: - - - - 1.00 - 1.00 - movb %dil, (%rbx) 122 123# CHECK: Timeline view: 124# CHECK-NEXT: Index 0123456 125 126# CHECK: [0,0] DeER .. movb %spl, (%rax) 127# CHECK-NEXT: [0,1] D=eER.. movb %bpl, (%rcx) 128# CHECK-NEXT: [0,2] D==eER. movb %sil, (%rdx) 129# CHECK-NEXT: [0,3] D===eER movb %dil, (%rbx) 130 131# CHECK: Average Wait times (based on the timeline view): 132# CHECK-NEXT: [0]: Executions 133# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 134# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 135# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 136 137# CHECK: [0] [1] [2] [3] 138# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb %spl, (%rax) 139# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movb %bpl, (%rcx) 140# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movb %sil, (%rdx) 141# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movb %dil, (%rbx) 142# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 143 144# CHECK: [1] Code Region 145 146# CHECK: Iterations: 100 147# CHECK-NEXT: Instructions: 400 148# CHECK-NEXT: Total Cycles: 403 149# CHECK-NEXT: Total uOps: 400 150 151# CHECK: Dispatch Width: 4 152# CHECK-NEXT: uOps Per Cycle: 0.99 153# CHECK-NEXT: IPC: 0.99 154# CHECK-NEXT: Block RThroughput: 4.0 155 156# CHECK: Instruction Info: 157# CHECK-NEXT: [1]: #uOps 158# CHECK-NEXT: [2]: Latency 159# CHECK-NEXT: [3]: RThroughput 160# CHECK-NEXT: [4]: MayLoad 161# CHECK-NEXT: [5]: MayStore 162# CHECK-NEXT: [6]: HasSideEffects (U) 163 164# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 165# CHECK-NEXT: 1 1 1.00 * movw %sp, (%rax) 166# CHECK-NEXT: 1 1 1.00 * movw %bp, (%rcx) 167# CHECK-NEXT: 1 1 1.00 * movw %si, (%rdx) 168# CHECK-NEXT: 1 1 1.00 * movw %di, (%rbx) 169 170# CHECK: Dynamic Dispatch Stall Cycles: 171# CHECK-NEXT: RAT - Register unavailable: 0 172# CHECK-NEXT: RCU - Retire tokens unavailable: 0 173# CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%) 174# CHECK-NEXT: LQ - Load queue full: 0 175# CHECK-NEXT: SQ - Store queue full: 0 176# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 177# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 178 179# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 180# CHECK-NEXT: [# dispatched], [# cycles] 181# CHECK-NEXT: 0, 56 (13.9%) 182# CHECK-NEXT: 1, 329 (81.6%) 183# CHECK-NEXT: 3, 1 (0.2%) 184# CHECK-NEXT: 4, 17 (4.2%) 185 186# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 187# CHECK-NEXT: [# issued], [# cycles] 188# CHECK-NEXT: 0, 3 (0.7%) 189# CHECK-NEXT: 1, 400 (99.3%) 190 191# CHECK: Scheduler's queue usage: 192# CHECK-NEXT: [1] Resource name. 193# CHECK-NEXT: [2] Average number of used buffer entries. 194# CHECK-NEXT: [3] Maximum number of used buffer entries. 195# CHECK-NEXT: [4] Total number of buffer entries. 196 197# CHECK: [1] [2] [3] [4] 198# CHECK-NEXT: SBPortAny 49 54 54 199 200# CHECK: Resources: 201# CHECK-NEXT: [0] - SBDivider 202# CHECK-NEXT: [1] - SBFPDivider 203# CHECK-NEXT: [2] - SBPort0 204# CHECK-NEXT: [3] - SBPort1 205# CHECK-NEXT: [4] - SBPort4 206# CHECK-NEXT: [5] - SBPort5 207# CHECK-NEXT: [6.0] - SBPort23 208# CHECK-NEXT: [6.1] - SBPort23 209 210# CHECK: Resource pressure per iteration: 211# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 212# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 213 214# CHECK: Resource pressure by instruction: 215# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 216# CHECK-NEXT: - - - - 1.00 - - 1.00 movw %sp, (%rax) 217# CHECK-NEXT: - - - - 1.00 - 1.00 - movw %bp, (%rcx) 218# CHECK-NEXT: - - - - 1.00 - - 1.00 movw %si, (%rdx) 219# CHECK-NEXT: - - - - 1.00 - 1.00 - movw %di, (%rbx) 220 221# CHECK: Timeline view: 222# CHECK-NEXT: Index 0123456 223 224# CHECK: [0,0] DeER .. movw %sp, (%rax) 225# CHECK-NEXT: [0,1] D=eER.. movw %bp, (%rcx) 226# CHECK-NEXT: [0,2] D==eER. movw %si, (%rdx) 227# CHECK-NEXT: [0,3] D===eER movw %di, (%rbx) 228 229# CHECK: Average Wait times (based on the timeline view): 230# CHECK-NEXT: [0]: Executions 231# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 232# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 233# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 234 235# CHECK: [0] [1] [2] [3] 236# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw %sp, (%rax) 237# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movw %bp, (%rcx) 238# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movw %si, (%rdx) 239# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movw %di, (%rbx) 240# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 241 242# CHECK: [2] Code Region 243 244# CHECK: Iterations: 100 245# CHECK-NEXT: Instructions: 400 246# CHECK-NEXT: Total Cycles: 403 247# CHECK-NEXT: Total uOps: 400 248 249# CHECK: Dispatch Width: 4 250# CHECK-NEXT: uOps Per Cycle: 0.99 251# CHECK-NEXT: IPC: 0.99 252# CHECK-NEXT: Block RThroughput: 4.0 253 254# CHECK: Instruction Info: 255# CHECK-NEXT: [1]: #uOps 256# CHECK-NEXT: [2]: Latency 257# CHECK-NEXT: [3]: RThroughput 258# CHECK-NEXT: [4]: MayLoad 259# CHECK-NEXT: [5]: MayStore 260# CHECK-NEXT: [6]: HasSideEffects (U) 261 262# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 263# CHECK-NEXT: 1 1 1.00 * movl %esp, (%rax) 264# CHECK-NEXT: 1 1 1.00 * movl %ebp, (%rcx) 265# CHECK-NEXT: 1 1 1.00 * movl %esi, (%rdx) 266# CHECK-NEXT: 1 1 1.00 * movl %edi, (%rbx) 267 268# CHECK: Dynamic Dispatch Stall Cycles: 269# CHECK-NEXT: RAT - Register unavailable: 0 270# CHECK-NEXT: RCU - Retire tokens unavailable: 0 271# CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%) 272# CHECK-NEXT: LQ - Load queue full: 0 273# CHECK-NEXT: SQ - Store queue full: 0 274# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 275# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 276 277# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 278# CHECK-NEXT: [# dispatched], [# cycles] 279# CHECK-NEXT: 0, 56 (13.9%) 280# CHECK-NEXT: 1, 329 (81.6%) 281# CHECK-NEXT: 3, 1 (0.2%) 282# CHECK-NEXT: 4, 17 (4.2%) 283 284# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 285# CHECK-NEXT: [# issued], [# cycles] 286# CHECK-NEXT: 0, 3 (0.7%) 287# CHECK-NEXT: 1, 400 (99.3%) 288 289# CHECK: Scheduler's queue usage: 290# CHECK-NEXT: [1] Resource name. 291# CHECK-NEXT: [2] Average number of used buffer entries. 292# CHECK-NEXT: [3] Maximum number of used buffer entries. 293# CHECK-NEXT: [4] Total number of buffer entries. 294 295# CHECK: [1] [2] [3] [4] 296# CHECK-NEXT: SBPortAny 49 54 54 297 298# CHECK: Resources: 299# CHECK-NEXT: [0] - SBDivider 300# CHECK-NEXT: [1] - SBFPDivider 301# CHECK-NEXT: [2] - SBPort0 302# CHECK-NEXT: [3] - SBPort1 303# CHECK-NEXT: [4] - SBPort4 304# CHECK-NEXT: [5] - SBPort5 305# CHECK-NEXT: [6.0] - SBPort23 306# CHECK-NEXT: [6.1] - SBPort23 307 308# CHECK: Resource pressure per iteration: 309# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 310# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 311 312# CHECK: Resource pressure by instruction: 313# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 314# CHECK-NEXT: - - - - 1.00 - - 1.00 movl %esp, (%rax) 315# CHECK-NEXT: - - - - 1.00 - 1.00 - movl %ebp, (%rcx) 316# CHECK-NEXT: - - - - 1.00 - - 1.00 movl %esi, (%rdx) 317# CHECK-NEXT: - - - - 1.00 - 1.00 - movl %edi, (%rbx) 318 319# CHECK: Timeline view: 320# CHECK-NEXT: Index 0123456 321 322# CHECK: [0,0] DeER .. movl %esp, (%rax) 323# CHECK-NEXT: [0,1] D=eER.. movl %ebp, (%rcx) 324# CHECK-NEXT: [0,2] D==eER. movl %esi, (%rdx) 325# CHECK-NEXT: [0,3] D===eER movl %edi, (%rbx) 326 327# CHECK: Average Wait times (based on the timeline view): 328# CHECK-NEXT: [0]: Executions 329# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 330# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 331# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 332 333# CHECK: [0] [1] [2] [3] 334# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl %esp, (%rax) 335# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movl %ebp, (%rcx) 336# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movl %esi, (%rdx) 337# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movl %edi, (%rbx) 338# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 339 340# CHECK: [3] Code Region 341 342# CHECK: Iterations: 100 343# CHECK-NEXT: Instructions: 400 344# CHECK-NEXT: Total Cycles: 403 345# CHECK-NEXT: Total uOps: 400 346 347# CHECK: Dispatch Width: 4 348# CHECK-NEXT: uOps Per Cycle: 0.99 349# CHECK-NEXT: IPC: 0.99 350# CHECK-NEXT: Block RThroughput: 4.0 351 352# CHECK: Instruction Info: 353# CHECK-NEXT: [1]: #uOps 354# CHECK-NEXT: [2]: Latency 355# CHECK-NEXT: [3]: RThroughput 356# CHECK-NEXT: [4]: MayLoad 357# CHECK-NEXT: [5]: MayStore 358# CHECK-NEXT: [6]: HasSideEffects (U) 359 360# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 361# CHECK-NEXT: 1 1 1.00 * movq %rsp, (%rax) 362# CHECK-NEXT: 1 1 1.00 * movq %rbp, (%rcx) 363# CHECK-NEXT: 1 1 1.00 * movq %rsi, (%rdx) 364# CHECK-NEXT: 1 1 1.00 * movq %rdi, (%rbx) 365 366# CHECK: Dynamic Dispatch Stall Cycles: 367# CHECK-NEXT: RAT - Register unavailable: 0 368# CHECK-NEXT: RCU - Retire tokens unavailable: 0 369# CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%) 370# CHECK-NEXT: LQ - Load queue full: 0 371# CHECK-NEXT: SQ - Store queue full: 0 372# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 373# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 374 375# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 376# CHECK-NEXT: [# dispatched], [# cycles] 377# CHECK-NEXT: 0, 56 (13.9%) 378# CHECK-NEXT: 1, 329 (81.6%) 379# CHECK-NEXT: 3, 1 (0.2%) 380# CHECK-NEXT: 4, 17 (4.2%) 381 382# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 383# CHECK-NEXT: [# issued], [# cycles] 384# CHECK-NEXT: 0, 3 (0.7%) 385# CHECK-NEXT: 1, 400 (99.3%) 386 387# CHECK: Scheduler's queue usage: 388# CHECK-NEXT: [1] Resource name. 389# CHECK-NEXT: [2] Average number of used buffer entries. 390# CHECK-NEXT: [3] Maximum number of used buffer entries. 391# CHECK-NEXT: [4] Total number of buffer entries. 392 393# CHECK: [1] [2] [3] [4] 394# CHECK-NEXT: SBPortAny 49 54 54 395 396# CHECK: Resources: 397# CHECK-NEXT: [0] - SBDivider 398# CHECK-NEXT: [1] - SBFPDivider 399# CHECK-NEXT: [2] - SBPort0 400# CHECK-NEXT: [3] - SBPort1 401# CHECK-NEXT: [4] - SBPort4 402# CHECK-NEXT: [5] - SBPort5 403# CHECK-NEXT: [6.0] - SBPort23 404# CHECK-NEXT: [6.1] - SBPort23 405 406# CHECK: Resource pressure per iteration: 407# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 408# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 409 410# CHECK: Resource pressure by instruction: 411# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 412# CHECK-NEXT: - - - - 1.00 - - 1.00 movq %rsp, (%rax) 413# CHECK-NEXT: - - - - 1.00 - 1.00 - movq %rbp, (%rcx) 414# CHECK-NEXT: - - - - 1.00 - - 1.00 movq %rsi, (%rdx) 415# CHECK-NEXT: - - - - 1.00 - 1.00 - movq %rdi, (%rbx) 416 417# CHECK: Timeline view: 418# CHECK-NEXT: Index 0123456 419 420# CHECK: [0,0] DeER .. movq %rsp, (%rax) 421# CHECK-NEXT: [0,1] D=eER.. movq %rbp, (%rcx) 422# CHECK-NEXT: [0,2] D==eER. movq %rsi, (%rdx) 423# CHECK-NEXT: [0,3] D===eER movq %rdi, (%rbx) 424 425# CHECK: Average Wait times (based on the timeline view): 426# CHECK-NEXT: [0]: Executions 427# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 428# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 429# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 430 431# CHECK: [0] [1] [2] [3] 432# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq %rsp, (%rax) 433# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movq %rbp, (%rcx) 434# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movq %rsi, (%rdx) 435# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movq %rdi, (%rbx) 436# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 437 438# CHECK: [4] Code Region 439 440# CHECK: Iterations: 100 441# CHECK-NEXT: Instructions: 400 442# CHECK-NEXT: Total Cycles: 403 443# CHECK-NEXT: Total uOps: 400 444 445# CHECK: Dispatch Width: 4 446# CHECK-NEXT: uOps Per Cycle: 0.99 447# CHECK-NEXT: IPC: 0.99 448# CHECK-NEXT: Block RThroughput: 4.0 449 450# CHECK: Instruction Info: 451# CHECK-NEXT: [1]: #uOps 452# CHECK-NEXT: [2]: Latency 453# CHECK-NEXT: [3]: RThroughput 454# CHECK-NEXT: [4]: MayLoad 455# CHECK-NEXT: [5]: MayStore 456# CHECK-NEXT: [6]: HasSideEffects (U) 457 458# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 459# CHECK-NEXT: 1 1 1.00 * U movd %mm0, (%rax) 460# CHECK-NEXT: 1 1 1.00 * U movd %mm1, (%rcx) 461# CHECK-NEXT: 1 1 1.00 * U movd %mm2, (%rdx) 462# CHECK-NEXT: 1 1 1.00 * U movd %mm3, (%rbx) 463 464# CHECK: Dynamic Dispatch Stall Cycles: 465# CHECK-NEXT: RAT - Register unavailable: 0 466# CHECK-NEXT: RCU - Retire tokens unavailable: 0 467# CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%) 468# CHECK-NEXT: LQ - Load queue full: 0 469# CHECK-NEXT: SQ - Store queue full: 0 470# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 471# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 472 473# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 474# CHECK-NEXT: [# dispatched], [# cycles] 475# CHECK-NEXT: 0, 56 (13.9%) 476# CHECK-NEXT: 1, 329 (81.6%) 477# CHECK-NEXT: 3, 1 (0.2%) 478# CHECK-NEXT: 4, 17 (4.2%) 479 480# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 481# CHECK-NEXT: [# issued], [# cycles] 482# CHECK-NEXT: 0, 3 (0.7%) 483# CHECK-NEXT: 1, 400 (99.3%) 484 485# CHECK: Scheduler's queue usage: 486# CHECK-NEXT: [1] Resource name. 487# CHECK-NEXT: [2] Average number of used buffer entries. 488# CHECK-NEXT: [3] Maximum number of used buffer entries. 489# CHECK-NEXT: [4] Total number of buffer entries. 490 491# CHECK: [1] [2] [3] [4] 492# CHECK-NEXT: SBPortAny 49 54 54 493 494# CHECK: Resources: 495# CHECK-NEXT: [0] - SBDivider 496# CHECK-NEXT: [1] - SBFPDivider 497# CHECK-NEXT: [2] - SBPort0 498# CHECK-NEXT: [3] - SBPort1 499# CHECK-NEXT: [4] - SBPort4 500# CHECK-NEXT: [5] - SBPort5 501# CHECK-NEXT: [6.0] - SBPort23 502# CHECK-NEXT: [6.1] - SBPort23 503 504# CHECK: Resource pressure per iteration: 505# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 506# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 507 508# CHECK: Resource pressure by instruction: 509# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 510# CHECK-NEXT: - - - - 1.00 - - 1.00 movd %mm0, (%rax) 511# CHECK-NEXT: - - - - 1.00 - 1.00 - movd %mm1, (%rcx) 512# CHECK-NEXT: - - - - 1.00 - - 1.00 movd %mm2, (%rdx) 513# CHECK-NEXT: - - - - 1.00 - 1.00 - movd %mm3, (%rbx) 514 515# CHECK: Timeline view: 516# CHECK-NEXT: Index 0123456 517 518# CHECK: [0,0] DeER .. movd %mm0, (%rax) 519# CHECK-NEXT: [0,1] D=eER.. movd %mm1, (%rcx) 520# CHECK-NEXT: [0,2] D==eER. movd %mm2, (%rdx) 521# CHECK-NEXT: [0,3] D===eER movd %mm3, (%rbx) 522 523# CHECK: Average Wait times (based on the timeline view): 524# CHECK-NEXT: [0]: Executions 525# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 526# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 527# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 528 529# CHECK: [0] [1] [2] [3] 530# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd %mm0, (%rax) 531# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movd %mm1, (%rcx) 532# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movd %mm2, (%rdx) 533# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movd %mm3, (%rbx) 534# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 535 536# CHECK: [5] Code Region 537 538# CHECK: Iterations: 100 539# CHECK-NEXT: Instructions: 400 540# CHECK-NEXT: Total Cycles: 403 541# CHECK-NEXT: Total uOps: 400 542 543# CHECK: Dispatch Width: 4 544# CHECK-NEXT: uOps Per Cycle: 0.99 545# CHECK-NEXT: IPC: 0.99 546# CHECK-NEXT: Block RThroughput: 4.0 547 548# CHECK: Instruction Info: 549# CHECK-NEXT: [1]: #uOps 550# CHECK-NEXT: [2]: Latency 551# CHECK-NEXT: [3]: RThroughput 552# CHECK-NEXT: [4]: MayLoad 553# CHECK-NEXT: [5]: MayStore 554# CHECK-NEXT: [6]: HasSideEffects (U) 555 556# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 557# CHECK-NEXT: 1 1 1.00 * movaps %xmm0, (%rax) 558# CHECK-NEXT: 1 1 1.00 * movaps %xmm1, (%rcx) 559# CHECK-NEXT: 1 1 1.00 * movaps %xmm2, (%rdx) 560# CHECK-NEXT: 1 1 1.00 * movaps %xmm3, (%rbx) 561 562# CHECK: Dynamic Dispatch Stall Cycles: 563# CHECK-NEXT: RAT - Register unavailable: 0 564# CHECK-NEXT: RCU - Retire tokens unavailable: 0 565# CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%) 566# CHECK-NEXT: LQ - Load queue full: 0 567# CHECK-NEXT: SQ - Store queue full: 0 568# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0 569# CHECK-NEXT: USH - Uncategorised Structural Hazard: 0 570 571# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched: 572# CHECK-NEXT: [# dispatched], [# cycles] 573# CHECK-NEXT: 0, 56 (13.9%) 574# CHECK-NEXT: 1, 329 (81.6%) 575# CHECK-NEXT: 3, 1 (0.2%) 576# CHECK-NEXT: 4, 17 (4.2%) 577 578# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued: 579# CHECK-NEXT: [# issued], [# cycles] 580# CHECK-NEXT: 0, 3 (0.7%) 581# CHECK-NEXT: 1, 400 (99.3%) 582 583# CHECK: Scheduler's queue usage: 584# CHECK-NEXT: [1] Resource name. 585# CHECK-NEXT: [2] Average number of used buffer entries. 586# CHECK-NEXT: [3] Maximum number of used buffer entries. 587# CHECK-NEXT: [4] Total number of buffer entries. 588 589# CHECK: [1] [2] [3] [4] 590# CHECK-NEXT: SBPortAny 49 54 54 591 592# CHECK: Resources: 593# CHECK-NEXT: [0] - SBDivider 594# CHECK-NEXT: [1] - SBFPDivider 595# CHECK-NEXT: [2] - SBPort0 596# CHECK-NEXT: [3] - SBPort1 597# CHECK-NEXT: [4] - SBPort4 598# CHECK-NEXT: [5] - SBPort5 599# CHECK-NEXT: [6.0] - SBPort23 600# CHECK-NEXT: [6.1] - SBPort23 601 602# CHECK: Resource pressure per iteration: 603# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 604# CHECK-NEXT: - - - - 4.00 - 2.00 2.00 605 606# CHECK: Resource pressure by instruction: 607# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 608# CHECK-NEXT: - - - - 1.00 - - 1.00 movaps %xmm0, (%rax) 609# CHECK-NEXT: - - - - 1.00 - 1.00 - movaps %xmm1, (%rcx) 610# CHECK-NEXT: - - - - 1.00 - - 1.00 movaps %xmm2, (%rdx) 611# CHECK-NEXT: - - - - 1.00 - 1.00 - movaps %xmm3, (%rbx) 612 613# CHECK: Timeline view: 614# CHECK-NEXT: Index 0123456 615 616# CHECK: [0,0] DeER .. movaps %xmm0, (%rax) 617# CHECK-NEXT: [0,1] D=eER.. movaps %xmm1, (%rcx) 618# CHECK-NEXT: [0,2] D==eER. movaps %xmm2, (%rdx) 619# CHECK-NEXT: [0,3] D===eER movaps %xmm3, (%rbx) 620 621# CHECK: Average Wait times (based on the timeline view): 622# CHECK-NEXT: [0]: Executions 623# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 624# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 625# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 626 627# CHECK: [0] [1] [2] [3] 628# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps %xmm0, (%rax) 629# CHECK-NEXT: 1. 1 2.0 1.0 0.0 movaps %xmm1, (%rcx) 630# CHECK-NEXT: 2. 1 3.0 1.0 0.0 movaps %xmm2, (%rdx) 631# CHECK-NEXT: 3. 1 4.0 1.0 0.0 movaps %xmm3, (%rbx) 632# CHECK-NEXT: 1 2.5 1.0 0.0 <total> 633