xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s (revision 9db0e72570f73e4e8aaf870201f2c1bc738baee3)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=500 < %s | FileCheck %s
3
4# LLVM-MCA-BEGIN
5vcvtsi2ss %ecx, %xmm0, %xmm0
6# LLVM-MCA-END
7
8# LLVM-MCA-BEGIN
9vcvtsi2sd %ecx, %xmm0, %xmm0
10# LLVM-MCA-END
11
12# LLVM-MCA-BEGIN
13cvtsi2ss %ecx, %xmm0
14# LLVM-MCA-END
15
16# LLVM-MCA-BEGIN
17cvtsi2sd %ecx, %xmm0
18# LLVM-MCA-END
19
20# LLVM-MCA-BEGIN
21movd %ecx, %xmm0
22# LLVM-MCA-END
23
24# LLVM-MCA-BEGIN
25movq %rcx, %xmm0
26# LLVM-MCA-END
27
28# CHECK:      [0] Code Region
29
30# CHECK:      Iterations:        500
31# CHECK-NEXT: Instructions:      500
32# CHECK-NEXT: Total Cycles:      2003
33# CHECK-NEXT: Total uOps:        1000
34
35# CHECK:      Dispatch Width:    4
36# CHECK-NEXT: uOps Per Cycle:    0.50
37# CHECK-NEXT: IPC:               0.25
38# CHECK-NEXT: Block RThroughput: 1.0
39
40# CHECK:      Instruction Info:
41# CHECK-NEXT: [1]: #uOps
42# CHECK-NEXT: [2]: Latency
43# CHECK-NEXT: [3]: RThroughput
44# CHECK-NEXT: [4]: MayLoad
45# CHECK-NEXT: [5]: MayStore
46# CHECK-NEXT: [6]: HasSideEffects (U)
47
48# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
49# CHECK-NEXT:  2      14    1.00                        vcvtsi2ss	%ecx, %xmm0, %xmm0
50
51# CHECK:      Resources:
52# CHECK-NEXT: [0.0] - PdAGLU01
53# CHECK-NEXT: [0.1] - PdAGLU01
54# CHECK-NEXT: [1]   - PdBranch
55# CHECK-NEXT: [2]   - PdCount
56# CHECK-NEXT: [3]   - PdDiv
57# CHECK-NEXT: [4]   - PdEX0
58# CHECK-NEXT: [5]   - PdEX1
59# CHECK-NEXT: [6]   - PdFPCVT
60# CHECK-NEXT: [7.0] - PdFPFMA
61# CHECK-NEXT: [7.1] - PdFPFMA
62# CHECK-NEXT: [8.0] - PdFPMAL
63# CHECK-NEXT: [8.1] - PdFPMAL
64# CHECK-NEXT: [9]   - PdFPMMA
65# CHECK-NEXT: [10]  - PdFPSTO
66# CHECK-NEXT: [11]  - PdFPU0
67# CHECK-NEXT: [12]  - PdFPU1
68# CHECK-NEXT: [13]  - PdFPU2
69# CHECK-NEXT: [14]  - PdFPU3
70# CHECK-NEXT: [15]  - PdFPXBR
71# CHECK-NEXT: [16.0] - PdLoad
72# CHECK-NEXT: [16.1] - PdLoad
73# CHECK-NEXT: [17]  - PdMul
74# CHECK-NEXT: [18]  - PdStore
75
76# CHECK:      Resource pressure per iteration:
77# 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]
78# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -
79
80# CHECK:      Resource pressure by instruction:
81# 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:
82# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvtsi2ss	%ecx, %xmm0, %xmm0
83
84# CHECK:      [1] Code Region
85
86# CHECK:      Iterations:        500
87# CHECK-NEXT: Instructions:      500
88# CHECK-NEXT: Total Cycles:      2003
89# CHECK-NEXT: Total uOps:        1000
90
91# CHECK:      Dispatch Width:    4
92# CHECK-NEXT: uOps Per Cycle:    0.50
93# CHECK-NEXT: IPC:               0.25
94# CHECK-NEXT: Block RThroughput: 1.0
95
96# CHECK:      Instruction Info:
97# CHECK-NEXT: [1]: #uOps
98# CHECK-NEXT: [2]: Latency
99# CHECK-NEXT: [3]: RThroughput
100# CHECK-NEXT: [4]: MayLoad
101# CHECK-NEXT: [5]: MayStore
102# CHECK-NEXT: [6]: HasSideEffects (U)
103
104# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
105# CHECK-NEXT:  2      14    1.00                        vcvtsi2sd	%ecx, %xmm0, %xmm0
106
107# CHECK:      Resources:
108# CHECK-NEXT: [0.0] - PdAGLU01
109# CHECK-NEXT: [0.1] - PdAGLU01
110# CHECK-NEXT: [1]   - PdBranch
111# CHECK-NEXT: [2]   - PdCount
112# CHECK-NEXT: [3]   - PdDiv
113# CHECK-NEXT: [4]   - PdEX0
114# CHECK-NEXT: [5]   - PdEX1
115# CHECK-NEXT: [6]   - PdFPCVT
116# CHECK-NEXT: [7.0] - PdFPFMA
117# CHECK-NEXT: [7.1] - PdFPFMA
118# CHECK-NEXT: [8.0] - PdFPMAL
119# CHECK-NEXT: [8.1] - PdFPMAL
120# CHECK-NEXT: [9]   - PdFPMMA
121# CHECK-NEXT: [10]  - PdFPSTO
122# CHECK-NEXT: [11]  - PdFPU0
123# CHECK-NEXT: [12]  - PdFPU1
124# CHECK-NEXT: [13]  - PdFPU2
125# CHECK-NEXT: [14]  - PdFPU3
126# CHECK-NEXT: [15]  - PdFPXBR
127# CHECK-NEXT: [16.0] - PdLoad
128# CHECK-NEXT: [16.1] - PdLoad
129# CHECK-NEXT: [17]  - PdMul
130# CHECK-NEXT: [18]  - PdStore
131
132# CHECK:      Resource pressure per iteration:
133# 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]
134# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -
135
136# CHECK:      Resource pressure by instruction:
137# 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:
138# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvtsi2sd	%ecx, %xmm0, %xmm0
139
140# CHECK:      [2] Code Region
141
142# CHECK:      Iterations:        500
143# CHECK-NEXT: Instructions:      500
144# CHECK-NEXT: Total Cycles:      2003
145# CHECK-NEXT: Total uOps:        1000
146
147# CHECK:      Dispatch Width:    4
148# CHECK-NEXT: uOps Per Cycle:    0.50
149# CHECK-NEXT: IPC:               0.25
150# CHECK-NEXT: Block RThroughput: 1.0
151
152# CHECK:      Instruction Info:
153# CHECK-NEXT: [1]: #uOps
154# CHECK-NEXT: [2]: Latency
155# CHECK-NEXT: [3]: RThroughput
156# CHECK-NEXT: [4]: MayLoad
157# CHECK-NEXT: [5]: MayStore
158# CHECK-NEXT: [6]: HasSideEffects (U)
159
160# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
161# CHECK-NEXT:  2      14    1.00                        cvtsi2ss	%ecx, %xmm0
162
163# CHECK:      Resources:
164# CHECK-NEXT: [0.0] - PdAGLU01
165# CHECK-NEXT: [0.1] - PdAGLU01
166# CHECK-NEXT: [1]   - PdBranch
167# CHECK-NEXT: [2]   - PdCount
168# CHECK-NEXT: [3]   - PdDiv
169# CHECK-NEXT: [4]   - PdEX0
170# CHECK-NEXT: [5]   - PdEX1
171# CHECK-NEXT: [6]   - PdFPCVT
172# CHECK-NEXT: [7.0] - PdFPFMA
173# CHECK-NEXT: [7.1] - PdFPFMA
174# CHECK-NEXT: [8.0] - PdFPMAL
175# CHECK-NEXT: [8.1] - PdFPMAL
176# CHECK-NEXT: [9]   - PdFPMMA
177# CHECK-NEXT: [10]  - PdFPSTO
178# CHECK-NEXT: [11]  - PdFPU0
179# CHECK-NEXT: [12]  - PdFPU1
180# CHECK-NEXT: [13]  - PdFPU2
181# CHECK-NEXT: [14]  - PdFPU3
182# CHECK-NEXT: [15]  - PdFPXBR
183# CHECK-NEXT: [16.0] - PdLoad
184# CHECK-NEXT: [16.1] - PdLoad
185# CHECK-NEXT: [17]  - PdMul
186# CHECK-NEXT: [18]  - PdStore
187
188# CHECK:      Resource pressure per iteration:
189# 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]
190# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -
191
192# CHECK:      Resource pressure by instruction:
193# 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:
194# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -     cvtsi2ss	%ecx, %xmm0
195
196# CHECK:      [3] Code Region
197
198# CHECK:      Iterations:        500
199# CHECK-NEXT: Instructions:      500
200# CHECK-NEXT: Total Cycles:      2003
201# CHECK-NEXT: Total uOps:        1000
202
203# CHECK:      Dispatch Width:    4
204# CHECK-NEXT: uOps Per Cycle:    0.50
205# CHECK-NEXT: IPC:               0.25
206# CHECK-NEXT: Block RThroughput: 1.0
207
208# CHECK:      Instruction Info:
209# CHECK-NEXT: [1]: #uOps
210# CHECK-NEXT: [2]: Latency
211# CHECK-NEXT: [3]: RThroughput
212# CHECK-NEXT: [4]: MayLoad
213# CHECK-NEXT: [5]: MayStore
214# CHECK-NEXT: [6]: HasSideEffects (U)
215
216# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
217# CHECK-NEXT:  2      14    1.00                        cvtsi2sd	%ecx, %xmm0
218
219# CHECK:      Resources:
220# CHECK-NEXT: [0.0] - PdAGLU01
221# CHECK-NEXT: [0.1] - PdAGLU01
222# CHECK-NEXT: [1]   - PdBranch
223# CHECK-NEXT: [2]   - PdCount
224# CHECK-NEXT: [3]   - PdDiv
225# CHECK-NEXT: [4]   - PdEX0
226# CHECK-NEXT: [5]   - PdEX1
227# CHECK-NEXT: [6]   - PdFPCVT
228# CHECK-NEXT: [7.0] - PdFPFMA
229# CHECK-NEXT: [7.1] - PdFPFMA
230# CHECK-NEXT: [8.0] - PdFPMAL
231# CHECK-NEXT: [8.1] - PdFPMAL
232# CHECK-NEXT: [9]   - PdFPMMA
233# CHECK-NEXT: [10]  - PdFPSTO
234# CHECK-NEXT: [11]  - PdFPU0
235# CHECK-NEXT: [12]  - PdFPU1
236# CHECK-NEXT: [13]  - PdFPU2
237# CHECK-NEXT: [14]  - PdFPU3
238# CHECK-NEXT: [15]  - PdFPXBR
239# CHECK-NEXT: [16.0] - PdLoad
240# CHECK-NEXT: [16.1] - PdLoad
241# CHECK-NEXT: [17]  - PdMul
242# CHECK-NEXT: [18]  - PdStore
243
244# CHECK:      Resource pressure per iteration:
245# 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]
246# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -
247
248# CHECK:      Resource pressure by instruction:
249# 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:
250# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -     cvtsi2sd	%ecx, %xmm0
251
252# CHECK:      [4] Code Region
253
254# CHECK:      Iterations:        500
255# CHECK-NEXT: Instructions:      500
256# CHECK-NEXT: Total Cycles:      512
257# CHECK-NEXT: Total uOps:        1000
258
259# CHECK:      Dispatch Width:    4
260# CHECK-NEXT: uOps Per Cycle:    1.95
261# CHECK-NEXT: IPC:               0.98
262# CHECK-NEXT: Block RThroughput: 1.0
263
264# CHECK:      Instruction Info:
265# CHECK-NEXT: [1]: #uOps
266# CHECK-NEXT: [2]: Latency
267# CHECK-NEXT: [3]: RThroughput
268# CHECK-NEXT: [4]: MayLoad
269# CHECK-NEXT: [5]: MayStore
270# CHECK-NEXT: [6]: HasSideEffects (U)
271
272# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
273# CHECK-NEXT:  2      11    1.00                        movd	%ecx, %xmm0
274
275# CHECK:      Resources:
276# CHECK-NEXT: [0.0] - PdAGLU01
277# CHECK-NEXT: [0.1] - PdAGLU01
278# CHECK-NEXT: [1]   - PdBranch
279# CHECK-NEXT: [2]   - PdCount
280# CHECK-NEXT: [3]   - PdDiv
281# CHECK-NEXT: [4]   - PdEX0
282# CHECK-NEXT: [5]   - PdEX1
283# CHECK-NEXT: [6]   - PdFPCVT
284# CHECK-NEXT: [7.0] - PdFPFMA
285# CHECK-NEXT: [7.1] - PdFPFMA
286# CHECK-NEXT: [8.0] - PdFPMAL
287# CHECK-NEXT: [8.1] - PdFPMAL
288# CHECK-NEXT: [9]   - PdFPMMA
289# CHECK-NEXT: [10]  - PdFPSTO
290# CHECK-NEXT: [11]  - PdFPU0
291# CHECK-NEXT: [12]  - PdFPU1
292# CHECK-NEXT: [13]  - PdFPU2
293# CHECK-NEXT: [14]  - PdFPU3
294# CHECK-NEXT: [15]  - PdFPXBR
295# CHECK-NEXT: [16.0] - PdLoad
296# CHECK-NEXT: [16.1] - PdLoad
297# CHECK-NEXT: [17]  - PdMul
298# CHECK-NEXT: [18]  - PdStore
299
300# CHECK:      Resource pressure per iteration:
301# 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]
302# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -
303
304# CHECK:      Resource pressure by instruction:
305# 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:
306# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     movd	%ecx, %xmm0
307
308# CHECK:      [5] Code Region
309
310# CHECK:      Iterations:        500
311# CHECK-NEXT: Instructions:      500
312# CHECK-NEXT: Total Cycles:      512
313# CHECK-NEXT: Total uOps:        1000
314
315# CHECK:      Dispatch Width:    4
316# CHECK-NEXT: uOps Per Cycle:    1.95
317# CHECK-NEXT: IPC:               0.98
318# CHECK-NEXT: Block RThroughput: 1.0
319
320# CHECK:      Instruction Info:
321# CHECK-NEXT: [1]: #uOps
322# CHECK-NEXT: [2]: Latency
323# CHECK-NEXT: [3]: RThroughput
324# CHECK-NEXT: [4]: MayLoad
325# CHECK-NEXT: [5]: MayStore
326# CHECK-NEXT: [6]: HasSideEffects (U)
327
328# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
329# CHECK-NEXT:  2      11    1.00                        movq	%rcx, %xmm0
330
331# CHECK:      Resources:
332# CHECK-NEXT: [0.0] - PdAGLU01
333# CHECK-NEXT: [0.1] - PdAGLU01
334# CHECK-NEXT: [1]   - PdBranch
335# CHECK-NEXT: [2]   - PdCount
336# CHECK-NEXT: [3]   - PdDiv
337# CHECK-NEXT: [4]   - PdEX0
338# CHECK-NEXT: [5]   - PdEX1
339# CHECK-NEXT: [6]   - PdFPCVT
340# CHECK-NEXT: [7.0] - PdFPFMA
341# CHECK-NEXT: [7.1] - PdFPFMA
342# CHECK-NEXT: [8.0] - PdFPMAL
343# CHECK-NEXT: [8.1] - PdFPMAL
344# CHECK-NEXT: [9]   - PdFPMMA
345# CHECK-NEXT: [10]  - PdFPSTO
346# CHECK-NEXT: [11]  - PdFPU0
347# CHECK-NEXT: [12]  - PdFPU1
348# CHECK-NEXT: [13]  - PdFPU2
349# CHECK-NEXT: [14]  - PdFPU3
350# CHECK-NEXT: [15]  - PdFPXBR
351# CHECK-NEXT: [16.0] - PdLoad
352# CHECK-NEXT: [16.1] - PdLoad
353# CHECK-NEXT: [17]  - PdMul
354# CHECK-NEXT: [18]  - PdStore
355
356# CHECK:      Resource pressure per iteration:
357# 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]
358# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -
359
360# CHECK:      Resource pressure by instruction:
361# 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:
362# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     movq	%rcx, %xmm0
363