1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-u74 -mattr=+zba,+zbb -timeline \
3 # RUN: -timeline-max-cycles=1000 -iterations=1 < %s | FileCheck %s
105 # CHECK: Iterations: 1
106 # CHECK-NEXT: Instructions: 91
107 # CHECK-NEXT: Total Cycles: 109
108 # CHECK-NEXT: Total uOps: 91
110 # CHECK: Dispatch Width: 2
111 # CHECK-NEXT: uOps Per Cycle: 0.83
112 # CHECK-NEXT: IPC: 0.83
113 # CHECK-NEXT: Block RThroughput: 45.5
115 # CHECK: Instruction Info:
116 # CHECK-NEXT: [1]: #uOps
117 # CHECK-NEXT: [2]: Latency
118 # CHECK-NEXT: [3]: RThroughput
119 # CHECK-NEXT: [4]: MayLoad
120 # CHECK-NEXT: [5]: MayStore
121 # CHECK-NEXT: [6]: HasSideEffects (U)
123 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
124 # CHECK-NEXT: 1 3 0.50 lui a0, 1
125 # CHECK-NEXT: 1 3 0.50 auipc a1, 1
126 # CHECK-NEXT: 1 3 0.50 add a0, a0, a1
127 # CHECK-NEXT: 1 3 0.50 addi a0, a0, 1
128 # CHECK-NEXT: 1 3 0.50 addw a0, a0, a0
129 # CHECK-NEXT: 1 3 0.50 addiw a0, a0, 1
130 # CHECK-NEXT: 1 3 0.50 sub a0, a0, a0
131 # CHECK-NEXT: 1 3 0.50 subw a0, a0, a0
132 # CHECK-NEXT: 1 3 0.50 and a0, a0, a0
133 # CHECK-NEXT: 1 3 0.50 andi a0, a0, 1
134 # CHECK-NEXT: 1 3 0.50 or a0, a0, a0
135 # CHECK-NEXT: 1 3 0.50 ori a0, a0, 1
136 # CHECK-NEXT: 1 3 0.50 xor a0, a0, a0
137 # CHECK-NEXT: 1 3 0.50 xori a0, a0, 1
138 # CHECK-NEXT: 1 3 0.50 sll a0, a0, a0
139 # CHECK-NEXT: 1 3 0.50 slli a0, a0, 1
140 # CHECK-NEXT: 1 3 0.50 sllw a0, a0, a0
141 # CHECK-NEXT: 1 3 0.50 slliw a0, a0, 1
142 # CHECK-NEXT: 1 3 0.50 srl a0, a0, a0
143 # CHECK-NEXT: 1 3 0.50 srli a0, a0, 1
144 # CHECK-NEXT: 1 3 0.50 srlw a0, a0, a0
145 # CHECK-NEXT: 1 3 0.50 srliw a0, a0, 1
146 # CHECK-NEXT: 1 3 0.50 sra a0, a0, a0
147 # CHECK-NEXT: 1 3 0.50 srai a0, a0, 1
148 # CHECK-NEXT: 1 3 0.50 sraw a0, a0, a0
149 # CHECK-NEXT: 1 3 0.50 sraiw a0, a0, 1
150 # CHECK-NEXT: 1 3 0.50 slt a0, a0, a0
151 # CHECK-NEXT: 1 3 0.50 slti a0, a0, 1
152 # CHECK-NEXT: 1 3 0.50 sltu a0, a0, a0
153 # CHECK-NEXT: 1 3 0.50 seqz a0, a0
154 # CHECK-NEXT: 1 3 1.00 mul a0, a0, a0
155 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
156 # CHECK-NEXT: 1 3 1.00 mulw a0, a0, a0
157 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
158 # CHECK-NEXT: 1 3 1.00 beq a0, a0, .Ltmp0
159 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
160 # CHECK-NEXT: 1 3 1.00 bne a0, a0, .Ltmp1
161 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
162 # CHECK-NEXT: 1 3 1.00 blt a0, a0, .Ltmp2
163 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
164 # CHECK-NEXT: 1 3 1.00 bltu a0, a0, .Ltmp3
165 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
166 # CHECK-NEXT: 1 3 1.00 bge a0, a0, .Ltmp4
167 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
168 # CHECK-NEXT: 1 3 1.00 bgeu a0, a0, .Ltmp5
169 # CHECK-NEXT: 1 3 0.50 add.uw a0, a0, a0
170 # CHECK-NEXT: 1 3 0.50 slli.uw a0, a0, 1
171 # CHECK-NEXT: 1 3 1.00 sh1add.uw a0, a0, a0
172 # CHECK-NEXT: 1 3 1.00 sh2add.uw a0, a0, a0
173 # CHECK-NEXT: 1 3 1.00 sh3add.uw a0, a0, a0
174 # CHECK-NEXT: 1 3 1.00 sh1add a0, a0, a0
175 # CHECK-NEXT: 1 3 1.00 sh2add a0, a0, a0
176 # CHECK-NEXT: 1 3 1.00 sh3add a0, a0, a0
177 # CHECK-NEXT: 1 3 0.50 andn a0, a0, a0
178 # CHECK-NEXT: 1 3 0.50 orn a0, a0, a0
179 # CHECK-NEXT: 1 3 0.50 xnor a0, a0, a0
180 # CHECK-NEXT: 1 3 0.50 sext.b a0, a0
181 # CHECK-NEXT: 1 3 0.50 sext.h a0, a0
182 # CHECK-NEXT: 1 3 0.50 zext.h a0, a0
183 # CHECK-NEXT: 1 3 0.50 min a0, a0, a0
184 # CHECK-NEXT: 1 3 0.50 minu a0, a0, a0
185 # CHECK-NEXT: 1 3 0.50 max a0, a0, a0
186 # CHECK-NEXT: 1 3 0.50 maxu a0, a0, a0
187 # CHECK-NEXT: 1 3 1.00 rol a0, a0, a0
188 # CHECK-NEXT: 1 3 1.00 ror a0, a0, a0
189 # CHECK-NEXT: 1 3 1.00 rori a0, a0, 1
190 # CHECK-NEXT: 1 3 1.00 clz a0, a0
191 # CHECK-NEXT: 1 3 1.00 clzw a0, a0
192 # CHECK-NEXT: 1 3 1.00 ctz a0, a0
193 # CHECK-NEXT: 1 3 1.00 ctzw a0, a0
194 # CHECK-NEXT: 1 3 1.00 cpop a0, a0
195 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
196 # CHECK-NEXT: 1 3 1.00 cpopw a0, a0
197 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
198 # CHECK-NEXT: 1 3 0.50 rev8 a0, a0
199 # CHECK-NEXT: 1 3 1.00 orc.b a0, a0
200 # CHECK-NEXT: 1 3 1.00 * lb a0, 0(a0)
201 # CHECK-NEXT: 1 3 0.50 add a0, a0, a0
202 # CHECK-NEXT: 1 3 1.00 * lh a0, 0(a0)
203 # CHECK-NEXT: 1 3 0.50 and a0, a0, a0
204 # CHECK-NEXT: 1 3 1.00 * lw a0, 0(a0)
205 # CHECK-NEXT: 1 3 0.50 or a0, a0, a0
206 # CHECK-NEXT: 1 3 1.00 * ld a0, 0(a0)
207 # CHECK-NEXT: 1 3 0.50 xor a0, a0, a0
208 # CHECK-NEXT: 1 3 1.00 * lbu a0, 0(a0)
209 # CHECK-NEXT: 1 3 0.50 addi a0, a0, 1
210 # CHECK-NEXT: 1 3 1.00 * lhu a0, 0(a0)
211 # CHECK-NEXT: 1 3 0.50 sub a0, a0, a0
212 # CHECK-NEXT: 1 3 1.00 * lwu a0, 0(a0)
213 # CHECK-NEXT: 1 3 0.50 addw a0, a0, a0
214 # CHECK-NEXT: 1 3 1.00 jr a0
217 # CHECK-NEXT: [0] - SiFive7FDiv
218 # CHECK-NEXT: [1] - SiFive7IDiv
219 # CHECK-NEXT: [2] - SiFive7PipeA
220 # CHECK-NEXT: [3] - SiFive7PipeB
221 # CHECK-NEXT: [4] - SiFive7PipeV
222 # CHECK-NEXT: [5] - SiFive7VA
223 # CHECK-NEXT: [6] - SiFive7VL
224 # CHECK-NEXT: [7] - SiFive7VS
226 # CHECK: Resource pressure per iteration:
227 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
228 # CHECK-NEXT: - - 39.00 52.00 - - - -
230 # CHECK: Resource pressure by instruction:
231 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
232 # CHECK-NEXT: - - - 1.00 - - - - lui a0, 1
233 # CHECK-NEXT: - - 1.00 - - - - - auipc a1, 1
234 # CHECK-NEXT: - - - 1.00 - - - - add a0, a0, a1
235 # CHECK-NEXT: - - 1.00 - - - - - addi a0, a0, 1
236 # CHECK-NEXT: - - - 1.00 - - - - addw a0, a0, a0
237 # CHECK-NEXT: - - 1.00 - - - - - addiw a0, a0, 1
238 # CHECK-NEXT: - - - 1.00 - - - - sub a0, a0, a0
239 # CHECK-NEXT: - - 1.00 - - - - - subw a0, a0, a0
240 # CHECK-NEXT: - - - 1.00 - - - - and a0, a0, a0
241 # CHECK-NEXT: - - 1.00 - - - - - andi a0, a0, 1
242 # CHECK-NEXT: - - - 1.00 - - - - or a0, a0, a0
243 # CHECK-NEXT: - - 1.00 - - - - - ori a0, a0, 1
244 # CHECK-NEXT: - - - 1.00 - - - - xor a0, a0, a0
245 # CHECK-NEXT: - - 1.00 - - - - - xori a0, a0, 1
246 # CHECK-NEXT: - - - 1.00 - - - - sll a0, a0, a0
247 # CHECK-NEXT: - - 1.00 - - - - - slli a0, a0, 1
248 # CHECK-NEXT: - - - 1.00 - - - - sllw a0, a0, a0
249 # CHECK-NEXT: - - 1.00 - - - - - slliw a0, a0, 1
250 # CHECK-NEXT: - - - 1.00 - - - - srl a0, a0, a0
251 # CHECK-NEXT: - - 1.00 - - - - - srli a0, a0, 1
252 # CHECK-NEXT: - - - 1.00 - - - - srlw a0, a0, a0
253 # CHECK-NEXT: - - 1.00 - - - - - srliw a0, a0, 1
254 # CHECK-NEXT: - - - 1.00 - - - - sra a0, a0, a0
255 # CHECK-NEXT: - - 1.00 - - - - - srai a0, a0, 1
256 # CHECK-NEXT: - - - 1.00 - - - - sraw a0, a0, a0
257 # CHECK-NEXT: - - 1.00 - - - - - sraiw a0, a0, 1
258 # CHECK-NEXT: - - - 1.00 - - - - slt a0, a0, a0
259 # CHECK-NEXT: - - 1.00 - - - - - slti a0, a0, 1
260 # CHECK-NEXT: - - - 1.00 - - - - sltu a0, a0, a0
261 # CHECK-NEXT: - - 1.00 - - - - - seqz a0, a0
262 # CHECK-NEXT: - - - 1.00 - - - - mul a0, a0, a0
263 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
264 # CHECK-NEXT: - - - 1.00 - - - - mulw a0, a0, a0
265 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
266 # CHECK-NEXT: - - - 1.00 - - - - beq a0, a0, .Ltmp0
267 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
268 # CHECK-NEXT: - - - 1.00 - - - - bne a0, a0, .Ltmp1
269 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
270 # CHECK-NEXT: - - - 1.00 - - - - blt a0, a0, .Ltmp2
271 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
272 # CHECK-NEXT: - - - 1.00 - - - - bltu a0, a0, .Ltmp3
273 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
274 # CHECK-NEXT: - - - 1.00 - - - - bge a0, a0, .Ltmp4
275 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
276 # CHECK-NEXT: - - - 1.00 - - - - bgeu a0, a0, .Ltmp5
277 # CHECK-NEXT: - - 1.00 - - - - - add.uw a0, a0, a0
278 # CHECK-NEXT: - - - 1.00 - - - - slli.uw a0, a0, 1
279 # CHECK-NEXT: - - - 1.00 - - - - sh1add.uw a0, a0, a0
280 # CHECK-NEXT: - - - 1.00 - - - - sh2add.uw a0, a0, a0
281 # CHECK-NEXT: - - - 1.00 - - - - sh3add.uw a0, a0, a0
282 # CHECK-NEXT: - - - 1.00 - - - - sh1add a0, a0, a0
283 # CHECK-NEXT: - - - 1.00 - - - - sh2add a0, a0, a0
284 # CHECK-NEXT: - - - 1.00 - - - - sh3add a0, a0, a0
285 # CHECK-NEXT: - - 1.00 - - - - - andn a0, a0, a0
286 # CHECK-NEXT: - - 1.00 - - - - - orn a0, a0, a0
287 # CHECK-NEXT: - - - 1.00 - - - - xnor a0, a0, a0
288 # CHECK-NEXT: - - 1.00 - - - - - sext.b a0, a0
289 # CHECK-NEXT: - - - 1.00 - - - - sext.h a0, a0
290 # CHECK-NEXT: - - 1.00 - - - - - zext.h a0, a0
291 # CHECK-NEXT: - - - 1.00 - - - - min a0, a0, a0
292 # CHECK-NEXT: - - 1.00 - - - - - minu a0, a0, a0
293 # CHECK-NEXT: - - - 1.00 - - - - max a0, a0, a0
294 # CHECK-NEXT: - - 1.00 - - - - - maxu a0, a0, a0
295 # CHECK-NEXT: - - - 1.00 - - - - rol a0, a0, a0
296 # CHECK-NEXT: - - - 1.00 - - - - ror a0, a0, a0
297 # CHECK-NEXT: - - - 1.00 - - - - rori a0, a0, 1
298 # CHECK-NEXT: - - - 1.00 - - - - clz a0, a0
299 # CHECK-NEXT: - - - 1.00 - - - - clzw a0, a0
300 # CHECK-NEXT: - - - 1.00 - - - - ctz a0, a0
301 # CHECK-NEXT: - - - 1.00 - - - - ctzw a0, a0
302 # CHECK-NEXT: - - - 1.00 - - - - cpop a0, a0
303 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
304 # CHECK-NEXT: - - - 1.00 - - - - cpopw a0, a0
305 # CHECK-NEXT: - - 1.00 - - - - - add a0, a0, a0
306 # CHECK-NEXT: - - 1.00 - - - - - rev8 a0, a0
307 # CHECK-NEXT: - - - 1.00 - - - - orc.b a0, a0
308 # CHECK-NEXT: - - 1.00 - - - - - lb a0, 0(a0)
309 # CHECK-NEXT: - - - 1.00 - - - - add a0, a0, a0
310 # CHECK-NEXT: - - 1.00 - - - - - lh a0, 0(a0)
311 # CHECK-NEXT: - - - 1.00 - - - - and a0, a0, a0
312 # CHECK-NEXT: - - 1.00 - - - - - lw a0, 0(a0)
313 # CHECK-NEXT: - - - 1.00 - - - - or a0, a0, a0
314 # CHECK-NEXT: - - 1.00 - - - - - ld a0, 0(a0)
315 # CHECK-NEXT: - - - 1.00 - - - - xor a0, a0, a0
316 # CHECK-NEXT: - - 1.00 - - - - - lbu a0, 0(a0)
317 # CHECK-NEXT: - - - 1.00 - - - - addi a0, a0, 1
318 # CHECK-NEXT: - - 1.00 - - - - - lhu a0, 0(a0)
319 # CHECK-NEXT: - - - 1.00 - - - - sub a0, a0, a0
320 # CHECK-NEXT: - - 1.00 - - - - - lwu a0, 0(a0)
321 # CHECK-NEXT: - - - 1.00 - - - - addw a0, a0, a0
322 # CHECK-NEXT: - - - 1.00 - - - - jr a0
324 # CHECK: Timeline view:
325 # CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789
326 # CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789 0123456789 012345678
328 # CHECK: [0,0] DeeE . . . . . . . . . . . . . . . . . . . . . . lui a0, 1
329 # CHECK-NEXT: [0,1] DeeE . . . . . . . . . . . . . . . . . . . . . . auipc a1, 1
330 # CHECK-NEXT: [0,2] .DeeE. . . . . . . . . . . . . . . . . . . . . . add a0, a0, a1
331 # CHECK-NEXT: [0,3] . DeeE . . . . . . . . . . . . . . . . . . . . . addi a0, a0, 1
332 # CHECK-NEXT: [0,4] . DeeE . . . . . . . . . . . . . . . . . . . . . addw a0, a0, a0
333 # CHECK-NEXT: [0,5] . DeeE . . . . . . . . . . . . . . . . . . . . . addiw a0, a0, 1
334 # CHECK-NEXT: [0,6] . DeeE . . . . . . . . . . . . . . . . . . . . . sub a0, a0, a0
335 # CHECK-NEXT: [0,7] . .DeeE. . . . . . . . . . . . . . . . . . . . . subw a0, a0, a0
336 # CHECK-NEXT: [0,8] . . DeeE . . . . . . . . . . . . . . . . . . . . and a0, a0, a0
337 # CHECK-NEXT: [0,9] . . DeeE . . . . . . . . . . . . . . . . . . . . andi a0, a0, 1
338 # CHECK-NEXT: [0,10] . . DeeE . . . . . . . . . . . . . . . . . . . . or a0, a0, a0
339 # CHECK-NEXT: [0,11] . . DeeE . . . . . . . . . . . . . . . . . . . . ori a0, a0, 1
340 # CHECK-NEXT: [0,12] . . .DeeE. . . . . . . . . . . . . . . . . . . . xor a0, a0, a0
341 # CHECK-NEXT: [0,13] . . . DeeE . . . . . . . . . . . . . . . . . . . xori a0, a0, 1
342 # CHECK-NEXT: [0,14] . . . DeeE . . . . . . . . . . . . . . . . . . . sll a0, a0, a0
343 # CHECK-NEXT: [0,15] . . . DeeE . . . . . . . . . . . . . . . . . . . slli a0, a0, 1
344 # CHECK-NEXT: [0,16] . . . DeeE . . . . . . . . . . . . . . . . . . . sllw a0, a0, a0
345 # CHECK-NEXT: [0,17] . . . .DeeE. . . . . . . . . . . . . . . . . . . slliw a0, a0, 1
346 # CHECK-NEXT: [0,18] . . . . DeeE . . . . . . . . . . . . . . . . . . srl a0, a0, a0
347 # CHECK-NEXT: [0,19] . . . . DeeE . . . . . . . . . . . . . . . . . . srli a0, a0, 1
348 # CHECK-NEXT: [0,20] . . . . DeeE . . . . . . . . . . . . . . . . . . srlw a0, a0, a0
349 # CHECK-NEXT: [0,21] . . . . DeeE . . . . . . . . . . . . . . . . . . srliw a0, a0, 1
350 # CHECK-NEXT: [0,22] . . . . .DeeE. . . . . . . . . . . . . . . . . . sra a0, a0, a0
351 # CHECK-NEXT: [0,23] . . . . . DeeE . . . . . . . . . . . . . . . . . srai a0, a0, 1
352 # CHECK-NEXT: [0,24] . . . . . DeeE . . . . . . . . . . . . . . . . . sraw a0, a0, a0
353 # CHECK-NEXT: [0,25] . . . . . DeeE . . . . . . . . . . . . . . . . . sraiw a0, a0, 1
354 # CHECK-NEXT: [0,26] . . . . . DeeE . . . . . . . . . . . . . . . . . slt a0, a0, a0
355 # CHECK-NEXT: [0,27] . . . . . .DeeE. . . . . . . . . . . . . . . . . slti a0, a0, 1
356 # CHECK-NEXT: [0,28] . . . . . . DeeE . . . . . . . . . . . . . . . . sltu a0, a0, a0
357 # CHECK-NEXT: [0,29] . . . . . . DeeE . . . . . . . . . . . . . . . . seqz a0, a0
358 # CHECK-NEXT: [0,30] . . . . . . .DeeE. . . . . . . . . . . . . . . . mul a0, a0, a0
359 # CHECK-NEXT: [0,31] . . . . . . . DeeE . . . . . . . . . . . . . . . add a0, a0, a0
360 # CHECK-NEXT: [0,32] . . . . . . . DeeE . . . . . . . . . . . . . . . mulw a0, a0, a0
361 # CHECK-NEXT: [0,33] . . . . . . . .DeeE. . . . . . . . . . . . . . . add a0, a0, a0
362 # CHECK-NEXT: [0,34] . . . . . . . . DeeE . . . . . . . . . . . . . . beq a0, a0, .Ltmp0
363 # CHECK-NEXT: [0,35] . . . . . . . . DeeE . . . . . . . . . . . . . . add a0, a0, a0
364 # CHECK-NEXT: [0,36] . . . . . . . . DeeE . . . . . . . . . . . . . . bne a0, a0, .Ltmp1
365 # CHECK-NEXT: [0,37] . . . . . . . . DeeE . . . . . . . . . . . . . . add a0, a0, a0
366 # CHECK-NEXT: [0,38] . . . . . . . . DeeE . . . . . . . . . . . . . . blt a0, a0, .Ltmp2
367 # CHECK-NEXT: [0,39] . . . . . . . . DeeE . . . . . . . . . . . . . . add a0, a0, a0
368 # CHECK-NEXT: [0,40] . . . . . . . . DeeE . . . . . . . . . . . . . . bltu a0, a0, .Ltmp3
369 # CHECK-NEXT: [0,41] . . . . . . . . DeeE . . . . . . . . . . . . . . add a0, a0, a0
370 # CHECK-NEXT: [0,42] . . . . . . . . .DeeE. . . . . . . . . . . . . . bge a0, a0, .Ltmp4
371 # CHECK-NEXT: [0,43] . . . . . . . . .DeeE. . . . . . . . . . . . . . add a0, a0, a0
372 # CHECK-NEXT: [0,44] . . . . . . . . . DeeE . . . . . . . . . . . . . bgeu a0, a0, .Ltmp5
373 # CHECK-NEXT: [0,45] . . . . . . . . . DeeE . . . . . . . . . . . . . add.uw a0, a0, a0
374 # CHECK-NEXT: [0,46] . . . . . . . . . DeeE . . . . . . . . . . . . . slli.uw a0, a0, 1
375 # CHECK-NEXT: [0,47] . . . . . . . . . DeeE . . . . . . . . . . . . . sh1add.uw a0, a0, a0
376 # CHECK-NEXT: [0,48] . . . . . . . . . DeeE . . . . . . . . . . . . . sh2add.uw a0, a0, a0
377 # CHECK-NEXT: [0,49] . . . . . . . . . .DeeE. . . . . . . . . . . . . sh3add.uw a0, a0, a0
378 # CHECK-NEXT: [0,50] . . . . . . . . . . DeeE . . . . . . . . . . . . sh1add a0, a0, a0
379 # CHECK-NEXT: [0,51] . . . . . . . . . . DeeE . . . . . . . . . . . . sh2add a0, a0, a0
380 # CHECK-NEXT: [0,52] . . . . . . . . . . DeeE . . . . . . . . . . . . sh3add a0, a0, a0
381 # CHECK-NEXT: [0,53] . . . . . . . . . . DeeE . . . . . . . . . . . . andn a0, a0, a0
382 # CHECK-NEXT: [0,54] . . . . . . . . . . .DeeE. . . . . . . . . . . . orn a0, a0, a0
383 # CHECK-NEXT: [0,55] . . . . . . . . . . . DeeE . . . . . . . . . . . xnor a0, a0, a0
384 # CHECK-NEXT: [0,56] . . . . . . . . . . . DeeE . . . . . . . . . . . sext.b a0, a0
385 # CHECK-NEXT: [0,57] . . . . . . . . . . . DeeE . . . . . . . . . . . sext.h a0, a0
386 # CHECK-NEXT: [0,58] . . . . . . . . . . . DeeE . . . . . . . . . . . zext.h a0, a0
387 # CHECK-NEXT: [0,59] . . . . . . . . . . . .DeeE. . . . . . . . . . . min a0, a0, a0
388 # CHECK-NEXT: [0,60] . . . . . . . . . . . . DeeE . . . . . . . . . . minu a0, a0, a0
389 # CHECK-NEXT: [0,61] . . . . . . . . . . . . DeeE . . . . . . . . . . max a0, a0, a0
390 # CHECK-NEXT: [0,62] . . . . . . . . . . . . DeeE . . . . . . . . . . maxu a0, a0, a0
391 # CHECK-NEXT: [0,63] . . . . . . . . . . . . DeeE . . . . . . . . . . rol a0, a0, a0
392 # CHECK-NEXT: [0,64] . . . . . . . . . . . . .DeeE. . . . . . . . . . ror a0, a0, a0
393 # CHECK-NEXT: [0,65] . . . . . . . . . . . . . DeeE . . . . . . . . . rori a0, a0, 1
394 # CHECK-NEXT: [0,66] . . . . . . . . . . . . . DeeE . . . . . . . . . clz a0, a0
395 # CHECK-NEXT: [0,67] . . . . . . . . . . . . . DeeE . . . . . . . . . clzw a0, a0
396 # CHECK-NEXT: [0,68] . . . . . . . . . . . . . DeeE . . . . . . . . . ctz a0, a0
397 # CHECK-NEXT: [0,69] . . . . . . . . . . . . . .DeeE. . . . . . . . . ctzw a0, a0
398 # CHECK-NEXT: [0,70] . . . . . . . . . . . . . . DeeE . . . . . . . . cpop a0, a0
399 # CHECK-NEXT: [0,71] . . . . . . . . . . . . . . DeeE . . . . . . . . add a0, a0, a0
400 # CHECK-NEXT: [0,72] . . . . . . . . . . . . . . . DeeE . . . . . . . cpopw a0, a0
401 # CHECK-NEXT: [0,73] . . . . . . . . . . . . . . . DeeE . . . . . . . add a0, a0, a0
402 # CHECK-NEXT: [0,74] . . . . . . . . . . . . . . . DeeE . . . . . . . rev8 a0, a0
403 # CHECK-NEXT: [0,75] . . . . . . . . . . . . . . . .DeeE. . . . . . . orc.b a0, a0
404 # CHECK-NEXT: [0,76] . . . . . . . . . . . . . . . . DeeE . . . . . . lb a0, 0(a0)
405 # CHECK-NEXT: [0,77] . . . . . . . . . . . . . . . . DeeE . . . . . . add a0, a0, a0
406 # CHECK-NEXT: [0,78] . . . . . . . . . . . . . . . . . DeeE . . . . . lh a0, 0(a0)
407 # CHECK-NEXT: [0,79] . . . . . . . . . . . . . . . . . DeeE . . . . . and a0, a0, a0
408 # CHECK-NEXT: [0,80] . . . . . . . . . . . . . . . . . . DeeE . . . . lw a0, 0(a0)
409 # CHECK-NEXT: [0,81] . . . . . . . . . . . . . . . . . . DeeE . . . . or a0, a0, a0
410 # CHECK-NEXT: [0,82] . . . . . . . . . . . . . . . . . . .DeeE. . . . ld a0, 0(a0)
411 # CHECK-NEXT: [0,83] . . . . . . . . . . . . . . . . . . . DeeE . . . xor a0, a0, a0
412 # CHECK-NEXT: [0,84] . . . . . . . . . . . . . . . . . . . DeeE . . . lbu a0, 0(a0)
413 # CHECK-NEXT: [0,85] . . . . . . . . . . . . . . . . . . . .DeeE. . . addi a0, a0, 1
414 # CHECK-NEXT: [0,86] . . . . . . . . . . . . . . . . . . . . DeeE . . lhu a0, 0(a0)
415 # CHECK-NEXT: [0,87] . . . . . . . . . . . . . . . . . . . . DeeE . . sub a0, a0, a0
416 # CHECK-NEXT: [0,88] . . . . . . . . . . . . . . . . . . . . . DeeE . lwu a0, 0(a0)
417 # CHECK-NEXT: [0,89] . . . . . . . . . . . . . . . . . . . . . DeeE. addw a0, a0, a0
418 # CHECK-NEXT: [0,90] . . . . . . . . . . . . . . . . . . . . . DeeE jr a0
420 # CHECK: Average Wait times (based on the timeline view):
421 # CHECK-NEXT: [0]: Executions
422 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
423 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
424 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
426 # CHECK: [0] [1] [2] [3]
427 # CHECK-NEXT: 0. 1 0.0 0.0 0.0 lui a0, 1
428 # CHECK-NEXT: 1. 1 0.0 0.0 0.0 auipc a1, 1
429 # CHECK-NEXT: 2. 1 0.0 0.0 0.0 add a0, a0, a1
430 # CHECK-NEXT: 3. 1 0.0 0.0 0.0 addi a0, a0, 1
431 # CHECK-NEXT: 4. 1 0.0 0.0 0.0 addw a0, a0, a0
432 # CHECK-NEXT: 5. 1 0.0 0.0 0.0 addiw a0, a0, 1
433 # CHECK-NEXT: 6. 1 0.0 0.0 0.0 sub a0, a0, a0
434 # CHECK-NEXT: 7. 1 0.0 0.0 0.0 subw a0, a0, a0
435 # CHECK-NEXT: 8. 1 0.0 0.0 0.0 and a0, a0, a0
436 # CHECK-NEXT: 9. 1 0.0 0.0 0.0 andi a0, a0, 1
437 # CHECK-NEXT: 10. 1 0.0 0.0 0.0 or a0, a0, a0
438 # CHECK-NEXT: 11. 1 0.0 0.0 0.0 ori a0, a0, 1
439 # CHECK-NEXT: 12. 1 0.0 0.0 0.0 xor a0, a0, a0
440 # CHECK-NEXT: 13. 1 0.0 0.0 0.0 xori a0, a0, 1
441 # CHECK-NEXT: 14. 1 0.0 0.0 0.0 sll a0, a0, a0
442 # CHECK-NEXT: 15. 1 0.0 0.0 0.0 slli a0, a0, 1
443 # CHECK-NEXT: 16. 1 0.0 0.0 0.0 sllw a0, a0, a0
444 # CHECK-NEXT: 17. 1 0.0 0.0 0.0 slliw a0, a0, 1
445 # CHECK-NEXT: 18. 1 0.0 0.0 0.0 srl a0, a0, a0
446 # CHECK-NEXT: 19. 1 0.0 0.0 0.0 srli a0, a0, 1
447 # CHECK-NEXT: 20. 1 0.0 0.0 0.0 srlw a0, a0, a0
448 # CHECK-NEXT: 21. 1 0.0 0.0 0.0 srliw a0, a0, 1
449 # CHECK-NEXT: 22. 1 0.0 0.0 0.0 sra a0, a0, a0
450 # CHECK-NEXT: 23. 1 0.0 0.0 0.0 srai a0, a0, 1
451 # CHECK-NEXT: 24. 1 0.0 0.0 0.0 sraw a0, a0, a0
452 # CHECK-NEXT: 25. 1 0.0 0.0 0.0 sraiw a0, a0, 1
453 # CHECK-NEXT: 26. 1 0.0 0.0 0.0 slt a0, a0, a0
454 # CHECK-NEXT: 27. 1 0.0 0.0 0.0 slti a0, a0, 1
455 # CHECK-NEXT: 28. 1 0.0 0.0 0.0 sltu a0, a0, a0
456 # CHECK-NEXT: 29. 1 0.0 0.0 0.0 seqz a0, a0
457 # CHECK-NEXT: 30. 1 0.0 0.0 0.0 mul a0, a0, a0
458 # CHECK-NEXT: 31. 1 0.0 0.0 0.0 add a0, a0, a0
459 # CHECK-NEXT: 32. 1 0.0 0.0 0.0 mulw a0, a0, a0
460 # CHECK-NEXT: 33. 1 0.0 0.0 0.0 add a0, a0, a0
461 # CHECK-NEXT: 34. 1 0.0 0.0 0.0 beq a0, a0, .Ltmp0
462 # CHECK-NEXT: 35. 1 0.0 0.0 0.0 add a0, a0, a0
463 # CHECK-NEXT: 36. 1 0.0 0.0 0.0 bne a0, a0, .Ltmp1
464 # CHECK-NEXT: 37. 1 0.0 0.0 0.0 add a0, a0, a0
465 # CHECK-NEXT: 38. 1 0.0 0.0 0.0 blt a0, a0, .Ltmp2
466 # CHECK-NEXT: 39. 1 0.0 0.0 0.0 add a0, a0, a0
467 # CHECK-NEXT: 40. 1 0.0 0.0 0.0 bltu a0, a0, .Ltmp3
468 # CHECK-NEXT: 41. 1 0.0 0.0 0.0 add a0, a0, a0
469 # CHECK-NEXT: 42. 1 0.0 0.0 0.0 bge a0, a0, .Ltmp4
470 # CHECK-NEXT: 43. 1 0.0 0.0 0.0 add a0, a0, a0
471 # CHECK-NEXT: 44. 1 0.0 0.0 0.0 bgeu a0, a0, .Ltmp5
472 # CHECK-NEXT: 45. 1 0.0 0.0 0.0 add.uw a0, a0, a0
473 # CHECK-NEXT: 46. 1 0.0 0.0 0.0 slli.uw a0, a0, 1
474 # CHECK-NEXT: 47. 1 0.0 0.0 0.0 sh1add.uw a0, a0, a0
475 # CHECK-NEXT: 48. 1 0.0 0.0 0.0 sh2add.uw a0, a0, a0
476 # CHECK-NEXT: 49. 1 0.0 0.0 0.0 sh3add.uw a0, a0, a0
477 # CHECK-NEXT: 50. 1 0.0 0.0 0.0 sh1add a0, a0, a0
478 # CHECK-NEXT: 51. 1 0.0 0.0 0.0 sh2add a0, a0, a0
479 # CHECK-NEXT: 52. 1 0.0 0.0 0.0 sh3add a0, a0, a0
480 # CHECK-NEXT: 53. 1 0.0 0.0 0.0 andn a0, a0, a0
481 # CHECK-NEXT: 54. 1 0.0 0.0 0.0 orn a0, a0, a0
482 # CHECK-NEXT: 55. 1 0.0 0.0 0.0 xnor a0, a0, a0
483 # CHECK-NEXT: 56. 1 0.0 0.0 0.0 sext.b a0, a0
484 # CHECK-NEXT: 57. 1 0.0 0.0 0.0 sext.h a0, a0
485 # CHECK-NEXT: 58. 1 0.0 0.0 0.0 zext.h a0, a0
486 # CHECK-NEXT: 59. 1 0.0 0.0 0.0 min a0, a0, a0
487 # CHECK-NEXT: 60. 1 0.0 0.0 0.0 minu a0, a0, a0
488 # CHECK-NEXT: 61. 1 0.0 0.0 0.0 max a0, a0, a0
489 # CHECK-NEXT: 62. 1 0.0 0.0 0.0 maxu a0, a0, a0
490 # CHECK-NEXT: 63. 1 0.0 0.0 0.0 rol a0, a0, a0
491 # CHECK-NEXT: 64. 1 0.0 0.0 0.0 ror a0, a0, a0
492 # CHECK-NEXT: 65. 1 0.0 0.0 0.0 rori a0, a0, 1
493 # CHECK-NEXT: 66. 1 0.0 0.0 0.0 clz a0, a0
494 # CHECK-NEXT: 67. 1 0.0 0.0 0.0 clzw a0, a0
495 # CHECK-NEXT: 68. 1 0.0 0.0 0.0 ctz a0, a0
496 # CHECK-NEXT: 69. 1 0.0 0.0 0.0 ctzw a0, a0
497 # CHECK-NEXT: 70. 1 0.0 0.0 0.0 cpop a0, a0
498 # CHECK-NEXT: 71. 1 0.0 0.0 0.0 add a0, a0, a0
499 # CHECK-NEXT: 72. 1 0.0 0.0 0.0 cpopw a0, a0
500 # CHECK-NEXT: 73. 1 0.0 0.0 0.0 add a0, a0, a0
501 # CHECK-NEXT: 74. 1 0.0 0.0 0.0 rev8 a0, a0
502 # CHECK-NEXT: 75. 1 0.0 0.0 0.0 orc.b a0, a0
503 # CHECK-NEXT: 76. 1 0.0 0.0 0.0 lb a0, 0(a0)
504 # CHECK-NEXT: 77. 1 0.0 0.0 0.0 add a0, a0, a0
505 # CHECK-NEXT: 78. 1 0.0 0.0 0.0 lh a0, 0(a0)
506 # CHECK-NEXT: 79. 1 0.0 0.0 0.0 and a0, a0, a0
507 # CHECK-NEXT: 80. 1 0.0 0.0 0.0 lw a0, 0(a0)
508 # CHECK-NEXT: 81. 1 0.0 0.0 0.0 or a0, a0, a0
509 # CHECK-NEXT: 82. 1 0.0 0.0 0.0 ld a0, 0(a0)
510 # CHECK-NEXT: 83. 1 0.0 0.0 0.0 xor a0, a0, a0
511 # CHECK-NEXT: 84. 1 0.0 0.0 0.0 lbu a0, 0(a0)
512 # CHECK-NEXT: 85. 1 0.0 0.0 0.0 addi a0, a0, 1
513 # CHECK-NEXT: 86. 1 0.0 0.0 0.0 lhu a0, 0(a0)
514 # CHECK-NEXT: 87. 1 0.0 0.0 0.0 sub a0, a0, a0
515 # CHECK-NEXT: 88. 1 0.0 0.0 0.0 lwu a0, 0(a0)
516 # CHECK-NEXT: 89. 1 0.0 0.0 0.0 addw a0, a0, a0
517 # CHECK-NEXT: 90. 1 0.0 0.0 0.0 jr a0
518 # CHECK-NEXT: 1 0.0 0.0 0.0 <total>