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