xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-2.s (revision d10a200cebe540d5fdfc0d50aad05661b906f264)
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=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:    2
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      10    1.00                        vcvtsi2ss	%ecx, %xmm0, %xmm0
50
51# CHECK:      Resources:
52# CHECK-NEXT: [0]   - JALU0
53# CHECK-NEXT: [1]   - JALU1
54# CHECK-NEXT: [2]   - JDiv
55# CHECK-NEXT: [3]   - JFPA
56# CHECK-NEXT: [4]   - JFPM
57# CHECK-NEXT: [5]   - JFPU0
58# CHECK-NEXT: [6]   - JFPU1
59# CHECK-NEXT: [7]   - JLAGU
60# CHECK-NEXT: [8]   - JMul
61# CHECK-NEXT: [9]   - JSAGU
62# CHECK-NEXT: [10]  - JSTC
63# CHECK-NEXT: [11]  - JVALU0
64# CHECK-NEXT: [12]  - JVALU1
65# CHECK-NEXT: [13]  - JVIMUL
66
67# CHECK:      Resource pressure per iteration:
68# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
69# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -
70
71# CHECK:      Resource pressure by instruction:
72# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
73# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     vcvtsi2ss	%ecx, %xmm0, %xmm0
74
75# CHECK:      [1] Code Region
76
77# CHECK:      Iterations:        500
78# CHECK-NEXT: Instructions:      500
79# CHECK-NEXT: Total Cycles:      2003
80# CHECK-NEXT: Total uOps:        1000
81
82# CHECK:      Dispatch Width:    2
83# CHECK-NEXT: uOps Per Cycle:    0.50
84# CHECK-NEXT: IPC:               0.25
85# CHECK-NEXT: Block RThroughput: 1.0
86
87# CHECK:      Instruction Info:
88# CHECK-NEXT: [1]: #uOps
89# CHECK-NEXT: [2]: Latency
90# CHECK-NEXT: [3]: RThroughput
91# CHECK-NEXT: [4]: MayLoad
92# CHECK-NEXT: [5]: MayStore
93# CHECK-NEXT: [6]: HasSideEffects (U)
94
95# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
96# CHECK-NEXT:  2      10    1.00                        vcvtsi2sd	%ecx, %xmm0, %xmm0
97
98# CHECK:      Resources:
99# CHECK-NEXT: [0]   - JALU0
100# CHECK-NEXT: [1]   - JALU1
101# CHECK-NEXT: [2]   - JDiv
102# CHECK-NEXT: [3]   - JFPA
103# CHECK-NEXT: [4]   - JFPM
104# CHECK-NEXT: [5]   - JFPU0
105# CHECK-NEXT: [6]   - JFPU1
106# CHECK-NEXT: [7]   - JLAGU
107# CHECK-NEXT: [8]   - JMul
108# CHECK-NEXT: [9]   - JSAGU
109# CHECK-NEXT: [10]  - JSTC
110# CHECK-NEXT: [11]  - JVALU0
111# CHECK-NEXT: [12]  - JVALU1
112# CHECK-NEXT: [13]  - JVIMUL
113
114# CHECK:      Resource pressure per iteration:
115# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
116# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -
117
118# CHECK:      Resource pressure by instruction:
119# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
120# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     vcvtsi2sd	%ecx, %xmm0, %xmm0
121
122# CHECK:      [2] Code Region
123
124# CHECK:      Iterations:        500
125# CHECK-NEXT: Instructions:      500
126# CHECK-NEXT: Total Cycles:      2003
127# CHECK-NEXT: Total uOps:        1000
128
129# CHECK:      Dispatch Width:    2
130# CHECK-NEXT: uOps Per Cycle:    0.50
131# CHECK-NEXT: IPC:               0.25
132# CHECK-NEXT: Block RThroughput: 1.0
133
134# CHECK:      Instruction Info:
135# CHECK-NEXT: [1]: #uOps
136# CHECK-NEXT: [2]: Latency
137# CHECK-NEXT: [3]: RThroughput
138# CHECK-NEXT: [4]: MayLoad
139# CHECK-NEXT: [5]: MayStore
140# CHECK-NEXT: [6]: HasSideEffects (U)
141
142# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
143# CHECK-NEXT:  2      10    1.00                        cvtsi2ss	%ecx, %xmm0
144
145# CHECK:      Resources:
146# CHECK-NEXT: [0]   - JALU0
147# CHECK-NEXT: [1]   - JALU1
148# CHECK-NEXT: [2]   - JDiv
149# CHECK-NEXT: [3]   - JFPA
150# CHECK-NEXT: [4]   - JFPM
151# CHECK-NEXT: [5]   - JFPU0
152# CHECK-NEXT: [6]   - JFPU1
153# CHECK-NEXT: [7]   - JLAGU
154# CHECK-NEXT: [8]   - JMul
155# CHECK-NEXT: [9]   - JSAGU
156# CHECK-NEXT: [10]  - JSTC
157# CHECK-NEXT: [11]  - JVALU0
158# CHECK-NEXT: [12]  - JVALU1
159# CHECK-NEXT: [13]  - JVIMUL
160
161# CHECK:      Resource pressure per iteration:
162# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
163# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -
164
165# CHECK:      Resource pressure by instruction:
166# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
167# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     cvtsi2ss	%ecx, %xmm0
168
169# CHECK:      [3] Code Region
170
171# CHECK:      Iterations:        500
172# CHECK-NEXT: Instructions:      500
173# CHECK-NEXT: Total Cycles:      2003
174# CHECK-NEXT: Total uOps:        1000
175
176# CHECK:      Dispatch Width:    2
177# CHECK-NEXT: uOps Per Cycle:    0.50
178# CHECK-NEXT: IPC:               0.25
179# CHECK-NEXT: Block RThroughput: 1.0
180
181# CHECK:      Instruction Info:
182# CHECK-NEXT: [1]: #uOps
183# CHECK-NEXT: [2]: Latency
184# CHECK-NEXT: [3]: RThroughput
185# CHECK-NEXT: [4]: MayLoad
186# CHECK-NEXT: [5]: MayStore
187# CHECK-NEXT: [6]: HasSideEffects (U)
188
189# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
190# CHECK-NEXT:  2      10    1.00                        cvtsi2sd	%ecx, %xmm0
191
192# CHECK:      Resources:
193# CHECK-NEXT: [0]   - JALU0
194# CHECK-NEXT: [1]   - JALU1
195# CHECK-NEXT: [2]   - JDiv
196# CHECK-NEXT: [3]   - JFPA
197# CHECK-NEXT: [4]   - JFPM
198# CHECK-NEXT: [5]   - JFPU0
199# CHECK-NEXT: [6]   - JFPU1
200# CHECK-NEXT: [7]   - JLAGU
201# CHECK-NEXT: [8]   - JMul
202# CHECK-NEXT: [9]   - JSAGU
203# CHECK-NEXT: [10]  - JSTC
204# CHECK-NEXT: [11]  - JVALU0
205# CHECK-NEXT: [12]  - JVALU1
206# CHECK-NEXT: [13]  - JVIMUL
207
208# CHECK:      Resource pressure per iteration:
209# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
210# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -
211
212# CHECK:      Resource pressure by instruction:
213# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
214# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     cvtsi2sd	%ecx, %xmm0
215
216# CHECK:      [4] Code Region
217
218# CHECK:      Iterations:        500
219# CHECK-NEXT: Instructions:      500
220# CHECK-NEXT: Total Cycles:      510
221# CHECK-NEXT: Total uOps:        1000
222
223# CHECK:      Dispatch Width:    2
224# CHECK-NEXT: uOps Per Cycle:    1.96
225# CHECK-NEXT: IPC:               0.98
226# CHECK-NEXT: Block RThroughput: 1.0
227
228# CHECK:      Instruction Info:
229# CHECK-NEXT: [1]: #uOps
230# CHECK-NEXT: [2]: Latency
231# CHECK-NEXT: [3]: RThroughput
232# CHECK-NEXT: [4]: MayLoad
233# CHECK-NEXT: [5]: MayStore
234# CHECK-NEXT: [6]: HasSideEffects (U)
235
236# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
237# CHECK-NEXT:  2      8     0.50                        movd	%ecx, %xmm0
238
239# CHECK:      Resources:
240# CHECK-NEXT: [0]   - JALU0
241# CHECK-NEXT: [1]   - JALU1
242# CHECK-NEXT: [2]   - JDiv
243# CHECK-NEXT: [3]   - JFPA
244# CHECK-NEXT: [4]   - JFPM
245# CHECK-NEXT: [5]   - JFPU0
246# CHECK-NEXT: [6]   - JFPU1
247# CHECK-NEXT: [7]   - JLAGU
248# CHECK-NEXT: [8]   - JMul
249# CHECK-NEXT: [9]   - JSAGU
250# CHECK-NEXT: [10]  - JSTC
251# CHECK-NEXT: [11]  - JVALU0
252# CHECK-NEXT: [12]  - JVALU1
253# CHECK-NEXT: [13]  - JVIMUL
254
255# CHECK:      Resource pressure per iteration:
256# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
257# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -
258
259# CHECK:      Resource pressure by instruction:
260# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
261# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -     movd	%ecx, %xmm0
262
263# CHECK:      [5] Code Region
264
265# CHECK:      Iterations:        500
266# CHECK-NEXT: Instructions:      500
267# CHECK-NEXT: Total Cycles:      510
268# CHECK-NEXT: Total uOps:        1000
269
270# CHECK:      Dispatch Width:    2
271# CHECK-NEXT: uOps Per Cycle:    1.96
272# CHECK-NEXT: IPC:               0.98
273# CHECK-NEXT: Block RThroughput: 1.0
274
275# CHECK:      Instruction Info:
276# CHECK-NEXT: [1]: #uOps
277# CHECK-NEXT: [2]: Latency
278# CHECK-NEXT: [3]: RThroughput
279# CHECK-NEXT: [4]: MayLoad
280# CHECK-NEXT: [5]: MayStore
281# CHECK-NEXT: [6]: HasSideEffects (U)
282
283# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
284# CHECK-NEXT:  2      8     0.50                        movq	%rcx, %xmm0
285
286# CHECK:      Resources:
287# CHECK-NEXT: [0]   - JALU0
288# CHECK-NEXT: [1]   - JALU1
289# CHECK-NEXT: [2]   - JDiv
290# CHECK-NEXT: [3]   - JFPA
291# CHECK-NEXT: [4]   - JFPM
292# CHECK-NEXT: [5]   - JFPU0
293# CHECK-NEXT: [6]   - JFPU1
294# CHECK-NEXT: [7]   - JLAGU
295# CHECK-NEXT: [8]   - JMul
296# CHECK-NEXT: [9]   - JSAGU
297# CHECK-NEXT: [10]  - JSTC
298# CHECK-NEXT: [11]  - JVALU0
299# CHECK-NEXT: [12]  - JVALU1
300# CHECK-NEXT: [13]  - JVIMUL
301
302# CHECK:      Resource pressure per iteration:
303# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
304# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -
305
306# CHECK:      Resource pressure by instruction:
307# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
308# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -     movq	%rcx, %xmm0
309