Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 39a7204

Browse files
committed
[MCA] Add tests for int-to-fpu transfer delays. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351822 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent be3450c commit 39a7204

File tree

3 files changed

+612
-0
lines changed

3 files changed

+612
-0
lines changed
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
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+
# Throughput for all the code snippet below should be 1.00 IPC.
5+
6+
# LLVM-MCA-BEGIN
7+
vpinsrb $0, %eax, %xmm0, %xmm0
8+
vpinsrb $1, %eax, %xmm0, %xmm0
9+
# LLVM-MCA-END
10+
11+
# LLVM-MCA-BEGIN
12+
vpinsrw $0, %eax, %xmm0, %xmm0
13+
vpinsrw $1, %eax, %xmm0, %xmm0
14+
# LLVM-MCA-END
15+
16+
# LLVM-MCA-BEGIN
17+
vpinsrd $0, %eax, %xmm0, %xmm0
18+
vpinsrd $1, %eax, %xmm0, %xmm0
19+
# LLVM-MCA-END
20+
21+
# LLVM-MCA-BEGIN
22+
vpinsrq $0, %rax, %xmm0, %xmm0
23+
vpinsrq $1, %rax, %xmm0, %xmm0
24+
# LLVM-MCA-END
25+
26+
# CHECK: [0] Code Region
27+
28+
# CHECK: Iterations: 500
29+
# CHECK-NEXT: Instructions: 1000
30+
# CHECK-NEXT: Total Cycles: 7003
31+
# CHECK-NEXT: Total uOps: 2000
32+
33+
# CHECK: Dispatch Width: 2
34+
# CHECK-NEXT: uOps Per Cycle: 0.29
35+
# CHECK-NEXT: IPC: 0.14
36+
# CHECK-NEXT: Block RThroughput: 2.0
37+
38+
# CHECK: Instruction Info:
39+
# CHECK-NEXT: [1]: #uOps
40+
# CHECK-NEXT: [2]: Latency
41+
# CHECK-NEXT: [3]: RThroughput
42+
# CHECK-NEXT: [4]: MayLoad
43+
# CHECK-NEXT: [5]: MayStore
44+
# CHECK-NEXT: [6]: HasSideEffects (U)
45+
46+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
47+
# CHECK-NEXT: 2 7 0.50 vpinsrb $0, %eax, %xmm0, %xmm0
48+
# CHECK-NEXT: 2 7 0.50 vpinsrb $1, %eax, %xmm0, %xmm0
49+
50+
# CHECK: Resources:
51+
# CHECK-NEXT: [0] - JALU0
52+
# CHECK-NEXT: [1] - JALU1
53+
# CHECK-NEXT: [2] - JDiv
54+
# CHECK-NEXT: [3] - JFPA
55+
# CHECK-NEXT: [4] - JFPM
56+
# CHECK-NEXT: [5] - JFPU0
57+
# CHECK-NEXT: [6] - JFPU1
58+
# CHECK-NEXT: [7] - JLAGU
59+
# CHECK-NEXT: [8] - JMul
60+
# CHECK-NEXT: [9] - JSAGU
61+
# CHECK-NEXT: [10] - JSTC
62+
# CHECK-NEXT: [11] - JVALU0
63+
# CHECK-NEXT: [12] - JVALU1
64+
# CHECK-NEXT: [13] - JVIMUL
65+
66+
# CHECK: Resource pressure per iteration:
67+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
68+
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -
69+
70+
# CHECK: Resource pressure by instruction:
71+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
72+
# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrb $0, %eax, %xmm0, %xmm0
73+
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrb $1, %eax, %xmm0, %xmm0
74+
75+
# CHECK: [1] Code Region
76+
77+
# CHECK: Iterations: 500
78+
# CHECK-NEXT: Instructions: 1000
79+
# CHECK-NEXT: Total Cycles: 7003
80+
# CHECK-NEXT: Total uOps: 2000
81+
82+
# CHECK: Dispatch Width: 2
83+
# CHECK-NEXT: uOps Per Cycle: 0.29
84+
# CHECK-NEXT: IPC: 0.14
85+
# CHECK-NEXT: Block RThroughput: 2.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 7 0.50 vpinsrw $0, %eax, %xmm0, %xmm0
97+
# CHECK-NEXT: 2 7 0.50 vpinsrw $1, %eax, %xmm0, %xmm0
98+
99+
# CHECK: Resources:
100+
# CHECK-NEXT: [0] - JALU0
101+
# CHECK-NEXT: [1] - JALU1
102+
# CHECK-NEXT: [2] - JDiv
103+
# CHECK-NEXT: [3] - JFPA
104+
# CHECK-NEXT: [4] - JFPM
105+
# CHECK-NEXT: [5] - JFPU0
106+
# CHECK-NEXT: [6] - JFPU1
107+
# CHECK-NEXT: [7] - JLAGU
108+
# CHECK-NEXT: [8] - JMul
109+
# CHECK-NEXT: [9] - JSAGU
110+
# CHECK-NEXT: [10] - JSTC
111+
# CHECK-NEXT: [11] - JVALU0
112+
# CHECK-NEXT: [12] - JVALU1
113+
# CHECK-NEXT: [13] - JVIMUL
114+
115+
# CHECK: Resource pressure per iteration:
116+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
117+
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -
118+
119+
# CHECK: Resource pressure by instruction:
120+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
121+
# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrw $0, %eax, %xmm0, %xmm0
122+
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrw $1, %eax, %xmm0, %xmm0
123+
124+
# CHECK: [2] Code Region
125+
126+
# CHECK: Iterations: 500
127+
# CHECK-NEXT: Instructions: 1000
128+
# CHECK-NEXT: Total Cycles: 7003
129+
# CHECK-NEXT: Total uOps: 2000
130+
131+
# CHECK: Dispatch Width: 2
132+
# CHECK-NEXT: uOps Per Cycle: 0.29
133+
# CHECK-NEXT: IPC: 0.14
134+
# CHECK-NEXT: Block RThroughput: 2.0
135+
136+
# CHECK: Instruction Info:
137+
# CHECK-NEXT: [1]: #uOps
138+
# CHECK-NEXT: [2]: Latency
139+
# CHECK-NEXT: [3]: RThroughput
140+
# CHECK-NEXT: [4]: MayLoad
141+
# CHECK-NEXT: [5]: MayStore
142+
# CHECK-NEXT: [6]: HasSideEffects (U)
143+
144+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
145+
# CHECK-NEXT: 2 7 0.50 vpinsrd $0, %eax, %xmm0, %xmm0
146+
# CHECK-NEXT: 2 7 0.50 vpinsrd $1, %eax, %xmm0, %xmm0
147+
148+
# CHECK: Resources:
149+
# CHECK-NEXT: [0] - JALU0
150+
# CHECK-NEXT: [1] - JALU1
151+
# CHECK-NEXT: [2] - JDiv
152+
# CHECK-NEXT: [3] - JFPA
153+
# CHECK-NEXT: [4] - JFPM
154+
# CHECK-NEXT: [5] - JFPU0
155+
# CHECK-NEXT: [6] - JFPU1
156+
# CHECK-NEXT: [7] - JLAGU
157+
# CHECK-NEXT: [8] - JMul
158+
# CHECK-NEXT: [9] - JSAGU
159+
# CHECK-NEXT: [10] - JSTC
160+
# CHECK-NEXT: [11] - JVALU0
161+
# CHECK-NEXT: [12] - JVALU1
162+
# CHECK-NEXT: [13] - JVIMUL
163+
164+
# CHECK: Resource pressure per iteration:
165+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
166+
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -
167+
168+
# CHECK: Resource pressure by instruction:
169+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
170+
# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrd $0, %eax, %xmm0, %xmm0
171+
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrd $1, %eax, %xmm0, %xmm0
172+
173+
# CHECK: [3] Code Region
174+
175+
# CHECK: Iterations: 500
176+
# CHECK-NEXT: Instructions: 1000
177+
# CHECK-NEXT: Total Cycles: 7003
178+
# CHECK-NEXT: Total uOps: 2000
179+
180+
# CHECK: Dispatch Width: 2
181+
# CHECK-NEXT: uOps Per Cycle: 0.29
182+
# CHECK-NEXT: IPC: 0.14
183+
# CHECK-NEXT: Block RThroughput: 2.0
184+
185+
# CHECK: Instruction Info:
186+
# CHECK-NEXT: [1]: #uOps
187+
# CHECK-NEXT: [2]: Latency
188+
# CHECK-NEXT: [3]: RThroughput
189+
# CHECK-NEXT: [4]: MayLoad
190+
# CHECK-NEXT: [5]: MayStore
191+
# CHECK-NEXT: [6]: HasSideEffects (U)
192+
193+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
194+
# CHECK-NEXT: 2 7 0.50 vpinsrq $0, %rax, %xmm0, %xmm0
195+
# CHECK-NEXT: 2 7 0.50 vpinsrq $1, %rax, %xmm0, %xmm0
196+
197+
# CHECK: Resources:
198+
# CHECK-NEXT: [0] - JALU0
199+
# CHECK-NEXT: [1] - JALU1
200+
# CHECK-NEXT: [2] - JDiv
201+
# CHECK-NEXT: [3] - JFPA
202+
# CHECK-NEXT: [4] - JFPM
203+
# CHECK-NEXT: [5] - JFPU0
204+
# CHECK-NEXT: [6] - JFPU1
205+
# CHECK-NEXT: [7] - JLAGU
206+
# CHECK-NEXT: [8] - JMul
207+
# CHECK-NEXT: [9] - JSAGU
208+
# CHECK-NEXT: [10] - JSTC
209+
# CHECK-NEXT: [11] - JVALU0
210+
# CHECK-NEXT: [12] - JVALU1
211+
# CHECK-NEXT: [13] - JVIMUL
212+
213+
# CHECK: Resource pressure per iteration:
214+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
215+
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - 1.00 1.00 -
216+
217+
# CHECK: Resource pressure by instruction:
218+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
219+
# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpinsrq $0, %rax, %xmm0, %xmm0
220+
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpinsrq $1, %rax, %xmm0, %xmm0

0 commit comments

Comments
 (0)