xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-1.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
5pinsrb $0, %eax, %xmm0
6pinsrb $1, %eax, %xmm0
7# LLVM-MCA-END
8
9# LLVM-MCA-BEGIN
10pinsrw $0, %eax, %xmm0
11pinsrw $1, %eax, %xmm0
12# LLVM-MCA-END
13
14# LLVM-MCA-BEGIN
15pinsrd $0, %eax, %xmm0
16pinsrd $1, %eax, %xmm0
17# LLVM-MCA-END
18
19# LLVM-MCA-BEGIN
20pinsrq $0, %rax, %xmm0
21pinsrq $1, %rax, %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: 2.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      2     1.00                        pinsrb	$0, %eax, %xmm0
46# CHECK-NEXT:  2      2     1.00                        pinsrb	$1, %eax, %xmm0
47
48# CHECK:      Resources:
49# CHECK-NEXT: [0]   - SBDivider
50# CHECK-NEXT: [1]   - SBFPDivider
51# CHECK-NEXT: [2]   - SBPort0
52# CHECK-NEXT: [3]   - SBPort1
53# CHECK-NEXT: [4]   - SBPort4
54# CHECK-NEXT: [5]   - SBPort5
55# CHECK-NEXT: [6.0] - SBPort23
56# CHECK-NEXT: [6.1] - SBPort23
57
58# CHECK:      Resource pressure per iteration:
59# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
60# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -
61
62# CHECK:      Resource pressure by instruction:
63# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
64# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrb	$0, %eax, %xmm0
65# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrb	$1, %eax, %xmm0
66
67# CHECK:      [1] Code Region
68
69# CHECK:      Iterations:        500
70# CHECK-NEXT: Instructions:      1000
71# CHECK-NEXT: Total Cycles:      2003
72# CHECK-NEXT: Total uOps:        2000
73
74# CHECK:      Dispatch Width:    4
75# CHECK-NEXT: uOps Per Cycle:    1.00
76# CHECK-NEXT: IPC:               0.50
77# CHECK-NEXT: Block RThroughput: 2.0
78
79# CHECK:      Instruction Info:
80# CHECK-NEXT: [1]: #uOps
81# CHECK-NEXT: [2]: Latency
82# CHECK-NEXT: [3]: RThroughput
83# CHECK-NEXT: [4]: MayLoad
84# CHECK-NEXT: [5]: MayStore
85# CHECK-NEXT: [6]: HasSideEffects (U)
86
87# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
88# CHECK-NEXT:  2      2     1.00                        pinsrw	$0, %eax, %xmm0
89# CHECK-NEXT:  2      2     1.00                        pinsrw	$1, %eax, %xmm0
90
91# CHECK:      Resources:
92# CHECK-NEXT: [0]   - SBDivider
93# CHECK-NEXT: [1]   - SBFPDivider
94# CHECK-NEXT: [2]   - SBPort0
95# CHECK-NEXT: [3]   - SBPort1
96# CHECK-NEXT: [4]   - SBPort4
97# CHECK-NEXT: [5]   - SBPort5
98# CHECK-NEXT: [6.0] - SBPort23
99# CHECK-NEXT: [6.1] - SBPort23
100
101# CHECK:      Resource pressure per iteration:
102# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
103# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -
104
105# CHECK:      Resource pressure by instruction:
106# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
107# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrw	$0, %eax, %xmm0
108# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrw	$1, %eax, %xmm0
109
110# CHECK:      [2] Code Region
111
112# CHECK:      Iterations:        500
113# CHECK-NEXT: Instructions:      1000
114# CHECK-NEXT: Total Cycles:      2003
115# CHECK-NEXT: Total uOps:        2000
116
117# CHECK:      Dispatch Width:    4
118# CHECK-NEXT: uOps Per Cycle:    1.00
119# CHECK-NEXT: IPC:               0.50
120# CHECK-NEXT: Block RThroughput: 2.0
121
122# CHECK:      Instruction Info:
123# CHECK-NEXT: [1]: #uOps
124# CHECK-NEXT: [2]: Latency
125# CHECK-NEXT: [3]: RThroughput
126# CHECK-NEXT: [4]: MayLoad
127# CHECK-NEXT: [5]: MayStore
128# CHECK-NEXT: [6]: HasSideEffects (U)
129
130# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
131# CHECK-NEXT:  2      2     1.00                        pinsrd	$0, %eax, %xmm0
132# CHECK-NEXT:  2      2     1.00                        pinsrd	$1, %eax, %xmm0
133
134# CHECK:      Resources:
135# CHECK-NEXT: [0]   - SBDivider
136# CHECK-NEXT: [1]   - SBFPDivider
137# CHECK-NEXT: [2]   - SBPort0
138# CHECK-NEXT: [3]   - SBPort1
139# CHECK-NEXT: [4]   - SBPort4
140# CHECK-NEXT: [5]   - SBPort5
141# CHECK-NEXT: [6.0] - SBPort23
142# CHECK-NEXT: [6.1] - SBPort23
143
144# CHECK:      Resource pressure per iteration:
145# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
146# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -
147
148# CHECK:      Resource pressure by instruction:
149# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
150# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrd	$0, %eax, %xmm0
151# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrd	$1, %eax, %xmm0
152
153# CHECK:      [3] Code Region
154
155# CHECK:      Iterations:        500
156# CHECK-NEXT: Instructions:      1000
157# CHECK-NEXT: Total Cycles:      2003
158# CHECK-NEXT: Total uOps:        2000
159
160# CHECK:      Dispatch Width:    4
161# CHECK-NEXT: uOps Per Cycle:    1.00
162# CHECK-NEXT: IPC:               0.50
163# CHECK-NEXT: Block RThroughput: 2.0
164
165# CHECK:      Instruction Info:
166# CHECK-NEXT: [1]: #uOps
167# CHECK-NEXT: [2]: Latency
168# CHECK-NEXT: [3]: RThroughput
169# CHECK-NEXT: [4]: MayLoad
170# CHECK-NEXT: [5]: MayStore
171# CHECK-NEXT: [6]: HasSideEffects (U)
172
173# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
174# CHECK-NEXT:  2      2     1.00                        pinsrq	$0, %rax, %xmm0
175# CHECK-NEXT:  2      2     1.00                        pinsrq	$1, %rax, %xmm0
176
177# CHECK:      Resources:
178# CHECK-NEXT: [0]   - SBDivider
179# CHECK-NEXT: [1]   - SBFPDivider
180# CHECK-NEXT: [2]   - SBPort0
181# CHECK-NEXT: [3]   - SBPort1
182# CHECK-NEXT: [4]   - SBPort4
183# CHECK-NEXT: [5]   - SBPort5
184# CHECK-NEXT: [6.0] - SBPort23
185# CHECK-NEXT: [6.1] - SBPort23
186
187# CHECK:      Resource pressure per iteration:
188# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
189# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -
190
191# CHECK:      Resource pressure by instruction:
192# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
193# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrq	$0, %rax, %xmm0
194# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     pinsrq	$1, %rax, %xmm0
195