121 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=3 < %s | FileCheck %s3 4# movss/movsd explicitly zeroes out the high bits of xmm,5# so addps can start immediately, without waiting for sqrtss to finish.6# AMD SOG for the AMD family 10h and 12h processors, 4.8 Partial-Register Writes7 8# LLVM-MCA-BEGIN9sqrtss %xmm0, %xmm010movss (%eax), %xmm011addps %xmm0, %xmm012# LLVM-MCA-END13 14# LLVM-MCA-BEGIN15sqrtsd %xmm0, %xmm016movsd (%eax), %xmm017addps %xmm0, %xmm018# LLVM-MCA-END19 20# CHECK: [0] Code Region21 22# CHECK: Iterations: 10023# CHECK-NEXT: Instructions: 30024# CHECK-NEXT: Total Cycles: 140325# CHECK-NEXT: Total uOps: 30026 27# CHECK: Dispatch Width: 428# CHECK-NEXT: uOps Per Cycle: 0.2129# CHECK-NEXT: IPC: 0.2130# CHECK-NEXT: Block RThroughput: 14.031 32# CHECK: Instruction Info:33# CHECK-NEXT: [1]: #uOps34# CHECK-NEXT: [2]: Latency35# CHECK-NEXT: [3]: RThroughput36# CHECK-NEXT: [4]: MayLoad37# CHECK-NEXT: [5]: MayStore38# CHECK-NEXT: [6]: HasSideEffects (U)39 40# CHECK: [1] [2] [3] [4] [5] [6] Instructions:41# CHECK-NEXT: 1 14 14.00 sqrtss %xmm0, %xmm042# CHECK-NEXT: 1 6 0.50 * movss (%eax), %xmm043# CHECK-NEXT: 1 3 1.00 addps %xmm0, %xmm044 45# CHECK: Timeline view:46# CHECK-NEXT: 0123456789 012345678947# CHECK-NEXT: Index 0123456789 0123456789 0123448 49# CHECK: [0,0] DeeeeeeeeeeeeeeER . . . . . . sqrtss %xmm0, %xmm050# CHECK-NEXT: [0,1] DeeeeeeE--------R . . . . . . movss (%eax), %xmm051# CHECK-NEXT: [0,2] D======eeeE-----R . . . . . . addps %xmm0, %xmm052# CHECK-NEXT: [1,0] D==============eeeeeeeeeeeeeeER . . . sqrtss %xmm0, %xmm053# CHECK-NEXT: [1,1] .DeeeeeeE---------------------R . . . movss (%eax), %xmm054# CHECK-NEXT: [1,2] .D======eeeE------------------R . . . addps %xmm0, %xmm055# CHECK-NEXT: [2,0] .D===========================eeeeeeeeeeeeeeER sqrtss %xmm0, %xmm056# CHECK-NEXT: [2,1] .DeeeeeeE-----------------------------------R movss (%eax), %xmm057# CHECK-NEXT: [2,2] . D======eeeE-------------------------------R addps %xmm0, %xmm058 59# CHECK: Average Wait times (based on the timeline view):60# CHECK-NEXT: [0]: Executions61# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue62# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready63# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage64 65# CHECK: [0] [1] [2] [3]66# CHECK-NEXT: 0. 3 14.7 8.0 0.0 sqrtss %xmm0, %xmm067# CHECK-NEXT: 1. 3 1.0 1.0 21.3 movss (%eax), %xmm068# CHECK-NEXT: 2. 3 7.0 0.3 18.0 addps %xmm0, %xmm069# CHECK-NEXT: 3 7.6 3.1 13.1 <total>70 71# CHECK: [1] Code Region72 73# CHECK: Iterations: 10074# CHECK-NEXT: Instructions: 30075# CHECK-NEXT: Total Cycles: 210376# CHECK-NEXT: Total uOps: 30077 78# CHECK: Dispatch Width: 479# CHECK-NEXT: uOps Per Cycle: 0.1480# CHECK-NEXT: IPC: 0.1481# CHECK-NEXT: Block RThroughput: 21.082 83# CHECK: Instruction Info:84# CHECK-NEXT: [1]: #uOps85# CHECK-NEXT: [2]: Latency86# CHECK-NEXT: [3]: RThroughput87# CHECK-NEXT: [4]: MayLoad88# CHECK-NEXT: [5]: MayStore89# CHECK-NEXT: [6]: HasSideEffects (U)90 91# CHECK: [1] [2] [3] [4] [5] [6] Instructions:92# CHECK-NEXT: 1 21 21.00 sqrtsd %xmm0, %xmm093# CHECK-NEXT: 1 6 0.50 * movsd (%eax), %xmm094# CHECK-NEXT: 1 3 1.00 addps %xmm0, %xmm095 96# CHECK: Timeline view:97# CHECK-NEXT: 0123456789 0123456789 012345678998# CHECK-NEXT: Index 0123456789 0123456789 0123456789 01234599 100# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeER . . . . . . . . . sqrtsd %xmm0, %xmm0101# CHECK-NEXT: [0,1] DeeeeeeE---------------R . . . . . . . . . movsd (%eax), %xmm0102# CHECK-NEXT: [0,2] D======eeeE------------R . . . . . . . . . addps %xmm0, %xmm0103# CHECK-NEXT: [1,0] D=====================eeeeeeeeeeeeeeeeeeeeeER. . . . . sqrtsd %xmm0, %xmm0104# CHECK-NEXT: [1,1] .DeeeeeeE-----------------------------------R. . . . . movsd (%eax), %xmm0105# CHECK-NEXT: [1,2] .D======eeeE--------------------------------R. . . . . addps %xmm0, %xmm0106# CHECK-NEXT: [2,0] .D=========================================eeeeeeeeeeeeeeeeeeeeeER sqrtsd %xmm0, %xmm0107# CHECK-NEXT: [2,1] .DeeeeeeE--------------------------------------------------------R movsd (%eax), %xmm0108# CHECK-NEXT: [2,2] . D======eeeE----------------------------------------------------R addps %xmm0, %xmm0109 110# CHECK: Average Wait times (based on the timeline view):111# CHECK-NEXT: [0]: Executions112# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue113# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready114# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage115 116# CHECK: [0] [1] [2] [3]117# CHECK-NEXT: 0. 3 21.7 15.0 0.0 sqrtsd %xmm0, %xmm0118# CHECK-NEXT: 1. 3 1.0 1.0 35.3 movsd (%eax), %xmm0119# CHECK-NEXT: 2. 3 7.0 0.3 32.0 addps %xmm0, %xmm0120# CHECK-NEXT: 3 9.9 5.4 22.4 <total>121