xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.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
5vpinsrb $0, %eax, %xmm0, %xmm0
6vpinsrb $1, %eax, %xmm0, %xmm0
7# LLVM-MCA-END
8
9# LLVM-MCA-BEGIN
10vpinsrw $0, %eax, %xmm0, %xmm0
11vpinsrw $1, %eax, %xmm0, %xmm0
12# LLVM-MCA-END
13
14# LLVM-MCA-BEGIN
15vpinsrd $0, %eax, %xmm0, %xmm0
16vpinsrd $1, %eax, %xmm0, %xmm0
17# LLVM-MCA-END
18
19# LLVM-MCA-BEGIN
20vpinsrq $0, %rax, %xmm0, %xmm0
21vpinsrq $1, %rax, %xmm0, %xmm0
22# LLVM-MCA-END
23
24# CHECK:      [0] Code Region
25
26# CHECK:      Iterations:        500
27# CHECK-NEXT: Instructions:      1000
28# CHECK-NEXT: Total Cycles:      2003
29# CHECK-NEXT: Total uOps:        2000
30
31# CHECK:      Dispatch Width:    4
32# CHECK-NEXT: uOps Per Cycle:    1.00
33# CHECK-NEXT: IPC:               0.50
34# CHECK-NEXT: Block RThroughput: 3.0
35
36# CHECK:      Instruction Info:
37# CHECK-NEXT: [1]: #uOps
38# CHECK-NEXT: [2]: Latency
39# CHECK-NEXT: [3]: RThroughput
40# CHECK-NEXT: [4]: MayLoad
41# CHECK-NEXT: [5]: MayStore
42# CHECK-NEXT: [6]: HasSideEffects (U)
43
44# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
45# CHECK-NEXT:  2      12    1.50                        vpinsrb	$0, %eax, %xmm0, %xmm0
46# CHECK-NEXT:  2      12    1.50                        vpinsrb	$1, %eax, %xmm0, %xmm0
47
48# CHECK:      Resources:
49# CHECK-NEXT: [0.0] - PdAGLU01
50# CHECK-NEXT: [0.1] - PdAGLU01
51# CHECK-NEXT: [1]   - PdBranch
52# CHECK-NEXT: [2]   - PdCount
53# CHECK-NEXT: [3]   - PdDiv
54# CHECK-NEXT: [4]   - PdEX0
55# CHECK-NEXT: [5]   - PdEX1
56# CHECK-NEXT: [6]   - PdFPCVT
57# CHECK-NEXT: [7.0] - PdFPFMA
58# CHECK-NEXT: [7.1] - PdFPFMA
59# CHECK-NEXT: [8.0] - PdFPMAL
60# CHECK-NEXT: [8.1] - PdFPMAL
61# CHECK-NEXT: [9]   - PdFPMMA
62# CHECK-NEXT: [10]  - PdFPSTO
63# CHECK-NEXT: [11]  - PdFPU0
64# CHECK-NEXT: [12]  - PdFPU1
65# CHECK-NEXT: [13]  - PdFPU2
66# CHECK-NEXT: [14]  - PdFPU3
67# CHECK-NEXT: [15]  - PdFPXBR
68# CHECK-NEXT: [16.0] - PdLoad
69# CHECK-NEXT: [16.1] - PdLoad
70# CHECK-NEXT: [17]  - PdMul
71# CHECK-NEXT: [18]  - PdStore
72
73# CHECK:      Resource pressure per iteration:
74# 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]
75# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -     1.00   1.00    -      -      -      -      -      -      -
76
77# CHECK:      Resource pressure by instruction:
78# 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:
79# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -     vpinsrb	$0, %eax, %xmm0, %xmm0
80# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -      -     vpinsrb	$1, %eax, %xmm0, %xmm0
81
82# CHECK:      [1] Code Region
83
84# CHECK:      Iterations:        500
85# CHECK-NEXT: Instructions:      1000
86# CHECK-NEXT: Total Cycles:      2003
87# CHECK-NEXT: Total uOps:        2000
88
89# CHECK:      Dispatch Width:    4
90# CHECK-NEXT: uOps Per Cycle:    1.00
91# CHECK-NEXT: IPC:               0.50
92# CHECK-NEXT: Block RThroughput: 3.0
93
94# CHECK:      Instruction Info:
95# CHECK-NEXT: [1]: #uOps
96# CHECK-NEXT: [2]: Latency
97# CHECK-NEXT: [3]: RThroughput
98# CHECK-NEXT: [4]: MayLoad
99# CHECK-NEXT: [5]: MayStore
100# CHECK-NEXT: [6]: HasSideEffects (U)
101
102# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
103# CHECK-NEXT:  2      12    1.50                        vpinsrw	$0, %eax, %xmm0, %xmm0
104# CHECK-NEXT:  2      12    1.50                        vpinsrw	$1, %eax, %xmm0, %xmm0
105
106# CHECK:      Resources:
107# CHECK-NEXT: [0.0] - PdAGLU01
108# CHECK-NEXT: [0.1] - PdAGLU01
109# CHECK-NEXT: [1]   - PdBranch
110# CHECK-NEXT: [2]   - PdCount
111# CHECK-NEXT: [3]   - PdDiv
112# CHECK-NEXT: [4]   - PdEX0
113# CHECK-NEXT: [5]   - PdEX1
114# CHECK-NEXT: [6]   - PdFPCVT
115# CHECK-NEXT: [7.0] - PdFPFMA
116# CHECK-NEXT: [7.1] - PdFPFMA
117# CHECK-NEXT: [8.0] - PdFPMAL
118# CHECK-NEXT: [8.1] - PdFPMAL
119# CHECK-NEXT: [9]   - PdFPMMA
120# CHECK-NEXT: [10]  - PdFPSTO
121# CHECK-NEXT: [11]  - PdFPU0
122# CHECK-NEXT: [12]  - PdFPU1
123# CHECK-NEXT: [13]  - PdFPU2
124# CHECK-NEXT: [14]  - PdFPU3
125# CHECK-NEXT: [15]  - PdFPXBR
126# CHECK-NEXT: [16.0] - PdLoad
127# CHECK-NEXT: [16.1] - PdLoad
128# CHECK-NEXT: [17]  - PdMul
129# CHECK-NEXT: [18]  - PdStore
130
131# CHECK:      Resource pressure per iteration:
132# 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]
133# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -     1.00   1.00    -      -      -      -      -      -      -
134
135# CHECK:      Resource pressure by instruction:
136# 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:
137# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -     vpinsrw	$0, %eax, %xmm0, %xmm0
138# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -      -     vpinsrw	$1, %eax, %xmm0, %xmm0
139
140# CHECK:      [2] Code Region
141
142# CHECK:      Iterations:        500
143# CHECK-NEXT: Instructions:      1000
144# CHECK-NEXT: Total Cycles:      2003
145# CHECK-NEXT: Total uOps:        2000
146
147# CHECK:      Dispatch Width:    4
148# CHECK-NEXT: uOps Per Cycle:    1.00
149# CHECK-NEXT: IPC:               0.50
150# CHECK-NEXT: Block RThroughput: 3.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      12    1.50                        vpinsrd	$0, %eax, %xmm0, %xmm0
162# CHECK-NEXT:  2      12    1.50                        vpinsrd	$1, %eax, %xmm0, %xmm0
163
164# CHECK:      Resources:
165# CHECK-NEXT: [0.0] - PdAGLU01
166# CHECK-NEXT: [0.1] - PdAGLU01
167# CHECK-NEXT: [1]   - PdBranch
168# CHECK-NEXT: [2]   - PdCount
169# CHECK-NEXT: [3]   - PdDiv
170# CHECK-NEXT: [4]   - PdEX0
171# CHECK-NEXT: [5]   - PdEX1
172# CHECK-NEXT: [6]   - PdFPCVT
173# CHECK-NEXT: [7.0] - PdFPFMA
174# CHECK-NEXT: [7.1] - PdFPFMA
175# CHECK-NEXT: [8.0] - PdFPMAL
176# CHECK-NEXT: [8.1] - PdFPMAL
177# CHECK-NEXT: [9]   - PdFPMMA
178# CHECK-NEXT: [10]  - PdFPSTO
179# CHECK-NEXT: [11]  - PdFPU0
180# CHECK-NEXT: [12]  - PdFPU1
181# CHECK-NEXT: [13]  - PdFPU2
182# CHECK-NEXT: [14]  - PdFPU3
183# CHECK-NEXT: [15]  - PdFPXBR
184# CHECK-NEXT: [16.0] - PdLoad
185# CHECK-NEXT: [16.1] - PdLoad
186# CHECK-NEXT: [17]  - PdMul
187# CHECK-NEXT: [18]  - PdStore
188
189# CHECK:      Resource pressure per iteration:
190# 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]
191# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -     1.00   1.00    -      -      -      -      -      -      -
192
193# CHECK:      Resource pressure by instruction:
194# 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:
195# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -     vpinsrd	$0, %eax, %xmm0, %xmm0
196# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -      -     vpinsrd	$1, %eax, %xmm0, %xmm0
197
198# CHECK:      [3] Code Region
199
200# CHECK:      Iterations:        500
201# CHECK-NEXT: Instructions:      1000
202# CHECK-NEXT: Total Cycles:      2003
203# CHECK-NEXT: Total uOps:        2000
204
205# CHECK:      Dispatch Width:    4
206# CHECK-NEXT: uOps Per Cycle:    1.00
207# CHECK-NEXT: IPC:               0.50
208# CHECK-NEXT: Block RThroughput: 3.0
209
210# CHECK:      Instruction Info:
211# CHECK-NEXT: [1]: #uOps
212# CHECK-NEXT: [2]: Latency
213# CHECK-NEXT: [3]: RThroughput
214# CHECK-NEXT: [4]: MayLoad
215# CHECK-NEXT: [5]: MayStore
216# CHECK-NEXT: [6]: HasSideEffects (U)
217
218# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
219# CHECK-NEXT:  2      12    1.50                        vpinsrq	$0, %rax, %xmm0, %xmm0
220# CHECK-NEXT:  2      12    1.50                        vpinsrq	$1, %rax, %xmm0, %xmm0
221
222# CHECK:      Resources:
223# CHECK-NEXT: [0.0] - PdAGLU01
224# CHECK-NEXT: [0.1] - PdAGLU01
225# CHECK-NEXT: [1]   - PdBranch
226# CHECK-NEXT: [2]   - PdCount
227# CHECK-NEXT: [3]   - PdDiv
228# CHECK-NEXT: [4]   - PdEX0
229# CHECK-NEXT: [5]   - PdEX1
230# CHECK-NEXT: [6]   - PdFPCVT
231# CHECK-NEXT: [7.0] - PdFPFMA
232# CHECK-NEXT: [7.1] - PdFPFMA
233# CHECK-NEXT: [8.0] - PdFPMAL
234# CHECK-NEXT: [8.1] - PdFPMAL
235# CHECK-NEXT: [9]   - PdFPMMA
236# CHECK-NEXT: [10]  - PdFPSTO
237# CHECK-NEXT: [11]  - PdFPU0
238# CHECK-NEXT: [12]  - PdFPU1
239# CHECK-NEXT: [13]  - PdFPU2
240# CHECK-NEXT: [14]  - PdFPU3
241# CHECK-NEXT: [15]  - PdFPXBR
242# CHECK-NEXT: [16.0] - PdLoad
243# CHECK-NEXT: [16.1] - PdLoad
244# CHECK-NEXT: [17]  - PdMul
245# CHECK-NEXT: [18]  - PdStore
246
247# CHECK:      Resource pressure per iteration:
248# 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]
249# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -     1.00   1.00    -      -      -      -      -      -      -
250
251# CHECK:      Resource pressure by instruction:
252# 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:
253# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -     vpinsrq	$0, %rax, %xmm0, %xmm0
254# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00    -      -      -     1.00    -      -      -      -      -      -      -      -     vpinsrq	$1, %rax, %xmm0, %xmm0
255