xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Znver3/dependency-breaking-gpr.s (revision 5fd9babbfcd02bae431d5b280da59adddc2824d3)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -timeline -timeline-max-iterations=2 -iterations=1000 < %s | FileCheck %s
3
4# LLVM-MCA-BEGIN
5sbbl %eax, %eax
6mulxl %eax, %eax, %eax
7# LLVM-MCA-END
8
9# LLVM-MCA-BEGIN
10sbbq %rax, %rax
11mulxq %rax, %rax, %rax
12# LLVM-MCA-END
13
14# LLVM-MCA-BEGIN
15mulxl %eax, %eax, %eax
16cmpl %eax, %eax
17cmovael %eax, %ecx
18# LLVM-MCA-END
19
20# LLVM-MCA-BEGIN
21mulxq %rax, %rax, %rax
22cmpq %rax, %rax
23cmovaeq %rax, %rcx
24# LLVM-MCA-END
25
26# LLVM-MCA-BEGIN
27mulxl %eax, %eax, %eax
28cmpw %ax, %ax
29cmovael %eax, %ecx
30# LLVM-MCA-END
31
32# LLVM-MCA-BEGIN
33mulxl %eax, %eax, %eax
34cmpb %al, %al
35cmovael %eax, %ecx
36# LLVM-MCA-END
37
38# CHECK:      [0] Code Region
39
40# CHECK:      Iterations:        1000
41# CHECK-NEXT: Instructions:      2000
42# CHECK-NEXT: Total Cycles:      1259
43# CHECK-NEXT: Total uOps:        3000
44
45# CHECK:      Dispatch Width:    6
46# CHECK-NEXT: uOps Per Cycle:    2.38
47# CHECK-NEXT: IPC:               1.59
48# CHECK-NEXT: Block RThroughput: 1.0
49
50# CHECK:      Instruction Info:
51# CHECK-NEXT: [1]: #uOps
52# CHECK-NEXT: [2]: Latency
53# CHECK-NEXT: [3]: RThroughput
54# CHECK-NEXT: [4]: MayLoad
55# CHECK-NEXT: [5]: MayStore
56# CHECK-NEXT: [6]: HasSideEffects (U)
57
58# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
59# CHECK-NEXT:  1      1     1.00                        sbbl	%eax, %eax
60# CHECK-NEXT:  2      4     1.00                        mulxl	%eax, %eax, %eax
61
62# CHECK:      Resources:
63# CHECK-NEXT: [0]   - Zn3AGU0
64# CHECK-NEXT: [1]   - Zn3AGU1
65# CHECK-NEXT: [2]   - Zn3AGU2
66# CHECK-NEXT: [3]   - Zn3ALU0
67# CHECK-NEXT: [4]   - Zn3ALU1
68# CHECK-NEXT: [5]   - Zn3ALU2
69# CHECK-NEXT: [6]   - Zn3ALU3
70# CHECK-NEXT: [7]   - Zn3BRU1
71# CHECK-NEXT: [8]   - Zn3FP0
72# CHECK-NEXT: [9]   - Zn3FP1
73# CHECK-NEXT: [10]  - Zn3FP2
74# CHECK-NEXT: [11]  - Zn3FP3
75# CHECK-NEXT: [12.0] - Zn3FP45
76# CHECK-NEXT: [12.1] - Zn3FP45
77# CHECK-NEXT: [13]  - Zn3FPSt
78# CHECK-NEXT: [14.0] - Zn3LSU
79# CHECK-NEXT: [14.1] - Zn3LSU
80# CHECK-NEXT: [14.2] - Zn3LSU
81# CHECK-NEXT: [15.0] - Zn3Load
82# CHECK-NEXT: [15.1] - Zn3Load
83# CHECK-NEXT: [15.2] - Zn3Load
84# CHECK-NEXT: [16.0] - Zn3Store
85# CHECK-NEXT: [16.1] - Zn3Store
86
87# CHECK:      Resource pressure per iteration:
88# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
89# CHECK-NEXT:  -      -      -     1.25   1.25   1.25   1.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
90
91# CHECK:      Resource pressure by instruction:
92# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
93# CHECK-NEXT:  -      -      -     1.25   0.25   1.25   1.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	%eax, %eax
94# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxl	%eax, %eax, %eax
95
96# CHECK:      Timeline view:
97# CHECK-NEXT: Index     012345678
98
99# CHECK:      [0,0]     DeER .  .   sbbl	%eax, %eax
100# CHECK-NEXT: [0,1]     D=eeeeER.   mulxl	%eax, %eax, %eax
101# CHECK-NEXT: [1,0]     D=eE---R.   sbbl	%eax, %eax
102# CHECK-NEXT: [1,1]     D==eeeeER   mulxl	%eax, %eax, %eax
103
104# CHECK:      Average Wait times (based on the timeline view):
105# CHECK-NEXT: [0]: Executions
106# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
107# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
108# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
109
110# CHECK:            [0]    [1]    [2]    [3]
111# CHECK-NEXT: 0.     2     1.5    0.5    1.5       sbbl	%eax, %eax
112# CHECK-NEXT: 1.     2     2.5    0.0    0.0       mulxl	%eax, %eax, %eax
113# CHECK-NEXT:        2     2.0    0.3    0.8       <total>
114
115# CHECK:      [1] Code Region
116
117# CHECK:      Iterations:        1000
118# CHECK-NEXT: Instructions:      2000
119# CHECK-NEXT: Total Cycles:      1259
120# CHECK-NEXT: Total uOps:        3000
121
122# CHECK:      Dispatch Width:    6
123# CHECK-NEXT: uOps Per Cycle:    2.38
124# CHECK-NEXT: IPC:               1.59
125# CHECK-NEXT: Block RThroughput: 1.0
126
127# CHECK:      Instruction Info:
128# CHECK-NEXT: [1]: #uOps
129# CHECK-NEXT: [2]: Latency
130# CHECK-NEXT: [3]: RThroughput
131# CHECK-NEXT: [4]: MayLoad
132# CHECK-NEXT: [5]: MayStore
133# CHECK-NEXT: [6]: HasSideEffects (U)
134
135# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
136# CHECK-NEXT:  1      1     1.00                        sbbq	%rax, %rax
137# CHECK-NEXT:  2      4     1.00                        mulxq	%rax, %rax, %rax
138
139# CHECK:      Resources:
140# CHECK-NEXT: [0]   - Zn3AGU0
141# CHECK-NEXT: [1]   - Zn3AGU1
142# CHECK-NEXT: [2]   - Zn3AGU2
143# CHECK-NEXT: [3]   - Zn3ALU0
144# CHECK-NEXT: [4]   - Zn3ALU1
145# CHECK-NEXT: [5]   - Zn3ALU2
146# CHECK-NEXT: [6]   - Zn3ALU3
147# CHECK-NEXT: [7]   - Zn3BRU1
148# CHECK-NEXT: [8]   - Zn3FP0
149# CHECK-NEXT: [9]   - Zn3FP1
150# CHECK-NEXT: [10]  - Zn3FP2
151# CHECK-NEXT: [11]  - Zn3FP3
152# CHECK-NEXT: [12.0] - Zn3FP45
153# CHECK-NEXT: [12.1] - Zn3FP45
154# CHECK-NEXT: [13]  - Zn3FPSt
155# CHECK-NEXT: [14.0] - Zn3LSU
156# CHECK-NEXT: [14.1] - Zn3LSU
157# CHECK-NEXT: [14.2] - Zn3LSU
158# CHECK-NEXT: [15.0] - Zn3Load
159# CHECK-NEXT: [15.1] - Zn3Load
160# CHECK-NEXT: [15.2] - Zn3Load
161# CHECK-NEXT: [16.0] - Zn3Store
162# CHECK-NEXT: [16.1] - Zn3Store
163
164# CHECK:      Resource pressure per iteration:
165# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
166# CHECK-NEXT:  -      -      -     1.25   1.25   1.25   1.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
167
168# CHECK:      Resource pressure by instruction:
169# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
170# CHECK-NEXT:  -      -      -     1.25   0.25   1.25   1.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	%rax, %rax
171# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxq	%rax, %rax, %rax
172
173# CHECK:      Timeline view:
174# CHECK-NEXT: Index     012345678
175
176# CHECK:      [0,0]     DeER .  .   sbbq	%rax, %rax
177# CHECK-NEXT: [0,1]     D=eeeeER.   mulxq	%rax, %rax, %rax
178# CHECK-NEXT: [1,0]     D=eE---R.   sbbq	%rax, %rax
179# CHECK-NEXT: [1,1]     D==eeeeER   mulxq	%rax, %rax, %rax
180
181# CHECK:      Average Wait times (based on the timeline view):
182# CHECK-NEXT: [0]: Executions
183# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
184# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
185# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
186
187# CHECK:            [0]    [1]    [2]    [3]
188# CHECK-NEXT: 0.     2     1.5    0.5    1.5       sbbq	%rax, %rax
189# CHECK-NEXT: 1.     2     2.5    0.0    0.0       mulxq	%rax, %rax, %rax
190# CHECK-NEXT:        2     2.0    0.3    0.8       <total>
191
192# CHECK:      [2] Code Region
193
194# CHECK:      Iterations:        1000
195# CHECK-NEXT: Instructions:      3000
196# CHECK-NEXT: Total Cycles:      4004
197# CHECK-NEXT: Total uOps:        4000
198
199# CHECK:      Dispatch Width:    6
200# CHECK-NEXT: uOps Per Cycle:    1.00
201# CHECK-NEXT: IPC:               0.75
202# CHECK-NEXT: Block RThroughput: 1.0
203
204# CHECK:      Instruction Info:
205# CHECK-NEXT: [1]: #uOps
206# CHECK-NEXT: [2]: Latency
207# CHECK-NEXT: [3]: RThroughput
208# CHECK-NEXT: [4]: MayLoad
209# CHECK-NEXT: [5]: MayStore
210# CHECK-NEXT: [6]: HasSideEffects (U)
211
212# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
213# CHECK-NEXT:  2      4     1.00                        mulxl	%eax, %eax, %eax
214# CHECK-NEXT:  1      0     0.17                        cmpl	%eax, %eax
215# CHECK-NEXT:  1      1     0.50                        cmovael	%eax, %ecx
216
217# CHECK:      Resources:
218# CHECK-NEXT: [0]   - Zn3AGU0
219# CHECK-NEXT: [1]   - Zn3AGU1
220# CHECK-NEXT: [2]   - Zn3AGU2
221# CHECK-NEXT: [3]   - Zn3ALU0
222# CHECK-NEXT: [4]   - Zn3ALU1
223# CHECK-NEXT: [5]   - Zn3ALU2
224# CHECK-NEXT: [6]   - Zn3ALU3
225# CHECK-NEXT: [7]   - Zn3BRU1
226# CHECK-NEXT: [8]   - Zn3FP0
227# CHECK-NEXT: [9]   - Zn3FP1
228# CHECK-NEXT: [10]  - Zn3FP2
229# CHECK-NEXT: [11]  - Zn3FP3
230# CHECK-NEXT: [12.0] - Zn3FP45
231# CHECK-NEXT: [12.1] - Zn3FP45
232# CHECK-NEXT: [13]  - Zn3FPSt
233# CHECK-NEXT: [14.0] - Zn3LSU
234# CHECK-NEXT: [14.1] - Zn3LSU
235# CHECK-NEXT: [14.2] - Zn3LSU
236# CHECK-NEXT: [15.0] - Zn3Load
237# CHECK-NEXT: [15.1] - Zn3Load
238# CHECK-NEXT: [15.2] - Zn3Load
239# CHECK-NEXT: [16.0] - Zn3Store
240# CHECK-NEXT: [16.1] - Zn3Store
241
242# CHECK:      Resource pressure per iteration:
243# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
244# CHECK-NEXT:  -      -      -     0.50   1.00    -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
245
246# CHECK:      Resource pressure by instruction:
247# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
248# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxl	%eax, %eax, %eax
249# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpl	%eax, %eax
250# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovael	%eax, %ecx
251
252# CHECK:      Timeline view:
253# CHECK-NEXT:                     01
254# CHECK-NEXT: Index     0123456789
255
256# CHECK:      [0,0]     DeeeeER   ..   mulxl	%eax, %eax, %eax
257# CHECK-NEXT: [0,1]     D-----R   ..   cmpl	%eax, %eax
258# CHECK-NEXT: [0,2]     D====eER  ..   cmovael	%eax, %ecx
259# CHECK-NEXT: [1,0]     D====eeeeER.   mulxl	%eax, %eax, %eax
260# CHECK-NEXT: [1,1]     .D--------R.   cmpl	%eax, %eax
261# CHECK-NEXT: [1,2]     .D=======eER   cmovael	%eax, %ecx
262
263# CHECK:      Average Wait times (based on the timeline view):
264# CHECK-NEXT: [0]: Executions
265# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
266# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
267# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
268
269# CHECK:            [0]    [1]    [2]    [3]
270# CHECK-NEXT: 0.     2     3.0    0.5    0.0       mulxl	%eax, %eax, %eax
271# CHECK-NEXT: 1.     2     0.0    0.0    6.5       cmpl	%eax, %eax
272# CHECK-NEXT: 2.     2     6.5    0.0    0.0       cmovael	%eax, %ecx
273# CHECK-NEXT:        2     3.2    0.2    2.2       <total>
274
275# CHECK:      [3] Code Region
276
277# CHECK:      Iterations:        1000
278# CHECK-NEXT: Instructions:      3000
279# CHECK-NEXT: Total Cycles:      4004
280# CHECK-NEXT: Total uOps:        4000
281
282# CHECK:      Dispatch Width:    6
283# CHECK-NEXT: uOps Per Cycle:    1.00
284# CHECK-NEXT: IPC:               0.75
285# CHECK-NEXT: Block RThroughput: 1.0
286
287# CHECK:      Instruction Info:
288# CHECK-NEXT: [1]: #uOps
289# CHECK-NEXT: [2]: Latency
290# CHECK-NEXT: [3]: RThroughput
291# CHECK-NEXT: [4]: MayLoad
292# CHECK-NEXT: [5]: MayStore
293# CHECK-NEXT: [6]: HasSideEffects (U)
294
295# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
296# CHECK-NEXT:  2      4     1.00                        mulxq	%rax, %rax, %rax
297# CHECK-NEXT:  1      0     0.17                        cmpq	%rax, %rax
298# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rax, %rcx
299
300# CHECK:      Resources:
301# CHECK-NEXT: [0]   - Zn3AGU0
302# CHECK-NEXT: [1]   - Zn3AGU1
303# CHECK-NEXT: [2]   - Zn3AGU2
304# CHECK-NEXT: [3]   - Zn3ALU0
305# CHECK-NEXT: [4]   - Zn3ALU1
306# CHECK-NEXT: [5]   - Zn3ALU2
307# CHECK-NEXT: [6]   - Zn3ALU3
308# CHECK-NEXT: [7]   - Zn3BRU1
309# CHECK-NEXT: [8]   - Zn3FP0
310# CHECK-NEXT: [9]   - Zn3FP1
311# CHECK-NEXT: [10]  - Zn3FP2
312# CHECK-NEXT: [11]  - Zn3FP3
313# CHECK-NEXT: [12.0] - Zn3FP45
314# CHECK-NEXT: [12.1] - Zn3FP45
315# CHECK-NEXT: [13]  - Zn3FPSt
316# CHECK-NEXT: [14.0] - Zn3LSU
317# CHECK-NEXT: [14.1] - Zn3LSU
318# CHECK-NEXT: [14.2] - Zn3LSU
319# CHECK-NEXT: [15.0] - Zn3Load
320# CHECK-NEXT: [15.1] - Zn3Load
321# CHECK-NEXT: [15.2] - Zn3Load
322# CHECK-NEXT: [16.0] - Zn3Store
323# CHECK-NEXT: [16.1] - Zn3Store
324
325# CHECK:      Resource pressure per iteration:
326# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
327# CHECK-NEXT:  -      -      -     0.50   1.00    -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
328
329# CHECK:      Resource pressure by instruction:
330# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
331# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxq	%rax, %rax, %rax
332# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpq	%rax, %rax
333# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovaeq	%rax, %rcx
334
335# CHECK:      Timeline view:
336# CHECK-NEXT:                     01
337# CHECK-NEXT: Index     0123456789
338
339# CHECK:      [0,0]     DeeeeER   ..   mulxq	%rax, %rax, %rax
340# CHECK-NEXT: [0,1]     D-----R   ..   cmpq	%rax, %rax
341# CHECK-NEXT: [0,2]     D====eER  ..   cmovaeq	%rax, %rcx
342# CHECK-NEXT: [1,0]     D====eeeeER.   mulxq	%rax, %rax, %rax
343# CHECK-NEXT: [1,1]     .D--------R.   cmpq	%rax, %rax
344# CHECK-NEXT: [1,2]     .D=======eER   cmovaeq	%rax, %rcx
345
346# CHECK:      Average Wait times (based on the timeline view):
347# CHECK-NEXT: [0]: Executions
348# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
349# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
350# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
351
352# CHECK:            [0]    [1]    [2]    [3]
353# CHECK-NEXT: 0.     2     3.0    0.5    0.0       mulxq	%rax, %rax, %rax
354# CHECK-NEXT: 1.     2     0.0    0.0    6.5       cmpq	%rax, %rax
355# CHECK-NEXT: 2.     2     6.5    0.0    0.0       cmovaeq	%rax, %rcx
356# CHECK-NEXT:        2     3.2    0.2    2.2       <total>
357
358# CHECK:      [4] Code Region
359
360# CHECK:      Iterations:        1000
361# CHECK-NEXT: Instructions:      3000
362# CHECK-NEXT: Total Cycles:      4004
363# CHECK-NEXT: Total uOps:        4000
364
365# CHECK:      Dispatch Width:    6
366# CHECK-NEXT: uOps Per Cycle:    1.00
367# CHECK-NEXT: IPC:               0.75
368# CHECK-NEXT: Block RThroughput: 1.0
369
370# CHECK:      Instruction Info:
371# CHECK-NEXT: [1]: #uOps
372# CHECK-NEXT: [2]: Latency
373# CHECK-NEXT: [3]: RThroughput
374# CHECK-NEXT: [4]: MayLoad
375# CHECK-NEXT: [5]: MayStore
376# CHECK-NEXT: [6]: HasSideEffects (U)
377
378# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
379# CHECK-NEXT:  2      4     1.00                        mulxl	%eax, %eax, %eax
380# CHECK-NEXT:  1      0     0.17                        cmpw	%ax, %ax
381# CHECK-NEXT:  1      1     0.50                        cmovael	%eax, %ecx
382
383# CHECK:      Resources:
384# CHECK-NEXT: [0]   - Zn3AGU0
385# CHECK-NEXT: [1]   - Zn3AGU1
386# CHECK-NEXT: [2]   - Zn3AGU2
387# CHECK-NEXT: [3]   - Zn3ALU0
388# CHECK-NEXT: [4]   - Zn3ALU1
389# CHECK-NEXT: [5]   - Zn3ALU2
390# CHECK-NEXT: [6]   - Zn3ALU3
391# CHECK-NEXT: [7]   - Zn3BRU1
392# CHECK-NEXT: [8]   - Zn3FP0
393# CHECK-NEXT: [9]   - Zn3FP1
394# CHECK-NEXT: [10]  - Zn3FP2
395# CHECK-NEXT: [11]  - Zn3FP3
396# CHECK-NEXT: [12.0] - Zn3FP45
397# CHECK-NEXT: [12.1] - Zn3FP45
398# CHECK-NEXT: [13]  - Zn3FPSt
399# CHECK-NEXT: [14.0] - Zn3LSU
400# CHECK-NEXT: [14.1] - Zn3LSU
401# CHECK-NEXT: [14.2] - Zn3LSU
402# CHECK-NEXT: [15.0] - Zn3Load
403# CHECK-NEXT: [15.1] - Zn3Load
404# CHECK-NEXT: [15.2] - Zn3Load
405# CHECK-NEXT: [16.0] - Zn3Store
406# CHECK-NEXT: [16.1] - Zn3Store
407
408# CHECK:      Resource pressure per iteration:
409# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
410# CHECK-NEXT:  -      -      -     0.50   1.00    -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
411
412# CHECK:      Resource pressure by instruction:
413# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
414# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxl	%eax, %eax, %eax
415# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpw	%ax, %ax
416# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovael	%eax, %ecx
417
418# CHECK:      Timeline view:
419# CHECK-NEXT:                     01
420# CHECK-NEXT: Index     0123456789
421
422# CHECK:      [0,0]     DeeeeER   ..   mulxl	%eax, %eax, %eax
423# CHECK-NEXT: [0,1]     D-----R   ..   cmpw	%ax, %ax
424# CHECK-NEXT: [0,2]     D====eER  ..   cmovael	%eax, %ecx
425# CHECK-NEXT: [1,0]     D====eeeeER.   mulxl	%eax, %eax, %eax
426# CHECK-NEXT: [1,1]     .D--------R.   cmpw	%ax, %ax
427# CHECK-NEXT: [1,2]     .D=======eER   cmovael	%eax, %ecx
428
429# CHECK:      Average Wait times (based on the timeline view):
430# CHECK-NEXT: [0]: Executions
431# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
432# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
433# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
434
435# CHECK:            [0]    [1]    [2]    [3]
436# CHECK-NEXT: 0.     2     3.0    0.5    0.0       mulxl	%eax, %eax, %eax
437# CHECK-NEXT: 1.     2     0.0    0.0    6.5       cmpw	%ax, %ax
438# CHECK-NEXT: 2.     2     6.5    0.0    0.0       cmovael	%eax, %ecx
439# CHECK-NEXT:        2     3.2    0.2    2.2       <total>
440
441# CHECK:      [5] Code Region
442
443# CHECK:      Iterations:        1000
444# CHECK-NEXT: Instructions:      3000
445# CHECK-NEXT: Total Cycles:      4004
446# CHECK-NEXT: Total uOps:        4000
447
448# CHECK:      Dispatch Width:    6
449# CHECK-NEXT: uOps Per Cycle:    1.00
450# CHECK-NEXT: IPC:               0.75
451# CHECK-NEXT: Block RThroughput: 1.0
452
453# CHECK:      Instruction Info:
454# CHECK-NEXT: [1]: #uOps
455# CHECK-NEXT: [2]: Latency
456# CHECK-NEXT: [3]: RThroughput
457# CHECK-NEXT: [4]: MayLoad
458# CHECK-NEXT: [5]: MayStore
459# CHECK-NEXT: [6]: HasSideEffects (U)
460
461# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
462# CHECK-NEXT:  2      4     1.00                        mulxl	%eax, %eax, %eax
463# CHECK-NEXT:  1      0     0.17                        cmpb	%al, %al
464# CHECK-NEXT:  1      1     0.50                        cmovael	%eax, %ecx
465
466# CHECK:      Resources:
467# CHECK-NEXT: [0]   - Zn3AGU0
468# CHECK-NEXT: [1]   - Zn3AGU1
469# CHECK-NEXT: [2]   - Zn3AGU2
470# CHECK-NEXT: [3]   - Zn3ALU0
471# CHECK-NEXT: [4]   - Zn3ALU1
472# CHECK-NEXT: [5]   - Zn3ALU2
473# CHECK-NEXT: [6]   - Zn3ALU3
474# CHECK-NEXT: [7]   - Zn3BRU1
475# CHECK-NEXT: [8]   - Zn3FP0
476# CHECK-NEXT: [9]   - Zn3FP1
477# CHECK-NEXT: [10]  - Zn3FP2
478# CHECK-NEXT: [11]  - Zn3FP3
479# CHECK-NEXT: [12.0] - Zn3FP45
480# CHECK-NEXT: [12.1] - Zn3FP45
481# CHECK-NEXT: [13]  - Zn3FPSt
482# CHECK-NEXT: [14.0] - Zn3LSU
483# CHECK-NEXT: [14.1] - Zn3LSU
484# CHECK-NEXT: [14.2] - Zn3LSU
485# CHECK-NEXT: [15.0] - Zn3Load
486# CHECK-NEXT: [15.1] - Zn3Load
487# CHECK-NEXT: [15.2] - Zn3Load
488# CHECK-NEXT: [16.0] - Zn3Store
489# CHECK-NEXT: [16.1] - Zn3Store
490
491# CHECK:      Resource pressure per iteration:
492# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
493# CHECK-NEXT:  -      -      -     0.50   1.00    -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
494
495# CHECK:      Resource pressure by instruction:
496# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
497# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxl	%eax, %eax, %eax
498# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpb	%al, %al
499# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovael	%eax, %ecx
500
501# CHECK:      Timeline view:
502# CHECK-NEXT:                     01
503# CHECK-NEXT: Index     0123456789
504
505# CHECK:      [0,0]     DeeeeER   ..   mulxl	%eax, %eax, %eax
506# CHECK-NEXT: [0,1]     D-----R   ..   cmpb	%al, %al
507# CHECK-NEXT: [0,2]     D====eER  ..   cmovael	%eax, %ecx
508# CHECK-NEXT: [1,0]     D====eeeeER.   mulxl	%eax, %eax, %eax
509# CHECK-NEXT: [1,1]     .D--------R.   cmpb	%al, %al
510# CHECK-NEXT: [1,2]     .D=======eER   cmovael	%eax, %ecx
511
512# CHECK:      Average Wait times (based on the timeline view):
513# CHECK-NEXT: [0]: Executions
514# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
515# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
516# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
517
518# CHECK:            [0]    [1]    [2]    [3]
519# CHECK-NEXT: 0.     2     3.0    0.5    0.0       mulxl	%eax, %eax, %eax
520# CHECK-NEXT: 1.     2     0.0    0.0    6.5       cmpb	%al, %al
521# CHECK-NEXT: 2.     2     6.5    0.0    0.0       cmovael	%eax, %ecx
522# CHECK-NEXT:        2     3.2    0.2    2.2       <total>
523