1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s 3 4 bextr $8192, %ebx, %ecx 5 bextr $8192, (%rbx), %ecx 6 7 bextr $16384, %rbx, %rcx 8 bextr $16384, (%rbx), %rcx 9 10 blcfill %eax, %ecx 11 blcfill (%rax), %ecx 12 13 blcfill %rax, %rcx 14 blcfill (%rax), %rcx 15 16 blci %eax, %ecx 17 blci (%rax), %ecx 18 19 blci %rax, %rcx 20 blci (%rax), %rcx 21 22 blcic %eax, %ecx 23 blcic (%rax), %ecx 24 25 blcic %rax, %rcx 26 blcic (%rax), %rcx 27 28 blcmsk %eax, %ecx 29 blcmsk (%rax), %ecx 30 31 blcmsk %rax, %rcx 32 blcmsk (%rax), %rcx 33 34 blcs %eax, %ecx 35 blcs (%rax), %ecx 36 37 blcs %rax, %rcx 38 blcs (%rax), %rcx 39 40 blsfill %eax, %ecx 41 blsfill (%rax), %ecx 42 43 blsfill %rax, %rcx 44 blsfill (%rax), %rcx 45 46 blsic %eax, %ecx 47 blsic (%rax), %ecx 48 49 blsic %rax, %rcx 50 blsic (%rax), %rcx 51 52 t1mskc %eax, %ecx 53 t1mskc (%rax), %ecx 54 55 t1mskc %rax, %rcx 56 t1mskc (%rax), %rcx 57 58 tzmsk %eax, %ecx 59 tzmsk (%rax), %ecx 60 61 tzmsk %rax, %rcx 62 tzmsk (%rax), %rcx 63 64 # CHECK: Instruction Info: 65 # CHECK-NEXT: [1]: #uOps 66 # CHECK-NEXT: [2]: Latency 67 # CHECK-NEXT: [3]: RThroughput 68 # CHECK-NEXT: [4]: MayLoad 69 # CHECK-NEXT: [5]: MayStore 70 # CHECK-NEXT: [6]: HasSideEffects (U) 71 72 # CHECK: [1] [2] [3] [4] [5] [6] Instructions: 73 # CHECK-NEXT: 2 2 1.00 bextrl $8192, %ebx, %ecx 74 # CHECK-NEXT: 3 7 1.00 * bextrl $8192, (%rbx), %ecx 75 # CHECK-NEXT: 2 2 1.00 bextrq $16384, %rbx, %rcx 76 # CHECK-NEXT: 3 7 1.00 * bextrq $16384, (%rbx), %rcx 77 # CHECK-NEXT: 1 1 0.33 blcfilll %eax, %ecx 78 # CHECK-NEXT: 2 6 0.50 * blcfilll (%rax), %ecx 79 # CHECK-NEXT: 1 1 0.33 blcfillq %rax, %rcx 80 # CHECK-NEXT: 2 6 0.50 * blcfillq (%rax), %rcx 81 # CHECK-NEXT: 1 1 0.33 blcil %eax, %ecx 82 # CHECK-NEXT: 2 6 0.50 * blcil (%rax), %ecx 83 # CHECK-NEXT: 1 1 0.33 blciq %rax, %rcx 84 # CHECK-NEXT: 2 6 0.50 * blciq (%rax), %rcx 85 # CHECK-NEXT: 1 1 0.33 blcicl %eax, %ecx 86 # CHECK-NEXT: 2 6 0.50 * blcicl (%rax), %ecx 87 # CHECK-NEXT: 1 1 0.33 blcicq %rax, %rcx 88 # CHECK-NEXT: 2 6 0.50 * blcicq (%rax), %rcx 89 # CHECK-NEXT: 1 1 0.33 blcmskl %eax, %ecx 90 # CHECK-NEXT: 2 6 0.50 * blcmskl (%rax), %ecx 91 # CHECK-NEXT: 1 1 0.33 blcmskq %rax, %rcx 92 # CHECK-NEXT: 2 6 0.50 * blcmskq (%rax), %rcx 93 # CHECK-NEXT: 1 1 0.33 blcsl %eax, %ecx 94 # CHECK-NEXT: 2 6 0.50 * blcsl (%rax), %ecx 95 # CHECK-NEXT: 1 1 0.33 blcsq %rax, %rcx 96 # CHECK-NEXT: 2 6 0.50 * blcsq (%rax), %rcx 97 # CHECK-NEXT: 1 1 0.33 blsfilll %eax, %ecx 98 # CHECK-NEXT: 2 6 0.50 * blsfilll (%rax), %ecx 99 # CHECK-NEXT: 1 1 0.33 blsfillq %rax, %rcx 100 # CHECK-NEXT: 2 6 0.50 * blsfillq (%rax), %rcx 101 # CHECK-NEXT: 1 1 0.33 blsicl %eax, %ecx 102 # CHECK-NEXT: 2 6 0.50 * blsicl (%rax), %ecx 103 # CHECK-NEXT: 1 1 0.33 blsicq %rax, %rcx 104 # CHECK-NEXT: 2 6 0.50 * blsicq (%rax), %rcx 105 # CHECK-NEXT: 1 1 0.33 t1mskcl %eax, %ecx 106 # CHECK-NEXT: 2 6 0.50 * t1mskcl (%rax), %ecx 107 # CHECK-NEXT: 1 1 0.33 t1mskcq %rax, %rcx 108 # CHECK-NEXT: 2 6 0.50 * t1mskcq (%rax), %rcx 109 # CHECK-NEXT: 1 1 0.33 tzmskl %eax, %ecx 110 # CHECK-NEXT: 2 6 0.50 * tzmskl (%rax), %ecx 111 # CHECK-NEXT: 1 1 0.33 tzmskq %rax, %rcx 112 # CHECK-NEXT: 2 6 0.50 * tzmskq (%rax), %rcx 113 114 # CHECK: Resources: 115 # CHECK-NEXT: [0] - SBDivider 116 # CHECK-NEXT: [1] - SBFPDivider 117 # CHECK-NEXT: [2] - SBPort0 118 # CHECK-NEXT: [3] - SBPort1 119 # CHECK-NEXT: [4] - SBPort4 120 # CHECK-NEXT: [5] - SBPort5 121 # CHECK-NEXT: [6.0] - SBPort23 122 # CHECK-NEXT: [6.1] - SBPort23 123 124 # CHECK: Resource pressure per iteration: 125 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 126 # CHECK-NEXT: - - 14.00 16.00 - 14.00 10.00 10.00 127 128 # CHECK: Resource pressure by instruction: 129 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 130 # CHECK-NEXT: - - 0.50 1.00 - 0.50 - - bextrl $8192, %ebx, %ecx 131 # CHECK-NEXT: - - 0.50 1.00 - 0.50 0.50 0.50 bextrl $8192, (%rbx), %ecx 132 # CHECK-NEXT: - - 0.50 1.00 - 0.50 - - bextrq $16384, %rbx, %rcx 133 # CHECK-NEXT: - - 0.50 1.00 - 0.50 0.50 0.50 bextrq $16384, (%rbx), %rcx 134 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcfilll %eax, %ecx 135 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcfilll (%rax), %ecx 136 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcfillq %rax, %rcx 137 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcfillq (%rax), %rcx 138 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcil %eax, %ecx 139 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcil (%rax), %ecx 140 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blciq %rax, %rcx 141 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blciq (%rax), %rcx 142 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcicl %eax, %ecx 143 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcicl (%rax), %ecx 144 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcicq %rax, %rcx 145 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcicq (%rax), %rcx 146 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcmskl %eax, %ecx 147 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcmskl (%rax), %ecx 148 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcmskq %rax, %rcx 149 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcmskq (%rax), %rcx 150 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcsl %eax, %ecx 151 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcsl (%rax), %ecx 152 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blcsq %rax, %rcx 153 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blcsq (%rax), %rcx 154 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsfilll %eax, %ecx 155 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsfilll (%rax), %ecx 156 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsfillq %rax, %rcx 157 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsfillq (%rax), %rcx 158 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsicl %eax, %ecx 159 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsicl (%rax), %ecx 160 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsicq %rax, %rcx 161 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsicq (%rax), %rcx 162 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - t1mskcl %eax, %ecx 163 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 t1mskcl (%rax), %ecx 164 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - t1mskcq %rax, %rcx 165 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 t1mskcq (%rax), %rcx 166 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - tzmskl %eax, %ecx 167 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 tzmskl (%rax), %ecx 168 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - tzmskq %rax, %rcx 169 # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 tzmskq (%rax), %rcx 170