Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-mca / X86 / read-after-ld-2.s
blob7d549b395957236ff95d1d31c0e080ed4b3c0c6e
1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=100 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
4 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=100 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
6 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=100 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
8 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=100 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
10 # Code Snippet from "Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks"
11 # Charith Mendis, Saman Amarasinghe, Michael Carbin
12 add $1, %edx
13 vpaddd (%r8), %ymm0, %ymm0
14 add $32, %r8
15 cmp %edi, %edx
17 # ALL: Iterations: 100
18 # ALL-NEXT: Instructions: 400
20 # BDWELL-NEXT: Total Cycles: 142
21 # BDWELL-NEXT: Total uOps: 500
23 # HASWELL-NEXT: Total Cycles: 143
24 # HASWELL-NEXT: Total uOps: 500
26 # SKYLAKE-NEXT: Total Cycles: 110
27 # SKYLAKE-NEXT: Total uOps: 500
29 # ZNVER1-NEXT: Total Cycles: 110
30 # ZNVER1-NEXT: Total uOps: 400
32 # BDWELL: Dispatch Width: 4
33 # BDWELL-NEXT: uOps Per Cycle: 3.52
34 # BDWELL-NEXT: IPC: 2.82
35 # BDWELL-NEXT: Block RThroughput: 1.3
37 # HASWELL: Dispatch Width: 4
38 # HASWELL-NEXT: uOps Per Cycle: 3.50
39 # HASWELL-NEXT: IPC: 2.80
40 # HASWELL-NEXT: Block RThroughput: 1.3
42 # SKYLAKE: Dispatch Width: 6
43 # SKYLAKE-NEXT: uOps Per Cycle: 4.55
44 # SKYLAKE-NEXT: IPC: 3.64
45 # SKYLAKE-NEXT: Block RThroughput: 0.8
47 # ZNVER1: Dispatch Width: 4
48 # ZNVER1-NEXT: uOps Per Cycle: 3.64
49 # ZNVER1-NEXT: IPC: 3.64
50 # ZNVER1-NEXT: Block RThroughput: 1.0
52 # ALL: Timeline view:
54 # BDWELL-NEXT: 0123456789
55 # BDWELL-NEXT: Index 0123456789 01
57 # HASWELL-NEXT: 0123456789
58 # HASWELL-NEXT: Index 0123456789 012
60 # SKYLAKE-NEXT: 0123456789
61 # SKYLAKE-NEXT: Index 0123456789
63 # ZNVER1-NEXT: 0123456789
64 # ZNVER1-NEXT: Index 0123456789
66 # BDWELL: [0,0] DeER . . . .. addl $1, %edx
67 # BDWELL-NEXT: [0,1] DeeeeeeeER. . .. vpaddd (%r8), %ymm0, %ymm0
68 # BDWELL-NEXT: [0,2] DeE------R. . .. addq $32, %r8
69 # BDWELL-NEXT: [0,3] .DeE-----R. . .. cmpl %edi, %edx
70 # BDWELL-NEXT: [1,0] .DeE-----R. . .. addl $1, %edx
71 # BDWELL-NEXT: [1,1] .DeeeeeeeER . .. vpaddd (%r8), %ymm0, %ymm0
72 # BDWELL-NEXT: [1,2] . DeE-----R . .. addq $32, %r8
73 # BDWELL-NEXT: [1,3] . DeE-----R . .. cmpl %edi, %edx
74 # BDWELL-NEXT: [2,0] . DeE-----R . .. addl $1, %edx
75 # BDWELL-NEXT: [2,1] . DeeeeeeeER . .. vpaddd (%r8), %ymm0, %ymm0
76 # BDWELL-NEXT: [2,2] . DeE------R . .. addq $32, %r8
77 # BDWELL-NEXT: [2,3] . DeE------R . .. cmpl %edi, %edx
78 # BDWELL-NEXT: [3,0] . DeE-----R . .. addl $1, %edx
79 # BDWELL-NEXT: [3,1] . DeeeeeeeER . .. vpaddd (%r8), %ymm0, %ymm0
80 # BDWELL-NEXT: [3,2] . DeE------R . .. addq $32, %r8
81 # BDWELL-NEXT: [3,3] . DeE-----R . .. cmpl %edi, %edx
82 # BDWELL-NEXT: [4,0] . DeE-----R . .. addl $1, %edx
83 # BDWELL-NEXT: [4,1] . DeeeeeeeER. .. vpaddd (%r8), %ymm0, %ymm0
84 # BDWELL-NEXT: [4,2] . .DeE-----R. .. addq $32, %r8
85 # BDWELL-NEXT: [4,3] . .DeE-----R. .. cmpl %edi, %edx
86 # BDWELL-NEXT: [5,0] . .DeE-----R. .. addl $1, %edx
87 # BDWELL-NEXT: [5,1] . . DeeeeeeeER .. vpaddd (%r8), %ymm0, %ymm0
88 # BDWELL-NEXT: [5,2] . . DeE------R .. addq $32, %r8
89 # BDWELL-NEXT: [5,3] . . DeE------R .. cmpl %edi, %edx
90 # BDWELL-NEXT: [6,0] . . DeE-----R .. addl $1, %edx
91 # BDWELL-NEXT: [6,1] . . DeeeeeeeER .. vpaddd (%r8), %ymm0, %ymm0
92 # BDWELL-NEXT: [6,2] . . DeE------R .. addq $32, %r8
93 # BDWELL-NEXT: [6,3] . . DeE-----R .. cmpl %edi, %edx
94 # BDWELL-NEXT: [7,0] . . DeE-----R .. addl $1, %edx
95 # BDWELL-NEXT: [7,1] . . DeeeeeeeER .. vpaddd (%r8), %ymm0, %ymm0
96 # BDWELL-NEXT: [7,2] . . DeE-----R .. addq $32, %r8
97 # BDWELL-NEXT: [7,3] . . DeE-----R .. cmpl %edi, %edx
98 # BDWELL-NEXT: [8,0] . . DeE-----R .. addl $1, %edx
99 # BDWELL-NEXT: [8,1] . . .DeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
100 # BDWELL-NEXT: [8,2] . . .DeE------R. addq $32, %r8
101 # BDWELL-NEXT: [8,3] . . .DeE------R. cmpl %edi, %edx
102 # BDWELL-NEXT: [9,0] . . . DeE-----R. addl $1, %edx
103 # BDWELL-NEXT: [9,1] . . . DeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
104 # BDWELL-NEXT: [9,2] . . . DeE------R addq $32, %r8
105 # BDWELL-NEXT: [9,3] . . . DeE-----R cmpl %edi, %edx
107 # HASWELL: [0,0] DeER . . . . . addl $1, %edx
108 # HASWELL-NEXT: [0,1] DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
109 # HASWELL-NEXT: [0,2] DeE-------R . . . addq $32, %r8
110 # HASWELL-NEXT: [0,3] .DeE------R . . . cmpl %edi, %edx
111 # HASWELL-NEXT: [1,0] .DeE------R . . . addl $1, %edx
112 # HASWELL-NEXT: [1,1] .DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
113 # HASWELL-NEXT: [1,2] . DeE------R . . . addq $32, %r8
114 # HASWELL-NEXT: [1,3] . DeE------R . . . cmpl %edi, %edx
115 # HASWELL-NEXT: [2,0] . DeE------R . . . addl $1, %edx
116 # HASWELL-NEXT: [2,1] . DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
117 # HASWELL-NEXT: [2,2] . DeE-------R . . . addq $32, %r8
118 # HASWELL-NEXT: [2,3] . DeE-------R . . . cmpl %edi, %edx
119 # HASWELL-NEXT: [3,0] . DeE------R . . . addl $1, %edx
120 # HASWELL-NEXT: [3,1] . DeeeeeeeeER. . . vpaddd (%r8), %ymm0, %ymm0
121 # HASWELL-NEXT: [3,2] . DeE-------R. . . addq $32, %r8
122 # HASWELL-NEXT: [3,3] . DeE------R. . . cmpl %edi, %edx
123 # HASWELL-NEXT: [4,0] . DeE------R. . . addl $1, %edx
124 # HASWELL-NEXT: [4,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
125 # HASWELL-NEXT: [4,2] . .DeE------R . . addq $32, %r8
126 # HASWELL-NEXT: [4,3] . .DeE------R . . cmpl %edi, %edx
127 # HASWELL-NEXT: [5,0] . .DeE------R . . addl $1, %edx
128 # HASWELL-NEXT: [5,1] . . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
129 # HASWELL-NEXT: [5,2] . . DeE-------R . . addq $32, %r8
130 # HASWELL-NEXT: [5,3] . . DeE-------R . . cmpl %edi, %edx
131 # HASWELL-NEXT: [6,0] . . DeE------R . . addl $1, %edx
132 # HASWELL-NEXT: [6,1] . . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
133 # HASWELL-NEXT: [6,2] . . DeE-------R . . addq $32, %r8
134 # HASWELL-NEXT: [6,3] . . DeE------R . . cmpl %edi, %edx
135 # HASWELL-NEXT: [7,0] . . DeE------R . . addl $1, %edx
136 # HASWELL-NEXT: [7,1] . . DeeeeeeeeER. . vpaddd (%r8), %ymm0, %ymm0
137 # HASWELL-NEXT: [7,2] . . DeE------R. . addq $32, %r8
138 # HASWELL-NEXT: [7,3] . . DeE------R. . cmpl %edi, %edx
139 # HASWELL-NEXT: [8,0] . . DeE------R. . addl $1, %edx
140 # HASWELL-NEXT: [8,1] . . .DeeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
141 # HASWELL-NEXT: [8,2] . . .DeE-------R. addq $32, %r8
142 # HASWELL-NEXT: [8,3] . . .DeE-------R. cmpl %edi, %edx
143 # HASWELL-NEXT: [9,0] . . . DeE------R. addl $1, %edx
144 # HASWELL-NEXT: [9,1] . . . DeeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
145 # HASWELL-NEXT: [9,2] . . . DeE-------R addq $32, %r8
146 # HASWELL-NEXT: [9,3] . . . DeE------R cmpl %edi, %edx
148 # SKYLAKE: [0,0] DeER . . . . addl $1, %edx
149 # SKYLAKE-NEXT: [0,1] DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
150 # SKYLAKE-NEXT: [0,2] DeE-------R . . addq $32, %r8
151 # SKYLAKE-NEXT: [0,3] D=eE------R . . cmpl %edi, %edx
152 # SKYLAKE-NEXT: [1,0] D=eE------R . . addl $1, %edx
153 # SKYLAKE-NEXT: [1,1] .DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
154 # SKYLAKE-NEXT: [1,2] .DeE-------R . . addq $32, %r8
155 # SKYLAKE-NEXT: [1,3] .D=eE------R . . cmpl %edi, %edx
156 # SKYLAKE-NEXT: [2,0] .D=eE------R . . addl $1, %edx
157 # SKYLAKE-NEXT: [2,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
158 # SKYLAKE-NEXT: [2,2] . DeE-------R . . addq $32, %r8
159 # SKYLAKE-NEXT: [2,3] . D=eE------R . . cmpl %edi, %edx
160 # SKYLAKE-NEXT: [3,0] . D=eE------R . . addl $1, %edx
161 # SKYLAKE-NEXT: [3,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
162 # SKYLAKE-NEXT: [3,2] . DeE-------R . . addq $32, %r8
163 # SKYLAKE-NEXT: [3,3] . D=eE------R . . cmpl %edi, %edx
164 # SKYLAKE-NEXT: [4,0] . D=eE------R . . addl $1, %edx
165 # SKYLAKE-NEXT: [4,1] . DeeeeeeeeER. . vpaddd (%r8), %ymm0, %ymm0
166 # SKYLAKE-NEXT: [4,2] . DeE-------R. . addq $32, %r8
167 # SKYLAKE-NEXT: [4,3] . D=eE------R. . cmpl %edi, %edx
168 # SKYLAKE-NEXT: [5,0] . D=eE------R. . addl $1, %edx
169 # SKYLAKE-NEXT: [5,1] . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
170 # SKYLAKE-NEXT: [5,2] . DeE-------R . addq $32, %r8
171 # SKYLAKE-NEXT: [5,3] . D=eE------R . cmpl %edi, %edx
172 # SKYLAKE-NEXT: [6,0] . D=eE------R . addl $1, %edx
173 # SKYLAKE-NEXT: [6,1] . .DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
174 # SKYLAKE-NEXT: [6,2] . .DeE-------R . addq $32, %r8
175 # SKYLAKE-NEXT: [6,3] . .D=eE------R . cmpl %edi, %edx
176 # SKYLAKE-NEXT: [7,0] . .D=eE------R . addl $1, %edx
177 # SKYLAKE-NEXT: [7,1] . . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
178 # SKYLAKE-NEXT: [7,2] . . DeE-------R . addq $32, %r8
179 # SKYLAKE-NEXT: [7,3] . . D=eE------R . cmpl %edi, %edx
180 # SKYLAKE-NEXT: [8,0] . . D=eE------R . addl $1, %edx
181 # SKYLAKE-NEXT: [8,1] . . DeeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
182 # SKYLAKE-NEXT: [8,2] . . DeE-------R. addq $32, %r8
183 # SKYLAKE-NEXT: [8,3] . . D=eE------R. cmpl %edi, %edx
184 # SKYLAKE-NEXT: [9,0] . . D=eE------R. addl $1, %edx
185 # SKYLAKE-NEXT: [9,1] . . DeeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
186 # SKYLAKE-NEXT: [9,2] . . DeE-------R addq $32, %r8
187 # SKYLAKE-NEXT: [9,3] . . D=eE------R cmpl %edi, %edx
189 # ZNVER1: [0,0] DeER . . . . addl $1, %edx
190 # ZNVER1-NEXT: [0,1] DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
191 # ZNVER1-NEXT: [0,2] DeE-------R . . addq $32, %r8
192 # ZNVER1-NEXT: [0,3] D=eE------R . . cmpl %edi, %edx
193 # ZNVER1-NEXT: [1,0] .DeE------R . . addl $1, %edx
194 # ZNVER1-NEXT: [1,1] .DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
195 # ZNVER1-NEXT: [1,2] .DeE-------R . . addq $32, %r8
196 # ZNVER1-NEXT: [1,3] .D=eE------R . . cmpl %edi, %edx
197 # ZNVER1-NEXT: [2,0] . DeE------R . . addl $1, %edx
198 # ZNVER1-NEXT: [2,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
199 # ZNVER1-NEXT: [2,2] . DeE-------R . . addq $32, %r8
200 # ZNVER1-NEXT: [2,3] . D=eE------R . . cmpl %edi, %edx
201 # ZNVER1-NEXT: [3,0] . DeE------R . . addl $1, %edx
202 # ZNVER1-NEXT: [3,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
203 # ZNVER1-NEXT: [3,2] . DeE-------R . . addq $32, %r8
204 # ZNVER1-NEXT: [3,3] . D=eE------R . . cmpl %edi, %edx
205 # ZNVER1-NEXT: [4,0] . DeE------R . . addl $1, %edx
206 # ZNVER1-NEXT: [4,1] . DeeeeeeeeER. . vpaddd (%r8), %ymm0, %ymm0
207 # ZNVER1-NEXT: [4,2] . DeE-------R. . addq $32, %r8
208 # ZNVER1-NEXT: [4,3] . D=eE------R. . cmpl %edi, %edx
209 # ZNVER1-NEXT: [5,0] . DeE------R. . addl $1, %edx
210 # ZNVER1-NEXT: [5,1] . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
211 # ZNVER1-NEXT: [5,2] . DeE-------R . addq $32, %r8
212 # ZNVER1-NEXT: [5,3] . D=eE------R . cmpl %edi, %edx
213 # ZNVER1-NEXT: [6,0] . .DeE------R . addl $1, %edx
214 # ZNVER1-NEXT: [6,1] . .DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
215 # ZNVER1-NEXT: [6,2] . .DeE-------R . addq $32, %r8
216 # ZNVER1-NEXT: [6,3] . .D=eE------R . cmpl %edi, %edx
217 # ZNVER1-NEXT: [7,0] . . DeE------R . addl $1, %edx
218 # ZNVER1-NEXT: [7,1] . . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
219 # ZNVER1-NEXT: [7,2] . . DeE-------R . addq $32, %r8
220 # ZNVER1-NEXT: [7,3] . . D=eE------R . cmpl %edi, %edx
221 # ZNVER1-NEXT: [8,0] . . DeE------R . addl $1, %edx
222 # ZNVER1-NEXT: [8,1] . . DeeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
223 # ZNVER1-NEXT: [8,2] . . DeE-------R. addq $32, %r8
224 # ZNVER1-NEXT: [8,3] . . D=eE------R. cmpl %edi, %edx
225 # ZNVER1-NEXT: [9,0] . . DeE------R. addl $1, %edx
226 # ZNVER1-NEXT: [9,1] . . DeeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
227 # ZNVER1-NEXT: [9,2] . . DeE-------R addq $32, %r8
228 # ZNVER1-NEXT: [9,3] . . D=eE------R cmpl %edi, %edx
230 # ALL: Average Wait times (based on the timeline view):
231 # ALL-NEXT: [0]: Executions
232 # ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue
233 # ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
234 # ALL-NEXT: [3]: Average time elapsed from WB until retire stage
236 # ALL: [0] [1] [2] [3]
238 # BDWELL-NEXT: 0. 10 1.0 0.4 4.5 addl $1, %edx
239 # HASWELL-NEXT: 0. 10 1.0 0.4 5.4 addl $1, %edx
240 # SKYLAKE-NEXT: 0. 10 1.9 0.1 5.4 addl $1, %edx
241 # ZNVER1-NEXT: 0. 10 1.0 0.1 5.4 addl $1, %edx
243 # ALL-NEXT: 1. 10 1.0 0.1 0.0 vpaddd (%r8), %ymm0, %ymm0
245 # BDWELL-NEXT: 2. 10 1.0 0.4 5.7 addq $32, %r8
246 # BDWELL-NEXT: 3. 10 1.0 0.0 5.3 cmpl %edi, %edx
248 # HASWELL-NEXT: 2. 10 1.0 0.4 6.7 addq $32, %r8
249 # HASWELL-NEXT: 3. 10 1.0 0.0 6.3 cmpl %edi, %edx
251 # SKYLAKE-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
252 # SKYLAKE-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
254 # ZNVER1-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
255 # ZNVER1-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx