1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=armv8 -mcpu=cortex-a57 -instruction-tables < %s | FileCheck %s
16 ldr
r3, [r8, r1, lsl
#2]
17 ldr
r3, [r8, r1, asr
#2]
21 ldr
r1, [r0, r2, lsr
#3]!
24 ldr
r3, [r8, -r2, lsl
#15]
25 ldr
r1, [r5], r3, asr
#15
34 ldrb
r3, [r5, r2, lsl
#2]!
35 ldrb
r3, [r5, r2, asr
#2]!
39 ldrb
r7, [r12, -r1, lsl
#15]
40 ldrb
r5, [r2], r9, asr
#15
44 ldrbt
r1, [r2], -r6, lsl
#12
47 ldrd
r0, r1, [r5, -r2]
48 ldrd
r8, r9, [r2, #15]
49 ldrd
r2, r3, [r9, #32]!
53 ldrd
r2, r3, [r8], #-0
55 ldrd
r4, r5, [r7, r2]!
56 ldrd
r0, r1, [r8], r12
57 ldrd
r0, r1, [r8], -r12
98 ldm
r2, {r1, r2, r4, r5, r6}
99 ldmia
r2, {r1, r2, r4, r5, r6}
100 ldmia
r2, {r1, r3, r4, r5, r6}
104 ldmib
r2, {r1, r3, r5}
105 ldmib
r2, {r1, r2, r5}
108 ldmia
r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15}
109 ldmia
r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15}
118 str
r7, [r1, r6, lsl
#2]!
122 str
r3, [r4, -r2, lsl
#2]
123 str
r2, [r7], r3, asr
#24
135 strb
r7, [r12, -r3, lsl
#5]
136 strb sp
, [r7], r2, asr
#12
140 strbt
r3, [r8], -r2, lsl
#3
142 strd
r2, r3, [r6, #1]
143 strd
r2, r3, [r6, r2]
144 strd
r2, r3, [r6, -r2]
145 strd
r2, r3, [r7, #22]!
146 strd
r4, r5, [r8], #7
147 strd
r4, r5, [sp
], #0
148 strd
r6, r7, [lr], #0
149 strd
r6, r7, [r9], #-0
150 strd
r8, r9, [r4, r1]
151 strd
r6, r7, [r3, r9]!
152 strd
r6, r7, [r5], r8
153 strd
r4, r5, [r12], -r10
168 # CHECK: Instruction Info:
169 # CHECK-NEXT: [1]: #uOps
170 # CHECK-NEXT: [2]: Latency
171 # CHECK-NEXT: [3]: RThroughput
172 # CHECK-NEXT: [4]: MayLoad
173 # CHECK-NEXT: [5]: MayStore
174 # CHECK-NEXT: [6]: HasSideEffects (U)
176 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
177 # CHECK-NEXT: 1 4 1.00 * * pld [pc, #8]
178 # CHECK-NEXT: 1 4 1.00 * * pldw [pc, #-128]
179 # CHECK-NEXT: 1 4 1.00 * * pldw [pc, r0, lsl #2]
180 # CHECK-NEXT: 2 5 1.00 * * pldw [pc, r0, lsl #4]
181 # CHECK-NEXT: 2 5 1.00 * * pldw [pc, -r0]
182 # CHECK-NEXT: 1 4 1.00 * ldr r5, [r7]
183 # CHECK-NEXT: 1 4 1.00 * ldr r6, [r3, #63]
184 # CHECK-NEXT: 2 4 1.00 * ldr r2, [r4, #4095]!
185 # CHECK-NEXT: 2 4 1.00 * ldr r1, [r2], #30
186 # CHECK-NEXT: 2 4 1.00 * ldr r3, [r1], #-30
187 # CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1]
188 # CHECK-NEXT: 1 4 1.00 * ldr r3, [r8, r1, lsl #2]
189 # CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, r1, asr #2]
190 # CHECK-NEXT: 2 5 1.00 * ldr r2, [r5, -r3]
191 # CHECK-NEXT: 2 4 1.00 * ldr r1, [r5, r9]!
192 # CHECK-NEXT: 2 4 1.00 * ldr r6, [r7, -r8]!
193 # CHECK-NEXT: 2 5 1.00 * ldr r1, [r0, r2, lsr #3]!
194 # CHECK-NEXT: 2 4 1.00 * ldr r5, [r9], r2
195 # CHECK-NEXT: 2 4 1.00 * ldr r4, [r3], -r6
196 # CHECK-NEXT: 2 5 1.00 * ldr r3, [r8, -r2, lsl #15]
197 # CHECK-NEXT: 2 4 1.00 * ldr r1, [r5], r3, asr #15
198 # CHECK-NEXT: 1 4 1.00 * ldrb r3, [r8]
199 # CHECK-NEXT: 1 4 1.00 * ldrb r1, [sp, #63]
200 # CHECK-NEXT: 2 4 1.00 * ldrb r9, [r3, #4095]!
201 # CHECK-NEXT: 2 4 1.00 * ldrb r8, [r1], #22
202 # CHECK-NEXT: 2 4 1.00 * ldrb r2, [r7], #-19
203 # CHECK-NEXT: 1 4 1.00 * ldrb r9, [r8, r5]
204 # CHECK-NEXT: 2 5 1.00 * ldrb r1, [r5, -r1]
205 # CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2]!
206 # CHECK-NEXT: 2 4 1.00 * ldrb r3, [r5, r2, lsl #2]!
207 # CHECK-NEXT: 2 5 1.00 * ldrb r3, [r5, r2, asr #2]!
208 # CHECK-NEXT: 2 4 1.00 * ldrb r6, [r9, -r3]!
209 # CHECK-NEXT: 2 4 1.00 * ldrb r2, [r1], r4
210 # CHECK-NEXT: 2 4 1.00 * ldrb r8, [r4], -r5
211 # CHECK-NEXT: 2 5 1.00 * ldrb r7, [r12, -r1, lsl #15]
212 # CHECK-NEXT: 2 4 1.00 * ldrb r5, [r2], r9, asr #15
213 # CHECK-NEXT: 2 4 1.00 * ldrbt r3, [r1], #4
214 # CHECK-NEXT: 2 4 1.00 * ldrbt r2, [r8], #-8
215 # CHECK-NEXT: 2 4 1.00 * ldrbt r8, [r7], r6
216 # CHECK-NEXT: 3 4 1.00 * ldrbt r1, [r2], -r6, lsl #12
217 # CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5]
218 # CHECK-NEXT: 2 4 2.00 * ldrd r0, r1, [r5, r2]
219 # CHECK-NEXT: 4 5 2.00 * ldrd r0, r1, [r5, -r2]
220 # CHECK-NEXT: 2 4 2.00 * ldrd r8, r9, [r2, #15]
221 # CHECK-NEXT: 4 5 2.00 * ldrd r2, r3, [r9, #32]!
222 # CHECK-NEXT: 4 4 2.00 * ldrd r6, r7, [r1], #8
223 # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0
224 # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #0
225 # CHECK-NEXT: 4 4 2.00 * ldrd r2, r3, [r8], #-0
226 # CHECK-NEXT: 2 4 2.00 * ldrd r4, r5, [r1, r3]
227 # CHECK-NEXT: 4 4 2.00 * ldrd r4, r5, [r7, r2]!
228 # CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], r12
229 # CHECK-NEXT: 4 4 2.00 * ldrd r0, r1, [r8], -r12
230 # CHECK-NEXT: 1 4 1.00 * ldrh r3, [r4]
231 # CHECK-NEXT: 1 4 1.00 * ldrh r2, [r7, #4]
232 # CHECK-NEXT: 1 4 1.00 * ldrh r1, [r8, #64]!
233 # CHECK-NEXT: 2 4 1.00 * ldrh r12, [sp], #4
234 # CHECK-NEXT: 1 4 1.00 * ldrh r6, [r5, r4]
235 # CHECK-NEXT: 2 5 1.00 * ldrh r6, [r5, -r4]
236 # CHECK-NEXT: 1 4 1.00 * ldrh r3, [r8, r11]!
237 # CHECK-NEXT: 1 4 1.00 * ldrh r1, [r2, -r1]!
238 # CHECK-NEXT: 2 4 1.00 * ldrh r9, [r7], r2
239 # CHECK-NEXT: 2 4 1.00 * ldrh r4, [r3], -r2
240 # CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], #128
241 # CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], #-75
242 # CHECK-NEXT: 2 4 1.00 * ldrht r9, [r7], r2
243 # CHECK-NEXT: 2 4 1.00 * ldrht r4, [r3], -r2
244 # CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r4]
245 # CHECK-NEXT: 1 4 1.00 * ldrsb r2, [r7, #17]
246 # CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r8, #255]!
247 # CHECK-NEXT: 2 4 1.00 * ldrsb r12, [sp], #9
248 # CHECK-NEXT: 1 4 1.00 * ldrsb r6, [r5, r4]
249 # CHECK-NEXT: 1 4 1.00 * ldrsb r3, [r8, r11]!
250 # CHECK-NEXT: 1 4 1.00 * ldrsb r1, [r2, -r1]!
251 # CHECK-NEXT: 2 4 1.00 * ldrsb r9, [r7], r2
252 # CHECK-NEXT: 2 4 1.00 * ldrsb r4, [r3], -r2
253 # CHECK-NEXT: 2 4 1.00 * ldrsbt r5, [r6], #1
254 # CHECK-NEXT: 2 4 1.00 * ldrsbt r3, [r8], #-12
255 # CHECK-NEXT: 2 4 1.00 * ldrsbt r8, [r9], r5
256 # CHECK-NEXT: 2 4 1.00 * ldrsbt r2, [r1], -r4
257 # CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r9]
258 # CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r5, #7]
259 # CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r6, #55]!
260 # CHECK-NEXT: 2 4 1.00 * ldrsh r2, [r7], #-9
261 # CHECK-NEXT: 1 4 1.00 * ldrsh r3, [r1, r5]
262 # CHECK-NEXT: 1 4 1.00 * ldrsh r4, [r6, r1]!
263 # CHECK-NEXT: 1 4 1.00 * ldrsh r5, [r3, -r6]!
264 # CHECK-NEXT: 2 4 1.00 * ldrsh r6, [r9], r8
265 # CHECK-NEXT: 2 4 1.00 * ldrsh r7, [r8], -r3
266 # CHECK-NEXT: 2 4 1.00 * ldrsht r5, [r6], #1
267 # CHECK-NEXT: 2 4 1.00 * ldrsht r3, [r8], #-12
268 # CHECK-NEXT: 2 4 1.00 * ldrsht r8, [r9], r5
269 # CHECK-NEXT: 2 4 1.00 * ldrsht r2, [r1], -r4
270 # CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6}
271 # CHECK-NEXT: 12 6 6.00 * ldm r2, {r1, r2, r4, r5, r6}
272 # CHECK-NEXT: 6 5 6.00 * ldm r2, {r1, r3, r4, r5, r6}
273 # CHECK-NEXT: 4 4 2.00 * ldmib r2, {r1, r2}
274 # CHECK-NEXT: 4 4 2.00 * ldmdb r2, {r1, r2}
275 # CHECK-NEXT: 2 3 2.00 * ldmib r2, {r1, r3}
276 # CHECK-NEXT: 4 4 4.00 * ldmib r2, {r1, r3, r5}
277 # CHECK-NEXT: 8 5 4.00 * ldmib r2, {r1, r2, r5}
278 # CHECK-NEXT: 4 4 2.00 * ldmdbeq r2, {r1, r2}
279 # CHECK-NEXT: 2 3 2.00 * ldmibeq r2, {r1, r3}
280 # CHECK-NEXT: 16 10 16.00 * ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc}
281 # CHECK-NEXT: 32 11 16.00 * ldm r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc}
282 # CHECK-NEXT: 1 1 1.00 * str r8, [r12]
283 # CHECK-NEXT: 1 1 1.00 * str r7, [r1, #12]
284 # CHECK-NEXT: 2 1 1.00 * str r3, [r5, #40]!
285 # CHECK-NEXT: 2 1 1.00 * str r9, [sp], #4095
286 # CHECK-NEXT: 2 1 1.00 * str r1, [r7], #-128
287 # CHECK-NEXT: 1 1 1.00 * str r9, [r6, r3]
288 # CHECK-NEXT: 2 3 1.00 * str r8, [r0, -r2]
289 # CHECK-NEXT: 2 1 1.00 * str r7, [r1, r6]!
290 # CHECK-NEXT: 2 2 1.00 * str r7, [r1, r6, lsl #2]!
291 # CHECK-NEXT: 2 3 1.00 * str r6, [sp, -r1]!
292 # CHECK-NEXT: 2 2 1.00 * str r5, [r3], r9
293 # CHECK-NEXT: 2 2 1.00 * str r4, [r2], -r5
294 # CHECK-NEXT: 2 3 1.00 * str r3, [r4, -r2, lsl #2]
295 # CHECK-NEXT: 2 2 1.00 * str r2, [r7], r3, asr #24
296 # CHECK-NEXT: 1 1 1.00 * strb r9, [r2]
297 # CHECK-NEXT: 1 1 1.00 * strb r7, [r1, #3]
298 # CHECK-NEXT: 2 1 1.00 * strb r6, [r4, #405]!
299 # CHECK-NEXT: 2 1 1.00 * strb r5, [r7], #72
300 # CHECK-NEXT: 2 1 1.00 * strb r1, [sp], #-1
301 # CHECK-NEXT: 1 1 1.00 * strb r1, [r2, r9]
302 # CHECK-NEXT: 2 3 1.00 * strb r2, [r3, -r8]
303 # CHECK-NEXT: 2 1 1.00 * strb r3, [r4, r7]!
304 # CHECK-NEXT: 2 3 1.00 * strb r4, [r5, -r6]!
305 # CHECK-NEXT: 2 2 1.00 * strb r5, [r6], r5
306 # CHECK-NEXT: 2 2 1.00 * strb r6, [r2], -r4
307 # CHECK-NEXT: 2 3 1.00 * strb r7, [r12, -r3, lsl #5]
308 # CHECK-NEXT: 2 2 1.00 * strb sp, [r7], r2, asr #12
309 # CHECK-NEXT: 2 1 1.00 U strbt r6, [r2], #12
310 # CHECK-NEXT: 2 1 1.00 U strbt r5, [r6], #-13
311 # CHECK-NEXT: 2 2 1.00 U strbt r4, [r9], r5
312 # CHECK-NEXT: 2 2 1.00 U strbt r3, [r8], -r2, lsl #3
313 # CHECK-NEXT: 1 1 1.00 * strd r0, r1, [r4]
314 # CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, #1]
315 # CHECK-NEXT: 1 1 1.00 * strd r2, r3, [r6, r2]
316 # CHECK-NEXT: 2 3 1.00 * strd r2, r3, [r6, -r2]
317 # CHECK-NEXT: 2 1 1.00 * strd r2, r3, [r7, #22]!
318 # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r8], #7
319 # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [sp], #0
320 # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [lr], #0
321 # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r9], #-0
322 # CHECK-NEXT: 1 1 1.00 * strd r8, r9, [r4, r1]
323 # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r3, r9]!
324 # CHECK-NEXT: 2 1 1.00 * strd r6, r7, [r5], r8
325 # CHECK-NEXT: 2 1 1.00 * strd r4, r5, [r12], -r10
326 # CHECK-NEXT: 1 1 1.00 * strh r3, [r4]
327 # CHECK-NEXT: 1 1 1.00 * strh r2, [r7, #4]
328 # CHECK-NEXT: 2 1 1.00 U strh r1, [r8, #64]!
329 # CHECK-NEXT: 2 1 1.00 * strh r12, [sp], #4
330 # CHECK-NEXT: 1 1 1.00 * strh r6, [r5, r4]
331 # CHECK-NEXT: 2 1 1.00 U strh r3, [r8, r11]!
332 # CHECK-NEXT: 2 1 1.00 U strh r1, [r2, -r1]!
333 # CHECK-NEXT: 2 1 1.00 * strh r9, [r7], r2
334 # CHECK-NEXT: 2 1 1.00 * strh r4, [r3], -r2
335 # CHECK-NEXT: 2 1 1.00 U strht r2, [r5], #76
336 # CHECK-NEXT: 2 1 1.00 U strht r8, [r1], #-25
337 # CHECK-NEXT: 2 1 1.00 U strht r5, [r3], r4
338 # CHECK-NEXT: 2 1 1.00 U strht r6, [r8], -r0
341 # CHECK-NEXT: [0] - A57UnitB
342 # CHECK-NEXT: [1.0] - A57UnitI
343 # CHECK-NEXT: [1.1] - A57UnitI
344 # CHECK-NEXT: [2] - A57UnitL
345 # CHECK-NEXT: [3] - A57UnitM
346 # CHECK-NEXT: [4] - A57UnitS
347 # CHECK-NEXT: [5] - A57UnitW
348 # CHECK-NEXT: [6] - A57UnitX
350 # CHECK: Resource pressure per iteration:
351 # CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6]
352 # CHECK-NEXT: - 71.50 71.50 174.00 10.00 57.00 - -
354 # CHECK: Resource pressure by instruction:
355 # CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] [6] Instructions:
356 # CHECK-NEXT: - - - 1.00 - - - - pld [pc, #8]
357 # CHECK-NEXT: - - - 1.00 - - - - pldw [pc, #-128]
358 # CHECK-NEXT: - - - 1.00 - - - - pldw [pc, r0, lsl #2]
359 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, r0, lsl #4]
360 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - pldw [pc, -r0]
361 # CHECK-NEXT: - - - 1.00 - - - - ldr r5, [r7]
362 # CHECK-NEXT: - - - 1.00 - - - - ldr r6, [r3, #63]
363 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r4, #4095]!
364 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r2], #30
365 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r1], #-30
366 # CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1]
367 # CHECK-NEXT: - - - 1.00 - - - - ldr r3, [r8, r1, lsl #2]
368 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, r1, asr #2]
369 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r2, [r5, -r3]
370 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5, r9]!
371 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r6, [r7, -r8]!
372 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r0, r2, lsr #3]!
373 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r5, [r9], r2
374 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r4, [r3], -r6
375 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r3, [r8, -r2, lsl #15]
376 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldr r1, [r5], r3, asr #15
377 # CHECK-NEXT: - - - 1.00 - - - - ldrb r3, [r8]
378 # CHECK-NEXT: - - - 1.00 - - - - ldrb r1, [sp, #63]
379 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r9, [r3, #4095]!
380 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r1], #22
381 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r7], #-19
382 # CHECK-NEXT: - - - 1.00 - - - - ldrb r9, [r8, r5]
383 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r1, [r5, -r1]
384 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2]!
385 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, lsl #2]!
386 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r3, [r5, r2, asr #2]!
387 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r6, [r9, -r3]!
388 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r2, [r1], r4
389 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r8, [r4], -r5
390 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r7, [r12, -r1, lsl #15]
391 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrb r5, [r2], r9, asr #15
392 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r3, [r1], #4
393 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r2, [r8], #-8
394 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrbt r8, [r7], r6
395 # CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - ldrbt r1, [r2], -r6, lsl #12
396 # CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5]
397 # CHECK-NEXT: - - - 2.00 - - - - ldrd r0, r1, [r5, r2]
398 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r5, -r2]
399 # CHECK-NEXT: - - - 2.00 - - - - ldrd r8, r9, [r2, #15]
400 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r9, #32]!
401 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r6, r7, [r1], #8
402 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0
403 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #0
404 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r2, r3, [r8], #-0
405 # CHECK-NEXT: - - - 2.00 - - - - ldrd r4, r5, [r1, r3]
406 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r4, r5, [r7, r2]!
407 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], r12
408 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldrd r0, r1, [r8], -r12
409 # CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r4]
410 # CHECK-NEXT: - - - 1.00 - - - - ldrh r2, [r7, #4]
411 # CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r8, #64]!
412 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r12, [sp], #4
413 # CHECK-NEXT: - - - 1.00 - - - - ldrh r6, [r5, r4]
414 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r6, [r5, -r4]
415 # CHECK-NEXT: - - - 1.00 - - - - ldrh r3, [r8, r11]!
416 # CHECK-NEXT: - - - 1.00 - - - - ldrh r1, [r2, -r1]!
417 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r9, [r7], r2
418 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrh r4, [r3], -r2
419 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], #128
420 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], #-75
421 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r9, [r7], r2
422 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrht r4, [r3], -r2
423 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r4]
424 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r2, [r7, #17]
425 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r8, #255]!
426 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r12, [sp], #9
427 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r6, [r5, r4]
428 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r3, [r8, r11]!
429 # CHECK-NEXT: - - - 1.00 - - - - ldrsb r1, [r2, -r1]!
430 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r9, [r7], r2
431 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsb r4, [r3], -r2
432 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r5, [r6], #1
433 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r3, [r8], #-12
434 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r8, [r9], r5
435 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsbt r2, [r1], -r4
436 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r9]
437 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r5, #7]
438 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r6, #55]!
439 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r2, [r7], #-9
440 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r3, [r1, r5]
441 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r4, [r6, r1]!
442 # CHECK-NEXT: - - - 1.00 - - - - ldrsh r5, [r3, -r6]!
443 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r6, [r9], r8
444 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsh r7, [r8], -r3
445 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r5, [r6], #1
446 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r3, [r8], #-12
447 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r8, [r9], r5
448 # CHECK-NEXT: - 0.50 0.50 1.00 - - - - ldrsht r2, [r1], -r4
449 # CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6}
450 # CHECK-NEXT: - 3.00 3.00 6.00 - - - - ldm r2, {r1, r2, r4, r5, r6}
451 # CHECK-NEXT: - - - 6.00 - - - - ldm r2, {r1, r3, r4, r5, r6}
452 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmib r2, {r1, r2}
453 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdb r2, {r1, r2}
454 # CHECK-NEXT: - - - 2.00 - - - - ldmib r2, {r1, r3}
455 # CHECK-NEXT: - - - 4.00 - - - - ldmib r2, {r1, r3, r5}
456 # CHECK-NEXT: - 2.00 2.00 4.00 - - - - ldmib r2, {r1, r2, r5}
457 # CHECK-NEXT: - 1.00 1.00 2.00 - - - - ldmdbeq r2, {r1, r2}
458 # CHECK-NEXT: - - - 2.00 - - - - ldmibeq r2, {r1, r3}
459 # CHECK-NEXT: - - - 16.00 - - - - ldm r2, {r0, r1, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc}
460 # CHECK-NEXT: - 8.00 8.00 16.00 - - - - ldm r2, {r0, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr, pc}
461 # CHECK-NEXT: - - - - - 1.00 - - str r8, [r12]
462 # CHECK-NEXT: - - - - - 1.00 - - str r7, [r1, #12]
463 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r5, #40]!
464 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r9, [sp], #4095
465 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r1, [r7], #-128
466 # CHECK-NEXT: - - - - - 1.00 - - str r9, [r6, r3]
467 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r8, [r0, -r2]
468 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r7, [r1, r6]!
469 # CHECK-NEXT: - - - - 1.00 1.00 - - str r7, [r1, r6, lsl #2]!
470 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r6, [sp, -r1]!
471 # CHECK-NEXT: - - - - 1.00 1.00 - - str r5, [r3], r9
472 # CHECK-NEXT: - - - - 1.00 1.00 - - str r4, [r2], -r5
473 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - str r3, [r4, -r2, lsl #2]
474 # CHECK-NEXT: - - - - 1.00 1.00 - - str r2, [r7], r3, asr #24
475 # CHECK-NEXT: - - - - - 1.00 - - strb r9, [r2]
476 # CHECK-NEXT: - - - - - 1.00 - - strb r7, [r1, #3]
477 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r6, [r4, #405]!
478 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r5, [r7], #72
479 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r1, [sp], #-1
480 # CHECK-NEXT: - - - - - 1.00 - - strb r1, [r2, r9]
481 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r2, [r3, -r8]
482 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r3, [r4, r7]!
483 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r4, [r5, -r6]!
484 # CHECK-NEXT: - - - - 1.00 1.00 - - strb r5, [r6], r5
485 # CHECK-NEXT: - - - - 1.00 1.00 - - strb r6, [r2], -r4
486 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strb r7, [r12, -r3, lsl #5]
487 # CHECK-NEXT: - - - - 1.00 1.00 - - strb sp, [r7], r2, asr #12
488 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r6, [r2], #12
489 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strbt r5, [r6], #-13
490 # CHECK-NEXT: - - - - 1.00 1.00 - - strbt r4, [r9], r5
491 # CHECK-NEXT: - - - - 1.00 1.00 - - strbt r3, [r8], -r2, lsl #3
492 # CHECK-NEXT: - - - - - 1.00 - - strd r0, r1, [r4]
493 # CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, #1]
494 # CHECK-NEXT: - - - - - 1.00 - - strd r2, r3, [r6, r2]
495 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r6, -r2]
496 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r2, r3, [r7, #22]!
497 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r8], #7
498 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [sp], #0
499 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [lr], #0
500 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r9], #-0
501 # CHECK-NEXT: - - - - - 1.00 - - strd r8, r9, [r4, r1]
502 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r3, r9]!
503 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r6, r7, [r5], r8
504 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strd r4, r5, [r12], -r10
505 # CHECK-NEXT: - - - - - 1.00 - - strh r3, [r4]
506 # CHECK-NEXT: - - - - - 1.00 - - strh r2, [r7, #4]
507 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r8, #64]!
508 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r12, [sp], #4
509 # CHECK-NEXT: - - - - - 1.00 - - strh r6, [r5, r4]
510 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r3, [r8, r11]!
511 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r1, [r2, -r1]!
512 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r9, [r7], r2
513 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strh r4, [r3], -r2
514 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r2, [r5], #76
515 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r8, [r1], #-25
516 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r5, [r3], r4
517 # CHECK-NEXT: - 0.50 0.50 - - 1.00 - - strht r6, [r8], -r0