95 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s3 4# perf stat reports an IPC of 2.00 for this block of code.5 6# All of the vector packed compares from this test are zero idioms. These zero7# idioms are all detected and removed by the register renamer. That means, no8# uOp is executed, and there is no RAW dependency for any of the packed9# compares.10 11vpcmpgtb %xmm0, %xmm0, %xmm112vpcmpgtw %xmm1, %xmm1, %xmm213vpcmpgtd %xmm2, %xmm2, %xmm314vpcmpgtq %xmm3, %xmm3, %xmm015 16# CHECK: Iterations: 150017# CHECK-NEXT: Instructions: 600018# CHECK-NEXT: Total Cycles: 300119# CHECK-NEXT: Total uOps: 600020 21# CHECK: Dispatch Width: 222# CHECK-NEXT: uOps Per Cycle: 2.0023# CHECK-NEXT: IPC: 2.0024# CHECK-NEXT: Block RThroughput: 2.025 26# CHECK: Instruction Info:27# CHECK-NEXT: [1]: #uOps28# CHECK-NEXT: [2]: Latency29# CHECK-NEXT: [3]: RThroughput30# CHECK-NEXT: [4]: MayLoad31# CHECK-NEXT: [5]: MayStore32# CHECK-NEXT: [6]: HasSideEffects (U)33 34# CHECK: [1] [2] [3] [4] [5] [6] Instructions:35# CHECK-NEXT: 1 0 0.50 vpcmpgtb %xmm0, %xmm0, %xmm136# CHECK-NEXT: 1 0 0.50 vpcmpgtw %xmm1, %xmm1, %xmm237# CHECK-NEXT: 1 0 0.50 vpcmpgtd %xmm2, %xmm2, %xmm338# CHECK-NEXT: 1 0 0.50 vpcmpgtq %xmm3, %xmm3, %xmm039 40# CHECK: Resources:41# CHECK-NEXT: [0] - JALU042# CHECK-NEXT: [1] - JALU143# CHECK-NEXT: [2] - JDiv44# CHECK-NEXT: [3] - JFPA45# CHECK-NEXT: [4] - JFPM46# CHECK-NEXT: [5] - JFPU047# CHECK-NEXT: [6] - JFPU148# CHECK-NEXT: [7] - JLAGU49# CHECK-NEXT: [8] - JMul50# CHECK-NEXT: [9] - JSAGU51# CHECK-NEXT: [10] - JSTC52# CHECK-NEXT: [11] - JVALU053# CHECK-NEXT: [12] - JVALU154# CHECK-NEXT: [13] - JVIMUL55 56# CHECK: Resource pressure per iteration:57# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]58# CHECK-NEXT: - - - - - - - - - - - - - -59 60# CHECK: Resource pressure by instruction:61# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:62# CHECK-NEXT: - - - - - - - - - - - - - - vpcmpgtb %xmm0, %xmm0, %xmm163# CHECK-NEXT: - - - - - - - - - - - - - - vpcmpgtw %xmm1, %xmm1, %xmm264# CHECK-NEXT: - - - - - - - - - - - - - - vpcmpgtd %xmm2, %xmm2, %xmm365# CHECK-NEXT: - - - - - - - - - - - - - - vpcmpgtq %xmm3, %xmm3, %xmm066 67# CHECK: Timeline view:68# CHECK-NEXT: Index 012345669 70# CHECK: [0,0] DR .. vpcmpgtb %xmm0, %xmm0, %xmm171# CHECK-NEXT: [0,1] DR .. vpcmpgtw %xmm1, %xmm1, %xmm272# CHECK-NEXT: [0,2] .DR .. vpcmpgtd %xmm2, %xmm2, %xmm373# CHECK-NEXT: [0,3] .DR .. vpcmpgtq %xmm3, %xmm3, %xmm074# CHECK-NEXT: [1,0] . DR .. vpcmpgtb %xmm0, %xmm0, %xmm175# CHECK-NEXT: [1,1] . DR .. vpcmpgtw %xmm1, %xmm1, %xmm276# CHECK-NEXT: [1,2] . DR.. vpcmpgtd %xmm2, %xmm2, %xmm377# CHECK-NEXT: [1,3] . DR.. vpcmpgtq %xmm3, %xmm3, %xmm078# CHECK-NEXT: [2,0] . DR. vpcmpgtb %xmm0, %xmm0, %xmm179# CHECK-NEXT: [2,1] . DR. vpcmpgtw %xmm1, %xmm1, %xmm280# CHECK-NEXT: [2,2] . DR vpcmpgtd %xmm2, %xmm2, %xmm381# CHECK-NEXT: [2,3] . DR vpcmpgtq %xmm3, %xmm3, %xmm082 83# CHECK: Average Wait times (based on the timeline view):84# CHECK-NEXT: [0]: Executions85# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue86# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready87# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage88 89# CHECK: [0] [1] [2] [3]90# CHECK-NEXT: 0. 3 0.0 0.0 0.0 vpcmpgtb %xmm0, %xmm0, %xmm191# CHECK-NEXT: 1. 3 0.0 0.0 0.0 vpcmpgtw %xmm1, %xmm1, %xmm292# CHECK-NEXT: 2. 3 0.0 0.0 0.0 vpcmpgtd %xmm2, %xmm2, %xmm393# CHECK-NEXT: 3. 3 0.0 0.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm094# CHECK-NEXT: 3 0.0 0.0 0.0 <total>95