xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s (revision 4994f87ca1d9c266936ae8352872fcc5271b1dd4)
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 -timeline-max-iterations=3 < %s | FileCheck %s
3
4# TODO: Fix the processor resource usage for zero-idiom YMM XOR instructions.
5#       Those vector XOR instructions should only consume 1cy of JFPU1 (instead
6#       of 2cy).
7
8# LLVM-MCA-BEGIN ZERO-IDIOM-1
9
10vaddps %ymm0, %ymm0, %ymm1
11vxorps %ymm1, %ymm1, %ymm1
12vblendps $2, %ymm1, %ymm2, %ymm3
13
14# LLVM-MCA-END
15
16# LLVM-MCA-BEGIN ZERO-IDIOM-2
17
18vaddpd %ymm0, %ymm0, %ymm1
19vxorpd %ymm1, %ymm1, %ymm1
20vblendpd $2, %ymm1, %ymm2, %ymm3
21
22# LLVM-MCA-END
23
24# LLVM-MCA-BEGIN ZERO-IDIOM-3
25vaddps %ymm0, %ymm1, %ymm2
26vandnps %ymm2, %ymm2, %ymm3
27# LLVM-MCA-END
28
29# LLVM-MCA-BEGIN ZERO-IDIOM-4
30vaddps %ymm0, %ymm1, %ymm2
31vandnps %ymm2, %ymm2, %ymm3
32# LLVM-MCA-END
33
34# LLVM-MCA-BEGIN ZERO-IDIOM-5
35vperm2f128 $136, %ymm0, %ymm0, %ymm1
36vaddps  %ymm1, %ymm1, %ymm0
37# LLVM-MCA-END
38
39# CHECK:      [0] Code Region - ZERO-IDIOM-1
40
41# CHECK:      Iterations:        100
42# CHECK-NEXT: Instructions:      300
43# CHECK-NEXT: Total Cycles:      205
44# CHECK-NEXT: Total uOps:        600
45
46# CHECK:      Dispatch Width:    4
47# CHECK-NEXT: uOps Per Cycle:    2.93
48# CHECK-NEXT: IPC:               1.46
49# CHECK-NEXT: Block RThroughput: 2.0
50
51# CHECK:      Instruction Info:
52# CHECK-NEXT: [1]: #uOps
53# CHECK-NEXT: [2]: Latency
54# CHECK-NEXT: [3]: RThroughput
55# CHECK-NEXT: [4]: MayLoad
56# CHECK-NEXT: [5]: MayStore
57# CHECK-NEXT: [6]: HasSideEffects (U)
58
59# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
60# CHECK-NEXT:  2      5     1.00                        vaddps	%ymm0, %ymm0, %ymm1
61# CHECK-NEXT:  2      2     1.00                        vxorps	%ymm1, %ymm1, %ymm1
62# CHECK-NEXT:  2      2     1.00                        vblendps	$2, %ymm1, %ymm2, %ymm3
63
64# CHECK:      Resources:
65# CHECK-NEXT: [0.0] - PdAGLU01
66# CHECK-NEXT: [0.1] - PdAGLU01
67# CHECK-NEXT: [1]   - PdBranch
68# CHECK-NEXT: [2]   - PdCount
69# CHECK-NEXT: [3]   - PdDiv
70# CHECK-NEXT: [4]   - PdEX0
71# CHECK-NEXT: [5]   - PdEX1
72# CHECK-NEXT: [6]   - PdFPCVT
73# CHECK-NEXT: [7.0] - PdFPFMA
74# CHECK-NEXT: [7.1] - PdFPFMA
75# CHECK-NEXT: [8.0] - PdFPMAL
76# CHECK-NEXT: [8.1] - PdFPMAL
77# CHECK-NEXT: [9]   - PdFPMMA
78# CHECK-NEXT: [10]  - PdFPSTO
79# CHECK-NEXT: [11]  - PdFPU0
80# CHECK-NEXT: [12]  - PdFPU1
81# CHECK-NEXT: [13]  - PdFPU2
82# CHECK-NEXT: [14]  - PdFPU3
83# CHECK-NEXT: [15]  - PdFPXBR
84# CHECK-NEXT: [16.0] - PdLoad
85# CHECK-NEXT: [16.1] - PdLoad
86# CHECK-NEXT: [17]  - PdMul
87# CHECK-NEXT: [18]  - PdStore
88
89# CHECK:      Resource pressure per iteration:
90# 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]
91# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   2.00   2.00    -      -     1.00    -     2.00   2.00    -      -      -      -      -
92
93# CHECK:      Resource pressure by instruction:
94# 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:
95# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vaddps	%ymm0, %ymm0, %ymm1
96# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -     2.00    -      -      -      -      -     vxorps	%ymm1, %ymm1, %ymm1
97# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -     2.00    -      -      -      -      -      -     vblendps	$2, %ymm1, %ymm2, %ymm3
98
99# CHECK:      Timeline view:
100# CHECK-NEXT:                     0
101# CHECK-NEXT: Index     0123456789
102
103# CHECK:      [0,0]     DeeeeeER  .   vaddps	%ymm0, %ymm0, %ymm1
104# CHECK-NEXT: [0,1]     DeeE---R  .   vxorps	%ymm1, %ymm1, %ymm1
105# CHECK-NEXT: [0,2]     .D=eeE-R  .   vblendps	$2, %ymm1, %ymm2, %ymm3
106# CHECK-NEXT: [1,0]     .DeeeeeER .   vaddps	%ymm0, %ymm0, %ymm1
107# CHECK-NEXT: [1,1]     . DeeE--R .   vxorps	%ymm1, %ymm1, %ymm1
108# CHECK-NEXT: [1,2]     . D==eeER .   vblendps	$2, %ymm1, %ymm2, %ymm3
109# CHECK-NEXT: [2,0]     .  DeeeeeER   vaddps	%ymm0, %ymm0, %ymm1
110# CHECK-NEXT: [2,1]     .  D=eeE--R   vxorps	%ymm1, %ymm1, %ymm1
111# CHECK-NEXT: [2,2]     .   D==eeER   vblendps	$2, %ymm1, %ymm2, %ymm3
112
113# CHECK:      Average Wait times (based on the timeline view):
114# CHECK-NEXT: [0]: Executions
115# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
116# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
117# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
118
119# CHECK:            [0]    [1]    [2]    [3]
120# CHECK-NEXT: 0.     3     1.0    1.0    0.0       vaddps	%ymm0, %ymm0, %ymm1
121# CHECK-NEXT: 1.     3     1.3    1.3    2.3       vxorps	%ymm1, %ymm1, %ymm1
122# CHECK-NEXT: 2.     3     2.7    0.0    0.3       vblendps	$2, %ymm1, %ymm2, %ymm3
123# CHECK-NEXT:        3     1.7    0.8    0.9       <total>
124
125# CHECK:      [1] Code Region - ZERO-IDIOM-2
126
127# CHECK:      Iterations:        100
128# CHECK-NEXT: Instructions:      300
129# CHECK-NEXT: Total Cycles:      205
130# CHECK-NEXT: Total uOps:        600
131
132# CHECK:      Dispatch Width:    4
133# CHECK-NEXT: uOps Per Cycle:    2.93
134# CHECK-NEXT: IPC:               1.46
135# CHECK-NEXT: Block RThroughput: 2.0
136
137# CHECK:      Instruction Info:
138# CHECK-NEXT: [1]: #uOps
139# CHECK-NEXT: [2]: Latency
140# CHECK-NEXT: [3]: RThroughput
141# CHECK-NEXT: [4]: MayLoad
142# CHECK-NEXT: [5]: MayStore
143# CHECK-NEXT: [6]: HasSideEffects (U)
144
145# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
146# CHECK-NEXT:  2      5     1.00                        vaddpd	%ymm0, %ymm0, %ymm1
147# CHECK-NEXT:  2      2     1.00                        vxorpd	%ymm1, %ymm1, %ymm1
148# CHECK-NEXT:  2      2     1.00                        vblendpd	$2, %ymm1, %ymm2, %ymm3
149
150# CHECK:      Resources:
151# CHECK-NEXT: [0.0] - PdAGLU01
152# CHECK-NEXT: [0.1] - PdAGLU01
153# CHECK-NEXT: [1]   - PdBranch
154# CHECK-NEXT: [2]   - PdCount
155# CHECK-NEXT: [3]   - PdDiv
156# CHECK-NEXT: [4]   - PdEX0
157# CHECK-NEXT: [5]   - PdEX1
158# CHECK-NEXT: [6]   - PdFPCVT
159# CHECK-NEXT: [7.0] - PdFPFMA
160# CHECK-NEXT: [7.1] - PdFPFMA
161# CHECK-NEXT: [8.0] - PdFPMAL
162# CHECK-NEXT: [8.1] - PdFPMAL
163# CHECK-NEXT: [9]   - PdFPMMA
164# CHECK-NEXT: [10]  - PdFPSTO
165# CHECK-NEXT: [11]  - PdFPU0
166# CHECK-NEXT: [12]  - PdFPU1
167# CHECK-NEXT: [13]  - PdFPU2
168# CHECK-NEXT: [14]  - PdFPU3
169# CHECK-NEXT: [15]  - PdFPXBR
170# CHECK-NEXT: [16.0] - PdLoad
171# CHECK-NEXT: [16.1] - PdLoad
172# CHECK-NEXT: [17]  - PdMul
173# CHECK-NEXT: [18]  - PdStore
174
175# CHECK:      Resource pressure per iteration:
176# 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]
177# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   2.00   2.00    -      -     1.00    -     2.00   2.00    -      -      -      -      -
178
179# CHECK:      Resource pressure by instruction:
180# 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:
181# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vaddpd	%ymm0, %ymm0, %ymm1
182# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -     2.00    -      -      -      -      -     vxorpd	%ymm1, %ymm1, %ymm1
183# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -     2.00    -      -      -      -      -      -     vblendpd	$2, %ymm1, %ymm2, %ymm3
184
185# CHECK:      Timeline view:
186# CHECK-NEXT:                     0
187# CHECK-NEXT: Index     0123456789
188
189# CHECK:      [0,0]     DeeeeeER  .   vaddpd	%ymm0, %ymm0, %ymm1
190# CHECK-NEXT: [0,1]     DeeE---R  .   vxorpd	%ymm1, %ymm1, %ymm1
191# CHECK-NEXT: [0,2]     .D=eeE-R  .   vblendpd	$2, %ymm1, %ymm2, %ymm3
192# CHECK-NEXT: [1,0]     .DeeeeeER .   vaddpd	%ymm0, %ymm0, %ymm1
193# CHECK-NEXT: [1,1]     . DeeE--R .   vxorpd	%ymm1, %ymm1, %ymm1
194# CHECK-NEXT: [1,2]     . D==eeER .   vblendpd	$2, %ymm1, %ymm2, %ymm3
195# CHECK-NEXT: [2,0]     .  DeeeeeER   vaddpd	%ymm0, %ymm0, %ymm1
196# CHECK-NEXT: [2,1]     .  D=eeE--R   vxorpd	%ymm1, %ymm1, %ymm1
197# CHECK-NEXT: [2,2]     .   D==eeER   vblendpd	$2, %ymm1, %ymm2, %ymm3
198
199# CHECK:      Average Wait times (based on the timeline view):
200# CHECK-NEXT: [0]: Executions
201# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
202# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
203# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
204
205# CHECK:            [0]    [1]    [2]    [3]
206# CHECK-NEXT: 0.     3     1.0    1.0    0.0       vaddpd	%ymm0, %ymm0, %ymm1
207# CHECK-NEXT: 1.     3     1.3    1.3    2.3       vxorpd	%ymm1, %ymm1, %ymm1
208# CHECK-NEXT: 2.     3     2.7    0.0    0.3       vblendpd	$2, %ymm1, %ymm2, %ymm3
209# CHECK-NEXT:        3     1.7    0.8    0.9       <total>
210
211# CHECK:      [2] Code Region - ZERO-IDIOM-3
212
213# CHECK:      Iterations:        100
214# CHECK-NEXT: Instructions:      200
215# CHECK-NEXT: Total Cycles:      107
216# CHECK-NEXT: Total uOps:        400
217
218# CHECK:      Dispatch Width:    4
219# CHECK-NEXT: uOps Per Cycle:    3.74
220# CHECK-NEXT: IPC:               1.87
221# CHECK-NEXT: Block RThroughput: 1.0
222
223# CHECK:      Instruction Info:
224# CHECK-NEXT: [1]: #uOps
225# CHECK-NEXT: [2]: Latency
226# CHECK-NEXT: [3]: RThroughput
227# CHECK-NEXT: [4]: MayLoad
228# CHECK-NEXT: [5]: MayStore
229# CHECK-NEXT: [6]: HasSideEffects (U)
230
231# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
232# CHECK-NEXT:  2      5     1.00                        vaddps	%ymm0, %ymm1, %ymm2
233# CHECK-NEXT:  2      2     1.00                        vandnps	%ymm2, %ymm2, %ymm3
234
235# CHECK:      Resources:
236# CHECK-NEXT: [0.0] - PdAGLU01
237# CHECK-NEXT: [0.1] - PdAGLU01
238# CHECK-NEXT: [1]   - PdBranch
239# CHECK-NEXT: [2]   - PdCount
240# CHECK-NEXT: [3]   - PdDiv
241# CHECK-NEXT: [4]   - PdEX0
242# CHECK-NEXT: [5]   - PdEX1
243# CHECK-NEXT: [6]   - PdFPCVT
244# CHECK-NEXT: [7.0] - PdFPFMA
245# CHECK-NEXT: [7.1] - PdFPFMA
246# CHECK-NEXT: [8.0] - PdFPMAL
247# CHECK-NEXT: [8.1] - PdFPMAL
248# CHECK-NEXT: [9]   - PdFPMMA
249# CHECK-NEXT: [10]  - PdFPSTO
250# CHECK-NEXT: [11]  - PdFPU0
251# CHECK-NEXT: [12]  - PdFPU1
252# CHECK-NEXT: [13]  - PdFPU2
253# CHECK-NEXT: [14]  - PdFPU3
254# CHECK-NEXT: [15]  - PdFPXBR
255# CHECK-NEXT: [16.0] - PdLoad
256# CHECK-NEXT: [16.1] - PdLoad
257# CHECK-NEXT: [17]  - PdMul
258# CHECK-NEXT: [18]  - PdStore
259
260# CHECK:      Resource pressure per iteration:
261# 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]
262# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -     1.00    -     1.00   1.00    -      -      -      -      -
263
264# CHECK:      Resource pressure by instruction:
265# 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:
266# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vaddps	%ymm0, %ymm1, %ymm2
267# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00   1.00    -      -      -      -      -     vandnps	%ymm2, %ymm2, %ymm3
268
269# CHECK:      Timeline view:
270# CHECK-NEXT: Index     0123456789
271
272# CHECK:      [0,0]     DeeeeeER .   vaddps	%ymm0, %ymm1, %ymm2
273# CHECK-NEXT: [0,1]     DeeE---R .   vandnps	%ymm2, %ymm2, %ymm3
274# CHECK-NEXT: [1,0]     .DeeeeeER.   vaddps	%ymm0, %ymm1, %ymm2
275# CHECK-NEXT: [1,1]     .DeeE---R.   vandnps	%ymm2, %ymm2, %ymm3
276# CHECK-NEXT: [2,0]     . DeeeeeER   vaddps	%ymm0, %ymm1, %ymm2
277# CHECK-NEXT: [2,1]     . DeeE---R   vandnps	%ymm2, %ymm2, %ymm3
278
279# CHECK:      Average Wait times (based on the timeline view):
280# CHECK-NEXT: [0]: Executions
281# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
282# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
283# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
284
285# CHECK:            [0]    [1]    [2]    [3]
286# CHECK-NEXT: 0.     3     1.0    1.0    0.0       vaddps	%ymm0, %ymm1, %ymm2
287# CHECK-NEXT: 1.     3     1.0    1.0    3.0       vandnps	%ymm2, %ymm2, %ymm3
288# CHECK-NEXT:        3     1.0    1.0    1.5       <total>
289
290# CHECK:      [3] Code Region - ZERO-IDIOM-4
291
292# CHECK:      Iterations:        100
293# CHECK-NEXT: Instructions:      200
294# CHECK-NEXT: Total Cycles:      107
295# CHECK-NEXT: Total uOps:        400
296
297# CHECK:      Dispatch Width:    4
298# CHECK-NEXT: uOps Per Cycle:    3.74
299# CHECK-NEXT: IPC:               1.87
300# CHECK-NEXT: Block RThroughput: 1.0
301
302# CHECK:      Instruction Info:
303# CHECK-NEXT: [1]: #uOps
304# CHECK-NEXT: [2]: Latency
305# CHECK-NEXT: [3]: RThroughput
306# CHECK-NEXT: [4]: MayLoad
307# CHECK-NEXT: [5]: MayStore
308# CHECK-NEXT: [6]: HasSideEffects (U)
309
310# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
311# CHECK-NEXT:  2      5     1.00                        vaddps	%ymm0, %ymm1, %ymm2
312# CHECK-NEXT:  2      2     1.00                        vandnps	%ymm2, %ymm2, %ymm3
313
314# CHECK:      Resources:
315# CHECK-NEXT: [0.0] - PdAGLU01
316# CHECK-NEXT: [0.1] - PdAGLU01
317# CHECK-NEXT: [1]   - PdBranch
318# CHECK-NEXT: [2]   - PdCount
319# CHECK-NEXT: [3]   - PdDiv
320# CHECK-NEXT: [4]   - PdEX0
321# CHECK-NEXT: [5]   - PdEX1
322# CHECK-NEXT: [6]   - PdFPCVT
323# CHECK-NEXT: [7.0] - PdFPFMA
324# CHECK-NEXT: [7.1] - PdFPFMA
325# CHECK-NEXT: [8.0] - PdFPMAL
326# CHECK-NEXT: [8.1] - PdFPMAL
327# CHECK-NEXT: [9]   - PdFPMMA
328# CHECK-NEXT: [10]  - PdFPSTO
329# CHECK-NEXT: [11]  - PdFPU0
330# CHECK-NEXT: [12]  - PdFPU1
331# CHECK-NEXT: [13]  - PdFPU2
332# CHECK-NEXT: [14]  - PdFPU3
333# CHECK-NEXT: [15]  - PdFPXBR
334# CHECK-NEXT: [16.0] - PdLoad
335# CHECK-NEXT: [16.1] - PdLoad
336# CHECK-NEXT: [17]  - PdMul
337# CHECK-NEXT: [18]  - PdStore
338
339# CHECK:      Resource pressure per iteration:
340# 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]
341# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -     1.00    -     1.00   1.00    -      -      -      -      -
342
343# CHECK:      Resource pressure by instruction:
344# 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:
345# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vaddps	%ymm0, %ymm1, %ymm2
346# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     1.00   1.00    -      -      -      -      -     vandnps	%ymm2, %ymm2, %ymm3
347
348# CHECK:      Timeline view:
349# CHECK-NEXT: Index     0123456789
350
351# CHECK:      [0,0]     DeeeeeER .   vaddps	%ymm0, %ymm1, %ymm2
352# CHECK-NEXT: [0,1]     DeeE---R .   vandnps	%ymm2, %ymm2, %ymm3
353# CHECK-NEXT: [1,0]     .DeeeeeER.   vaddps	%ymm0, %ymm1, %ymm2
354# CHECK-NEXT: [1,1]     .DeeE---R.   vandnps	%ymm2, %ymm2, %ymm3
355# CHECK-NEXT: [2,0]     . DeeeeeER   vaddps	%ymm0, %ymm1, %ymm2
356# CHECK-NEXT: [2,1]     . DeeE---R   vandnps	%ymm2, %ymm2, %ymm3
357
358# CHECK:      Average Wait times (based on the timeline view):
359# CHECK-NEXT: [0]: Executions
360# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
361# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
362# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
363
364# CHECK:            [0]    [1]    [2]    [3]
365# CHECK-NEXT: 0.     3     1.0    1.0    0.0       vaddps	%ymm0, %ymm1, %ymm2
366# CHECK-NEXT: 1.     3     1.0    1.0    3.0       vandnps	%ymm2, %ymm2, %ymm3
367# CHECK-NEXT:        3     1.0    1.0    1.5       <total>
368
369# CHECK:      [4] Code Region - ZERO-IDIOM-5
370
371# CHECK:      Iterations:        100
372# CHECK-NEXT: Instructions:      200
373# CHECK-NEXT: Total Cycles:      903
374# CHECK-NEXT: Total uOps:        1000
375
376# CHECK:      Dispatch Width:    4
377# CHECK-NEXT: uOps Per Cycle:    1.11
378# CHECK-NEXT: IPC:               0.22
379# CHECK-NEXT: Block RThroughput: 4.0
380
381# CHECK:      Instruction Info:
382# CHECK-NEXT: [1]: #uOps
383# CHECK-NEXT: [2]: Latency
384# CHECK-NEXT: [3]: RThroughput
385# CHECK-NEXT: [4]: MayLoad
386# CHECK-NEXT: [5]: MayStore
387# CHECK-NEXT: [6]: HasSideEffects (U)
388
389# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
390# CHECK-NEXT:  8      4     3.00                        vperm2f128	$136, %ymm0, %ymm0, %ymm1
391# CHECK-NEXT:  2      5     1.00                        vaddps	%ymm1, %ymm1, %ymm0
392
393# CHECK:      Resources:
394# CHECK-NEXT: [0.0] - PdAGLU01
395# CHECK-NEXT: [0.1] - PdAGLU01
396# CHECK-NEXT: [1]   - PdBranch
397# CHECK-NEXT: [2]   - PdCount
398# CHECK-NEXT: [3]   - PdDiv
399# CHECK-NEXT: [4]   - PdEX0
400# CHECK-NEXT: [5]   - PdEX1
401# CHECK-NEXT: [6]   - PdFPCVT
402# CHECK-NEXT: [7.0] - PdFPFMA
403# CHECK-NEXT: [7.1] - PdFPFMA
404# CHECK-NEXT: [8.0] - PdFPMAL
405# CHECK-NEXT: [8.1] - PdFPMAL
406# CHECK-NEXT: [9]   - PdFPMMA
407# CHECK-NEXT: [10]  - PdFPSTO
408# CHECK-NEXT: [11]  - PdFPU0
409# CHECK-NEXT: [12]  - PdFPU1
410# CHECK-NEXT: [13]  - PdFPU2
411# CHECK-NEXT: [14]  - PdFPU3
412# CHECK-NEXT: [15]  - PdFPXBR
413# CHECK-NEXT: [16.0] - PdLoad
414# CHECK-NEXT: [16.1] - PdLoad
415# CHECK-NEXT: [17]  - PdMul
416# CHECK-NEXT: [18]  - PdStore
417
418# CHECK:      Resource pressure per iteration:
419# 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]
420# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   6.00    -      -      -      -     1.00   1.00    -      -      -      -      -      -      -
421
422# CHECK:      Resource pressure by instruction:
423# 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:
424# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -      -      -      -     1.00    -      -      -      -      -      -      -     vperm2f128	$136, %ymm0, %ymm0, %ymm1
425# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -     1.00    -      -      -      -      -      -      -      -     vaddps	%ymm1, %ymm1, %ymm0
426
427# CHECK:      Timeline view:
428# CHECK-NEXT:                     0123456789
429# CHECK-NEXT: Index     0123456789          0123456789
430
431# CHECK:      [0,0]     DeeeeER   .    .    .    .   .   vperm2f128	$136, %ymm0, %ymm0, %ymm1
432# CHECK-NEXT: [0,1]     . D==eeeeeER   .    .    .   .   vaddps	%ymm1, %ymm1, %ymm0
433# CHECK-NEXT: [1,0]     .  D======eeeeER    .    .   .   vperm2f128	$136, %ymm0, %ymm0, %ymm1
434# CHECK-NEXT: [1,1]     .    D========eeeeeER    .   .   vaddps	%ymm1, %ymm1, %ymm0
435# CHECK-NEXT: [2,0]     .    .D============eeeeER.   .   vperm2f128	$136, %ymm0, %ymm0, %ymm1
436# CHECK-NEXT: [2,1]     .    .  D==============eeeeeER   vaddps	%ymm1, %ymm1, %ymm0
437
438# CHECK:      Average Wait times (based on the timeline view):
439# CHECK-NEXT: [0]: Executions
440# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
441# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
442# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
443
444# CHECK:            [0]    [1]    [2]    [3]
445# CHECK-NEXT: 0.     3     7.0    0.3    0.0       vperm2f128	$136, %ymm0, %ymm0, %ymm1
446# CHECK-NEXT: 1.     3     9.0    0.0    0.0       vaddps	%ymm1, %ymm1, %ymm0
447# CHECK-NEXT:        3     8.0    0.2    0.0       <total>
448