1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline < %s | FileCheck %s 3 4# LLVM-MCA-BEGIN 5imul %rax, %rax 6cmpxchgq %rcx, (%rdx) 7# LLVM-MCA-END 8 9# LLVM-MCA-BEGIN 10imul %rcx, %rcx 11cmpxchgq %rcx, (%rdx) 12# LLVM-MCA-END 13 14# LLVM-MCA-BEGIN 15imul %rax, %rax 16lock cmpxchgq %rcx, (%rdx) 17# LLVM-MCA-END 18 19# LLVM-MCA-BEGIN 20imul %rcx, %rcx 21lock cmpxchgq %rcx, (%rdx) 22# LLVM-MCA-END 23 24# LLVM-MCA-BEGIN 25imul %eax, %eax 26imul %edx, %edx 27cmpxchg8b (%rsp) 28# LLVM-MCA-END 29 30# LLVM-MCA-BEGIN 31imul %eax, %eax 32imul %edx, %edx 33cmpxchg16b (%rsp) 34# LLVM-MCA-END 35 36# LLVM-MCA-BEGIN 37imul %ebx, %ebx 38imul %ecx, %ecx 39lock cmpxchg8b (%rsp) 40# LLVM-MCA-END 41 42# LLVM-MCA-BEGIN 43imul %ebx, %ebx 44imul %ecx, %ecx 45lock cmpxchg16b (%rsp) 46# LLVM-MCA-END 47 48# CHECK: [0] Code Region 49 50# CHECK: Iterations: 1 51# CHECK-NEXT: Instructions: 2 52# CHECK-NEXT: Total Cycles: 17 53# CHECK-NEXT: Total uOps: 7 54 55# CHECK: Dispatch Width: 2 56# CHECK-NEXT: uOps Per Cycle: 0.41 57# CHECK-NEXT: IPC: 0.12 58# CHECK-NEXT: Block RThroughput: 4.0 59 60# CHECK: Instruction Info: 61# CHECK-NEXT: [1]: #uOps 62# CHECK-NEXT: [2]: Latency 63# CHECK-NEXT: [3]: RThroughput 64# CHECK-NEXT: [4]: MayLoad 65# CHECK-NEXT: [5]: MayStore 66# CHECK-NEXT: [6]: HasSideEffects (U) 67 68# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 69# CHECK-NEXT: 1 6 4.00 imulq %rax, %rax 70# CHECK-NEXT: 6 11 1.50 * * cmpxchgq %rcx, (%rdx) 71 72# CHECK: Resources: 73# CHECK-NEXT: [0] - JALU0 74# CHECK-NEXT: [1] - JALU1 75# CHECK-NEXT: [2] - JDiv 76# CHECK-NEXT: [3] - JFPA 77# CHECK-NEXT: [4] - JFPM 78# CHECK-NEXT: [5] - JFPU0 79# CHECK-NEXT: [6] - JFPU1 80# CHECK-NEXT: [7] - JLAGU 81# CHECK-NEXT: [8] - JMul 82# CHECK-NEXT: [9] - JSAGU 83# CHECK-NEXT: [10] - JSTC 84# CHECK-NEXT: [11] - JVALU0 85# CHECK-NEXT: [12] - JVALU1 86# CHECK-NEXT: [13] - JVIMUL 87 88# CHECK: Resource pressure per iteration: 89# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 90# CHECK-NEXT: 3.00 1.00 - - - - - 1.00 4.00 1.00 - - - - 91 92# CHECK: Resource pressure by instruction: 93# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 94# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - imulq %rax, %rax 95# CHECK-NEXT: 3.00 - - - - - - 1.00 - 1.00 - - - - cmpxchgq %rcx, (%rdx) 96 97# CHECK: Timeline view: 98# CHECK-NEXT: 0123456 99# CHECK-NEXT: Index 0123456789 100 101# CHECK: [0,0] DeeeeeeER . .. imulq %rax, %rax 102# CHECK-NEXT: [0,1] .D==eeeeeeeeeeeER cmpxchgq %rcx, (%rdx) 103 104# CHECK: Average Wait times (based on the timeline view): 105# CHECK-NEXT: [0]: Executions 106# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 107# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 108# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 109 110# CHECK: [0] [1] [2] [3] 111# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rax 112# CHECK-NEXT: 1. 1 3.0 0.0 0.0 cmpxchgq %rcx, (%rdx) 113# CHECK-NEXT: 1 2.0 0.5 0.0 <total> 114 115# CHECK: [1] Code Region 116 117# CHECK: Iterations: 1 118# CHECK-NEXT: Instructions: 2 119# CHECK-NEXT: Total Cycles: 17 120# CHECK-NEXT: Total uOps: 7 121 122# CHECK: Dispatch Width: 2 123# CHECK-NEXT: uOps Per Cycle: 0.41 124# CHECK-NEXT: IPC: 0.12 125# CHECK-NEXT: Block RThroughput: 4.0 126 127# CHECK: Instruction Info: 128# CHECK-NEXT: [1]: #uOps 129# CHECK-NEXT: [2]: Latency 130# CHECK-NEXT: [3]: RThroughput 131# CHECK-NEXT: [4]: MayLoad 132# CHECK-NEXT: [5]: MayStore 133# CHECK-NEXT: [6]: HasSideEffects (U) 134 135# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 136# CHECK-NEXT: 1 6 4.00 imulq %rcx, %rcx 137# CHECK-NEXT: 6 11 1.50 * * cmpxchgq %rcx, (%rdx) 138 139# CHECK: Resources: 140# CHECK-NEXT: [0] - JALU0 141# CHECK-NEXT: [1] - JALU1 142# CHECK-NEXT: [2] - JDiv 143# CHECK-NEXT: [3] - JFPA 144# CHECK-NEXT: [4] - JFPM 145# CHECK-NEXT: [5] - JFPU0 146# CHECK-NEXT: [6] - JFPU1 147# CHECK-NEXT: [7] - JLAGU 148# CHECK-NEXT: [8] - JMul 149# CHECK-NEXT: [9] - JSAGU 150# CHECK-NEXT: [10] - JSTC 151# CHECK-NEXT: [11] - JVALU0 152# CHECK-NEXT: [12] - JVALU1 153# CHECK-NEXT: [13] - JVIMUL 154 155# CHECK: Resource pressure per iteration: 156# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 157# CHECK-NEXT: 3.00 1.00 - - - - - 1.00 4.00 1.00 - - - - 158 159# CHECK: Resource pressure by instruction: 160# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 161# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - imulq %rcx, %rcx 162# CHECK-NEXT: 3.00 - - - - - - 1.00 - 1.00 - - - - cmpxchgq %rcx, (%rdx) 163 164# CHECK: Timeline view: 165# CHECK-NEXT: 0123456 166# CHECK-NEXT: Index 0123456789 167 168# CHECK: [0,0] DeeeeeeER . .. imulq %rcx, %rcx 169# CHECK-NEXT: [0,1] .D==eeeeeeeeeeeER cmpxchgq %rcx, (%rdx) 170 171# CHECK: Average Wait times (based on the timeline view): 172# CHECK-NEXT: [0]: Executions 173# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 174# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 175# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 176 177# CHECK: [0] [1] [2] [3] 178# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rcx, %rcx 179# CHECK-NEXT: 1. 1 3.0 0.0 0.0 cmpxchgq %rcx, (%rdx) 180# CHECK-NEXT: 1 2.0 0.5 0.0 <total> 181 182# CHECK: [2] Code Region 183 184# CHECK: Iterations: 1 185# CHECK-NEXT: Instructions: 2 186# CHECK-NEXT: Total Cycles: 23 187# CHECK-NEXT: Total uOps: 7 188 189# CHECK: Dispatch Width: 2 190# CHECK-NEXT: uOps Per Cycle: 0.30 191# CHECK-NEXT: IPC: 0.09 192# CHECK-NEXT: Block RThroughput: 17.0 193 194# CHECK: Instruction Info: 195# CHECK-NEXT: [1]: #uOps 196# CHECK-NEXT: [2]: Latency 197# CHECK-NEXT: [3]: RThroughput 198# CHECK-NEXT: [4]: MayLoad 199# CHECK-NEXT: [5]: MayStore 200# CHECK-NEXT: [6]: HasSideEffects (U) 201 202# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 203# CHECK-NEXT: 1 6 4.00 imulq %rax, %rax 204# CHECK-NEXT: 6 17 17.00 * * lock cmpxchgq %rcx, (%rdx) 205 206# CHECK: Resources: 207# CHECK-NEXT: [0] - JALU0 208# CHECK-NEXT: [1] - JALU1 209# CHECK-NEXT: [2] - JDiv 210# CHECK-NEXT: [3] - JFPA 211# CHECK-NEXT: [4] - JFPM 212# CHECK-NEXT: [5] - JFPU0 213# CHECK-NEXT: [6] - JFPU1 214# CHECK-NEXT: [7] - JLAGU 215# CHECK-NEXT: [8] - JMul 216# CHECK-NEXT: [9] - JSAGU 217# CHECK-NEXT: [10] - JSTC 218# CHECK-NEXT: [11] - JVALU0 219# CHECK-NEXT: [12] - JVALU1 220# CHECK-NEXT: [13] - JVIMUL 221 222# CHECK: Resource pressure per iteration: 223# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 224# CHECK-NEXT: 3.00 1.00 - - - - - 17.00 4.00 17.00 - - - - 225 226# CHECK: Resource pressure by instruction: 227# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 228# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - imulq %rax, %rax 229# CHECK-NEXT: 3.00 - - - - - - 17.00 - 17.00 - - - - lock cmpxchgq %rcx, (%rdx) 230 231# CHECK: Timeline view: 232# CHECK-NEXT: 0123456789 233# CHECK-NEXT: Index 0123456789 012 234 235# CHECK: [0,0] DeeeeeeER . . . . imulq %rax, %rax 236# CHECK-NEXT: [0,1] .D==eeeeeeeeeeeeeeeeeER lock cmpxchgq %rcx, (%rdx) 237 238# CHECK: Average Wait times (based on the timeline view): 239# CHECK-NEXT: [0]: Executions 240# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 241# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 242# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 243 244# CHECK: [0] [1] [2] [3] 245# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rax 246# CHECK-NEXT: 1. 1 3.0 0.0 0.0 lock cmpxchgq %rcx, (%rdx) 247# CHECK-NEXT: 1 2.0 0.5 0.0 <total> 248 249# CHECK: [3] Code Region 250 251# CHECK: Iterations: 1 252# CHECK-NEXT: Instructions: 2 253# CHECK-NEXT: Total Cycles: 23 254# CHECK-NEXT: Total uOps: 7 255 256# CHECK: Dispatch Width: 2 257# CHECK-NEXT: uOps Per Cycle: 0.30 258# CHECK-NEXT: IPC: 0.09 259# CHECK-NEXT: Block RThroughput: 17.0 260 261# CHECK: Instruction Info: 262# CHECK-NEXT: [1]: #uOps 263# CHECK-NEXT: [2]: Latency 264# CHECK-NEXT: [3]: RThroughput 265# CHECK-NEXT: [4]: MayLoad 266# CHECK-NEXT: [5]: MayStore 267# CHECK-NEXT: [6]: HasSideEffects (U) 268 269# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 270# CHECK-NEXT: 1 6 4.00 imulq %rcx, %rcx 271# CHECK-NEXT: 6 17 17.00 * * lock cmpxchgq %rcx, (%rdx) 272 273# CHECK: Resources: 274# CHECK-NEXT: [0] - JALU0 275# CHECK-NEXT: [1] - JALU1 276# CHECK-NEXT: [2] - JDiv 277# CHECK-NEXT: [3] - JFPA 278# CHECK-NEXT: [4] - JFPM 279# CHECK-NEXT: [5] - JFPU0 280# CHECK-NEXT: [6] - JFPU1 281# CHECK-NEXT: [7] - JLAGU 282# CHECK-NEXT: [8] - JMul 283# CHECK-NEXT: [9] - JSAGU 284# CHECK-NEXT: [10] - JSTC 285# CHECK-NEXT: [11] - JVALU0 286# CHECK-NEXT: [12] - JVALU1 287# CHECK-NEXT: [13] - JVIMUL 288 289# CHECK: Resource pressure per iteration: 290# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 291# CHECK-NEXT: 3.00 1.00 - - - - - 17.00 4.00 17.00 - - - - 292 293# CHECK: Resource pressure by instruction: 294# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 295# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - imulq %rcx, %rcx 296# CHECK-NEXT: 3.00 - - - - - - 17.00 - 17.00 - - - - lock cmpxchgq %rcx, (%rdx) 297 298# CHECK: Timeline view: 299# CHECK-NEXT: 0123456789 300# CHECK-NEXT: Index 0123456789 012 301 302# CHECK: [0,0] DeeeeeeER . . . . imulq %rcx, %rcx 303# CHECK-NEXT: [0,1] .D==eeeeeeeeeeeeeeeeeER lock cmpxchgq %rcx, (%rdx) 304 305# CHECK: Average Wait times (based on the timeline view): 306# CHECK-NEXT: [0]: Executions 307# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 308# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 309# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 310 311# CHECK: [0] [1] [2] [3] 312# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rcx, %rcx 313# CHECK-NEXT: 1. 1 3.0 0.0 0.0 lock cmpxchgq %rcx, (%rdx) 314# CHECK-NEXT: 1 2.0 0.5 0.0 <total> 315 316# CHECK: [4] Code Region 317 318# CHECK: Iterations: 1 319# CHECK-NEXT: Instructions: 3 320# CHECK-NEXT: Total Cycles: 15 321# CHECK-NEXT: Total uOps: 20 322 323# CHECK: Dispatch Width: 2 324# CHECK-NEXT: uOps Per Cycle: 1.33 325# CHECK-NEXT: IPC: 0.20 326# CHECK-NEXT: Block RThroughput: 10.0 327 328# CHECK: Instruction Info: 329# CHECK-NEXT: [1]: #uOps 330# CHECK-NEXT: [2]: Latency 331# CHECK-NEXT: [3]: RThroughput 332# CHECK-NEXT: [4]: MayLoad 333# CHECK-NEXT: [5]: MayStore 334# CHECK-NEXT: [6]: HasSideEffects (U) 335 336# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 337# CHECK-NEXT: 1 3 1.00 imull %eax, %eax 338# CHECK-NEXT: 1 3 1.00 imull %edx, %edx 339# CHECK-NEXT: 18 11 1.50 * * cmpxchg8b (%rsp) 340 341# CHECK: Resources: 342# CHECK-NEXT: [0] - JALU0 343# CHECK-NEXT: [1] - JALU1 344# CHECK-NEXT: [2] - JDiv 345# CHECK-NEXT: [3] - JFPA 346# CHECK-NEXT: [4] - JFPM 347# CHECK-NEXT: [5] - JFPU0 348# CHECK-NEXT: [6] - JFPU1 349# CHECK-NEXT: [7] - JLAGU 350# CHECK-NEXT: [8] - JMul 351# CHECK-NEXT: [9] - JSAGU 352# CHECK-NEXT: [10] - JSTC 353# CHECK-NEXT: [11] - JVALU0 354# CHECK-NEXT: [12] - JVALU1 355# CHECK-NEXT: [13] - JVIMUL 356 357# CHECK: Resource pressure per iteration: 358# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 359# CHECK-NEXT: 3.00 2.00 - - - - - 1.00 2.00 1.00 - - - - 360 361# CHECK: Resource pressure by instruction: 362# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 363# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %eax, %eax 364# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %edx, %edx 365# CHECK-NEXT: 3.00 - - - - - - 1.00 - 1.00 - - - - cmpxchg8b (%rsp) 366 367# CHECK: Timeline view: 368# CHECK-NEXT: 01234 369# CHECK-NEXT: Index 0123456789 370 371# CHECK: [0,0] DeeeER . . imull %eax, %eax 372# CHECK-NEXT: [0,1] D=eeeER . . imull %edx, %edx 373# CHECK-NEXT: [0,2] .DeeeeeeeeeeeER cmpxchg8b (%rsp) 374 375# CHECK: Average Wait times (based on the timeline view): 376# CHECK-NEXT: [0]: Executions 377# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 378# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 379# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 380 381# CHECK: [0] [1] [2] [3] 382# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %eax, %eax 383# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %edx, %edx 384# CHECK-NEXT: 2. 1 1.0 0.0 0.0 cmpxchg8b (%rsp) 385# CHECK-NEXT: 1 1.3 1.0 0.0 <total> 386 387# CHECK: [5] Code Region 388 389# CHECK: Iterations: 1 390# CHECK-NEXT: Instructions: 3 391# CHECK-NEXT: Total Cycles: 36 392# CHECK-NEXT: Total uOps: 30 393 394# CHECK: Dispatch Width: 2 395# CHECK-NEXT: uOps Per Cycle: 0.83 396# CHECK-NEXT: IPC: 0.08 397# CHECK-NEXT: Block RThroughput: 15.0 398 399# CHECK: Instruction Info: 400# CHECK-NEXT: [1]: #uOps 401# CHECK-NEXT: [2]: Latency 402# CHECK-NEXT: [3]: RThroughput 403# CHECK-NEXT: [4]: MayLoad 404# CHECK-NEXT: [5]: MayStore 405# CHECK-NEXT: [6]: HasSideEffects (U) 406 407# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 408# CHECK-NEXT: 1 3 1.00 imull %eax, %eax 409# CHECK-NEXT: 1 3 1.00 imull %edx, %edx 410# CHECK-NEXT: 28 32 3.00 * * cmpxchg16b (%rsp) 411 412# CHECK: Resources: 413# CHECK-NEXT: [0] - JALU0 414# CHECK-NEXT: [1] - JALU1 415# CHECK-NEXT: [2] - JDiv 416# CHECK-NEXT: [3] - JFPA 417# CHECK-NEXT: [4] - JFPM 418# CHECK-NEXT: [5] - JFPU0 419# CHECK-NEXT: [6] - JFPU1 420# CHECK-NEXT: [7] - JLAGU 421# CHECK-NEXT: [8] - JMul 422# CHECK-NEXT: [9] - JSAGU 423# CHECK-NEXT: [10] - JSTC 424# CHECK-NEXT: [11] - JVALU0 425# CHECK-NEXT: [12] - JVALU1 426# CHECK-NEXT: [13] - JVIMUL 427 428# CHECK: Resource pressure per iteration: 429# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 430# CHECK-NEXT: 6.00 2.00 - - - - - 1.00 2.00 1.00 - - - - 431 432# CHECK: Resource pressure by instruction: 433# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 434# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %eax, %eax 435# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %edx, %edx 436# CHECK-NEXT: 6.00 - - - - - - 1.00 - 1.00 - - - - cmpxchg16b (%rsp) 437 438# CHECK: Timeline view: 439# CHECK-NEXT: 0123456789 012345 440# CHECK-NEXT: Index 0123456789 0123456789 441 442# CHECK: [0,0] DeeeER . . . . . . imull %eax, %eax 443# CHECK-NEXT: [0,1] D=eeeER . . . . . . imull %edx, %edx 444# CHECK-NEXT: [0,2] .DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER cmpxchg16b (%rsp) 445 446# CHECK: Average Wait times (based on the timeline view): 447# CHECK-NEXT: [0]: Executions 448# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 449# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 450# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 451 452# CHECK: [0] [1] [2] [3] 453# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %eax, %eax 454# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %edx, %edx 455# CHECK-NEXT: 2. 1 1.0 0.0 0.0 cmpxchg16b (%rsp) 456# CHECK-NEXT: 1 1.3 1.0 0.0 <total> 457 458# CHECK: [6] Code Region 459 460# CHECK: Iterations: 1 461# CHECK-NEXT: Instructions: 3 462# CHECK-NEXT: Total Cycles: 23 463# CHECK-NEXT: Total uOps: 20 464 465# CHECK: Dispatch Width: 2 466# CHECK-NEXT: uOps Per Cycle: 0.87 467# CHECK-NEXT: IPC: 0.13 468# CHECK-NEXT: Block RThroughput: 19.0 469 470# CHECK: Instruction Info: 471# CHECK-NEXT: [1]: #uOps 472# CHECK-NEXT: [2]: Latency 473# CHECK-NEXT: [3]: RThroughput 474# CHECK-NEXT: [4]: MayLoad 475# CHECK-NEXT: [5]: MayStore 476# CHECK-NEXT: [6]: HasSideEffects (U) 477 478# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 479# CHECK-NEXT: 1 3 1.00 imull %ebx, %ebx 480# CHECK-NEXT: 1 3 1.00 imull %ecx, %ecx 481# CHECK-NEXT: 18 19 19.00 * * lock cmpxchg8b (%rsp) 482 483# CHECK: Resources: 484# CHECK-NEXT: [0] - JALU0 485# CHECK-NEXT: [1] - JALU1 486# CHECK-NEXT: [2] - JDiv 487# CHECK-NEXT: [3] - JFPA 488# CHECK-NEXT: [4] - JFPM 489# CHECK-NEXT: [5] - JFPU0 490# CHECK-NEXT: [6] - JFPU1 491# CHECK-NEXT: [7] - JLAGU 492# CHECK-NEXT: [8] - JMul 493# CHECK-NEXT: [9] - JSAGU 494# CHECK-NEXT: [10] - JSTC 495# CHECK-NEXT: [11] - JVALU0 496# CHECK-NEXT: [12] - JVALU1 497# CHECK-NEXT: [13] - JVIMUL 498 499# CHECK: Resource pressure per iteration: 500# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 501# CHECK-NEXT: 3.00 2.00 - - - - - 19.00 2.00 19.00 - - - - 502 503# CHECK: Resource pressure by instruction: 504# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 505# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %ebx, %ebx 506# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %ecx, %ecx 507# CHECK-NEXT: 3.00 - - - - - - 19.00 - 19.00 - - - - lock cmpxchg8b (%rsp) 508 509# CHECK: Timeline view: 510# CHECK-NEXT: 0123456789 511# CHECK-NEXT: Index 0123456789 012 512 513# CHECK: [0,0] DeeeER . . . . imull %ebx, %ebx 514# CHECK-NEXT: [0,1] D=eeeER . . . . imull %ecx, %ecx 515# CHECK-NEXT: [0,2] .DeeeeeeeeeeeeeeeeeeeER lock cmpxchg8b (%rsp) 516 517# CHECK: Average Wait times (based on the timeline view): 518# CHECK-NEXT: [0]: Executions 519# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 520# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 521# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 522 523# CHECK: [0] [1] [2] [3] 524# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %ebx, %ebx 525# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %ecx, %ecx 526# CHECK-NEXT: 2. 1 1.0 0.0 0.0 lock cmpxchg8b (%rsp) 527# CHECK-NEXT: 1 1.3 1.0 0.0 <total> 528 529# CHECK: [7] Code Region 530 531# CHECK: Iterations: 1 532# CHECK-NEXT: Instructions: 3 533# CHECK-NEXT: Total Cycles: 42 534# CHECK-NEXT: Total uOps: 30 535 536# CHECK: Dispatch Width: 2 537# CHECK-NEXT: uOps Per Cycle: 0.71 538# CHECK-NEXT: IPC: 0.07 539# CHECK-NEXT: Block RThroughput: 38.0 540 541# CHECK: Instruction Info: 542# CHECK-NEXT: [1]: #uOps 543# CHECK-NEXT: [2]: Latency 544# CHECK-NEXT: [3]: RThroughput 545# CHECK-NEXT: [4]: MayLoad 546# CHECK-NEXT: [5]: MayStore 547# CHECK-NEXT: [6]: HasSideEffects (U) 548 549# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 550# CHECK-NEXT: 1 3 1.00 imull %ebx, %ebx 551# CHECK-NEXT: 1 3 1.00 imull %ecx, %ecx 552# CHECK-NEXT: 28 38 38.00 * * lock cmpxchg16b (%rsp) 553 554# CHECK: Resources: 555# CHECK-NEXT: [0] - JALU0 556# CHECK-NEXT: [1] - JALU1 557# CHECK-NEXT: [2] - JDiv 558# CHECK-NEXT: [3] - JFPA 559# CHECK-NEXT: [4] - JFPM 560# CHECK-NEXT: [5] - JFPU0 561# CHECK-NEXT: [6] - JFPU1 562# CHECK-NEXT: [7] - JLAGU 563# CHECK-NEXT: [8] - JMul 564# CHECK-NEXT: [9] - JSAGU 565# CHECK-NEXT: [10] - JSTC 566# CHECK-NEXT: [11] - JVALU0 567# CHECK-NEXT: [12] - JVALU1 568# CHECK-NEXT: [13] - JVIMUL 569 570# CHECK: Resource pressure per iteration: 571# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 572# CHECK-NEXT: 6.00 2.00 - - - - - 38.00 2.00 38.00 - - - - 573 574# CHECK: Resource pressure by instruction: 575# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 576# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %ebx, %ebx 577# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %ecx, %ecx 578# CHECK-NEXT: 6.00 - - - - - - 38.00 - 38.00 - - - - lock cmpxchg16b (%rsp) 579 580# CHECK: Timeline view: 581# CHECK-NEXT: 0123456789 0123456789 582# CHECK-NEXT: Index 0123456789 0123456789 01 583 584# CHECK: [0,0] DeeeER . . . . . . .. imull %ebx, %ebx 585# CHECK-NEXT: [0,1] D=eeeER . . . . . . .. imull %ecx, %ecx 586# CHECK-NEXT: [0,2] .DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER lock cmpxchg16b (%rsp) 587 588# CHECK: Average Wait times (based on the timeline view): 589# CHECK-NEXT: [0]: Executions 590# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue 591# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready 592# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage 593 594# CHECK: [0] [1] [2] [3] 595# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %ebx, %ebx 596# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %ecx, %ecx 597# CHECK-NEXT: 2. 1 1.0 0.0 0.0 lock cmpxchg16b (%rsp) 598# CHECK-NEXT: 1 1.3 1.0 0.0 <total> 599