xref: /llvm-project/llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s (revision 8534f514747d57cd42602403eb98c8230f5c7ff9)
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=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BARCELONA
3# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BDVER2
4# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BTVER2
5# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER1
6# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER2
7# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,HASWELL
8# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BROADWELL
9# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE
10# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -all-views=false -timeline < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE
11
12#LLVM-MCA-BEGIN  test_sqrtss
13leaq 8(%rsp, %rdi, 2), %rax
14sqrtss (%rax), %xmm1
15#LLVM-MCA-END
16
17#LLVM-MCA-BEGIN  test_sqrtsd
18leaq 8(%rsp, %rdi, 2), %rax
19sqrtsd (%rax), %xmm1
20#LLVM-MCA-END
21
22#LLVM-MCA-BEGIN  test_rsqrtss
23leaq 8(%rsp, %rdi, 2), %rax
24rsqrtss (%rax), %xmm1
25#LLVM-MCA-END
26
27#LLVM-MCA-BEGIN  test_rcp
28leaq 8(%rsp, %rdi, 2), %rax
29rcpss (%rax), %xmm1
30#LLVM-MCA-END
31
32# ALL:            [0] Code Region - test_sqrtss
33
34# ALL:            Timeline view:
35
36# BARCELONA-NEXT:                     0123456789
37# BARCELONA-NEXT: Index     0123456789          0123
38
39# BDVER2-NEXT:                        012345678
40# BDVER2-NEXT:    Index     0123456789
41
42# BROADWELL-NEXT:                     0123456789
43# BROADWELL-NEXT: Index     0123456789
44
45# BTVER2-NEXT:                        0123456789          0
46# BTVER2-NEXT:    Index     0123456789          0123456789
47
48# HASWELL-NEXT:                       0123456789
49# HASWELL-NEXT:   Index     0123456789
50
51# SKYLAKE-NEXT:                       0123456789
52# SKYLAKE-NEXT:   Index     0123456789          0
53
54# ZNVER1-NEXT:                        0123456789
55# ZNVER1-NEXT:    Index     0123456789          01234
56
57# ZNVER2-NEXT:                        0123456789
58# ZNVER2-NEXT:    Index     0123456789          01234
59
60# BARCELONA:      [0,0]     DeER .    .    .    .  .   leaq	8(%rsp,%rdi,2), %rax
61# BARCELONA-NEXT: [0,1]     D=eeeeeeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
62
63# BDVER2:         [0,0]     DeeER.    .    .  .   leaq	8(%rsp,%rdi,2), %rax
64# BDVER2-NEXT:    [0,1]     D==eeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
65
66# BROADWELL:      [0,0]     DeER .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
67# BROADWELL-NEXT: [0,1]     D=eeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
68
69# BTVER2:         [0,0]     DeeER.    .    .    .    .    .   leaq	8(%rsp,%rdi,2), %rax
70# BTVER2-NEXT:    [0,1]     D==eeeeeeeeeeeeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
71
72# HASWELL:        [0,0]     DeER .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
73# HASWELL-NEXT:   [0,1]     D=eeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
74
75# SKYLAKE:        [0,0]     DeER .    .    .    .   leaq	8(%rsp,%rdi,2), %rax
76# SKYLAKE-NEXT:   [0,1]     D=eeeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
77
78# ZNVER1:         [0,0]     DeER .    .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
79# ZNVER1-NEXT:    [0,1]     D=eeeeeeeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
80
81# ZNVER2:         [0,0]     DeER .    .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
82# ZNVER2-NEXT:    [0,1]     D=eeeeeeeeeeeeeeeeeeeeeER   sqrtss	(%rax), %xmm1
83
84# ALL:            Average Wait times (based on the timeline view):
85# ALL-NEXT:       [0]: Executions
86# ALL-NEXT:       [1]: Average time spent waiting in a scheduler's queue
87# ALL-NEXT:       [2]: Average time spent waiting in a scheduler's queue while ready
88# ALL-NEXT:       [3]: Average time elapsed from WB until retire stage
89
90# ALL:                  [0]    [1]    [2]    [3]
91# ALL-NEXT:       0.     1     1.0    1.0    0.0       leaq	8(%rsp,%rdi,2), %rax
92
93# BARCELONA-NEXT: 1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
94# BARCELONA-NEXT:        1     1.5    0.5    0.0       <total>
95
96# BDVER2-NEXT:    1.     1     3.0    0.0    0.0       sqrtss	(%rax), %xmm1
97# BDVER2-NEXT:           1     2.0    0.5    0.0       <total>
98
99# BROADWELL-NEXT: 1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
100# BROADWELL-NEXT:        1     1.5    0.5    0.0       <total>
101
102# BTVER2-NEXT:    1.     1     3.0    0.0    0.0       sqrtss	(%rax), %xmm1
103# BTVER2-NEXT:           1     2.0    0.5    0.0       <total>
104
105# HASWELL-NEXT:   1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
106# HASWELL-NEXT:          1     1.5    0.5    0.0       <total>
107
108# SKYLAKE-NEXT:   1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
109# SKYLAKE-NEXT:          1     1.5    0.5    0.0       <total>
110
111# ZNVER1-NEXT:    1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
112# ZNVER1-NEXT:           1     1.5    0.5    0.0       <total>
113
114# ZNVER2-NEXT:    1.     1     2.0    0.0    0.0       sqrtss	(%rax), %xmm1
115# ZNVER2-NEXT:           1     1.5    0.5    0.0       <total>
116
117# ALL:            [1] Code Region - test_sqrtsd
118
119# ALL:            Timeline view:
120
121# BARCELONA-NEXT:                     0123456789          0
122# BARCELONA-NEXT: Index     0123456789          0123456789
123
124# BDVER2-NEXT:                        012345678
125# BDVER2-NEXT:    Index     0123456789
126
127# BROADWELL-NEXT:                     0123456789
128# BROADWELL-NEXT: Index     0123456789          01234
129
130# BTVER2-NEXT:                        0123456789          0123456
131# BTVER2-NEXT:    Index     0123456789          0123456789
132
133# HASWELL-NEXT:                       0123456789
134# HASWELL-NEXT:   Index     0123456789          01234
135
136# SKYLAKE-NEXT:                       0123456789
137# SKYLAKE-NEXT:   Index     0123456789          0123456
138
139# ZNVER1-NEXT:                        0123456789          0
140# ZNVER1-NEXT:    Index     0123456789          0123456789
141
142# ZNVER2-NEXT:                        0123456789          0
143# ZNVER2-NEXT:    Index     0123456789          0123456789
144
145# BARCELONA:      [0,0]     DeER .    .    .    .    .    .   leaq	8(%rsp,%rdi,2), %rax
146# BARCELONA-NEXT: [0,1]     D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
147
148# BDVER2:         [0,0]     DeeER.    .    .  .   leaq	8(%rsp,%rdi,2), %rax
149# BDVER2-NEXT:    [0,1]     D==eeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
150
151# BROADWELL:      [0,0]     DeER .    .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
152# BROADWELL-NEXT: [0,1]     D=eeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
153
154# BTVER2:         [0,0]     DeeER.    .    .    .    .    .    ..   leaq	8(%rsp,%rdi,2), %rax
155# BTVER2-NEXT:    [0,1]     D==eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
156
157# HASWELL:        [0,0]     DeER .    .    .    .   .   leaq	8(%rsp,%rdi,2), %rax
158# HASWELL-NEXT:   [0,1]     D=eeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
159
160# SKYLAKE:        [0,0]     DeER .    .    .    .    ..   leaq	8(%rsp,%rdi,2), %rax
161# SKYLAKE-NEXT:   [0,1]     D=eeeeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
162
163# ZNVER1:         [0,0]     DeER .    .    .    .    .    .   leaq	8(%rsp,%rdi,2), %rax
164# ZNVER1-NEXT:    [0,1]     D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
165
166# ZNVER2:         [0,0]     DeER .    .    .    .    .    .   leaq	8(%rsp,%rdi,2), %rax
167# ZNVER2-NEXT:    [0,1]     D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER   sqrtsd	(%rax), %xmm1
168
169# ALL:            Average Wait times (based on the timeline view):
170# ALL-NEXT:       [0]: Executions
171# ALL-NEXT:       [1]: Average time spent waiting in a scheduler's queue
172# ALL-NEXT:       [2]: Average time spent waiting in a scheduler's queue while ready
173# ALL-NEXT:       [3]: Average time elapsed from WB until retire stage
174
175# ALL:                  [0]    [1]    [2]    [3]
176# ALL-NEXT:       0.     1     1.0    1.0    0.0       leaq	8(%rsp,%rdi,2), %rax
177
178# BARCELONA-NEXT: 1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
179# BARCELONA-NEXT:        1     1.5    0.5    0.0       <total>
180
181# BDVER2-NEXT:    1.     1     3.0    0.0    0.0       sqrtsd	(%rax), %xmm1
182# BDVER2-NEXT:           1     2.0    0.5    0.0       <total>
183
184# BROADWELL-NEXT: 1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
185# BROADWELL-NEXT:        1     1.5    0.5    0.0       <total>
186
187# BTVER2-NEXT:    1.     1     3.0    0.0    0.0       sqrtsd	(%rax), %xmm1
188# BTVER2-NEXT:           1     2.0    0.5    0.0       <total>
189
190# HASWELL-NEXT:   1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
191# HASWELL-NEXT:          1     1.5    0.5    0.0       <total>
192
193# SKYLAKE-NEXT:   1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
194# SKYLAKE-NEXT:          1     1.5    0.5    0.0       <total>
195
196# ZNVER1-NEXT:    1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
197# ZNVER1-NEXT:           1     1.5    0.5    0.0       <total>
198
199# ZNVER2-NEXT:    1.     1     2.0    0.0    0.0       sqrtsd	(%rax), %xmm1
200# ZNVER2-NEXT:           1     1.5    0.5    0.0       <total>
201
202# ALL:            [2] Code Region - test_rsqrtss
203
204# ALL:            Timeline view:
205
206# BARCELONA-NEXT:                     01234
207# BDVER2-NEXT:                        01234
208# BROADWELL-NEXT:                     0123
209# BTVER2-NEXT:                        01
210# HASWELL-NEXT:                       0123
211# SKYLAKE-NEXT:                       012
212# ZNVER1-NEXT:                        012345
213# ZNVER2-NEXT:                        012345
214
215# ALL-NEXT:       Index     0123456789
216
217# BARCELONA:      [0,0]     DeER .    .   .   leaq	8(%rsp,%rdi,2), %rax
218# BARCELONA-NEXT: [0,1]     D=eeeeeeeeeeeER   rsqrtss	(%rax), %xmm1
219
220# BDVER2:         [0,0]     DeeER.    .   .   leaq	8(%rsp,%rdi,2), %rax
221# BDVER2-NEXT:    [0,1]     D==eeeeeeeeeeER   rsqrtss	(%rax), %xmm1
222
223# BROADWELL:      [0,0]     DeER .    .  .   leaq	8(%rsp,%rdi,2), %rax
224# BROADWELL-NEXT: [0,1]     D=eeeeeeeeeeER   rsqrtss	(%rax), %xmm1
225
226# BTVER2:         [0,0]     DeeER.    ..   leaq	8(%rsp,%rdi,2), %rax
227# BTVER2-NEXT:    [0,1]     D==eeeeeeeER   rsqrtss	(%rax), %xmm1
228
229# HASWELL:        [0,0]     DeER .    .  .   leaq	8(%rsp,%rdi,2), %rax
230# HASWELL-NEXT:   [0,1]     D=eeeeeeeeeeER   rsqrtss	(%rax), %xmm1
231
232# SKYLAKE:        [0,0]     DeER .    . .   leaq	8(%rsp,%rdi,2), %rax
233# SKYLAKE-NEXT:   [0,1]     D=eeeeeeeeeER   rsqrtss	(%rax), %xmm1
234
235# ZNVER1:         [0,0]     DeER .    .    .   leaq	8(%rsp,%rdi,2), %rax
236# ZNVER1-NEXT:    [0,1]     D=eeeeeeeeeeeeER   rsqrtss	(%rax), %xmm1
237
238# ZNVER2:         [0,0]     DeER .    .    .   leaq	8(%rsp,%rdi,2), %rax
239# ZNVER2-NEXT:    [0,1]     D=eeeeeeeeeeeeER   rsqrtss	(%rax), %xmm1
240
241# ALL:            Average Wait times (based on the timeline view):
242# ALL-NEXT:       [0]: Executions
243# ALL-NEXT:       [1]: Average time spent waiting in a scheduler's queue
244# ALL-NEXT:       [2]: Average time spent waiting in a scheduler's queue while ready
245# ALL-NEXT:       [3]: Average time elapsed from WB until retire stage
246
247# ALL:                  [0]    [1]    [2]    [3]
248# ALL-NEXT:       0.     1     1.0    1.0    0.0       leaq	8(%rsp,%rdi,2), %rax
249
250# BARCELONA-NEXT: 1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
251# BARCELONA-NEXT:        1     1.5    0.5    0.0       <total>
252
253# BDVER2-NEXT:    1.     1     3.0    0.0    0.0       rsqrtss	(%rax), %xmm1
254# BDVER2-NEXT:           1     2.0    0.5    0.0       <total>
255
256# BROADWELL-NEXT: 1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
257# BROADWELL-NEXT:        1     1.5    0.5    0.0       <total>
258
259# BTVER2-NEXT:    1.     1     3.0    0.0    0.0       rsqrtss	(%rax), %xmm1
260# BTVER2-NEXT:           1     2.0    0.5    0.0       <total>
261
262# HASWELL-NEXT:   1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
263# HASWELL-NEXT:          1     1.5    0.5    0.0       <total>
264
265# SKYLAKE-NEXT:   1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
266# SKYLAKE-NEXT:          1     1.5    0.5    0.0       <total>
267
268# ZNVER1-NEXT:    1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
269# ZNVER1-NEXT:           1     1.5    0.5    0.0       <total>
270
271# ZNVER2-NEXT:    1.     1     2.0    0.0    0.0       rsqrtss	(%rax), %xmm1
272# ZNVER2-NEXT:           1     1.5    0.5    0.0       <total>
273
274# ALL:            [3] Code Region - test_rcp
275
276# ALL:            Timeline view:
277
278# BARCELONA-NEXT:                     01234
279# BDVER2-NEXT:                        01234
280# BROADWELL-NEXT:                     0123
281# BTVER2-NEXT:                        01
282# HASWELL-NEXT:                       0123
283# SKYLAKE-NEXT:                       012
284# ZNVER1-NEXT:                        012345
285# ZNVER2-NEXT:                        012345
286
287# ALL-NEXT:       Index     0123456789
288
289# BARCELONA:      [0,0]     DeER .    .   .   leaq	8(%rsp,%rdi,2), %rax
290# BARCELONA-NEXT: [0,1]     D=eeeeeeeeeeeER   rcpss	(%rax), %xmm1
291
292# BDVER2:         [0,0]     DeeER.    .   .   leaq	8(%rsp,%rdi,2), %rax
293# BDVER2-NEXT:    [0,1]     D==eeeeeeeeeeER   rcpss	(%rax), %xmm1
294
295# BROADWELL:      [0,0]     DeER .    .  .   leaq	8(%rsp,%rdi,2), %rax
296# BROADWELL-NEXT: [0,1]     D=eeeeeeeeeeER   rcpss	(%rax), %xmm1
297
298# BTVER2:         [0,0]     DeeER.    ..   leaq	8(%rsp,%rdi,2), %rax
299# BTVER2-NEXT:    [0,1]     D==eeeeeeeER   rcpss	(%rax), %xmm1
300
301# HASWELL:        [0,0]     DeER .    .  .   leaq	8(%rsp,%rdi,2), %rax
302# HASWELL-NEXT:   [0,1]     D=eeeeeeeeeeER   rcpss	(%rax), %xmm1
303
304# SKYLAKE:        [0,0]     DeER .    . .   leaq	8(%rsp,%rdi,2), %rax
305# SKYLAKE-NEXT:   [0,1]     D=eeeeeeeeeER   rcpss	(%rax), %xmm1
306
307# ZNVER1:         [0,0]     DeER .    .    .   leaq	8(%rsp,%rdi,2), %rax
308# ZNVER1-NEXT:    [0,1]     D=eeeeeeeeeeeeER   rcpss	(%rax), %xmm1
309
310# ZNVER2:         [0,0]     DeER .    .    .   leaq	8(%rsp,%rdi,2), %rax
311# ZNVER2-NEXT:    [0,1]     D=eeeeeeeeeeeeER   rcpss	(%rax), %xmm1
312
313# ALL:            Average Wait times (based on the timeline view):
314# ALL-NEXT:       [0]: Executions
315# ALL-NEXT:       [1]: Average time spent waiting in a scheduler's queue
316# ALL-NEXT:       [2]: Average time spent waiting in a scheduler's queue while ready
317# ALL-NEXT:       [3]: Average time elapsed from WB until retire stage
318
319# ALL:                  [0]    [1]    [2]    [3]
320# ALL-NEXT:       0.     1     1.0    1.0    0.0       leaq	8(%rsp,%rdi,2), %rax
321
322# BARCELONA-NEXT: 1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
323# BARCELONA-NEXT:        1     1.5    0.5    0.0       <total>
324
325# BDVER2-NEXT:    1.     1     3.0    0.0    0.0       rcpss	(%rax), %xmm1
326# BDVER2-NEXT:           1     2.0    0.5    0.0       <total>
327
328# BROADWELL-NEXT: 1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
329# BROADWELL-NEXT:        1     1.5    0.5    0.0       <total>
330
331# BTVER2-NEXT:    1.     1     3.0    0.0    0.0       rcpss	(%rax), %xmm1
332# BTVER2-NEXT:           1     2.0    0.5    0.0       <total>
333
334# HASWELL-NEXT:   1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
335# HASWELL-NEXT:          1     1.5    0.5    0.0       <total>
336
337# SKYLAKE-NEXT:   1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
338# SKYLAKE-NEXT:          1     1.5    0.5    0.0       <total>
339
340# ZNVER1-NEXT:    1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
341# ZNVER1-NEXT:           1     1.5    0.5    0.0       <total>
342
343# ZNVER2-NEXT:    1.     1     2.0    0.0    0.0       rcpss	(%rax), %xmm1
344# ZNVER2-NEXT:           1     1.5    0.5    0.0       <total>
345