xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-2.s (revision 680c43b73a3b7c7aecb8af7cf0da3d05565dd131)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=500 < %s | FileCheck %s
3
4# LLVM-MCA-BEGIN
5cvtsi2ss %ecx, %xmm0
6# LLVM-MCA-END
7
8# LLVM-MCA-BEGIN
9cvtsi2sd %ecx, %xmm0
10# LLVM-MCA-END
11
12# LLVM-MCA-BEGIN
13movd %ecx, %xmm0
14# LLVM-MCA-END
15
16# LLVM-MCA-BEGIN
17movq %rcx, %xmm0
18# LLVM-MCA-END
19
20# CHECK:      [0] Code Region
21
22# CHECK:      Iterations:        500
23# CHECK-NEXT: Instructions:      500
24# CHECK-NEXT: Total Cycles:      2503
25# CHECK-NEXT: Total uOps:        1500
26
27# CHECK:      Dispatch Width:    4
28# CHECK-NEXT: uOps Per Cycle:    0.60
29# CHECK-NEXT: IPC:               0.20
30# CHECK-NEXT: Block RThroughput: 2.0
31
32# CHECK:      Instruction Info:
33# CHECK-NEXT: [1]: #uOps
34# CHECK-NEXT: [2]: Latency
35# CHECK-NEXT: [3]: RThroughput
36# CHECK-NEXT: [4]: MayLoad
37# CHECK-NEXT: [5]: MayStore
38# CHECK-NEXT: [6]: HasSideEffects (U)
39
40# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
41# CHECK-NEXT:  3      5     2.00                        cvtsi2ss	%ecx, %xmm0
42
43# CHECK:      Resources:
44# CHECK-NEXT: [0]   - SBDivider
45# CHECK-NEXT: [1]   - SBFPDivider
46# CHECK-NEXT: [2]   - SBPort0
47# CHECK-NEXT: [3]   - SBPort1
48# CHECK-NEXT: [4]   - SBPort4
49# CHECK-NEXT: [5]   - SBPort5
50# CHECK-NEXT: [6.0] - SBPort23
51# CHECK-NEXT: [6.1] - SBPort23
52
53# CHECK:      Resource pressure per iteration:
54# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
55# CHECK-NEXT:  -      -      -     1.00    -     2.00    -      -
56
57# CHECK:      Resource pressure by instruction:
58# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
59# CHECK-NEXT:  -      -      -     1.00    -     2.00    -      -     cvtsi2ss	%ecx, %xmm0
60
61# CHECK:      [1] Code Region
62
63# CHECK:      Iterations:        500
64# CHECK-NEXT: Instructions:      500
65# CHECK-NEXT: Total Cycles:      2003
66# CHECK-NEXT: Total uOps:        1000
67
68# CHECK:      Dispatch Width:    4
69# CHECK-NEXT: uOps Per Cycle:    0.50
70# CHECK-NEXT: IPC:               0.25
71# CHECK-NEXT: Block RThroughput: 1.0
72
73# CHECK:      Instruction Info:
74# CHECK-NEXT: [1]: #uOps
75# CHECK-NEXT: [2]: Latency
76# CHECK-NEXT: [3]: RThroughput
77# CHECK-NEXT: [4]: MayLoad
78# CHECK-NEXT: [5]: MayStore
79# CHECK-NEXT: [6]: HasSideEffects (U)
80
81# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
82# CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%ecx, %xmm0
83
84# CHECK:      Resources:
85# CHECK-NEXT: [0]   - SBDivider
86# CHECK-NEXT: [1]   - SBFPDivider
87# CHECK-NEXT: [2]   - SBPort0
88# CHECK-NEXT: [3]   - SBPort1
89# CHECK-NEXT: [4]   - SBPort4
90# CHECK-NEXT: [5]   - SBPort5
91# CHECK-NEXT: [6.0] - SBPort23
92# CHECK-NEXT: [6.1] - SBPort23
93
94# CHECK:      Resource pressure per iteration:
95# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
96# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -
97
98# CHECK:      Resource pressure by instruction:
99# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
100# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtsi2sd	%ecx, %xmm0
101
102# CHECK:      [2] Code Region
103
104# CHECK:      Iterations:        500
105# CHECK-NEXT: Instructions:      500
106# CHECK-NEXT: Total Cycles:      503
107# CHECK-NEXT: Total uOps:        500
108
109# CHECK:      Dispatch Width:    4
110# CHECK-NEXT: uOps Per Cycle:    0.99
111# CHECK-NEXT: IPC:               0.99
112# CHECK-NEXT: Block RThroughput: 1.0
113
114# CHECK:      Instruction Info:
115# CHECK-NEXT: [1]: #uOps
116# CHECK-NEXT: [2]: Latency
117# CHECK-NEXT: [3]: RThroughput
118# CHECK-NEXT: [4]: MayLoad
119# CHECK-NEXT: [5]: MayStore
120# CHECK-NEXT: [6]: HasSideEffects (U)
121
122# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
123# CHECK-NEXT:  1      1     1.00                        movd	%ecx, %xmm0
124
125# CHECK:      Resources:
126# CHECK-NEXT: [0]   - SBDivider
127# CHECK-NEXT: [1]   - SBFPDivider
128# CHECK-NEXT: [2]   - SBPort0
129# CHECK-NEXT: [3]   - SBPort1
130# CHECK-NEXT: [4]   - SBPort4
131# CHECK-NEXT: [5]   - SBPort5
132# CHECK-NEXT: [6.0] - SBPort23
133# CHECK-NEXT: [6.1] - SBPort23
134
135# CHECK:      Resource pressure per iteration:
136# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
137# CHECK-NEXT:  -      -      -      -      -     1.00    -      -
138
139# CHECK:      Resource pressure by instruction:
140# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
141# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movd	%ecx, %xmm0
142
143# CHECK:      [3] Code Region
144
145# CHECK:      Iterations:        500
146# CHECK-NEXT: Instructions:      500
147# CHECK-NEXT: Total Cycles:      503
148# CHECK-NEXT: Total uOps:        500
149
150# CHECK:      Dispatch Width:    4
151# CHECK-NEXT: uOps Per Cycle:    0.99
152# CHECK-NEXT: IPC:               0.99
153# CHECK-NEXT: Block RThroughput: 1.0
154
155# CHECK:      Instruction Info:
156# CHECK-NEXT: [1]: #uOps
157# CHECK-NEXT: [2]: Latency
158# CHECK-NEXT: [3]: RThroughput
159# CHECK-NEXT: [4]: MayLoad
160# CHECK-NEXT: [5]: MayStore
161# CHECK-NEXT: [6]: HasSideEffects (U)
162
163# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
164# CHECK-NEXT:  1      1     1.00                        movq	%rcx, %xmm0
165
166# CHECK:      Resources:
167# CHECK-NEXT: [0]   - SBDivider
168# CHECK-NEXT: [1]   - SBFPDivider
169# CHECK-NEXT: [2]   - SBPort0
170# CHECK-NEXT: [3]   - SBPort1
171# CHECK-NEXT: [4]   - SBPort4
172# CHECK-NEXT: [5]   - SBPort5
173# CHECK-NEXT: [6.0] - SBPort23
174# CHECK-NEXT: [6.1] - SBPort23
175
176# CHECK:      Resource pressure per iteration:
177# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
178# CHECK-NEXT:  -      -      -      -      -     1.00    -      -
179
180# CHECK:      Resource pressure by instruction:
181# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
182# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movq	%rcx, %xmm0
183