1a4d1ffc2SAndrea Di Biagio# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2a4d1ffc2SAndrea Di Biagio# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=500 < %s | FileCheck %s 3a4d1ffc2SAndrea Di Biagio 4a4d1ffc2SAndrea Di Biagio# Throughput for all the code snippet below should be 1.00 IPC. 5a4d1ffc2SAndrea Di Biagio 6a4d1ffc2SAndrea Di Biagio# LLVM-MCA-BEGIN 7a4d1ffc2SAndrea Di Biagiovpinsrb $0, %eax, %xmm0, %xmm0 8a4d1ffc2SAndrea Di Biagiovpinsrb $1, %eax, %xmm0, %xmm0 9a4d1ffc2SAndrea Di Biagio# LLVM-MCA-END 10a4d1ffc2SAndrea Di Biagio 11a4d1ffc2SAndrea Di Biagio# LLVM-MCA-BEGIN 12a4d1ffc2SAndrea Di Biagiovpinsrw $0, %eax, %xmm0, %xmm0 13a4d1ffc2SAndrea Di Biagiovpinsrw $1, %eax, %xmm0, %xmm0 14a4d1ffc2SAndrea Di Biagio# LLVM-MCA-END 15a4d1ffc2SAndrea Di Biagio 16a4d1ffc2SAndrea Di Biagio# LLVM-MCA-BEGIN 17a4d1ffc2SAndrea Di Biagiovpinsrd $0, %eax, %xmm0, %xmm0 18a4d1ffc2SAndrea Di Biagiovpinsrd $1, %eax, %xmm0, %xmm0 19a4d1ffc2SAndrea Di Biagio# LLVM-MCA-END 20a4d1ffc2SAndrea Di Biagio 21a4d1ffc2SAndrea Di Biagio# LLVM-MCA-BEGIN 22a4d1ffc2SAndrea Di Biagiovpinsrq $0, %rax, %xmm0, %xmm0 23a4d1ffc2SAndrea Di Biagiovpinsrq $1, %rax, %xmm0, %xmm0 24a4d1ffc2SAndrea Di Biagio# LLVM-MCA-END 25a4d1ffc2SAndrea Di Biagio 26a4d1ffc2SAndrea Di Biagio# CHECK: [0] Code Region 27a4d1ffc2SAndrea Di Biagio 28a4d1ffc2SAndrea Di Biagio# CHECK: Iterations: 500 29a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Instructions: 1000 30*d768d355SAndrea Di Biagio# CHECK-NEXT: Total Cycles: 1003 31a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Total uOps: 2000 32a4d1ffc2SAndrea Di Biagio 33a4d1ffc2SAndrea Di Biagio# CHECK: Dispatch Width: 2 34*d768d355SAndrea Di Biagio# CHECK-NEXT: uOps Per Cycle: 1.99 35*d768d355SAndrea Di Biagio# CHECK-NEXT: IPC: 1.00 36a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Block RThroughput: 2.0 37a4d1ffc2SAndrea Di Biagio 38a4d1ffc2SAndrea Di Biagio# CHECK: Instruction Info: 39a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1]: #uOps 40a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2]: Latency 41a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3]: RThroughput 42a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4]: MayLoad 43a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5]: MayStore 44a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6]: HasSideEffects (U) 45a4d1ffc2SAndrea Di Biagio 46a4d1ffc2SAndrea Di Biagio# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 47a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrb $0, %eax, %xmm0, %xmm0 48a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrb $1, %eax, %xmm0, %xmm0 49a4d1ffc2SAndrea Di Biagio 50a4d1ffc2SAndrea Di Biagio# CHECK: Resources: 51a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] - JALU0 52a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1] - JALU1 53a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2] - JDiv 54a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3] - JFPA 55a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4] - JFPM 56a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5] - JFPU0 57a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6] - JFPU1 58a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [7] - JLAGU 59a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [8] - JMul 60a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [9] - JSAGU 61a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [10] - JSTC 62a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [11] - JVALU0 63a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [12] - JVALU1 64a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [13] - JVIMUL 65a4d1ffc2SAndrea Di Biagio 66a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure per iteration: 67a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 68a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 - 69a4d1ffc2SAndrea Di Biagio 70a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure by instruction: 71a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 72a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrb $0, %eax, %xmm0, %xmm0 73a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrb $1, %eax, %xmm0, %xmm0 74a4d1ffc2SAndrea Di Biagio 75a4d1ffc2SAndrea Di Biagio# CHECK: [1] Code Region 76a4d1ffc2SAndrea Di Biagio 77a4d1ffc2SAndrea Di Biagio# CHECK: Iterations: 500 78a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Instructions: 1000 79*d768d355SAndrea Di Biagio# CHECK-NEXT: Total Cycles: 1003 80a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Total uOps: 2000 81a4d1ffc2SAndrea Di Biagio 82a4d1ffc2SAndrea Di Biagio# CHECK: Dispatch Width: 2 83*d768d355SAndrea Di Biagio# CHECK-NEXT: uOps Per Cycle: 1.99 84*d768d355SAndrea Di Biagio# CHECK-NEXT: IPC: 1.00 85a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Block RThroughput: 2.0 86a4d1ffc2SAndrea Di Biagio 87a4d1ffc2SAndrea Di Biagio# CHECK: Instruction Info: 88a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1]: #uOps 89a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2]: Latency 90a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3]: RThroughput 91a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4]: MayLoad 92a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5]: MayStore 93a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6]: HasSideEffects (U) 94a4d1ffc2SAndrea Di Biagio 95a4d1ffc2SAndrea Di Biagio# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 96a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrw $0, %eax, %xmm0, %xmm0 97a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrw $1, %eax, %xmm0, %xmm0 98a4d1ffc2SAndrea Di Biagio 99a4d1ffc2SAndrea Di Biagio# CHECK: Resources: 100a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] - JALU0 101a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1] - JALU1 102a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2] - JDiv 103a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3] - JFPA 104a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4] - JFPM 105a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5] - JFPU0 106a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6] - JFPU1 107a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [7] - JLAGU 108a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [8] - JMul 109a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [9] - JSAGU 110a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [10] - JSTC 111a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [11] - JVALU0 112a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [12] - JVALU1 113a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [13] - JVIMUL 114a4d1ffc2SAndrea Di Biagio 115a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure per iteration: 116a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 117a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 - 118a4d1ffc2SAndrea Di Biagio 119a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure by instruction: 120a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 121a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrw $0, %eax, %xmm0, %xmm0 122a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrw $1, %eax, %xmm0, %xmm0 123a4d1ffc2SAndrea Di Biagio 124a4d1ffc2SAndrea Di Biagio# CHECK: [2] Code Region 125a4d1ffc2SAndrea Di Biagio 126a4d1ffc2SAndrea Di Biagio# CHECK: Iterations: 500 127a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Instructions: 1000 128*d768d355SAndrea Di Biagio# CHECK-NEXT: Total Cycles: 1003 129a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Total uOps: 2000 130a4d1ffc2SAndrea Di Biagio 131a4d1ffc2SAndrea Di Biagio# CHECK: Dispatch Width: 2 132*d768d355SAndrea Di Biagio# CHECK-NEXT: uOps Per Cycle: 1.99 133*d768d355SAndrea Di Biagio# CHECK-NEXT: IPC: 1.00 134a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Block RThroughput: 2.0 135a4d1ffc2SAndrea Di Biagio 136a4d1ffc2SAndrea Di Biagio# CHECK: Instruction Info: 137a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1]: #uOps 138a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2]: Latency 139a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3]: RThroughput 140a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4]: MayLoad 141a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5]: MayStore 142a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6]: HasSideEffects (U) 143a4d1ffc2SAndrea Di Biagio 144a4d1ffc2SAndrea Di Biagio# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 145a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrd $0, %eax, %xmm0, %xmm0 146a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrd $1, %eax, %xmm0, %xmm0 147a4d1ffc2SAndrea Di Biagio 148a4d1ffc2SAndrea Di Biagio# CHECK: Resources: 149a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] - JALU0 150a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1] - JALU1 151a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2] - JDiv 152a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3] - JFPA 153a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4] - JFPM 154a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5] - JFPU0 155a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6] - JFPU1 156a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [7] - JLAGU 157a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [8] - JMul 158a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [9] - JSAGU 159a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [10] - JSTC 160a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [11] - JVALU0 161a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [12] - JVALU1 162a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [13] - JVIMUL 163a4d1ffc2SAndrea Di Biagio 164a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure per iteration: 165a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 166a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 - 167a4d1ffc2SAndrea Di Biagio 168a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure by instruction: 169a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 170a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrd $0, %eax, %xmm0, %xmm0 171a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrd $1, %eax, %xmm0, %xmm0 172a4d1ffc2SAndrea Di Biagio 173a4d1ffc2SAndrea Di Biagio# CHECK: [3] Code Region 174a4d1ffc2SAndrea Di Biagio 175a4d1ffc2SAndrea Di Biagio# CHECK: Iterations: 500 176a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Instructions: 1000 177*d768d355SAndrea Di Biagio# CHECK-NEXT: Total Cycles: 1003 178a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Total uOps: 2000 179a4d1ffc2SAndrea Di Biagio 180a4d1ffc2SAndrea Di Biagio# CHECK: Dispatch Width: 2 181*d768d355SAndrea Di Biagio# CHECK-NEXT: uOps Per Cycle: 1.99 182*d768d355SAndrea Di Biagio# CHECK-NEXT: IPC: 1.00 183a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: Block RThroughput: 2.0 184a4d1ffc2SAndrea Di Biagio 185a4d1ffc2SAndrea Di Biagio# CHECK: Instruction Info: 186a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1]: #uOps 187a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2]: Latency 188a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3]: RThroughput 189a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4]: MayLoad 190a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5]: MayStore 191a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6]: HasSideEffects (U) 192a4d1ffc2SAndrea Di Biagio 193a4d1ffc2SAndrea Di Biagio# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 194a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrq $0, %rax, %xmm0, %xmm0 195a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: 2 7 0.50 vpinsrq $1, %rax, %xmm0, %xmm0 196a4d1ffc2SAndrea Di Biagio 197a4d1ffc2SAndrea Di Biagio# CHECK: Resources: 198a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] - JALU0 199a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [1] - JALU1 200a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [2] - JDiv 201a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [3] - JFPA 202a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [4] - JFPM 203a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [5] - JFPU0 204a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [6] - JFPU1 205a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [7] - JLAGU 206a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [8] - JMul 207a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [9] - JSAGU 208a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [10] - JSTC 209a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [11] - JVALU0 210a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [12] - JVALU1 211a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [13] - JVIMUL 212a4d1ffc2SAndrea Di Biagio 213a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure per iteration: 214a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 215a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 - 216a4d1ffc2SAndrea Di Biagio 217a4d1ffc2SAndrea Di Biagio# CHECK: Resource pressure by instruction: 218a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: 219a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrq $0, %rax, %xmm0, %xmm0 220a4d1ffc2SAndrea Di Biagio# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrq $1, %rax, %xmm0, %xmm0 221