[X86][BdVer2] Transfer delays from the integer to the floating point unit.
[lldb.git] / llvm / test / tools / llvm-mca / X86 / BdVer2 / int-to-fpu-forwarding-2.s
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
5 vcvtsi2ss %ecx, %xmm0, %xmm0
6 # LLVM-MCA-END
7
8 # LLVM-MCA-BEGIN
9 vcvtsi2sd %ecx, %xmm0, %xmm0
10 # LLVM-MCA-END
11
12 # LLVM-MCA-BEGIN
13 cvtsi2ss %ecx, %xmm0
14 # LLVM-MCA-END
15
16 # LLVM-MCA-BEGIN
17 cvtsi2sd %ecx, %xmm0
18 # LLVM-MCA-END
19
20 # LLVM-MCA-BEGIN
21 movd %ecx, %xmm0
22 # LLVM-MCA-END
23
24 # LLVM-MCA-BEGIN
25 movq %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                        vcvtsi2ssl      %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    -      -      -      -      -      -      -
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    -      -      -      -      -      -      -     vcvtsi2ssl       %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                        vcvtsi2sdl      %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    -      -      -      -      -      -      -
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    -      -      -      -      -      -      -     vcvtsi2sdl       %ecx, %xmm0, %xmm0
139
140 # CHECK:      [2] Code Region
141
142 # CHECK:      Iterations:        500
143 # CHECK-NEXT: Instructions:      500
144 # CHECK-NEXT: Total Cycles:      506
145 # CHECK-NEXT: Total uOps:        1000
146
147 # CHECK:      Dispatch Width:    4
148 # CHECK-NEXT: uOps Per Cycle:    1.98
149 # CHECK-NEXT: IPC:               0.99
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                        cvtsi2ssl       %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    -      -      -      -      -      -      -
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    -      -      -      -      -      -      -     cvtsi2ssl        %ecx, %xmm0
195
196 # CHECK:      [3] Code Region
197
198 # CHECK:      Iterations:        500
199 # CHECK-NEXT: Instructions:      500
200 # CHECK-NEXT: Total Cycles:      506
201 # CHECK-NEXT: Total uOps:        1000
202
203 # CHECK:      Dispatch Width:    4
204 # CHECK-NEXT: uOps Per Cycle:    1.98
205 # CHECK-NEXT: IPC:               0.99
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                        cvtsi2sdl       %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    -      -      -      -      -      -      -
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    -      -      -      -      -      -      -     cvtsi2sdl        %ecx, %xmm0
251
252 # CHECK:      [4] Code Region
253
254 # CHECK:      Iterations:        500
255 # CHECK-NEXT: Instructions:      500
256 # CHECK-NEXT: Total Cycles:      262
257 # CHECK-NEXT: Total uOps:        1000
258
259 # CHECK:      Dispatch Width:    4
260 # CHECK-NEXT: uOps Per Cycle:    3.82
261 # CHECK-NEXT: IPC:               1.91
262 # CHECK-NEXT: Block RThroughput: 0.5
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      10    0.50                        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:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     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:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     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:      262
313 # CHECK-NEXT: Total uOps:        1000
314
315 # CHECK:      Dispatch Width:    4
316 # CHECK-NEXT: uOps Per Cycle:    3.82
317 # CHECK-NEXT: IPC:               1.91
318 # CHECK-NEXT: Block RThroughput: 0.5
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      10    0.50                        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:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     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:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     movq     %rcx, %xmm0