1a5192187SRoman Lebedev# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2a5baf867SRoman Lebedev# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s 3a5192187SRoman Lebedev 4a5192187SRoman Lebedevbextr $8192, %ebx, %ecx 5a5192187SRoman Lebedevbextr $8192, (%rbx), %ecx 6a5192187SRoman Lebedev 7a5192187SRoman Lebedevbextr $16384, %rbx, %rcx 8a5192187SRoman Lebedevbextr $16384, (%rbx), %rcx 9a5192187SRoman Lebedev 10a5192187SRoman Lebedevblcfill %eax, %ecx 11a5192187SRoman Lebedevblcfill (%rax), %ecx 12a5192187SRoman Lebedev 13a5192187SRoman Lebedevblcfill %rax, %rcx 14a5192187SRoman Lebedevblcfill (%rax), %rcx 15a5192187SRoman Lebedev 16a5192187SRoman Lebedevblci %eax, %ecx 17a5192187SRoman Lebedevblci (%rax), %ecx 18a5192187SRoman Lebedev 19a5192187SRoman Lebedevblci %rax, %rcx 20a5192187SRoman Lebedevblci (%rax), %rcx 21a5192187SRoman Lebedev 22a5192187SRoman Lebedevblcic %eax, %ecx 23a5192187SRoman Lebedevblcic (%rax), %ecx 24a5192187SRoman Lebedev 25a5192187SRoman Lebedevblcic %rax, %rcx 26a5192187SRoman Lebedevblcic (%rax), %rcx 27a5192187SRoman Lebedev 28a5192187SRoman Lebedevblcmsk %eax, %ecx 29a5192187SRoman Lebedevblcmsk (%rax), %ecx 30a5192187SRoman Lebedev 31a5192187SRoman Lebedevblcmsk %rax, %rcx 32a5192187SRoman Lebedevblcmsk (%rax), %rcx 33a5192187SRoman Lebedev 34a5192187SRoman Lebedevblcs %eax, %ecx 35a5192187SRoman Lebedevblcs (%rax), %ecx 36a5192187SRoman Lebedev 37a5192187SRoman Lebedevblcs %rax, %rcx 38a5192187SRoman Lebedevblcs (%rax), %rcx 39a5192187SRoman Lebedev 40a5192187SRoman Lebedevblsfill %eax, %ecx 41a5192187SRoman Lebedevblsfill (%rax), %ecx 42a5192187SRoman Lebedev 43a5192187SRoman Lebedevblsfill %rax, %rcx 44a5192187SRoman Lebedevblsfill (%rax), %rcx 45a5192187SRoman Lebedev 46a5192187SRoman Lebedevblsic %eax, %ecx 47a5192187SRoman Lebedevblsic (%rax), %ecx 48a5192187SRoman Lebedev 49a5192187SRoman Lebedevblsic %rax, %rcx 50a5192187SRoman Lebedevblsic (%rax), %rcx 51a5192187SRoman Lebedev 52a5192187SRoman Lebedevt1mskc %eax, %ecx 53a5192187SRoman Lebedevt1mskc (%rax), %ecx 54a5192187SRoman Lebedev 55a5192187SRoman Lebedevt1mskc %rax, %rcx 56a5192187SRoman Lebedevt1mskc (%rax), %rcx 57a5192187SRoman Lebedev 58a5192187SRoman Lebedevtzmsk %eax, %ecx 59a5192187SRoman Lebedevtzmsk (%rax), %ecx 60a5192187SRoman Lebedev 61a5192187SRoman Lebedevtzmsk %rax, %rcx 62a5192187SRoman Lebedevtzmsk (%rax), %rcx 63a5192187SRoman Lebedev 64a5192187SRoman Lebedev# CHECK: Instruction Info: 65a5192187SRoman Lebedev# CHECK-NEXT: [1]: #uOps 66a5192187SRoman Lebedev# CHECK-NEXT: [2]: Latency 67a5192187SRoman Lebedev# CHECK-NEXT: [3]: RThroughput 68a5192187SRoman Lebedev# CHECK-NEXT: [4]: MayLoad 69a5192187SRoman Lebedev# CHECK-NEXT: [5]: MayStore 70a5192187SRoman Lebedev# CHECK-NEXT: [6]: HasSideEffects (U) 71a5192187SRoman Lebedev 72a5192187SRoman Lebedev# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 73*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.00 bextrl $8192, %ebx, %ecx 74*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.50 * bextrl $8192, (%rbx), %ecx 75*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.00 bextrq $16384, %rbx, %rcx 76*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.50 * bextrq $16384, (%rbx), %rcx 77*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcfilll %eax, %ecx 78*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcfilll (%rax), %ecx 79*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcfillq %rax, %rcx 80*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcfillq (%rax), %rcx 81*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcil %eax, %ecx 82*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcil (%rax), %ecx 83*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blciq %rax, %rcx 84*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blciq (%rax), %rcx 85*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcicl %eax, %ecx 86*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcicl (%rax), %ecx 87*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcicq %rax, %rcx 88*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcicq (%rax), %rcx 89*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcmskl %eax, %ecx 90*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcmskl (%rax), %ecx 91*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcmskq %rax, %rcx 92*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcmskq (%rax), %rcx 93*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcsl %eax, %ecx 94*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcsl (%rax), %ecx 95*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blcsq %rax, %rcx 96*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blcsq (%rax), %rcx 97*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsfilll %eax, %ecx 98*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsfilll (%rax), %ecx 99*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsfillq %rax, %rcx 100*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsfillq (%rax), %rcx 101*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsicl %eax, %ecx 102*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsicl (%rax), %ecx 103*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsicq %rax, %rcx 104*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsicq (%rax), %rcx 105*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 t1mskcl %eax, %ecx 106*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * t1mskcl (%rax), %ecx 107*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 t1mskcq %rax, %rcx 108*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * t1mskcq (%rax), %rcx 109*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 tzmskl %eax, %ecx 110*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * tzmskl (%rax), %ecx 111*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 tzmskq %rax, %rcx 112*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * tzmskq (%rax), %rcx 113a5192187SRoman Lebedev 114a5192187SRoman Lebedev# CHECK: Resources: 115a5baf867SRoman Lebedev# CHECK-NEXT: [0.0] - PdAGLU01 116a5baf867SRoman Lebedev# CHECK-NEXT: [0.1] - PdAGLU01 117a5baf867SRoman Lebedev# CHECK-NEXT: [1] - PdBranch 118a5baf867SRoman Lebedev# CHECK-NEXT: [2] - PdCount 119a5baf867SRoman Lebedev# CHECK-NEXT: [3] - PdDiv 120a5baf867SRoman Lebedev# CHECK-NEXT: [4] - PdEX0 121a5baf867SRoman Lebedev# CHECK-NEXT: [5] - PdEX1 122a5baf867SRoman Lebedev# CHECK-NEXT: [6] - PdFPCVT 123a5baf867SRoman Lebedev# CHECK-NEXT: [7.0] - PdFPFMA 124a5baf867SRoman Lebedev# CHECK-NEXT: [7.1] - PdFPFMA 125a5baf867SRoman Lebedev# CHECK-NEXT: [8.0] - PdFPMAL 126a5baf867SRoman Lebedev# CHECK-NEXT: [8.1] - PdFPMAL 127a5baf867SRoman Lebedev# CHECK-NEXT: [9] - PdFPMMA 128a5baf867SRoman Lebedev# CHECK-NEXT: [10] - PdFPSTO 129a5baf867SRoman Lebedev# CHECK-NEXT: [11] - PdFPU0 130a5baf867SRoman Lebedev# CHECK-NEXT: [12] - PdFPU1 131a5baf867SRoman Lebedev# CHECK-NEXT: [13] - PdFPU2 132a5baf867SRoman Lebedev# CHECK-NEXT: [14] - PdFPU3 133a5baf867SRoman Lebedev# CHECK-NEXT: [15] - PdFPXBR 134b428b8b2SRoman Lebedev# CHECK-NEXT: [16.0] - PdLoad 135b428b8b2SRoman Lebedev# CHECK-NEXT: [16.1] - PdLoad 136b428b8b2SRoman Lebedev# CHECK-NEXT: [17] - PdMul 137b428b8b2SRoman Lebedev# CHECK-NEXT: [18] - PdStore 138a5192187SRoman Lebedev 139a5192187SRoman Lebedev# CHECK: Resource pressure per iteration: 140b428b8b2SRoman Lebedev# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] 141*9db0e725SRoman Lebedev# CHECK-NEXT: 27.00 27.00 - - - 54.00 54.00 - - - - - - - - - - - - 27.00 27.00 - - 142a5192187SRoman Lebedev 143a5192187SRoman Lebedev# CHECK: Resource pressure by instruction: 144b428b8b2SRoman Lebedev# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: 145*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - - bextrl $8192, %ebx, %ecx 146*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.50 2.50 - - - - - - - - - - - - - - - - bextrl $8192, (%rbx), %ecx 147*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - - bextrq $16384, %rbx, %rcx 148*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.50 2.50 - - - - - - - - - - - - - - - - bextrq $16384, (%rbx), %rcx 149*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcfilll %eax, %ecx 150*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcfilll (%rax), %ecx 151*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcfillq %rax, %rcx 152*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcfillq (%rax), %rcx 153*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcil %eax, %ecx 154*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcil (%rax), %ecx 155*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blciq %rax, %rcx 156*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blciq (%rax), %rcx 157*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcicl %eax, %ecx 158*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcicl (%rax), %ecx 159*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcicq %rax, %rcx 160*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcicq (%rax), %rcx 161*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcmskl %eax, %ecx 162*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcmskl (%rax), %ecx 163*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcmskq %rax, %rcx 164*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcmskq (%rax), %rcx 165*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcsl %eax, %ecx 166*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcsl (%rax), %ecx 167*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blcsq %rax, %rcx 168*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blcsq (%rax), %rcx 169*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsfilll %eax, %ecx 170*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blsfilll (%rax), %ecx 171*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsfillq %rax, %rcx 172*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blsfillq (%rax), %rcx 173*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsicl %eax, %ecx 174*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blsicl (%rax), %ecx 175*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsicq %rax, %rcx 176*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - blsicq (%rax), %rcx 177*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - t1mskcl %eax, %ecx 178*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - t1mskcl (%rax), %ecx 179*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - t1mskcq %rax, %rcx 180*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - t1mskcq (%rax), %rcx 181*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - tzmskl %eax, %ecx 182*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - tzmskl (%rax), %ecx 183*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - tzmskq %rax, %rcx 184*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - tzmskq (%rax), %rcx 185