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