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 Lebedevandn %eax, %ebx, %ecx 5a5192187SRoman Lebedevandn (%rax), %ebx, %ecx 6a5192187SRoman Lebedev 7a5192187SRoman Lebedevandn %rax, %rbx, %rcx 8a5192187SRoman Lebedevandn (%rax), %rbx, %rcx 9a5192187SRoman Lebedev 10a5192187SRoman Lebedevbextr %eax, %ebx, %ecx 11a5192187SRoman Lebedevbextr %eax, (%rbx), %ecx 12a5192187SRoman Lebedev 13a5192187SRoman Lebedevbextr %rax, %rbx, %rcx 14a5192187SRoman Lebedevbextr %rax, (%rbx), %rcx 15a5192187SRoman Lebedev 16a5192187SRoman Lebedevblsi %eax, %ecx 17a5192187SRoman Lebedevblsi (%rax), %ecx 18a5192187SRoman Lebedev 19a5192187SRoman Lebedevblsi %rax, %rcx 20a5192187SRoman Lebedevblsi (%rax), %rcx 21a5192187SRoman Lebedev 22a5192187SRoman Lebedevblsmsk %eax, %ecx 23a5192187SRoman Lebedevblsmsk (%rax), %ecx 24a5192187SRoman Lebedev 25a5192187SRoman Lebedevblsmsk %rax, %rcx 26a5192187SRoman Lebedevblsmsk (%rax), %rcx 27a5192187SRoman Lebedev 28a5192187SRoman Lebedevblsr %eax, %ecx 29a5192187SRoman Lebedevblsr (%rax), %ecx 30a5192187SRoman Lebedev 31a5192187SRoman Lebedevblsr %rax, %rcx 32a5192187SRoman Lebedevblsr (%rax), %rcx 33a5192187SRoman Lebedev 341d8d6c3bSSimon Pilgrimtzcnt %ax, %cx 351d8d6c3bSSimon Pilgrimtzcnt (%rax), %cx 361d8d6c3bSSimon Pilgrim 37a5192187SRoman Lebedevtzcnt %eax, %ecx 38a5192187SRoman Lebedevtzcnt (%rax), %ecx 39a5192187SRoman Lebedev 40a5192187SRoman Lebedevtzcnt %rax, %rcx 41a5192187SRoman Lebedevtzcnt (%rax), %rcx 42a5192187SRoman Lebedev 43a5192187SRoman Lebedev# CHECK: Instruction Info: 44a5192187SRoman Lebedev# CHECK-NEXT: [1]: #uOps 45a5192187SRoman Lebedev# CHECK-NEXT: [2]: Latency 46a5192187SRoman Lebedev# CHECK-NEXT: [3]: RThroughput 47a5192187SRoman Lebedev# CHECK-NEXT: [4]: MayLoad 48a5192187SRoman Lebedev# CHECK-NEXT: [5]: MayStore 49a5192187SRoman Lebedev# CHECK-NEXT: [6]: HasSideEffects (U) 50a5192187SRoman Lebedev 51a5192187SRoman Lebedev# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 52*9db0e725SRoman Lebedev# CHECK-NEXT: 1 1 1.00 andnl %eax, %ebx, %ecx 53*9db0e725SRoman Lebedev# CHECK-NEXT: 1 5 1.50 * andnl (%rax), %ebx, %ecx 54*9db0e725SRoman Lebedev# CHECK-NEXT: 1 1 1.00 andnq %rax, %rbx, %rcx 55*9db0e725SRoman Lebedev# CHECK-NEXT: 1 5 1.50 * andnq (%rax), %rbx, %rcx 56*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 bextrl %eax, %ebx, %ecx 57*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * bextrl %eax, (%rbx), %ecx 58*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 bextrq %rax, %rbx, %rcx 59*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * bextrq %rax, (%rbx), %rcx 60*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsil %eax, %ecx 61*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsil (%rax), %ecx 62*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsiq %rax, %rcx 63*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsiq (%rax), %rcx 64*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsmskl %eax, %ecx 65*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsmskl (%rax), %ecx 66*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsmskq %rax, %rcx 67*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsmskq (%rax), %rcx 68*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsrl %eax, %ecx 69*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsrl (%rax), %ecx 70*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 1.00 blsrq %rax, %rcx 71*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 1.50 * blsrq (%rax), %rcx 72*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.00 tzcntw %ax, %cx 73*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 2.00 * tzcntw (%rax), %cx 74*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.00 tzcntl %eax, %ecx 75*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 2.00 * tzcntl (%rax), %ecx 76*9db0e725SRoman Lebedev# CHECK-NEXT: 2 2 2.00 tzcntq %rax, %rcx 77*9db0e725SRoman Lebedev# CHECK-NEXT: 2 6 2.00 * tzcntq (%rax), %rcx 78a5192187SRoman Lebedev 79a5192187SRoman Lebedev# CHECK: Resources: 80a5baf867SRoman Lebedev# CHECK-NEXT: [0.0] - PdAGLU01 81a5baf867SRoman Lebedev# CHECK-NEXT: [0.1] - PdAGLU01 82a5baf867SRoman Lebedev# CHECK-NEXT: [1] - PdBranch 83a5baf867SRoman Lebedev# CHECK-NEXT: [2] - PdCount 84a5baf867SRoman Lebedev# CHECK-NEXT: [3] - PdDiv 85a5baf867SRoman Lebedev# CHECK-NEXT: [4] - PdEX0 86a5baf867SRoman Lebedev# CHECK-NEXT: [5] - PdEX1 87a5baf867SRoman Lebedev# CHECK-NEXT: [6] - PdFPCVT 88a5baf867SRoman Lebedev# CHECK-NEXT: [7.0] - PdFPFMA 89a5baf867SRoman Lebedev# CHECK-NEXT: [7.1] - PdFPFMA 90a5baf867SRoman Lebedev# CHECK-NEXT: [8.0] - PdFPMAL 91a5baf867SRoman Lebedev# CHECK-NEXT: [8.1] - PdFPMAL 92a5baf867SRoman Lebedev# CHECK-NEXT: [9] - PdFPMMA 93a5baf867SRoman Lebedev# CHECK-NEXT: [10] - PdFPSTO 94a5baf867SRoman Lebedev# CHECK-NEXT: [11] - PdFPU0 95a5baf867SRoman Lebedev# CHECK-NEXT: [12] - PdFPU1 96a5baf867SRoman Lebedev# CHECK-NEXT: [13] - PdFPU2 97a5baf867SRoman Lebedev# CHECK-NEXT: [14] - PdFPU3 98a5baf867SRoman Lebedev# CHECK-NEXT: [15] - PdFPXBR 99b428b8b2SRoman Lebedev# CHECK-NEXT: [16.0] - PdLoad 100b428b8b2SRoman Lebedev# CHECK-NEXT: [16.1] - PdLoad 101b428b8b2SRoman Lebedev# CHECK-NEXT: [17] - PdMul 102b428b8b2SRoman Lebedev# CHECK-NEXT: [18] - PdStore 103a5192187SRoman Lebedev 104a5192187SRoman Lebedev# CHECK: Resource pressure per iteration: 105b428b8b2SRoman 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] 106*9db0e725SRoman Lebedev# CHECK-NEXT: 19.50 19.50 - - - 32.00 20.00 - - - - - - - - - - - - 19.50 19.50 - - 107a5192187SRoman Lebedev 108a5192187SRoman Lebedev# CHECK: Resource pressure by instruction: 109b428b8b2SRoman 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: 110*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - andnl %eax, %ebx, %ecx 111*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - andnl (%rax), %ebx, %ecx 112*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - andnq %rax, %rbx, %rcx 113*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - andnq (%rax), %rbx, %rcx 114*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - bextrl %eax, %ebx, %ecx 115*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - bextrl %eax, (%rbx), %ecx 116*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - bextrq %rax, %rbx, %rcx 117*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - bextrq %rax, (%rbx), %rcx 118*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsil %eax, %ecx 119*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsil (%rax), %ecx 120*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsiq %rax, %rcx 121*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsiq (%rax), %rcx 122*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsmskl %eax, %ecx 123*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsmskl (%rax), %ecx 124*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsmskq %rax, %rcx 125*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsmskq (%rax), %rcx 126*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsrl %eax, %ecx 127*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsrl (%rax), %ecx 128*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsrq %rax, %rcx 129*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsrq (%rax), %rcx 130*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntw %ax, %cx 131*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntw (%rax), %cx 132*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntl %eax, %ecx 133*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntl (%rax), %ecx 134*9db0e725SRoman Lebedev# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntq %rax, %rcx 135*9db0e725SRoman Lebedev# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntq (%rax), %rcx 136