xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-3dnow.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
4femms
5
6pavgusb     %mm0, %mm2
7pavgusb     (%rax), %mm2
8
9pf2id       %mm0, %mm2
10pf2id       (%rax), %mm2
11
12pf2iw       %mm0, %mm2
13pf2iw       (%rax), %mm2
14
15pfacc       %mm0, %mm2
16pfacc       (%rax), %mm2
17
18pfadd       %mm0, %mm2
19pfadd       (%rax), %mm2
20
21pfcmpeq     %mm0, %mm2
22pfcmpeq     (%rax), %mm2
23
24pfcmpge     %mm0, %mm2
25pfcmpge     (%rax), %mm2
26
27pfcmpgt     %mm0, %mm2
28pfcmpgt     (%rax), %mm2
29
30pfmax       %mm0, %mm2
31pfmax       (%rax), %mm2
32
33pfmin       %mm0, %mm2
34pfmin       (%rax), %mm2
35
36pfmul       %mm0, %mm2
37pfmul       (%rax), %mm2
38
39pfnacc      %mm0, %mm2
40pfnacc      (%rax), %mm2
41
42pfpnacc     %mm0, %mm2
43pfpnacc     (%rax), %mm2
44
45pfrcp       %mm0, %mm2
46pfrcp       (%rax), %mm2
47
48pfrcpit1    %mm0, %mm2
49pfrcpit1    (%rax), %mm2
50
51pfrcpit2    %mm0, %mm2
52pfrcpit2    (%rax), %mm2
53
54pfrsqit1    %mm0, %mm2
55pfrsqit1    (%rax), %mm2
56
57pfrsqrt     %mm0, %mm2
58pfrsqrt     (%rax), %mm2
59
60pfsub       %mm0, %mm2
61pfsub       (%rax), %mm2
62
63pfsubr      %mm0, %mm2
64pfsubr      (%rax), %mm2
65
66pi2fd       %mm0, %mm2
67pi2fd       (%rax), %mm2
68
69pi2fw       %mm0, %mm2
70pi2fw       (%rax), %mm2
71
72pmulhrw     %mm0, %mm2
73pmulhrw     (%rax), %mm2
74
75prefetch    (%rax)
76prefetchw   (%rax)
77
78pswapd      %mm0, %mm2
79pswapd      (%rax), %mm2
80
81# CHECK:      Instruction Info:
82# CHECK-NEXT: [1]: #uOps
83# CHECK-NEXT: [2]: Latency
84# CHECK-NEXT: [3]: RThroughput
85# CHECK-NEXT: [4]: MayLoad
86# CHECK-NEXT: [5]: MayStore
87# CHECK-NEXT: [6]: HasSideEffects (U)
88
89# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
90# CHECK-NEXT:  31     31    10.33   *      *      U     femms
91# CHECK-NEXT:  1      3     1.00                        pavgusb	%mm0, %mm2
92# CHECK-NEXT:  2      8     1.00    *                   pavgusb	(%rax), %mm2
93# CHECK-NEXT:  1      3     1.00                        pf2id	%mm0, %mm2
94# CHECK-NEXT:  2      9     1.00    *                   pf2id	(%rax), %mm2
95# CHECK-NEXT:  1      3     1.00                        pf2iw	%mm0, %mm2
96# CHECK-NEXT:  2      9     1.00    *                   pf2iw	(%rax), %mm2
97# CHECK-NEXT:  1      3     1.00                        pfacc	%mm0, %mm2
98# CHECK-NEXT:  2      9     1.00    *                   pfacc	(%rax), %mm2
99# CHECK-NEXT:  1      3     1.00                        pfadd	%mm0, %mm2
100# CHECK-NEXT:  2      9     1.00    *                   pfadd	(%rax), %mm2
101# CHECK-NEXT:  1      3     1.00                        pfcmpeq	%mm0, %mm2
102# CHECK-NEXT:  2      9     1.00    *                   pfcmpeq	(%rax), %mm2
103# CHECK-NEXT:  1      3     1.00                        pfcmpge	%mm0, %mm2
104# CHECK-NEXT:  2      9     1.00    *                   pfcmpge	(%rax), %mm2
105# CHECK-NEXT:  1      3     1.00                        pfcmpgt	%mm0, %mm2
106# CHECK-NEXT:  2      9     1.00    *                   pfcmpgt	(%rax), %mm2
107# CHECK-NEXT:  1      3     1.00                        pfmax	%mm0, %mm2
108# CHECK-NEXT:  2      9     1.00    *                   pfmax	(%rax), %mm2
109# CHECK-NEXT:  1      3     1.00                        pfmin	%mm0, %mm2
110# CHECK-NEXT:  2      9     1.00    *                   pfmin	(%rax), %mm2
111# CHECK-NEXT:  1      3     1.00                        pfmul	%mm0, %mm2
112# CHECK-NEXT:  2      9     1.00    *                   pfmul	(%rax), %mm2
113# CHECK-NEXT:  1      3     1.00                        pfnacc	%mm0, %mm2
114# CHECK-NEXT:  2      9     1.00    *                   pfnacc	(%rax), %mm2
115# CHECK-NEXT:  1      3     1.00                        pfpnacc	%mm0, %mm2
116# CHECK-NEXT:  2      9     1.00    *                   pfpnacc	(%rax), %mm2
117# CHECK-NEXT:  1      3     1.00                        pfrcp	%mm0, %mm2
118# CHECK-NEXT:  2      9     1.00    *                   pfrcp	(%rax), %mm2
119# CHECK-NEXT:  1      3     1.00                        pfrcpit1	%mm0, %mm2
120# CHECK-NEXT:  2      9     1.00    *                   pfrcpit1	(%rax), %mm2
121# CHECK-NEXT:  1      3     1.00                        pfrcpit2	%mm0, %mm2
122# CHECK-NEXT:  2      9     1.00    *                   pfrcpit2	(%rax), %mm2
123# CHECK-NEXT:  1      3     1.00                        pfrsqit1	%mm0, %mm2
124# CHECK-NEXT:  2      9     1.00    *                   pfrsqit1	(%rax), %mm2
125# CHECK-NEXT:  1      3     1.00                        pfrsqrt	%mm0, %mm2
126# CHECK-NEXT:  2      9     1.00    *                   pfrsqrt	(%rax), %mm2
127# CHECK-NEXT:  1      3     1.00                        pfsub	%mm0, %mm2
128# CHECK-NEXT:  2      9     1.00    *                   pfsub	(%rax), %mm2
129# CHECK-NEXT:  1      3     1.00                        pfsubr	%mm0, %mm2
130# CHECK-NEXT:  2      9     1.00    *                   pfsubr	(%rax), %mm2
131# CHECK-NEXT:  1      3     1.00                        pi2fd	%mm0, %mm2
132# CHECK-NEXT:  2      9     1.00    *                   pi2fd	(%rax), %mm2
133# CHECK-NEXT:  1      3     1.00                        pi2fw	%mm0, %mm2
134# CHECK-NEXT:  2      9     1.00    *                   pi2fw	(%rax), %mm2
135# CHECK-NEXT:  1      5     1.00                        pmulhrw	%mm0, %mm2
136# CHECK-NEXT:  2      10    1.00    *                   pmulhrw	(%rax), %mm2
137# CHECK-NEXT:  1      5     0.50    *      *            prefetch	(%rax)
138# CHECK-NEXT:  1      5     0.50    *      *            prefetchw	(%rax)
139# CHECK-NEXT:  1      1     1.00                        pswapd	%mm0, %mm2
140# CHECK-NEXT:  2      6     1.00    *                   pswapd	(%rax), %mm2
141
142# CHECK:      Resources:
143# CHECK-NEXT: [0]   - SBDivider
144# CHECK-NEXT: [1]   - SBFPDivider
145# CHECK-NEXT: [2]   - SBPort0
146# CHECK-NEXT: [3]   - SBPort1
147# CHECK-NEXT: [4]   - SBPort4
148# CHECK-NEXT: [5]   - SBPort5
149# CHECK-NEXT: [6.0] - SBPort23
150# CHECK-NEXT: [6.1] - SBPort23
151
152# CHECK:      Resource pressure per iteration:
153# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
154# CHECK-NEXT:  -      -     12.33  54.33   -     12.33  13.00  13.00
155
156# CHECK:      Resource pressure by instruction:
157# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
158# CHECK-NEXT:  -      -     10.33  10.33   -     10.33   -      -     femms
159# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pavgusb	%mm0, %mm2
160# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pavgusb	(%rax), %mm2
161# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pf2id	%mm0, %mm2
162# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pf2id	(%rax), %mm2
163# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pf2iw	%mm0, %mm2
164# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pf2iw	(%rax), %mm2
165# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfacc	%mm0, %mm2
166# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfacc	(%rax), %mm2
167# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfadd	%mm0, %mm2
168# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfadd	(%rax), %mm2
169# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfcmpeq	%mm0, %mm2
170# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfcmpeq	(%rax), %mm2
171# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfcmpge	%mm0, %mm2
172# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfcmpge	(%rax), %mm2
173# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfcmpgt	%mm0, %mm2
174# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfcmpgt	(%rax), %mm2
175# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfmax	%mm0, %mm2
176# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfmax	(%rax), %mm2
177# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfmin	%mm0, %mm2
178# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfmin	(%rax), %mm2
179# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfmul	%mm0, %mm2
180# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfmul	(%rax), %mm2
181# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfnacc	%mm0, %mm2
182# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfnacc	(%rax), %mm2
183# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfpnacc	%mm0, %mm2
184# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfpnacc	(%rax), %mm2
185# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfrcp	%mm0, %mm2
186# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfrcp	(%rax), %mm2
187# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfrcpit1	%mm0, %mm2
188# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfrcpit1	(%rax), %mm2
189# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfrcpit2	%mm0, %mm2
190# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfrcpit2	(%rax), %mm2
191# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfrsqit1	%mm0, %mm2
192# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfrsqit1	(%rax), %mm2
193# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfrsqrt	%mm0, %mm2
194# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfrsqrt	(%rax), %mm2
195# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfsub	%mm0, %mm2
196# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfsub	(%rax), %mm2
197# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pfsubr	%mm0, %mm2
198# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pfsubr	(%rax), %mm2
199# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pi2fd	%mm0, %mm2
200# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pi2fd	(%rax), %mm2
201# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pi2fw	%mm0, %mm2
202# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   pi2fw	(%rax), %mm2
203# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmulhrw	%mm0, %mm2
204# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmulhrw	(%rax), %mm2
205# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   prefetch	(%rax)
206# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   prefetchw	(%rax)
207# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     pswapd	%mm0, %mm2
208# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   pswapd	(%rax), %mm2
209