xref: /llvm-project/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s (revision 4994f87ca1d9c266936ae8352872fcc5271b1dd4)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SANDY
3
4# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,IVY
5
6# RUN: llvm-mca -mtriple=x86_64-unknown-unknown  -mcpu=haswell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,HASWELL
7
8# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BDWELL
9
10# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE
11
12# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,SKYLAKE
13
14# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BDVER2
15
16# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,BTVER2
17
18# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,ZNVER1
19
20# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefixes=ALL,ZNVER2
21
22vaddps %xmm0, %xmm0, %xmm1
23vblendvps %xmm1, (%rdi), %xmm2, %xmm3
24
25# ALL:          Iterations:        1
26# ALL-NEXT:     Instructions:      2
27
28# BDVER2-NEXT:  Total Cycles:      10
29# BDVER2-NEXT:  Total uOps:        2
30
31# BDWELL-NEXT:  Total Cycles:      10
32# BDWELL-NEXT:  Total uOps:        4
33
34# BTVER2-NEXT:  Total Cycles:      11
35# BTVER2-NEXT:  Total uOps:        4
36
37# HASWELL-NEXT: Total Cycles:      11
38# HASWELL-NEXT: Total uOps:        4
39
40# IVY-NEXT:     Total Cycles:      11
41# IVY-NEXT:     Total uOps:        4
42
43# SANDY-NEXT:   Total Cycles:      11
44# SANDY-NEXT:   Total uOps:        4
45
46# SKYLAKE-NEXT: Total Cycles:      11
47# SKYLAKE-NEXT: Total uOps:        4
48
49# ZNVER1-NEXT:  Total Cycles:      11
50# ZNVER1-NEXT:  Total uOps:        2
51
52# ZNVER2-NEXT:  Total Cycles:      11
53# ZNVER2-NEXT:  Total uOps:        2
54
55# BDVER2:       Dispatch Width:    4
56# BDVER2-NEXT:  uOps Per Cycle:    0.20
57# BDVER2-NEXT:  IPC:               0.20
58# BDVER2-NEXT:  Block RThroughput: 1.5
59
60# BDWELL:       Dispatch Width:    4
61# BDWELL-NEXT:  uOps Per Cycle:    0.40
62# BDWELL-NEXT:  IPC:               0.20
63# BDWELL-NEXT:  Block RThroughput: 2.0
64
65# BTVER2:       Dispatch Width:    2
66# BTVER2-NEXT:  uOps Per Cycle:    0.36
67# BTVER2-NEXT:  IPC:               0.18
68# BTVER2-NEXT:  Block RThroughput: 2.0
69
70# HASWELL:      Dispatch Width:    4
71# HASWELL-NEXT: uOps Per Cycle:    0.36
72# HASWELL-NEXT: IPC:               0.18
73# HASWELL-NEXT: Block RThroughput: 2.0
74
75# IVY:          Dispatch Width:    4
76# IVY-NEXT:     uOps Per Cycle:    0.36
77# IVY-NEXT:     IPC:               0.18
78# IVY-NEXT:     Block RThroughput: 1.0
79
80# SANDY:        Dispatch Width:    4
81# SANDY-NEXT:   uOps Per Cycle:    0.36
82# SANDY-NEXT:   IPC:               0.18
83# SANDY-NEXT:   Block RThroughput: 1.0
84
85# SKYLAKE:      Dispatch Width:    6
86# SKYLAKE-NEXT: uOps Per Cycle:    0.36
87# SKYLAKE-NEXT: IPC:               0.18
88# SKYLAKE-NEXT: Block RThroughput: 0.7
89
90# ZNVER1:       Dispatch Width:    4
91# ZNVER1-NEXT:  uOps Per Cycle:    0.18
92# ZNVER1-NEXT:  IPC:               0.18
93# ZNVER1-NEXT:  Block RThroughput: 0.5
94
95# ZNVER2:       Dispatch Width:    4
96# ZNVER2-NEXT:  uOps Per Cycle:    0.18
97# ZNVER2-NEXT:  IPC:               0.18
98# ZNVER2-NEXT:  Block RThroughput: 0.5
99
100# BDVER2:       Timeline view:
101# BDVER2-NEXT:  Index     0123456789
102
103# BDWELL:       Timeline view:
104# BDWELL-NEXT:  Index     0123456789
105
106# BTVER2:       Timeline view:
107# BTVER2-NEXT:                      0
108# BTVER2-NEXT:  Index     0123456789
109
110# HASWELL:      Timeline view:
111# HASWELL-NEXT:                     0
112# HASWELL-NEXT: Index     0123456789
113
114# IVY:          Timeline view:
115# IVY-NEXT:                         0
116# IVY-NEXT:     Index     0123456789
117
118# SANDY:        Timeline view:
119# SANDY-NEXT:                       0
120# SANDY-NEXT:   Index     0123456789
121
122# SKYLAKE:      Timeline view:
123# SKYLAKE-NEXT:                     0
124# SKYLAKE-NEXT: Index     0123456789
125
126# ZNVER1:       Timeline view:
127# ZNVER1-NEXT:                      0
128# ZNVER1-NEXT:  Index     0123456789
129
130# ZNVER2:       Timeline view:
131# ZNVER2-NEXT:                      0
132# ZNVER2-NEXT:  Index     0123456789
133
134# BDVER2:       [0,0]     DeeeeeER .   vaddps	%xmm0, %xmm0, %xmm1
135# BDVER2-NEXT:  [0,1]     DeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
136
137# BDWELL:       [0,0]     DeeeER   .   vaddps	%xmm0, %xmm0, %xmm1
138# BDWELL-NEXT:  [0,1]     DeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
139
140# BTVER2:       [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
141# BTVER2-NEXT:  [0,1]     .DeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
142
143# HASWELL:      [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
144# HASWELL-NEXT: [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
145
146# IVY:          [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
147# IVY-NEXT:     [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
148
149# SANDY:        [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
150# SANDY-NEXT:   [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
151
152# SKYLAKE:      [0,0]     DeeeeER   .   vaddps	%xmm0, %xmm0, %xmm1
153# SKYLAKE-NEXT: [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
154
155# ZNVER1:       [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
156# ZNVER1-NEXT:  [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
157
158# ZNVER2:       [0,0]     DeeeER    .   vaddps	%xmm0, %xmm0, %xmm1
159# ZNVER2-NEXT:  [0,1]     DeeeeeeeeER   vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
160
161# ALL:          Average Wait times (based on the timeline view):
162# ALL-NEXT:     [0]: Executions
163# ALL-NEXT:     [1]: Average time spent waiting in a scheduler's queue
164# ALL-NEXT:     [2]: Average time spent waiting in a scheduler's queue while ready
165# ALL-NEXT:     [3]: Average time elapsed from WB until retire stage
166
167# ALL:                [0]    [1]    [2]    [3]
168# ALL-NEXT:     0.     1     1.0    1.0    0.0       vaddps	%xmm0, %xmm0, %xmm1
169
170# BDVER2-NEXT:  1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
171# BDVER2-NEXT:         1     1.0    0.5    0.0       <total>
172
173# BDWELL-NEXT:  1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
174# BDWELL-NEXT:         1     1.0    0.5    0.0       <total>
175
176# BTVER2-NEXT:  1.     1     1.0    1.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
177# BTVER2-NEXT:         1     1.0    1.0    0.0       <total>
178
179# HASWELL-NEXT: 1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
180# HASWELL-NEXT:        1     1.0    0.5    0.0       <total>
181
182# IVY-NEXT:     1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
183# IVY-NEXT:            1     1.0    0.5    0.0       <total>
184
185# SANDY-NEXT:   1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
186# SANDY-NEXT:          1     1.0    0.5    0.0       <total>
187
188# SKYLAKE-NEXT: 1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
189# SKYLAKE-NEXT:        1     1.0    0.5    0.0       <total>
190
191# ZNVER1-NEXT:  1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
192# ZNVER1-NEXT:         1     1.0    0.5    0.0       <total>
193
194# ZNVER2-NEXT:  1.     1     1.0    0.0    0.0       vblendvps	%xmm1, (%rdi), %xmm2, %xmm3
195# ZNVER2-NEXT:         1     1.0    0.5    0.0       <total>
196