221 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 -iterations=500 < %s | FileCheck %s3 4# Throughput for all the code snippet below should be 1.00 IPC.5 6# LLVM-MCA-BEGIN7vpinsrb $0, %eax, %xmm0, %xmm08vpinsrb $1, %eax, %xmm0, %xmm09# LLVM-MCA-END10 11# LLVM-MCA-BEGIN12vpinsrw $0, %eax, %xmm0, %xmm013vpinsrw $1, %eax, %xmm0, %xmm014# LLVM-MCA-END15 16# LLVM-MCA-BEGIN17vpinsrd $0, %eax, %xmm0, %xmm018vpinsrd $1, %eax, %xmm0, %xmm019# LLVM-MCA-END20 21# LLVM-MCA-BEGIN22vpinsrq $0, %rax, %xmm0, %xmm023vpinsrq $1, %rax, %xmm0, %xmm024# LLVM-MCA-END25 26# CHECK: [0] Code Region27 28# CHECK: Iterations: 50029# CHECK-NEXT: Instructions: 100030# CHECK-NEXT: Total Cycles: 100331# CHECK-NEXT: Total uOps: 200032 33# CHECK: Dispatch Width: 234# CHECK-NEXT: uOps Per Cycle: 1.9935# CHECK-NEXT: IPC: 1.0036# CHECK-NEXT: Block RThroughput: 2.037 38# CHECK: Instruction Info:39# CHECK-NEXT: [1]: #uOps40# CHECK-NEXT: [2]: Latency41# CHECK-NEXT: [3]: RThroughput42# CHECK-NEXT: [4]: MayLoad43# CHECK-NEXT: [5]: MayStore44# CHECK-NEXT: [6]: HasSideEffects (U)45 46# CHECK: [1] [2] [3] [4] [5] [6] Instructions:47# CHECK-NEXT: 2 7 0.50 vpinsrb $0, %eax, %xmm0, %xmm048# CHECK-NEXT: 2 7 0.50 vpinsrb $1, %eax, %xmm0, %xmm049 50# CHECK: Resources:51# CHECK-NEXT: [0] - JALU052# CHECK-NEXT: [1] - JALU153# CHECK-NEXT: [2] - JDiv54# CHECK-NEXT: [3] - JFPA55# CHECK-NEXT: [4] - JFPM56# CHECK-NEXT: [5] - JFPU057# CHECK-NEXT: [6] - JFPU158# CHECK-NEXT: [7] - JLAGU59# CHECK-NEXT: [8] - JMul60# CHECK-NEXT: [9] - JSAGU61# CHECK-NEXT: [10] - JSTC62# CHECK-NEXT: [11] - JVALU063# CHECK-NEXT: [12] - JVALU164# CHECK-NEXT: [13] - JVIMUL65 66# CHECK: Resource pressure per iteration:67# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]68# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -69 70# CHECK: Resource pressure by instruction:71# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:72# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrb $0, %eax, %xmm0, %xmm073# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrb $1, %eax, %xmm0, %xmm074 75# CHECK: [1] Code Region76 77# CHECK: Iterations: 50078# CHECK-NEXT: Instructions: 100079# CHECK-NEXT: Total Cycles: 100380# CHECK-NEXT: Total uOps: 200081 82# CHECK: Dispatch Width: 283# CHECK-NEXT: uOps Per Cycle: 1.9984# CHECK-NEXT: IPC: 1.0085# CHECK-NEXT: Block RThroughput: 2.086 87# CHECK: Instruction Info:88# CHECK-NEXT: [1]: #uOps89# CHECK-NEXT: [2]: Latency90# CHECK-NEXT: [3]: RThroughput91# CHECK-NEXT: [4]: MayLoad92# CHECK-NEXT: [5]: MayStore93# CHECK-NEXT: [6]: HasSideEffects (U)94 95# CHECK: [1] [2] [3] [4] [5] [6] Instructions:96# CHECK-NEXT: 2 7 0.50 vpinsrw $0, %eax, %xmm0, %xmm097# CHECK-NEXT: 2 7 0.50 vpinsrw $1, %eax, %xmm0, %xmm098 99# CHECK: Resources:100# CHECK-NEXT: [0] - JALU0101# CHECK-NEXT: [1] - JALU1102# CHECK-NEXT: [2] - JDiv103# CHECK-NEXT: [3] - JFPA104# CHECK-NEXT: [4] - JFPM105# CHECK-NEXT: [5] - JFPU0106# CHECK-NEXT: [6] - JFPU1107# CHECK-NEXT: [7] - JLAGU108# CHECK-NEXT: [8] - JMul109# CHECK-NEXT: [9] - JSAGU110# CHECK-NEXT: [10] - JSTC111# CHECK-NEXT: [11] - JVALU0112# CHECK-NEXT: [12] - JVALU1113# CHECK-NEXT: [13] - JVIMUL114 115# CHECK: Resource pressure per iteration:116# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]117# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -118 119# CHECK: Resource pressure by instruction:120# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:121# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrw $0, %eax, %xmm0, %xmm0122# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrw $1, %eax, %xmm0, %xmm0123 124# CHECK: [2] Code Region125 126# CHECK: Iterations: 500127# CHECK-NEXT: Instructions: 1000128# CHECK-NEXT: Total Cycles: 1003129# CHECK-NEXT: Total uOps: 2000130 131# CHECK: Dispatch Width: 2132# CHECK-NEXT: uOps Per Cycle: 1.99133# CHECK-NEXT: IPC: 1.00134# CHECK-NEXT: Block RThroughput: 2.0135 136# CHECK: Instruction Info:137# CHECK-NEXT: [1]: #uOps138# CHECK-NEXT: [2]: Latency139# CHECK-NEXT: [3]: RThroughput140# CHECK-NEXT: [4]: MayLoad141# CHECK-NEXT: [5]: MayStore142# CHECK-NEXT: [6]: HasSideEffects (U)143 144# CHECK: [1] [2] [3] [4] [5] [6] Instructions:145# CHECK-NEXT: 2 7 0.50 vpinsrd $0, %eax, %xmm0, %xmm0146# CHECK-NEXT: 2 7 0.50 vpinsrd $1, %eax, %xmm0, %xmm0147 148# CHECK: Resources:149# CHECK-NEXT: [0] - JALU0150# CHECK-NEXT: [1] - JALU1151# CHECK-NEXT: [2] - JDiv152# CHECK-NEXT: [3] - JFPA153# CHECK-NEXT: [4] - JFPM154# CHECK-NEXT: [5] - JFPU0155# CHECK-NEXT: [6] - JFPU1156# CHECK-NEXT: [7] - JLAGU157# CHECK-NEXT: [8] - JMul158# CHECK-NEXT: [9] - JSAGU159# CHECK-NEXT: [10] - JSTC160# CHECK-NEXT: [11] - JVALU0161# CHECK-NEXT: [12] - JVALU1162# CHECK-NEXT: [13] - JVIMUL163 164# CHECK: Resource pressure per iteration:165# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]166# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -167 168# CHECK: Resource pressure by instruction:169# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:170# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrd $0, %eax, %xmm0, %xmm0171# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrd $1, %eax, %xmm0, %xmm0172 173# CHECK: [3] Code Region174 175# CHECK: Iterations: 500176# CHECK-NEXT: Instructions: 1000177# CHECK-NEXT: Total Cycles: 1003178# CHECK-NEXT: Total uOps: 2000179 180# CHECK: Dispatch Width: 2181# CHECK-NEXT: uOps Per Cycle: 1.99182# CHECK-NEXT: IPC: 1.00183# CHECK-NEXT: Block RThroughput: 2.0184 185# CHECK: Instruction Info:186# CHECK-NEXT: [1]: #uOps187# CHECK-NEXT: [2]: Latency188# CHECK-NEXT: [3]: RThroughput189# CHECK-NEXT: [4]: MayLoad190# CHECK-NEXT: [5]: MayStore191# CHECK-NEXT: [6]: HasSideEffects (U)192 193# CHECK: [1] [2] [3] [4] [5] [6] Instructions:194# CHECK-NEXT: 2 7 0.50 vpinsrq $0, %rax, %xmm0, %xmm0195# CHECK-NEXT: 2 7 0.50 vpinsrq $1, %rax, %xmm0, %xmm0196 197# CHECK: Resources:198# CHECK-NEXT: [0] - JALU0199# CHECK-NEXT: [1] - JALU1200# CHECK-NEXT: [2] - JDiv201# CHECK-NEXT: [3] - JFPA202# CHECK-NEXT: [4] - JFPM203# CHECK-NEXT: [5] - JFPU0204# CHECK-NEXT: [6] - JFPU1205# CHECK-NEXT: [7] - JLAGU206# CHECK-NEXT: [8] - JMul207# CHECK-NEXT: [9] - JSAGU208# CHECK-NEXT: [10] - JSTC209# CHECK-NEXT: [11] - JVALU0210# CHECK-NEXT: [12] - JVALU1211# CHECK-NEXT: [13] - JVIMUL212 213# CHECK: Resource pressure per iteration:214# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]215# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -216 217# CHECK: Resource pressure by instruction:218# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:219# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrq $0, %rax, %xmm0, %xmm0220# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrq $1, %rax, %xmm0, %xmm0221