xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Atom/resources-ssse3.s (revision f855ef260148df0f08c73a70b9425a5215232874)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=atom -instruction-tables < %s | FileCheck %s
3
4pabsb       %mm0, %mm2
5pabsb       (%rax), %mm2
6
7pabsb       %xmm0, %xmm2
8pabsb       (%rax), %xmm2
9
10pabsd       %mm0, %mm2
11pabsd       (%rax), %mm2
12
13pabsd       %xmm0, %xmm2
14pabsd       (%rax), %xmm2
15
16pabsw       %mm0, %mm2
17pabsw       (%rax), %mm2
18
19pabsw       %xmm0, %xmm2
20pabsw       (%rax), %xmm2
21
22palignr     $1, %mm0, %mm2
23palignr     $1, (%rax), %mm2
24
25palignr     $1, %xmm0, %xmm2
26palignr     $1, (%rax), %xmm2
27
28phaddd      %mm0, %mm2
29phaddd      (%rax), %mm2
30
31phaddd      %xmm0, %xmm2
32phaddd      (%rax), %xmm2
33
34phaddsw     %mm0, %mm2
35phaddsw     (%rax), %mm2
36
37phaddsw     %xmm0, %xmm2
38phaddsw     (%rax), %xmm2
39
40phaddw      %mm0, %mm2
41phaddw      (%rax), %mm2
42
43phaddw      %xmm0, %xmm2
44phaddw      (%rax), %xmm2
45
46phsubd      %mm0, %mm2
47phsubd      (%rax), %mm2
48
49phsubd      %xmm0, %xmm2
50phsubd      (%rax), %xmm2
51
52phsubsw     %mm0, %mm2
53phsubsw     (%rax), %mm2
54
55phsubsw     %xmm0, %xmm2
56phsubsw     (%rax), %xmm2
57
58phsubw      %mm0, %mm2
59phsubw      (%rax), %mm2
60
61phsubw      %xmm0, %xmm2
62phsubw      (%rax), %xmm2
63
64pmaddubsw   %mm0, %mm2
65pmaddubsw   (%rax), %mm2
66
67pmaddubsw   %xmm0, %xmm2
68pmaddubsw   (%rax), %xmm2
69
70pmulhrsw    %mm0, %mm2
71pmulhrsw    (%rax), %mm2
72
73pmulhrsw    %xmm0, %xmm2
74pmulhrsw    (%rax), %xmm2
75
76pshufb      %mm0, %mm2
77pshufb      (%rax), %mm2
78
79pshufb      %xmm0, %xmm2
80pshufb      (%rax), %xmm2
81
82psignb      %mm0, %mm2
83psignb      (%rax), %mm2
84
85psignb      %xmm0, %xmm2
86psignb      (%rax), %xmm2
87
88psignd      %mm0, %mm2
89psignd      (%rax), %mm2
90
91psignd      %xmm0, %xmm2
92psignd      (%rax), %xmm2
93
94psignw      %mm0, %mm2
95psignw      (%rax), %mm2
96
97psignw      %xmm0, %xmm2
98psignw      (%rax), %xmm2
99
100# CHECK:      Instruction Info:
101# CHECK-NEXT: [1]: #uOps
102# CHECK-NEXT: [2]: Latency
103# CHECK-NEXT: [3]: RThroughput
104# CHECK-NEXT: [4]: MayLoad
105# CHECK-NEXT: [5]: MayStore
106# CHECK-NEXT: [6]: HasSideEffects (U)
107
108# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
109# CHECK-NEXT:  1      1     0.50                        pabsb	%mm0, %mm2
110# CHECK-NEXT:  1      1     1.00    *                   pabsb	(%rax), %mm2
111# CHECK-NEXT:  1      1     0.50                        pabsb	%xmm0, %xmm2
112# CHECK-NEXT:  1      1     1.00    *                   pabsb	(%rax), %xmm2
113# CHECK-NEXT:  1      1     0.50                        pabsd	%mm0, %mm2
114# CHECK-NEXT:  1      1     1.00    *                   pabsd	(%rax), %mm2
115# CHECK-NEXT:  1      1     0.50                        pabsd	%xmm0, %xmm2
116# CHECK-NEXT:  1      1     1.00    *                   pabsd	(%rax), %xmm2
117# CHECK-NEXT:  1      1     0.50                        pabsw	%mm0, %mm2
118# CHECK-NEXT:  1      1     1.00    *                   pabsw	(%rax), %mm2
119# CHECK-NEXT:  1      1     0.50                        pabsw	%xmm0, %xmm2
120# CHECK-NEXT:  1      1     1.00    *                   pabsw	(%rax), %xmm2
121# CHECK-NEXT:  1      1     1.00                        palignr	$1, %mm0, %mm2
122# CHECK-NEXT:  1      1     1.00    *                   palignr	$1, (%rax), %mm2
123# CHECK-NEXT:  1      1     1.00                        palignr	$1, %xmm0, %xmm2
124# CHECK-NEXT:  1      1     1.00    *                   palignr	$1, (%rax), %xmm2
125# CHECK-NEXT:  3      3     3.00                        phaddd	%mm0, %mm2
126# CHECK-NEXT:  4      4     4.00    *                   phaddd	(%rax), %mm2
127# CHECK-NEXT:  1      3     1.50                        phaddd	%xmm0, %xmm2
128# CHECK-NEXT:  1      4     2.00    *                   phaddd	(%rax), %xmm2
129# CHECK-NEXT:  1      5     2.50                        phaddsw	%mm0, %mm2
130# CHECK-NEXT:  1      6     3.00    *                   phaddsw	(%rax), %mm2
131# CHECK-NEXT:  3      7     7.00                        phaddsw	%xmm0, %xmm2
132# CHECK-NEXT:  4      8     8.00    *                   phaddsw	(%rax), %xmm2
133# CHECK-NEXT:  1      5     2.50                        phaddw	%mm0, %mm2
134# CHECK-NEXT:  1      6     3.00    *                   phaddw	(%rax), %mm2
135# CHECK-NEXT:  3      7     7.00                        phaddw	%xmm0, %xmm2
136# CHECK-NEXT:  4      8     8.00    *                   phaddw	(%rax), %xmm2
137# CHECK-NEXT:  3      3     3.00                        phsubd	%mm0, %mm2
138# CHECK-NEXT:  4      4     4.00    *                   phsubd	(%rax), %mm2
139# CHECK-NEXT:  1      3     1.50                        phsubd	%xmm0, %xmm2
140# CHECK-NEXT:  1      4     2.00    *                   phsubd	(%rax), %xmm2
141# CHECK-NEXT:  1      5     2.50                        phsubsw	%mm0, %mm2
142# CHECK-NEXT:  1      6     3.00    *                   phsubsw	(%rax), %mm2
143# CHECK-NEXT:  3      7     7.00                        phsubsw	%xmm0, %xmm2
144# CHECK-NEXT:  4      8     8.00    *                   phsubsw	(%rax), %xmm2
145# CHECK-NEXT:  1      5     2.50                        phsubw	%mm0, %mm2
146# CHECK-NEXT:  1      6     3.00    *                   phsubw	(%rax), %mm2
147# CHECK-NEXT:  3      7     7.00                        phsubw	%xmm0, %xmm2
148# CHECK-NEXT:  4      8     8.00    *                   phsubw	(%rax), %xmm2
149# CHECK-NEXT:  1      4     1.00                        pmaddubsw	%mm0, %mm2
150# CHECK-NEXT:  1      4     1.00    *                   pmaddubsw	(%rax), %mm2
151# CHECK-NEXT:  1      5     2.00                        pmaddubsw	%xmm0, %xmm2
152# CHECK-NEXT:  1      5     2.00    *                   pmaddubsw	(%rax), %xmm2
153# CHECK-NEXT:  1      4     1.00                        pmulhrsw	%mm0, %mm2
154# CHECK-NEXT:  1      4     1.00    *                   pmulhrsw	(%rax), %mm2
155# CHECK-NEXT:  1      5     2.00                        pmulhrsw	%xmm0, %xmm2
156# CHECK-NEXT:  1      5     2.00    *                   pmulhrsw	(%rax), %xmm2
157# CHECK-NEXT:  1      1     1.00                        pshufb	%mm0, %mm2
158# CHECK-NEXT:  1      1     1.00    *                   pshufb	(%rax), %mm2
159# CHECK-NEXT:  4      4     3.00                        pshufb	%xmm0, %xmm2
160# CHECK-NEXT:  5      5     4.00    *                   pshufb	(%rax), %xmm2
161# CHECK-NEXT:  1      1     0.50                        psignb	%mm0, %mm2
162# CHECK-NEXT:  1      1     1.00    *                   psignb	(%rax), %mm2
163# CHECK-NEXT:  1      1     0.50                        psignb	%xmm0, %xmm2
164# CHECK-NEXT:  1      1     1.00    *                   psignb	(%rax), %xmm2
165# CHECK-NEXT:  1      1     0.50                        psignd	%mm0, %mm2
166# CHECK-NEXT:  1      1     1.00    *                   psignd	(%rax), %mm2
167# CHECK-NEXT:  1      1     0.50                        psignd	%xmm0, %xmm2
168# CHECK-NEXT:  1      1     1.00    *                   psignd	(%rax), %xmm2
169# CHECK-NEXT:  1      1     0.50                        psignw	%mm0, %mm2
170# CHECK-NEXT:  1      1     1.00    *                   psignw	(%rax), %mm2
171# CHECK-NEXT:  1      1     0.50                        psignw	%xmm0, %xmm2
172# CHECK-NEXT:  1      1     1.00    *                   psignw	(%rax), %xmm2
173
174# CHECK:      Resources:
175# CHECK-NEXT: [0]   - AtomPort0
176# CHECK-NEXT: [1]   - AtomPort1
177
178# CHECK:      Resource pressure per iteration:
179# CHECK-NEXT: [0]    [1]
180# CHECK-NEXT: 146.00 116.00
181
182# CHECK:      Resource pressure by instruction:
183# CHECK-NEXT: [0]    [1]    Instructions:
184# CHECK-NEXT: 0.50   0.50   pabsb	%mm0, %mm2
185# CHECK-NEXT: 1.00    -     pabsb	(%rax), %mm2
186# CHECK-NEXT: 0.50   0.50   pabsb	%xmm0, %xmm2
187# CHECK-NEXT: 1.00    -     pabsb	(%rax), %xmm2
188# CHECK-NEXT: 0.50   0.50   pabsd	%mm0, %mm2
189# CHECK-NEXT: 1.00    -     pabsd	(%rax), %mm2
190# CHECK-NEXT: 0.50   0.50   pabsd	%xmm0, %xmm2
191# CHECK-NEXT: 1.00    -     pabsd	(%rax), %xmm2
192# CHECK-NEXT: 0.50   0.50   pabsw	%mm0, %mm2
193# CHECK-NEXT: 1.00    -     pabsw	(%rax), %mm2
194# CHECK-NEXT: 0.50   0.50   pabsw	%xmm0, %xmm2
195# CHECK-NEXT: 1.00    -     pabsw	(%rax), %xmm2
196# CHECK-NEXT: 1.00    -     palignr	$1, %mm0, %mm2
197# CHECK-NEXT: 1.00    -     palignr	$1, (%rax), %mm2
198# CHECK-NEXT: 1.00    -     palignr	$1, %xmm0, %xmm2
199# CHECK-NEXT: 1.00    -     palignr	$1, (%rax), %xmm2
200# CHECK-NEXT: 3.00   3.00   phaddd	%mm0, %mm2
201# CHECK-NEXT: 4.00   4.00   phaddd	(%rax), %mm2
202# CHECK-NEXT: 1.50   1.50   phaddd	%xmm0, %xmm2
203# CHECK-NEXT: 2.00   2.00   phaddd	(%rax), %xmm2
204# CHECK-NEXT: 2.50   2.50   phaddsw	%mm0, %mm2
205# CHECK-NEXT: 3.00   3.00   phaddsw	(%rax), %mm2
206# CHECK-NEXT: 7.00   7.00   phaddsw	%xmm0, %xmm2
207# CHECK-NEXT: 8.00   8.00   phaddsw	(%rax), %xmm2
208# CHECK-NEXT: 2.50   2.50   phaddw	%mm0, %mm2
209# CHECK-NEXT: 3.00   3.00   phaddw	(%rax), %mm2
210# CHECK-NEXT: 7.00   7.00   phaddw	%xmm0, %xmm2
211# CHECK-NEXT: 8.00   8.00   phaddw	(%rax), %xmm2
212# CHECK-NEXT: 3.00   3.00   phsubd	%mm0, %mm2
213# CHECK-NEXT: 4.00   4.00   phsubd	(%rax), %mm2
214# CHECK-NEXT: 1.50   1.50   phsubd	%xmm0, %xmm2
215# CHECK-NEXT: 2.00   2.00   phsubd	(%rax), %xmm2
216# CHECK-NEXT: 2.50   2.50   phsubsw	%mm0, %mm2
217# CHECK-NEXT: 3.00   3.00   phsubsw	(%rax), %mm2
218# CHECK-NEXT: 7.00   7.00   phsubsw	%xmm0, %xmm2
219# CHECK-NEXT: 8.00   8.00   phsubsw	(%rax), %xmm2
220# CHECK-NEXT: 2.50   2.50   phsubw	%mm0, %mm2
221# CHECK-NEXT: 3.00   3.00   phsubw	(%rax), %mm2
222# CHECK-NEXT: 7.00   7.00   phsubw	%xmm0, %xmm2
223# CHECK-NEXT: 8.00   8.00   phsubw	(%rax), %xmm2
224# CHECK-NEXT: 1.00    -     pmaddubsw	%mm0, %mm2
225# CHECK-NEXT: 1.00    -     pmaddubsw	(%rax), %mm2
226# CHECK-NEXT: 2.00    -     pmaddubsw	%xmm0, %xmm2
227# CHECK-NEXT: 2.00    -     pmaddubsw	(%rax), %xmm2
228# CHECK-NEXT: 1.00    -     pmulhrsw	%mm0, %mm2
229# CHECK-NEXT: 1.00    -     pmulhrsw	(%rax), %mm2
230# CHECK-NEXT: 2.00    -     pmulhrsw	%xmm0, %xmm2
231# CHECK-NEXT: 2.00    -     pmulhrsw	(%rax), %xmm2
232# CHECK-NEXT: 1.00    -     pshufb	%mm0, %mm2
233# CHECK-NEXT: 1.00    -     pshufb	(%rax), %mm2
234# CHECK-NEXT: 3.00   3.00   pshufb	%xmm0, %xmm2
235# CHECK-NEXT: 4.00   4.00   pshufb	(%rax), %xmm2
236# CHECK-NEXT: 0.50   0.50   psignb	%mm0, %mm2
237# CHECK-NEXT: 1.00    -     psignb	(%rax), %mm2
238# CHECK-NEXT: 0.50   0.50   psignb	%xmm0, %xmm2
239# CHECK-NEXT: 1.00    -     psignb	(%rax), %xmm2
240# CHECK-NEXT: 0.50   0.50   psignd	%mm0, %mm2
241# CHECK-NEXT: 1.00    -     psignd	(%rax), %mm2
242# CHECK-NEXT: 0.50   0.50   psignd	%xmm0, %xmm2
243# CHECK-NEXT: 1.00    -     psignd	(%rax), %xmm2
244# CHECK-NEXT: 0.50   0.50   psignw	%mm0, %mm2
245# CHECK-NEXT: 1.00    -     psignw	(%rax), %mm2
246# CHECK-NEXT: 0.50   0.50   psignw	%xmm0, %xmm2
247# CHECK-NEXT: 1.00    -     psignw	(%rax), %xmm2
248