• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline < %s | FileCheck %s
3
4# LLVM-MCA-BEGIN
5imul %rax, %rax
6cmpxchgq %rcx, (%rdx)
7# LLVM-MCA-END
8
9# LLVM-MCA-BEGIN
10imul %rcx, %rcx
11cmpxchgq %rcx, (%rdx)
12# LLVM-MCA-END
13
14# LLVM-MCA-BEGIN
15imul %rax, %rax
16lock cmpxchgq %rcx, (%rdx)
17# LLVM-MCA-END
18
19# LLVM-MCA-BEGIN
20imul %rcx, %rcx
21lock cmpxchgq %rcx, (%rdx)
22# LLVM-MCA-END
23
24# LLVM-MCA-BEGIN
25imul %eax, %eax
26imul %edx, %edx
27cmpxchg8b (%rsp)
28# LLVM-MCA-END
29
30# LLVM-MCA-BEGIN
31imul %eax, %eax
32imul %edx, %edx
33cmpxchg16b (%rsp)
34# LLVM-MCA-END
35
36# LLVM-MCA-BEGIN
37imul %ebx, %ebx
38imul %ecx, %ecx
39lock cmpxchg8b (%rsp)
40# LLVM-MCA-END
41
42# LLVM-MCA-BEGIN
43imul %ebx, %ebx
44imul %ecx, %ecx
45lock cmpxchg16b (%rsp)
46# LLVM-MCA-END
47
48# CHECK:      [0] Code Region
49
50# CHECK:      Iterations:        1
51# CHECK-NEXT: Instructions:      2
52# CHECK-NEXT: Total Cycles:      17
53# CHECK-NEXT: Total uOps:        7
54
55# CHECK:      Dispatch Width:    2
56# CHECK-NEXT: uOps Per Cycle:    0.41
57# CHECK-NEXT: IPC:               0.12
58# CHECK-NEXT: Block RThroughput: 4.0
59
60# CHECK:      Instruction Info:
61# CHECK-NEXT: [1]: #uOps
62# CHECK-NEXT: [2]: Latency
63# CHECK-NEXT: [3]: RThroughput
64# CHECK-NEXT: [4]: MayLoad
65# CHECK-NEXT: [5]: MayStore
66# CHECK-NEXT: [6]: HasSideEffects (U)
67
68# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
69# CHECK-NEXT:  1      6     4.00                        imulq	%rax, %rax
70# CHECK-NEXT:  6      11    1.50    *      *            cmpxchgq	%rcx, (%rdx)
71
72# CHECK:      Resources:
73# CHECK-NEXT: [0]   - JALU0
74# CHECK-NEXT: [1]   - JALU1
75# CHECK-NEXT: [2]   - JDiv
76# CHECK-NEXT: [3]   - JFPA
77# CHECK-NEXT: [4]   - JFPM
78# CHECK-NEXT: [5]   - JFPU0
79# CHECK-NEXT: [6]   - JFPU1
80# CHECK-NEXT: [7]   - JLAGU
81# CHECK-NEXT: [8]   - JMul
82# CHECK-NEXT: [9]   - JSAGU
83# CHECK-NEXT: [10]  - JSTC
84# CHECK-NEXT: [11]  - JVALU0
85# CHECK-NEXT: [12]  - JVALU1
86# CHECK-NEXT: [13]  - JVIMUL
87
88# CHECK:      Resource pressure per iteration:
89# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
90# CHECK-NEXT: 3.00   1.00    -      -      -      -      -     1.00   4.00   1.00    -      -      -      -
91
92# CHECK:      Resource pressure by instruction:
93# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
94# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     4.00    -      -      -      -      -     imulq	%rax, %rax
95# CHECK-NEXT: 3.00    -      -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgq	%rcx, (%rdx)
96
97# CHECK:      Timeline view:
98# CHECK-NEXT:                     0123456
99# CHECK-NEXT: Index     0123456789
100
101# CHECK:      [0,0]     DeeeeeeER .    ..   imulq	%rax, %rax
102# CHECK-NEXT: [0,1]     .D==eeeeeeeeeeeER   cmpxchgq	%rcx, (%rdx)
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.     1     1.0    1.0    0.0       imulq	%rax, %rax
112# CHECK-NEXT: 1.     1     3.0    0.0    0.0       cmpxchgq	%rcx, (%rdx)
113# CHECK-NEXT:        1     2.0    0.5    0.0       <total>
114
115# CHECK:      [1] Code Region
116
117# CHECK:      Iterations:        1
118# CHECK-NEXT: Instructions:      2
119# CHECK-NEXT: Total Cycles:      17
120# CHECK-NEXT: Total uOps:        7
121
122# CHECK:      Dispatch Width:    2
123# CHECK-NEXT: uOps Per Cycle:    0.41
124# CHECK-NEXT: IPC:               0.12
125# CHECK-NEXT: Block RThroughput: 4.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      6     4.00                        imulq	%rcx, %rcx
137# CHECK-NEXT:  6      11    1.50    *      *            cmpxchgq	%rcx, (%rdx)
138
139# CHECK:      Resources:
140# CHECK-NEXT: [0]   - JALU0
141# CHECK-NEXT: [1]   - JALU1
142# CHECK-NEXT: [2]   - JDiv
143# CHECK-NEXT: [3]   - JFPA
144# CHECK-NEXT: [4]   - JFPM
145# CHECK-NEXT: [5]   - JFPU0
146# CHECK-NEXT: [6]   - JFPU1
147# CHECK-NEXT: [7]   - JLAGU
148# CHECK-NEXT: [8]   - JMul
149# CHECK-NEXT: [9]   - JSAGU
150# CHECK-NEXT: [10]  - JSTC
151# CHECK-NEXT: [11]  - JVALU0
152# CHECK-NEXT: [12]  - JVALU1
153# CHECK-NEXT: [13]  - JVIMUL
154
155# CHECK:      Resource pressure per iteration:
156# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
157# CHECK-NEXT: 3.00   1.00    -      -      -      -      -     1.00   4.00   1.00    -      -      -      -
158
159# CHECK:      Resource pressure by instruction:
160# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
161# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     4.00    -      -      -      -      -     imulq	%rcx, %rcx
162# CHECK-NEXT: 3.00    -      -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgq	%rcx, (%rdx)
163
164# CHECK:      Timeline view:
165# CHECK-NEXT:                     0123456
166# CHECK-NEXT: Index     0123456789
167
168# CHECK:      [0,0]     DeeeeeeER .    ..   imulq	%rcx, %rcx
169# CHECK-NEXT: [0,1]     .D==eeeeeeeeeeeER   cmpxchgq	%rcx, (%rdx)
170
171# CHECK:      Average Wait times (based on the timeline view):
172# CHECK-NEXT: [0]: Executions
173# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
174# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
175# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
176
177# CHECK:            [0]    [1]    [2]    [3]
178# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imulq	%rcx, %rcx
179# CHECK-NEXT: 1.     1     3.0    0.0    0.0       cmpxchgq	%rcx, (%rdx)
180# CHECK-NEXT:        1     2.0    0.5    0.0       <total>
181
182# CHECK:      [2] Code Region
183
184# CHECK:      Iterations:        1
185# CHECK-NEXT: Instructions:      2
186# CHECK-NEXT: Total Cycles:      23
187# CHECK-NEXT: Total uOps:        7
188
189# CHECK:      Dispatch Width:    2
190# CHECK-NEXT: uOps Per Cycle:    0.30
191# CHECK-NEXT: IPC:               0.09
192# CHECK-NEXT: Block RThroughput: 17.0
193
194# CHECK:      Instruction Info:
195# CHECK-NEXT: [1]: #uOps
196# CHECK-NEXT: [2]: Latency
197# CHECK-NEXT: [3]: RThroughput
198# CHECK-NEXT: [4]: MayLoad
199# CHECK-NEXT: [5]: MayStore
200# CHECK-NEXT: [6]: HasSideEffects (U)
201
202# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
203# CHECK-NEXT:  1      6     4.00                        imulq	%rax, %rax
204# CHECK-NEXT:  6      17    17.00   *      *            lock		cmpxchgq	%rcx, (%rdx)
205
206# CHECK:      Resources:
207# CHECK-NEXT: [0]   - JALU0
208# CHECK-NEXT: [1]   - JALU1
209# CHECK-NEXT: [2]   - JDiv
210# CHECK-NEXT: [3]   - JFPA
211# CHECK-NEXT: [4]   - JFPM
212# CHECK-NEXT: [5]   - JFPU0
213# CHECK-NEXT: [6]   - JFPU1
214# CHECK-NEXT: [7]   - JLAGU
215# CHECK-NEXT: [8]   - JMul
216# CHECK-NEXT: [9]   - JSAGU
217# CHECK-NEXT: [10]  - JSTC
218# CHECK-NEXT: [11]  - JVALU0
219# CHECK-NEXT: [12]  - JVALU1
220# CHECK-NEXT: [13]  - JVIMUL
221
222# CHECK:      Resource pressure per iteration:
223# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
224# CHECK-NEXT: 3.00   1.00    -      -      -      -      -     17.00  4.00   17.00   -      -      -      -
225
226# CHECK:      Resource pressure by instruction:
227# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
228# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     4.00    -      -      -      -      -     imulq	%rax, %rax
229# CHECK-NEXT: 3.00    -      -      -      -      -      -     17.00   -     17.00   -      -      -      -     lock		cmpxchgq	%rcx, (%rdx)
230
231# CHECK:      Timeline view:
232# CHECK-NEXT:                     0123456789
233# CHECK-NEXT: Index     0123456789          012
234
235# CHECK:      [0,0]     DeeeeeeER .    .    . .   imulq	%rax, %rax
236# CHECK-NEXT: [0,1]     .D==eeeeeeeeeeeeeeeeeER   lock		cmpxchgq	%rcx, (%rdx)
237
238# CHECK:      Average Wait times (based on the timeline view):
239# CHECK-NEXT: [0]: Executions
240# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
241# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
242# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
243
244# CHECK:            [0]    [1]    [2]    [3]
245# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imulq	%rax, %rax
246# CHECK-NEXT: 1.     1     3.0    0.0    0.0       lock		cmpxchgq	%rcx, (%rdx)
247# CHECK-NEXT:        1     2.0    0.5    0.0       <total>
248
249# CHECK:      [3] Code Region
250
251# CHECK:      Iterations:        1
252# CHECK-NEXT: Instructions:      2
253# CHECK-NEXT: Total Cycles:      23
254# CHECK-NEXT: Total uOps:        7
255
256# CHECK:      Dispatch Width:    2
257# CHECK-NEXT: uOps Per Cycle:    0.30
258# CHECK-NEXT: IPC:               0.09
259# CHECK-NEXT: Block RThroughput: 17.0
260
261# CHECK:      Instruction Info:
262# CHECK-NEXT: [1]: #uOps
263# CHECK-NEXT: [2]: Latency
264# CHECK-NEXT: [3]: RThroughput
265# CHECK-NEXT: [4]: MayLoad
266# CHECK-NEXT: [5]: MayStore
267# CHECK-NEXT: [6]: HasSideEffects (U)
268
269# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
270# CHECK-NEXT:  1      6     4.00                        imulq	%rcx, %rcx
271# CHECK-NEXT:  6      17    17.00   *      *            lock		cmpxchgq	%rcx, (%rdx)
272
273# CHECK:      Resources:
274# CHECK-NEXT: [0]   - JALU0
275# CHECK-NEXT: [1]   - JALU1
276# CHECK-NEXT: [2]   - JDiv
277# CHECK-NEXT: [3]   - JFPA
278# CHECK-NEXT: [4]   - JFPM
279# CHECK-NEXT: [5]   - JFPU0
280# CHECK-NEXT: [6]   - JFPU1
281# CHECK-NEXT: [7]   - JLAGU
282# CHECK-NEXT: [8]   - JMul
283# CHECK-NEXT: [9]   - JSAGU
284# CHECK-NEXT: [10]  - JSTC
285# CHECK-NEXT: [11]  - JVALU0
286# CHECK-NEXT: [12]  - JVALU1
287# CHECK-NEXT: [13]  - JVIMUL
288
289# CHECK:      Resource pressure per iteration:
290# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
291# CHECK-NEXT: 3.00   1.00    -      -      -      -      -     17.00  4.00   17.00   -      -      -      -
292
293# CHECK:      Resource pressure by instruction:
294# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
295# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     4.00    -      -      -      -      -     imulq	%rcx, %rcx
296# CHECK-NEXT: 3.00    -      -      -      -      -      -     17.00   -     17.00   -      -      -      -     lock		cmpxchgq	%rcx, (%rdx)
297
298# CHECK:      Timeline view:
299# CHECK-NEXT:                     0123456789
300# CHECK-NEXT: Index     0123456789          012
301
302# CHECK:      [0,0]     DeeeeeeER .    .    . .   imulq	%rcx, %rcx
303# CHECK-NEXT: [0,1]     .D==eeeeeeeeeeeeeeeeeER   lock		cmpxchgq	%rcx, (%rdx)
304
305# CHECK:      Average Wait times (based on the timeline view):
306# CHECK-NEXT: [0]: Executions
307# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
308# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
309# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
310
311# CHECK:            [0]    [1]    [2]    [3]
312# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imulq	%rcx, %rcx
313# CHECK-NEXT: 1.     1     3.0    0.0    0.0       lock		cmpxchgq	%rcx, (%rdx)
314# CHECK-NEXT:        1     2.0    0.5    0.0       <total>
315
316# CHECK:      [4] Code Region
317
318# CHECK:      Iterations:        1
319# CHECK-NEXT: Instructions:      3
320# CHECK-NEXT: Total Cycles:      15
321# CHECK-NEXT: Total uOps:        20
322
323# CHECK:      Dispatch Width:    2
324# CHECK-NEXT: uOps Per Cycle:    1.33
325# CHECK-NEXT: IPC:               0.20
326# CHECK-NEXT: Block RThroughput: 10.0
327
328# CHECK:      Instruction Info:
329# CHECK-NEXT: [1]: #uOps
330# CHECK-NEXT: [2]: Latency
331# CHECK-NEXT: [3]: RThroughput
332# CHECK-NEXT: [4]: MayLoad
333# CHECK-NEXT: [5]: MayStore
334# CHECK-NEXT: [6]: HasSideEffects (U)
335
336# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
337# CHECK-NEXT:  1      3     1.00                        imull	%eax, %eax
338# CHECK-NEXT:  1      3     1.00                        imull	%edx, %edx
339# CHECK-NEXT:  18     11    1.50    *      *            cmpxchg8b	(%rsp)
340
341# CHECK:      Resources:
342# CHECK-NEXT: [0]   - JALU0
343# CHECK-NEXT: [1]   - JALU1
344# CHECK-NEXT: [2]   - JDiv
345# CHECK-NEXT: [3]   - JFPA
346# CHECK-NEXT: [4]   - JFPM
347# CHECK-NEXT: [5]   - JFPU0
348# CHECK-NEXT: [6]   - JFPU1
349# CHECK-NEXT: [7]   - JLAGU
350# CHECK-NEXT: [8]   - JMul
351# CHECK-NEXT: [9]   - JSAGU
352# CHECK-NEXT: [10]  - JSTC
353# CHECK-NEXT: [11]  - JVALU0
354# CHECK-NEXT: [12]  - JVALU1
355# CHECK-NEXT: [13]  - JVIMUL
356
357# CHECK:      Resource pressure per iteration:
358# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
359# CHECK-NEXT: 3.00   2.00    -      -      -      -      -     1.00   2.00   1.00    -      -      -      -
360
361# CHECK:      Resource pressure by instruction:
362# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
363# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%eax, %eax
364# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%edx, %edx
365# CHECK-NEXT: 3.00    -      -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchg8b	(%rsp)
366
367# CHECK:      Timeline view:
368# CHECK-NEXT:                     01234
369# CHECK-NEXT: Index     0123456789
370
371# CHECK:      [0,0]     DeeeER    .   .   imull	%eax, %eax
372# CHECK-NEXT: [0,1]     D=eeeER   .   .   imull	%edx, %edx
373# CHECK-NEXT: [0,2]     .DeeeeeeeeeeeER   cmpxchg8b	(%rsp)
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     1.0    1.0    0.0       imull	%eax, %eax
383# CHECK-NEXT: 1.     1     2.0    2.0    0.0       imull	%edx, %edx
384# CHECK-NEXT: 2.     1     1.0    0.0    0.0       cmpxchg8b	(%rsp)
385# CHECK-NEXT:        1     1.3    1.0    0.0       <total>
386
387# CHECK:      [5] Code Region
388
389# CHECK:      Iterations:        1
390# CHECK-NEXT: Instructions:      3
391# CHECK-NEXT: Total Cycles:      36
392# CHECK-NEXT: Total uOps:        30
393
394# CHECK:      Dispatch Width:    2
395# CHECK-NEXT: uOps Per Cycle:    0.83
396# CHECK-NEXT: IPC:               0.08
397# CHECK-NEXT: Block RThroughput: 15.0
398
399# CHECK:      Instruction Info:
400# CHECK-NEXT: [1]: #uOps
401# CHECK-NEXT: [2]: Latency
402# CHECK-NEXT: [3]: RThroughput
403# CHECK-NEXT: [4]: MayLoad
404# CHECK-NEXT: [5]: MayStore
405# CHECK-NEXT: [6]: HasSideEffects (U)
406
407# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
408# CHECK-NEXT:  1      3     1.00                        imull	%eax, %eax
409# CHECK-NEXT:  1      3     1.00                        imull	%edx, %edx
410# CHECK-NEXT:  28     32    3.00    *      *            cmpxchg16b	(%rsp)
411
412# CHECK:      Resources:
413# CHECK-NEXT: [0]   - JALU0
414# CHECK-NEXT: [1]   - JALU1
415# CHECK-NEXT: [2]   - JDiv
416# CHECK-NEXT: [3]   - JFPA
417# CHECK-NEXT: [4]   - JFPM
418# CHECK-NEXT: [5]   - JFPU0
419# CHECK-NEXT: [6]   - JFPU1
420# CHECK-NEXT: [7]   - JLAGU
421# CHECK-NEXT: [8]   - JMul
422# CHECK-NEXT: [9]   - JSAGU
423# CHECK-NEXT: [10]  - JSTC
424# CHECK-NEXT: [11]  - JVALU0
425# CHECK-NEXT: [12]  - JVALU1
426# CHECK-NEXT: [13]  - JVIMUL
427
428# CHECK:      Resource pressure per iteration:
429# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
430# CHECK-NEXT: 6.00   2.00    -      -      -      -      -     1.00   2.00   1.00    -      -      -      -
431
432# CHECK:      Resource pressure by instruction:
433# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
434# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%eax, %eax
435# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%edx, %edx
436# CHECK-NEXT: 6.00    -      -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchg16b	(%rsp)
437
438# CHECK:      Timeline view:
439# CHECK-NEXT:                     0123456789          012345
440# CHECK-NEXT: Index     0123456789          0123456789
441
442# CHECK:      [0,0]     DeeeER    .    .    .    .    .    .   imull	%eax, %eax
443# CHECK-NEXT: [0,1]     D=eeeER   .    .    .    .    .    .   imull	%edx, %edx
444# CHECK-NEXT: [0,2]     .DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER   cmpxchg16b	(%rsp)
445
446# CHECK:      Average Wait times (based on the timeline view):
447# CHECK-NEXT: [0]: Executions
448# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
449# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
450# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
451
452# CHECK:            [0]    [1]    [2]    [3]
453# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imull	%eax, %eax
454# CHECK-NEXT: 1.     1     2.0    2.0    0.0       imull	%edx, %edx
455# CHECK-NEXT: 2.     1     1.0    0.0    0.0       cmpxchg16b	(%rsp)
456# CHECK-NEXT:        1     1.3    1.0    0.0       <total>
457
458# CHECK:      [6] Code Region
459
460# CHECK:      Iterations:        1
461# CHECK-NEXT: Instructions:      3
462# CHECK-NEXT: Total Cycles:      23
463# CHECK-NEXT: Total uOps:        20
464
465# CHECK:      Dispatch Width:    2
466# CHECK-NEXT: uOps Per Cycle:    0.87
467# CHECK-NEXT: IPC:               0.13
468# CHECK-NEXT: Block RThroughput: 19.0
469
470# CHECK:      Instruction Info:
471# CHECK-NEXT: [1]: #uOps
472# CHECK-NEXT: [2]: Latency
473# CHECK-NEXT: [3]: RThroughput
474# CHECK-NEXT: [4]: MayLoad
475# CHECK-NEXT: [5]: MayStore
476# CHECK-NEXT: [6]: HasSideEffects (U)
477
478# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
479# CHECK-NEXT:  1      3     1.00                        imull	%ebx, %ebx
480# CHECK-NEXT:  1      3     1.00                        imull	%ecx, %ecx
481# CHECK-NEXT:  18     19    19.00   *      *            lock		cmpxchg8b	(%rsp)
482
483# CHECK:      Resources:
484# CHECK-NEXT: [0]   - JALU0
485# CHECK-NEXT: [1]   - JALU1
486# CHECK-NEXT: [2]   - JDiv
487# CHECK-NEXT: [3]   - JFPA
488# CHECK-NEXT: [4]   - JFPM
489# CHECK-NEXT: [5]   - JFPU0
490# CHECK-NEXT: [6]   - JFPU1
491# CHECK-NEXT: [7]   - JLAGU
492# CHECK-NEXT: [8]   - JMul
493# CHECK-NEXT: [9]   - JSAGU
494# CHECK-NEXT: [10]  - JSTC
495# CHECK-NEXT: [11]  - JVALU0
496# CHECK-NEXT: [12]  - JVALU1
497# CHECK-NEXT: [13]  - JVIMUL
498
499# CHECK:      Resource pressure per iteration:
500# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
501# CHECK-NEXT: 3.00   2.00    -      -      -      -      -     19.00  2.00   19.00   -      -      -      -
502
503# CHECK:      Resource pressure by instruction:
504# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
505# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%ebx, %ebx
506# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%ecx, %ecx
507# CHECK-NEXT: 3.00    -      -      -      -      -      -     19.00   -     19.00   -      -      -      -     lock		cmpxchg8b	(%rsp)
508
509# CHECK:      Timeline view:
510# CHECK-NEXT:                     0123456789
511# CHECK-NEXT: Index     0123456789          012
512
513# CHECK:      [0,0]     DeeeER    .    .    . .   imull	%ebx, %ebx
514# CHECK-NEXT: [0,1]     D=eeeER   .    .    . .   imull	%ecx, %ecx
515# CHECK-NEXT: [0,2]     .DeeeeeeeeeeeeeeeeeeeER   lock		cmpxchg8b	(%rsp)
516
517# CHECK:      Average Wait times (based on the timeline view):
518# CHECK-NEXT: [0]: Executions
519# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
520# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
521# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
522
523# CHECK:            [0]    [1]    [2]    [3]
524# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imull	%ebx, %ebx
525# CHECK-NEXT: 1.     1     2.0    2.0    0.0       imull	%ecx, %ecx
526# CHECK-NEXT: 2.     1     1.0    0.0    0.0       lock		cmpxchg8b	(%rsp)
527# CHECK-NEXT:        1     1.3    1.0    0.0       <total>
528
529# CHECK:      [7] Code Region
530
531# CHECK:      Iterations:        1
532# CHECK-NEXT: Instructions:      3
533# CHECK-NEXT: Total Cycles:      42
534# CHECK-NEXT: Total uOps:        30
535
536# CHECK:      Dispatch Width:    2
537# CHECK-NEXT: uOps Per Cycle:    0.71
538# CHECK-NEXT: IPC:               0.07
539# CHECK-NEXT: Block RThroughput: 38.0
540
541# CHECK:      Instruction Info:
542# CHECK-NEXT: [1]: #uOps
543# CHECK-NEXT: [2]: Latency
544# CHECK-NEXT: [3]: RThroughput
545# CHECK-NEXT: [4]: MayLoad
546# CHECK-NEXT: [5]: MayStore
547# CHECK-NEXT: [6]: HasSideEffects (U)
548
549# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
550# CHECK-NEXT:  1      3     1.00                        imull	%ebx, %ebx
551# CHECK-NEXT:  1      3     1.00                        imull	%ecx, %ecx
552# CHECK-NEXT:  28     38    38.00   *      *            lock		cmpxchg16b	(%rsp)
553
554# CHECK:      Resources:
555# CHECK-NEXT: [0]   - JALU0
556# CHECK-NEXT: [1]   - JALU1
557# CHECK-NEXT: [2]   - JDiv
558# CHECK-NEXT: [3]   - JFPA
559# CHECK-NEXT: [4]   - JFPM
560# CHECK-NEXT: [5]   - JFPU0
561# CHECK-NEXT: [6]   - JFPU1
562# CHECK-NEXT: [7]   - JLAGU
563# CHECK-NEXT: [8]   - JMul
564# CHECK-NEXT: [9]   - JSAGU
565# CHECK-NEXT: [10]  - JSTC
566# CHECK-NEXT: [11]  - JVALU0
567# CHECK-NEXT: [12]  - JVALU1
568# CHECK-NEXT: [13]  - JVIMUL
569
570# CHECK:      Resource pressure per iteration:
571# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
572# CHECK-NEXT: 6.00   2.00    -      -      -      -      -     38.00  2.00   38.00   -      -      -      -
573
574# CHECK:      Resource pressure by instruction:
575# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
576# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%ebx, %ebx
577# CHECK-NEXT:  -     1.00    -      -      -      -      -      -     1.00    -      -      -      -      -     imull	%ecx, %ecx
578# CHECK-NEXT: 6.00    -      -      -      -      -      -     38.00   -     38.00   -      -      -      -     lock		cmpxchg16b	(%rsp)
579
580# CHECK:      Timeline view:
581# CHECK-NEXT:                     0123456789          0123456789
582# CHECK-NEXT: Index     0123456789          0123456789          01
583
584# CHECK:      [0,0]     DeeeER    .    .    .    .    .    .    ..   imull	%ebx, %ebx
585# CHECK-NEXT: [0,1]     D=eeeER   .    .    .    .    .    .    ..   imull	%ecx, %ecx
586# CHECK-NEXT: [0,2]     .DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER   lock		cmpxchg16b	(%rsp)
587
588# CHECK:      Average Wait times (based on the timeline view):
589# CHECK-NEXT: [0]: Executions
590# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
591# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
592# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
593
594# CHECK:            [0]    [1]    [2]    [3]
595# CHECK-NEXT: 0.     1     1.0    1.0    0.0       imull	%ebx, %ebx
596# CHECK-NEXT: 1.     1     2.0    2.0    0.0       imull	%ecx, %ecx
597# CHECK-NEXT: 2.     1     1.0    0.0    0.0       lock		cmpxchg16b	(%rsp)
598# CHECK-NEXT:        1     1.3    1.0    0.0       <total>
599