xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-tbm.s (revision d2e2c053cfd87d9007632a78f732816afbb8e708)
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
4bextr        $8192, %ebx, %ecx
5bextr        $8192, (%rbx), %ecx
6
7bextr        $16384, %rbx, %rcx
8bextr        $16384, (%rbx), %rcx
9
10blcfill      %eax, %ecx
11blcfill      (%rax), %ecx
12
13blcfill      %rax, %rcx
14blcfill      (%rax), %rcx
15
16blci         %eax, %ecx
17blci         (%rax), %ecx
18
19blci         %rax, %rcx
20blci         (%rax), %rcx
21
22blcic        %eax, %ecx
23blcic        (%rax), %ecx
24
25blcic        %rax, %rcx
26blcic        (%rax), %rcx
27
28blcmsk       %eax, %ecx
29blcmsk       (%rax), %ecx
30
31blcmsk       %rax, %rcx
32blcmsk       (%rax), %rcx
33
34blcs         %eax, %ecx
35blcs         (%rax), %ecx
36
37blcs         %rax, %rcx
38blcs         (%rax), %rcx
39
40blsfill      %eax, %ecx
41blsfill      (%rax), %ecx
42
43blsfill      %rax, %rcx
44blsfill      (%rax), %rcx
45
46blsic        %eax, %ecx
47blsic        (%rax), %ecx
48
49blsic        %rax, %rcx
50blsic        (%rax), %rcx
51
52t1mskc       %eax, %ecx
53t1mskc       (%rax), %ecx
54
55t1mskc       %rax, %rcx
56t1mskc       (%rax), %rcx
57
58tzmsk        %eax, %ecx
59tzmsk        (%rax), %ecx
60
61tzmsk        %rax, %rcx
62tzmsk        (%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