[InstCombine] Signed saturation patterns
[llvm-core.git] / test / tools / llvm-mca / X86 / BdVer2 / int-to-fpu-forwarding-2.s
blob2983a9f507e904e949b2f9128b7236166a80d227
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
4 # LLVM-MCA-BEGIN
5 vcvtsi2ss %ecx, %xmm0, %xmm0
6 # LLVM-MCA-END
8 # LLVM-MCA-BEGIN
9 vcvtsi2sd %ecx, %xmm0, %xmm0
10 # LLVM-MCA-END
12 # LLVM-MCA-BEGIN
13 cvtsi2ss %ecx, %xmm0
14 # LLVM-MCA-END
16 # LLVM-MCA-BEGIN
17 cvtsi2sd %ecx, %xmm0
18 # LLVM-MCA-END
20 # LLVM-MCA-BEGIN
21 movd %ecx, %xmm0
22 # LLVM-MCA-END
24 # LLVM-MCA-BEGIN
25 movq %rcx, %xmm0
26 # LLVM-MCA-END
28 # CHECK: [0] Code Region
30 # CHECK: Iterations: 500
31 # CHECK-NEXT: Instructions: 500
32 # CHECK-NEXT: Total Cycles: 2003
33 # CHECK-NEXT: Total uOps: 1000
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
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)
48 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
49 # CHECK-NEXT: 2 14 1.00 vcvtsi2ss %ecx, %xmm0, %xmm0
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
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 - - - - - - - -
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
84 # CHECK: [1] Code Region
86 # CHECK: Iterations: 500
87 # CHECK-NEXT: Instructions: 500
88 # CHECK-NEXT: Total Cycles: 2003
89 # CHECK-NEXT: Total uOps: 1000
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
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)
104 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
105 # CHECK-NEXT: 2 14 1.00 vcvtsi2sd %ecx, %xmm0, %xmm0
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
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 - - - - - - - -
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
140 # CHECK: [2] Code Region
142 # CHECK: Iterations: 500
143 # CHECK-NEXT: Instructions: 500
144 # CHECK-NEXT: Total Cycles: 2003
145 # CHECK-NEXT: Total uOps: 1000
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
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)
160 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
161 # CHECK-NEXT: 2 14 1.00 cvtsi2ss %ecx, %xmm0
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
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 - - - - - - - -
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
196 # CHECK: [3] Code Region
198 # CHECK: Iterations: 500
199 # CHECK-NEXT: Instructions: 500
200 # CHECK-NEXT: Total Cycles: 2003
201 # CHECK-NEXT: Total uOps: 1000
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
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)
216 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
217 # CHECK-NEXT: 2 14 1.00 cvtsi2sd %ecx, %xmm0
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
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 - - - - - - - -
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
252 # CHECK: [4] Code Region
254 # CHECK: Iterations: 500
255 # CHECK-NEXT: Instructions: 500
256 # CHECK-NEXT: Total Cycles: 512
257 # CHECK-NEXT: Total uOps: 1000
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
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)
272 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
273 # CHECK-NEXT: 2 11 1.00 movd %ecx, %xmm0
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
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 - - - - - - -
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
308 # CHECK: [5] Code Region
310 # CHECK: Iterations: 500
311 # CHECK-NEXT: Instructions: 500
312 # CHECK-NEXT: Total Cycles: 512
313 # CHECK-NEXT: Total uOps: 1000
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
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)
328 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
329 # CHECK-NEXT: 2 11 1.00 movq %rcx, %xmm0
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
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 - - - - - - -
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