xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s (revision 7785bd34e744a9da515b7e0b5dda10b423ba03fe)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -register-file-stats -iterations=1 < %s | FileCheck %s
3
4subl  %eax, %eax
5subq  %rax, %rax
6xorl  %eax, %eax
7xorq  %rax, %rax
8
9pcmpgtb   %mm2, %mm2
10pcmpgtd   %mm2, %mm2
11# pcmpgtq   %mm2, %mm2 # invalid operand for instruction
12pcmpgtw   %mm2, %mm2
13
14pcmpgtb   %xmm2, %xmm2
15pcmpgtd   %xmm2, %xmm2
16pcmpgtq   %xmm2, %xmm2
17pcmpgtw   %xmm2, %xmm2
18
19vpcmpgtb  %xmm3, %xmm3, %xmm3
20vpcmpgtd  %xmm3, %xmm3, %xmm3
21vpcmpgtq  %xmm3, %xmm3, %xmm3
22vpcmpgtw  %xmm3, %xmm3, %xmm3
23
24vpcmpgtb  %xmm3, %xmm3, %xmm5
25vpcmpgtd  %xmm3, %xmm3, %xmm5
26vpcmpgtq  %xmm3, %xmm3, %xmm5
27vpcmpgtw  %xmm3, %xmm3, %xmm5
28
29psubb   %mm2, %mm2
30psubd   %mm2, %mm2
31psubq   %mm2, %mm2
32psubw   %mm2, %mm2
33psubb   %xmm2, %xmm2
34psubd   %xmm2, %xmm2
35psubq   %xmm2, %xmm2
36psubw   %xmm2, %xmm2
37vpsubb  %xmm3, %xmm3, %xmm3
38vpsubd  %xmm3, %xmm3, %xmm3
39vpsubq  %xmm3, %xmm3, %xmm3
40vpsubw  %xmm3, %xmm3, %xmm3
41
42vpsubb  %xmm3, %xmm3, %xmm5
43vpsubd  %xmm3, %xmm3, %xmm5
44vpsubq  %xmm3, %xmm3, %xmm5
45vpsubw  %xmm3, %xmm3, %xmm5
46
47psubsb   %mm2, %mm2
48psubsw   %mm2, %mm2
49psubsb   %xmm2, %xmm2
50psubsw   %xmm2, %xmm2
51vpsubsb  %xmm3, %xmm3, %xmm3
52vpsubsw  %xmm3, %xmm3, %xmm3
53
54vpsubsb  %xmm3, %xmm3, %xmm5
55vpsubsw  %xmm3, %xmm3, %xmm5
56
57psubusb   %mm2, %mm2
58psubusw   %mm2, %mm2
59psubusb   %xmm2, %xmm2
60psubusw   %xmm2, %xmm2
61vpsubusb  %xmm3, %xmm3, %xmm3
62vpsubusw  %xmm3, %xmm3, %xmm3
63
64vpsubsb  %xmm3, %xmm3, %xmm5
65vpsubsw  %xmm3, %xmm3, %xmm5
66
67andnps  %xmm0, %xmm0
68andnpd  %xmm1, %xmm1
69vandnps %xmm2, %xmm2, %xmm2
70vandnpd %xmm1, %xmm1, %xmm1
71pandn   %mm2, %mm2
72pandn   %xmm2, %xmm2
73vpandn  %xmm3, %xmm3, %xmm3
74
75vandnps %xmm2, %xmm2, %xmm5
76vandnpd %xmm1, %xmm1, %xmm5
77vpandn  %xmm3, %xmm3, %xmm5
78
79xorps  %xmm0, %xmm0
80xorpd  %xmm1, %xmm1
81vxorps %xmm2, %xmm2, %xmm2
82vxorpd %xmm1, %xmm1, %xmm1
83pxor   %mm2, %mm2
84pxor   %xmm2, %xmm2
85vpxor  %xmm3, %xmm3, %xmm3
86
87vxorps %xmm4, %xmm4, %xmm5
88vxorpd %xmm1, %xmm1, %xmm3
89vpxor  %xmm3, %xmm3, %xmm5
90
91# CHECK:      Iterations:        1
92# CHECK-NEXT: Instructions:      71
93# CHECK-NEXT: Total Cycles:      26
94# CHECK-NEXT: Total uOps:        71
95
96# CHECK:      Dispatch Width:    4
97# CHECK-NEXT: uOps Per Cycle:    2.73
98# CHECK-NEXT: IPC:               2.73
99# CHECK-NEXT: Block RThroughput: 17.8
100
101# CHECK:      Instruction Info:
102# CHECK-NEXT: [1]: #uOps
103# CHECK-NEXT: [2]: Latency
104# CHECK-NEXT: [3]: RThroughput
105# CHECK-NEXT: [4]: MayLoad
106# CHECK-NEXT: [5]: MayStore
107# CHECK-NEXT: [6]: HasSideEffects (U)
108
109# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
110# CHECK-NEXT:  1      0     0.25                        subl	%eax, %eax
111# CHECK-NEXT:  1      0     0.25                        subq	%rax, %rax
112# CHECK-NEXT:  1      0     0.25                        xorl	%eax, %eax
113# CHECK-NEXT:  1      0     0.25                        xorq	%rax, %rax
114# CHECK-NEXT:  1      0     0.25                        pcmpgtb	%mm2, %mm2
115# CHECK-NEXT:  1      0     0.25                        pcmpgtd	%mm2, %mm2
116# CHECK-NEXT:  1      0     0.25                        pcmpgtw	%mm2, %mm2
117# CHECK-NEXT:  1      0     0.25                        pcmpgtb	%xmm2, %xmm2
118# CHECK-NEXT:  1      0     0.25                        pcmpgtd	%xmm2, %xmm2
119# CHECK-NEXT:  1      2     0.50                        pcmpgtq	%xmm2, %xmm2
120# CHECK-NEXT:  1      0     0.25                        pcmpgtw	%xmm2, %xmm2
121# CHECK-NEXT:  1      0     0.25                        vpcmpgtb	%xmm3, %xmm3, %xmm3
122# CHECK-NEXT:  1      0     0.25                        vpcmpgtd	%xmm3, %xmm3, %xmm3
123# CHECK-NEXT:  1      2     0.50                        vpcmpgtq	%xmm3, %xmm3, %xmm3
124# CHECK-NEXT:  1      0     0.25                        vpcmpgtw	%xmm3, %xmm3, %xmm3
125# CHECK-NEXT:  1      0     0.25                        vpcmpgtb	%xmm3, %xmm3, %xmm5
126# CHECK-NEXT:  1      0     0.25                        vpcmpgtd	%xmm3, %xmm3, %xmm5
127# CHECK-NEXT:  1      2     0.50                        vpcmpgtq	%xmm3, %xmm3, %xmm5
128# CHECK-NEXT:  1      0     0.25                        vpcmpgtw	%xmm3, %xmm3, %xmm5
129# CHECK-NEXT:  1      0     0.25                        psubb	%mm2, %mm2
130# CHECK-NEXT:  1      0     0.25                        psubd	%mm2, %mm2
131# CHECK-NEXT:  1      0     0.25                        psubq	%mm2, %mm2
132# CHECK-NEXT:  1      0     0.25                        psubw	%mm2, %mm2
133# CHECK-NEXT:  1      0     0.25                        psubb	%xmm2, %xmm2
134# CHECK-NEXT:  1      0     0.25                        psubd	%xmm2, %xmm2
135# CHECK-NEXT:  1      0     0.25                        psubq	%xmm2, %xmm2
136# CHECK-NEXT:  1      0     0.25                        psubw	%xmm2, %xmm2
137# CHECK-NEXT:  1      0     0.25                        vpsubb	%xmm3, %xmm3, %xmm3
138# CHECK-NEXT:  1      0     0.25                        vpsubd	%xmm3, %xmm3, %xmm3
139# CHECK-NEXT:  1      0     0.25                        vpsubq	%xmm3, %xmm3, %xmm3
140# CHECK-NEXT:  1      0     0.25                        vpsubw	%xmm3, %xmm3, %xmm3
141# CHECK-NEXT:  1      0     0.25                        vpsubb	%xmm3, %xmm3, %xmm5
142# CHECK-NEXT:  1      0     0.25                        vpsubd	%xmm3, %xmm3, %xmm5
143# CHECK-NEXT:  1      0     0.25                        vpsubq	%xmm3, %xmm3, %xmm5
144# CHECK-NEXT:  1      0     0.25                        vpsubw	%xmm3, %xmm3, %xmm5
145# CHECK-NEXT:  1      2     0.50                        psubsb	%mm2, %mm2
146# CHECK-NEXT:  1      2     0.50                        psubsw	%mm2, %mm2
147# CHECK-NEXT:  1      2     0.50                        psubsb	%xmm2, %xmm2
148# CHECK-NEXT:  1      2     0.50                        psubsw	%xmm2, %xmm2
149# CHECK-NEXT:  1      2     0.50                        vpsubsb	%xmm3, %xmm3, %xmm3
150# CHECK-NEXT:  1      2     0.50                        vpsubsw	%xmm3, %xmm3, %xmm3
151# CHECK-NEXT:  1      2     0.50                        vpsubsb	%xmm3, %xmm3, %xmm5
152# CHECK-NEXT:  1      2     0.50                        vpsubsw	%xmm3, %xmm3, %xmm5
153# CHECK-NEXT:  1      2     0.50                        psubusb	%mm2, %mm2
154# CHECK-NEXT:  1      2     0.50                        psubusw	%mm2, %mm2
155# CHECK-NEXT:  1      2     0.50                        psubusb	%xmm2, %xmm2
156# CHECK-NEXT:  1      2     0.50                        psubusw	%xmm2, %xmm2
157# CHECK-NEXT:  1      2     0.50                        vpsubusb	%xmm3, %xmm3, %xmm3
158# CHECK-NEXT:  1      2     0.50                        vpsubusw	%xmm3, %xmm3, %xmm3
159# CHECK-NEXT:  1      2     0.50                        vpsubsb	%xmm3, %xmm3, %xmm5
160# CHECK-NEXT:  1      2     0.50                        vpsubsw	%xmm3, %xmm3, %xmm5
161# CHECK-NEXT:  1      0     0.25                        andnps	%xmm0, %xmm0
162# CHECK-NEXT:  1      0     0.25                        andnpd	%xmm1, %xmm1
163# CHECK-NEXT:  1      0     0.25                        vandnps	%xmm2, %xmm2, %xmm2
164# CHECK-NEXT:  1      0     0.25                        vandnpd	%xmm1, %xmm1, %xmm1
165# CHECK-NEXT:  1      0     0.25                        pandn	%mm2, %mm2
166# CHECK-NEXT:  1      0     0.25                        pandn	%xmm2, %xmm2
167# CHECK-NEXT:  1      0     0.25                        vpandn	%xmm3, %xmm3, %xmm3
168# CHECK-NEXT:  1      0     0.25                        vandnps	%xmm2, %xmm2, %xmm5
169# CHECK-NEXT:  1      0     0.25                        vandnpd	%xmm1, %xmm1, %xmm5
170# CHECK-NEXT:  1      0     0.25                        vpandn	%xmm3, %xmm3, %xmm5
171# CHECK-NEXT:  1      0     0.25                        xorps	%xmm0, %xmm0
172# CHECK-NEXT:  1      0     0.25                        xorpd	%xmm1, %xmm1
173# CHECK-NEXT:  1      0     0.25                        vxorps	%xmm2, %xmm2, %xmm2
174# CHECK-NEXT:  1      0     0.25                        vxorpd	%xmm1, %xmm1, %xmm1
175# CHECK-NEXT:  1      0     0.25                        pxor	%mm2, %mm2
176# CHECK-NEXT:  1      0     0.25                        pxor	%xmm2, %xmm2
177# CHECK-NEXT:  1      0     0.25                        vpxor	%xmm3, %xmm3, %xmm3
178# CHECK-NEXT:  1      0     0.25                        vxorps	%xmm4, %xmm4, %xmm5
179# CHECK-NEXT:  1      0     0.25                        vxorpd	%xmm1, %xmm1, %xmm3
180# CHECK-NEXT:  1      0     0.25                        vpxor	%xmm3, %xmm3, %xmm5
181
182# CHECK:      Register File statistics:
183# CHECK-NEXT: Total number of mappings created:    1
184# CHECK-NEXT: Max number of mappings used:         1
185
186# CHECK:      *  Register File #1 -- PdFpuPRF:
187# CHECK-NEXT:    Number of physical registers:     160
188# CHECK-NEXT:    Total number of mappings created: 1
189# CHECK-NEXT:    Max number of mappings used:      1
190
191# CHECK:      *  Register File #2 -- PdIntegerPRF:
192# CHECK-NEXT:    Number of physical registers:     96
193# CHECK-NEXT:    Total number of mappings created: 0
194# CHECK-NEXT:    Max number of mappings used:      0
195
196# CHECK:      Resources:
197# CHECK-NEXT: [0.0] - PdAGLU01
198# CHECK-NEXT: [0.1] - PdAGLU01
199# CHECK-NEXT: [1]   - PdBranch
200# CHECK-NEXT: [2]   - PdCount
201# CHECK-NEXT: [3]   - PdDiv
202# CHECK-NEXT: [4]   - PdEX0
203# CHECK-NEXT: [5]   - PdEX1
204# CHECK-NEXT: [6]   - PdFPCVT
205# CHECK-NEXT: [7.0] - PdFPFMA
206# CHECK-NEXT: [7.1] - PdFPFMA
207# CHECK-NEXT: [8.0] - PdFPMAL
208# CHECK-NEXT: [8.1] - PdFPMAL
209# CHECK-NEXT: [9]   - PdFPMMA
210# CHECK-NEXT: [10]  - PdFPSTO
211# CHECK-NEXT: [11]  - PdFPU0
212# CHECK-NEXT: [12]  - PdFPU1
213# CHECK-NEXT: [13]  - PdFPU2
214# CHECK-NEXT: [14]  - PdFPU3
215# CHECK-NEXT: [15]  - PdFPXBR
216# CHECK-NEXT: [16.0] - PdLoad
217# CHECK-NEXT: [16.1] - PdLoad
218# CHECK-NEXT: [17]  - PdMul
219# CHECK-NEXT: [18]  - PdStore
220
221# CHECK:      Resource pressure per iteration:
222# 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]
223# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     9.00   10.00   -      -      -      -     9.00   10.00   -      -      -      -      -
224
225# CHECK:      Resource pressure by instruction:
226# 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:
227# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl	%eax, %eax
228# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq	%rax, %rax
229# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl	%eax, %eax
230# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq	%rax, %rax
231# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtb	%mm2, %mm2
232# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtd	%mm2, %mm2
233# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtw	%mm2, %mm2
234# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtb	%xmm2, %xmm2
235# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtd	%xmm2, %xmm2
236# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     pcmpgtq	%xmm2, %xmm2
237# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtw	%xmm2, %xmm2
238# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm3
239# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd	%xmm3, %xmm3, %xmm3
240# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm3
241# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw	%xmm3, %xmm3, %xmm3
242# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm5
243# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd	%xmm3, %xmm3, %xmm5
244# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm5
245# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw	%xmm3, %xmm3, %xmm5
246# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubb	%mm2, %mm2
247# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubd	%mm2, %mm2
248# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubq	%mm2, %mm2
249# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubw	%mm2, %mm2
250# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubb	%xmm2, %xmm2
251# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubd	%xmm2, %xmm2
252# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubq	%xmm2, %xmm2
253# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubw	%xmm2, %xmm2
254# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm3
255# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd	%xmm3, %xmm3, %xmm3
256# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm3
257# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw	%xmm3, %xmm3, %xmm3
258# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm5
259# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd	%xmm3, %xmm3, %xmm5
260# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm5
261# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw	%xmm3, %xmm3, %xmm5
262# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     psubsb	%mm2, %mm2
263# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     psubsw	%mm2, %mm2
264# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     psubsb	%xmm2, %xmm2
265# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     psubsw	%xmm2, %xmm2
266# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     vpsubsb	%xmm3, %xmm3, %xmm3
267# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     vpsubsw	%xmm3, %xmm3, %xmm3
268# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     vpsubsb	%xmm3, %xmm3, %xmm5
269# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     vpsubsw	%xmm3, %xmm3, %xmm5
270# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     psubusb	%mm2, %mm2
271# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     psubusw	%mm2, %mm2
272# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     psubusb	%xmm2, %xmm2
273# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     psubusw	%xmm2, %xmm2
274# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     vpsubusb	%xmm3, %xmm3, %xmm3
275# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     vpsubusw	%xmm3, %xmm3, %xmm3
276# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     vpsubsb	%xmm3, %xmm3, %xmm5
277# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00    -      -      -      -      -     vpsubsw	%xmm3, %xmm3, %xmm5
278# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andnps	%xmm0, %xmm0
279# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andnpd	%xmm1, %xmm1
280# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps	%xmm2, %xmm2, %xmm2
281# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm1
282# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pandn	%mm2, %mm2
283# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pandn	%xmm2, %xmm2
284# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn	%xmm3, %xmm3, %xmm3
285# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps	%xmm2, %xmm2, %xmm5
286# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm5
287# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn	%xmm3, %xmm3, %xmm5
288# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorps	%xmm0, %xmm0
289# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorpd	%xmm1, %xmm1
290# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps	%xmm2, %xmm2, %xmm2
291# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd	%xmm1, %xmm1, %xmm1
292# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pxor	%mm2, %mm2
293# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pxor	%xmm2, %xmm2
294# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor	%xmm3, %xmm3, %xmm3
295# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps	%xmm4, %xmm4, %xmm5
296# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd	%xmm1, %xmm1, %xmm3
297# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor	%xmm3, %xmm3, %xmm5
298
299# CHECK:      Timeline view:
300# CHECK-NEXT:                     0123456789
301# CHECK-NEXT: Index     0123456789          012345
302
303# CHECK:      [0,0]     DR   .    .    .    .    .   subl	%eax, %eax
304# CHECK-NEXT: [0,1]     DR   .    .    .    .    .   subq	%rax, %rax
305# CHECK-NEXT: [0,2]     DR   .    .    .    .    .   xorl	%eax, %eax
306# CHECK-NEXT: [0,3]     DR   .    .    .    .    .   xorq	%rax, %rax
307# CHECK-NEXT: [0,4]     .DR  .    .    .    .    .   pcmpgtb	%mm2, %mm2
308# CHECK-NEXT: [0,5]     .DR  .    .    .    .    .   pcmpgtd	%mm2, %mm2
309# CHECK-NEXT: [0,6]     .DR  .    .    .    .    .   pcmpgtw	%mm2, %mm2
310# CHECK-NEXT: [0,7]     .DR  .    .    .    .    .   pcmpgtb	%xmm2, %xmm2
311# CHECK-NEXT: [0,8]     . DR .    .    .    .    .   pcmpgtd	%xmm2, %xmm2
312# CHECK-NEXT: [0,9]     . DeeER   .    .    .    .   pcmpgtq	%xmm2, %xmm2
313# CHECK-NEXT: [0,10]    . D---R   .    .    .    .   pcmpgtw	%xmm2, %xmm2
314# CHECK-NEXT: [0,11]    . D---R   .    .    .    .   vpcmpgtb	%xmm3, %xmm3, %xmm3
315# CHECK-NEXT: [0,12]    .  D--R   .    .    .    .   vpcmpgtd	%xmm3, %xmm3, %xmm3
316# CHECK-NEXT: [0,13]    .  DeeER  .    .    .    .   vpcmpgtq	%xmm3, %xmm3, %xmm3
317# CHECK-NEXT: [0,14]    .  D---R  .    .    .    .   vpcmpgtw	%xmm3, %xmm3, %xmm3
318# CHECK-NEXT: [0,15]    .  D---R  .    .    .    .   vpcmpgtb	%xmm3, %xmm3, %xmm5
319# CHECK-NEXT: [0,16]    .   D--R  .    .    .    .   vpcmpgtd	%xmm3, %xmm3, %xmm5
320# CHECK-NEXT: [0,17]    .   DeeER .    .    .    .   vpcmpgtq	%xmm3, %xmm3, %xmm5
321# CHECK-NEXT: [0,18]    .   D---R .    .    .    .   vpcmpgtw	%xmm3, %xmm3, %xmm5
322# CHECK-NEXT: [0,19]    .   D---R .    .    .    .   psubb	%mm2, %mm2
323# CHECK-NEXT: [0,20]    .    D--R .    .    .    .   psubd	%mm2, %mm2
324# CHECK-NEXT: [0,21]    .    D---R.    .    .    .   psubq	%mm2, %mm2
325# CHECK-NEXT: [0,22]    .    D---R.    .    .    .   psubw	%mm2, %mm2
326# CHECK-NEXT: [0,23]    .    D---R.    .    .    .   psubb	%xmm2, %xmm2
327# CHECK-NEXT: [0,24]    .    .D--R.    .    .    .   psubd	%xmm2, %xmm2
328# CHECK-NEXT: [0,25]    .    .D---R    .    .    .   psubq	%xmm2, %xmm2
329# CHECK-NEXT: [0,26]    .    .D---R    .    .    .   psubw	%xmm2, %xmm2
330# CHECK-NEXT: [0,27]    .    .D---R    .    .    .   vpsubb	%xmm3, %xmm3, %xmm3
331# CHECK-NEXT: [0,28]    .    . D--R    .    .    .   vpsubd	%xmm3, %xmm3, %xmm3
332# CHECK-NEXT: [0,29]    .    . D---R   .    .    .   vpsubq	%xmm3, %xmm3, %xmm3
333# CHECK-NEXT: [0,30]    .    . D---R   .    .    .   vpsubw	%xmm3, %xmm3, %xmm3
334# CHECK-NEXT: [0,31]    .    . D---R   .    .    .   vpsubb	%xmm3, %xmm3, %xmm5
335# CHECK-NEXT: [0,32]    .    .  D--R   .    .    .   vpsubd	%xmm3, %xmm3, %xmm5
336# CHECK-NEXT: [0,33]    .    .  D---R  .    .    .   vpsubq	%xmm3, %xmm3, %xmm5
337# CHECK-NEXT: [0,34]    .    .  D---R  .    .    .   vpsubw	%xmm3, %xmm3, %xmm5
338# CHECK-NEXT: [0,35]    .    .  DeeER  .    .    .   psubsb	%mm2, %mm2
339# CHECK-NEXT: [0,36]    .    .   DeeER .    .    .   psubsw	%mm2, %mm2
340# CHECK-NEXT: [0,37]    .    .   DeeER .    .    .   psubsb	%xmm2, %xmm2
341# CHECK-NEXT: [0,38]    .    .   D=eeER.    .    .   psubsw	%xmm2, %xmm2
342# CHECK-NEXT: [0,39]    .    .   D=eeER.    .    .   vpsubsb	%xmm3, %xmm3, %xmm3
343# CHECK-NEXT: [0,40]    .    .    D=eeER    .    .   vpsubsw	%xmm3, %xmm3, %xmm3
344# CHECK-NEXT: [0,41]    .    .    D=eeER    .    .   vpsubsb	%xmm3, %xmm3, %xmm5
345# CHECK-NEXT: [0,42]    .    .    D==eeER   .    .   vpsubsw	%xmm3, %xmm3, %xmm5
346# CHECK-NEXT: [0,43]    .    .    D==eeER   .    .   psubusb	%mm2, %mm2
347# CHECK-NEXT: [0,44]    .    .    .D==eeER  .    .   psubusw	%mm2, %mm2
348# CHECK-NEXT: [0,45]    .    .    .D==eeER  .    .   psubusb	%xmm2, %xmm2
349# CHECK-NEXT: [0,46]    .    .    .D===eeER .    .   psubusw	%xmm2, %xmm2
350# CHECK-NEXT: [0,47]    .    .    .D===eeER .    .   vpsubusb	%xmm3, %xmm3, %xmm3
351# CHECK-NEXT: [0,48]    .    .    . D===eeER.    .   vpsubusw	%xmm3, %xmm3, %xmm3
352# CHECK-NEXT: [0,49]    .    .    . D===eeER.    .   vpsubsb	%xmm3, %xmm3, %xmm5
353# CHECK-NEXT: [0,50]    .    .    . D====eeER    .   vpsubsw	%xmm3, %xmm3, %xmm5
354# CHECK-NEXT: [0,51]    .    .    . D-------R    .   andnps	%xmm0, %xmm0
355# CHECK-NEXT: [0,52]    .    .    .  D------R    .   andnpd	%xmm1, %xmm1
356# CHECK-NEXT: [0,53]    .    .    .  D------R    .   vandnps	%xmm2, %xmm2, %xmm2
357# CHECK-NEXT: [0,54]    .    .    .  D-------R   .   vandnpd	%xmm1, %xmm1, %xmm1
358# CHECK-NEXT: [0,55]    .    .    .  D-------R   .   pandn	%mm2, %mm2
359# CHECK-NEXT: [0,56]    .    .    .   D------R   .   pandn	%xmm2, %xmm2
360# CHECK-NEXT: [0,57]    .    .    .   D------R   .   vpandn	%xmm3, %xmm3, %xmm3
361# CHECK-NEXT: [0,58]    .    .    .   D-------R  .   vandnps	%xmm2, %xmm2, %xmm5
362# CHECK-NEXT: [0,59]    .    .    .   D-------R  .   vandnpd	%xmm1, %xmm1, %xmm5
363# CHECK-NEXT: [0,60]    .    .    .    D------R  .   vpandn	%xmm3, %xmm3, %xmm5
364# CHECK-NEXT: [0,61]    .    .    .    D------R  .   xorps	%xmm0, %xmm0
365# CHECK-NEXT: [0,62]    .    .    .    D-------R .   xorpd	%xmm1, %xmm1
366# CHECK-NEXT: [0,63]    .    .    .    D-------R .   vxorps	%xmm2, %xmm2, %xmm2
367# CHECK-NEXT: [0,64]    .    .    .    .D------R .   vxorpd	%xmm1, %xmm1, %xmm1
368# CHECK-NEXT: [0,65]    .    .    .    .D------R .   pxor	%mm2, %mm2
369# CHECK-NEXT: [0,66]    .    .    .    .D-------R.   pxor	%xmm2, %xmm2
370# CHECK-NEXT: [0,67]    .    .    .    .D-------R.   vpxor	%xmm3, %xmm3, %xmm3
371# CHECK-NEXT: [0,68]    .    .    .    . D------R.   vxorps	%xmm4, %xmm4, %xmm5
372# CHECK-NEXT: [0,69]    .    .    .    . D------R.   vxorpd	%xmm1, %xmm1, %xmm3
373# CHECK-NEXT: [0,70]    .    .    .    . D-------R   vpxor	%xmm3, %xmm3, %xmm5
374
375# CHECK:      Average Wait times (based on the timeline view):
376# CHECK-NEXT: [0]: Executions
377# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
378# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
379# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
380
381# CHECK:            [0]    [1]    [2]    [3]
382# CHECK-NEXT: 0.     1     0.0    0.0    0.0       subl	%eax, %eax
383# CHECK-NEXT: 1.     1     0.0    0.0    0.0       subq	%rax, %rax
384# CHECK-NEXT: 2.     1     0.0    0.0    0.0       xorl	%eax, %eax
385# CHECK-NEXT: 3.     1     0.0    0.0    0.0       xorq	%rax, %rax
386# CHECK-NEXT: 4.     1     0.0    0.0    0.0       pcmpgtb	%mm2, %mm2
387# CHECK-NEXT: 5.     1     0.0    0.0    0.0       pcmpgtd	%mm2, %mm2
388# CHECK-NEXT: 6.     1     0.0    0.0    0.0       pcmpgtw	%mm2, %mm2
389# CHECK-NEXT: 7.     1     0.0    0.0    0.0       pcmpgtb	%xmm2, %xmm2
390# CHECK-NEXT: 8.     1     0.0    0.0    0.0       pcmpgtd	%xmm2, %xmm2
391# CHECK-NEXT: 9.     1     1.0    1.0    0.0       pcmpgtq	%xmm2, %xmm2
392# CHECK-NEXT: 10.    1     0.0    0.0    3.0       pcmpgtw	%xmm2, %xmm2
393# CHECK-NEXT: 11.    1     0.0    0.0    3.0       vpcmpgtb	%xmm3, %xmm3, %xmm3
394# CHECK-NEXT: 12.    1     0.0    0.0    2.0       vpcmpgtd	%xmm3, %xmm3, %xmm3
395# CHECK-NEXT: 13.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm3
396# CHECK-NEXT: 14.    1     0.0    0.0    3.0       vpcmpgtw	%xmm3, %xmm3, %xmm3
397# CHECK-NEXT: 15.    1     0.0    0.0    3.0       vpcmpgtb	%xmm3, %xmm3, %xmm5
398# CHECK-NEXT: 16.    1     0.0    0.0    2.0       vpcmpgtd	%xmm3, %xmm3, %xmm5
399# CHECK-NEXT: 17.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm5
400# CHECK-NEXT: 18.    1     0.0    0.0    3.0       vpcmpgtw	%xmm3, %xmm3, %xmm5
401# CHECK-NEXT: 19.    1     0.0    0.0    3.0       psubb	%mm2, %mm2
402# CHECK-NEXT: 20.    1     0.0    0.0    2.0       psubd	%mm2, %mm2
403# CHECK-NEXT: 21.    1     0.0    0.0    3.0       psubq	%mm2, %mm2
404# CHECK-NEXT: 22.    1     0.0    0.0    3.0       psubw	%mm2, %mm2
405# CHECK-NEXT: 23.    1     0.0    0.0    3.0       psubb	%xmm2, %xmm2
406# CHECK-NEXT: 24.    1     0.0    0.0    2.0       psubd	%xmm2, %xmm2
407# CHECK-NEXT: 25.    1     0.0    0.0    3.0       psubq	%xmm2, %xmm2
408# CHECK-NEXT: 26.    1     0.0    0.0    3.0       psubw	%xmm2, %xmm2
409# CHECK-NEXT: 27.    1     0.0    0.0    3.0       vpsubb	%xmm3, %xmm3, %xmm3
410# CHECK-NEXT: 28.    1     0.0    0.0    2.0       vpsubd	%xmm3, %xmm3, %xmm3
411# CHECK-NEXT: 29.    1     0.0    0.0    3.0       vpsubq	%xmm3, %xmm3, %xmm3
412# CHECK-NEXT: 30.    1     0.0    0.0    3.0       vpsubw	%xmm3, %xmm3, %xmm3
413# CHECK-NEXT: 31.    1     0.0    0.0    3.0       vpsubb	%xmm3, %xmm3, %xmm5
414# CHECK-NEXT: 32.    1     0.0    0.0    2.0       vpsubd	%xmm3, %xmm3, %xmm5
415# CHECK-NEXT: 33.    1     0.0    0.0    3.0       vpsubq	%xmm3, %xmm3, %xmm5
416# CHECK-NEXT: 34.    1     0.0    0.0    3.0       vpsubw	%xmm3, %xmm3, %xmm5
417# CHECK-NEXT: 35.    1     1.0    1.0    0.0       psubsb	%mm2, %mm2
418# CHECK-NEXT: 36.    1     1.0    1.0    0.0       psubsw	%mm2, %mm2
419# CHECK-NEXT: 37.    1     1.0    1.0    0.0       psubsb	%xmm2, %xmm2
420# CHECK-NEXT: 38.    1     2.0    2.0    0.0       psubsw	%xmm2, %xmm2
421# CHECK-NEXT: 39.    1     2.0    2.0    0.0       vpsubsb	%xmm3, %xmm3, %xmm3
422# CHECK-NEXT: 40.    1     2.0    2.0    0.0       vpsubsw	%xmm3, %xmm3, %xmm3
423# CHECK-NEXT: 41.    1     2.0    2.0    0.0       vpsubsb	%xmm3, %xmm3, %xmm5
424# CHECK-NEXT: 42.    1     3.0    3.0    0.0       vpsubsw	%xmm3, %xmm3, %xmm5
425# CHECK-NEXT: 43.    1     3.0    3.0    0.0       psubusb	%mm2, %mm2
426# CHECK-NEXT: 44.    1     3.0    3.0    0.0       psubusw	%mm2, %mm2
427# CHECK-NEXT: 45.    1     3.0    3.0    0.0       psubusb	%xmm2, %xmm2
428# CHECK-NEXT: 46.    1     4.0    4.0    0.0       psubusw	%xmm2, %xmm2
429# CHECK-NEXT: 47.    1     4.0    4.0    0.0       vpsubusb	%xmm3, %xmm3, %xmm3
430# CHECK-NEXT: 48.    1     4.0    4.0    0.0       vpsubusw	%xmm3, %xmm3, %xmm3
431# CHECK-NEXT: 49.    1     4.0    4.0    0.0       vpsubsb	%xmm3, %xmm3, %xmm5
432# CHECK-NEXT: 50.    1     5.0    5.0    0.0       vpsubsw	%xmm3, %xmm3, %xmm5
433# CHECK-NEXT: 51.    1     0.0    0.0    7.0       andnps	%xmm0, %xmm0
434# CHECK-NEXT: 52.    1     0.0    0.0    6.0       andnpd	%xmm1, %xmm1
435# CHECK-NEXT: 53.    1     0.0    0.0    6.0       vandnps	%xmm2, %xmm2, %xmm2
436# CHECK-NEXT: 54.    1     0.0    0.0    7.0       vandnpd	%xmm1, %xmm1, %xmm1
437# CHECK-NEXT: 55.    1     0.0    0.0    7.0       pandn	%mm2, %mm2
438# CHECK-NEXT: 56.    1     0.0    0.0    6.0       pandn	%xmm2, %xmm2
439# CHECK-NEXT: 57.    1     0.0    0.0    6.0       vpandn	%xmm3, %xmm3, %xmm3
440# CHECK-NEXT: 58.    1     0.0    0.0    7.0       vandnps	%xmm2, %xmm2, %xmm5
441# CHECK-NEXT: 59.    1     0.0    0.0    7.0       vandnpd	%xmm1, %xmm1, %xmm5
442# CHECK-NEXT: 60.    1     0.0    0.0    6.0       vpandn	%xmm3, %xmm3, %xmm5
443# CHECK-NEXT: 61.    1     0.0    0.0    6.0       xorps	%xmm0, %xmm0
444# CHECK-NEXT: 62.    1     0.0    0.0    7.0       xorpd	%xmm1, %xmm1
445# CHECK-NEXT: 63.    1     0.0    0.0    7.0       vxorps	%xmm2, %xmm2, %xmm2
446# CHECK-NEXT: 64.    1     0.0    0.0    6.0       vxorpd	%xmm1, %xmm1, %xmm1
447# CHECK-NEXT: 65.    1     0.0    0.0    6.0       pxor	%mm2, %mm2
448# CHECK-NEXT: 66.    1     0.0    0.0    7.0       pxor	%xmm2, %xmm2
449# CHECK-NEXT: 67.    1     0.0    0.0    7.0       vpxor	%xmm3, %xmm3, %xmm3
450# CHECK-NEXT: 68.    1     0.0    0.0    6.0       vxorps	%xmm4, %xmm4, %xmm5
451# CHECK-NEXT: 69.    1     0.0    0.0    6.0       vxorpd	%xmm1, %xmm1, %xmm3
452# CHECK-NEXT: 70.    1     0.0    0.0    7.0       vpxor	%xmm3, %xmm3, %xmm5
453# CHECK-NEXT:        1     0.7    0.7    2.7       <total>
454