Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-mca / ARM / cortex-a57-memory-instructions.s
blob04c95f62fbe15c81d2990d2b642be4012a4fa2ee
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
4 .text
5 pld [pc, #8]
6 pldw [pc, #-128]
7 pldw [pc, r0, lsl #2]
8 pldw [pc, r0, lsl #4]
9 pldw [pc, -r0]
10 ldr r5, [r7]
11 ldr r6, [r3, #63]
12 ldr r2, [r4, #4095]!
13 ldr r1, [r2], #30
14 ldr r3, [r1], #-30
15 ldr r3, [r8, r1]
16 ldr r3, [r8, r1, lsl #2]
17 ldr r3, [r8, r1, asr #2]
18 ldr r2, [r5, -r3]
19 ldr r1, [r5, r9]!
20 ldr r6, [r7, -r8]!
21 ldr r1, [r0, r2, lsr #3]!
22 ldr r5, [r9], r2
23 ldr r4, [r3], -r6
24 ldr r3, [r8, -r2, lsl #15]
25 ldr r1, [r5], r3, asr #15
26 ldrb r3, [r8]
27 ldrb r1, [sp, #63]
28 ldrb r9, [r3, #4095]!
29 ldrb r8, [r1], #22
30 ldrb r2, [r7], #-19
31 ldrb r9, [r8, r5]
32 ldrb r1, [r5, -r1]
33 ldrb r3, [r5, r2]!
34 ldrb r3, [r5, r2, lsl #2]!
35 ldrb r3, [r5, r2, asr #2]!
36 ldrb r6, [r9, -r3]!
37 ldrb r2, [r1], r4
38 ldrb r8, [r4], -r5
39 ldrb r7, [r12, -r1, lsl #15]
40 ldrb r5, [r2], r9, asr #15
41 ldrbt r3, [r1], #4
42 ldrbt r2, [r8], #-8
43 ldrbt r8, [r7], r6
44 ldrbt r1, [r2], -r6, lsl #12
45 ldrd r0, r1, [r5]
46 ldrd r0, r1, [r5, r2]
47 ldrd r0, r1, [r5, -r2]
48 ldrd r8, r9, [r2, #15]
49 ldrd r2, r3, [r9, #32]!
50 ldrd r6, r7, [r1], #8
51 ldrd r2, r3, [r8], #0
52 ldrd r2, r3, [r8], #0
53 ldrd r2, r3, [r8], #-0
54 ldrd r4, r5, [r1, r3]
55 ldrd r4, r5, [r7, r2]!
56 ldrd r0, r1, [r8], r12
57 ldrd r0, r1, [r8], -r12
58 ldrh r3, [r4]
59 ldrh r2, [r7, #4]
60 ldrh r1, [r8, #64]!
61 ldrh r12, [sp], #4
62 ldrh r6, [r5, r4]
63 ldrh r6, [r5, -r4]
64 ldrh r3, [r8, r11]!
65 ldrh r1, [r2, -r1]!
66 ldrh r9, [r7], r2
67 ldrh r4, [r3], -r2
68 ldrht r9, [r7], #128
69 ldrht r4, [r3], #-75
70 ldrht r9, [r7], r2
71 ldrht r4, [r3], -r2
72 ldrsb r3, [r4]
73 ldrsb r2, [r7, #17]
74 ldrsb r1, [r8, #255]!
75 ldrsb r12, [sp], #9
76 ldrsb r6, [r5, r4]
77 ldrsb r3, [r8, r11]!
78 ldrsb r1, [r2, -r1]!
79 ldrsb r9, [r7], r2
80 ldrsb r4, [r3], -r2
81 ldrsbt r5, [r6], #1
82 ldrsbt r3, [r8], #-12
83 ldrsbt r8, [r9], r5
84 ldrsbt r2, [r1], -r4
85 ldrsh r5, [r9]
86 ldrsh r4, [r5, #7]
87 ldrsh r3, [r6, #55]!
88 ldrsh r2, [r7], #-9
89 ldrsh r3, [r1, r5]
90 ldrsh r4, [r6, r1]!
91 ldrsh r5, [r3, -r6]!
92 ldrsh r6, [r9], r8
93 ldrsh r7, [r8], -r3
94 ldrsht r5, [r6], #1
95 ldrsht r3, [r8], #-12
96 ldrsht r8, [r9], r5
97 ldrsht r2, [r1], -r4
98 ldm r2, {r1, r2, r4, r5, r6}
99 ldmia r2, {r1, r2, r4, r5, r6}
100 ldmia r2, {r1, r3, r4, r5, r6}
101 ldmib r2, {r1, r2}
102 ldmdb r2, {r1, r2}
103 ldmib r2, {r1, r3}
104 ldmib r2, {r1, r3, r5}
105 ldmib r2, {r1, r2, r5}
106 ldmdbeq r2, {r1, r2}
107 ldmibeq r2, {r1, r3}
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}
110 str r8, [r12]
111 str r7, [r1, #12]
112 str r3, [r5, #40]!
113 str r9, [sp], #4095
114 str r1, [r7], #-128
115 str r9, [r6, r3]
116 str r8, [r0, -r2]
117 str r7, [r1, r6]!
118 str r7, [r1, r6, lsl #2]!
119 str r6, [sp, -r1]!
120 str r5, [r3], r9
121 str r4, [r2], -r5
122 str r3, [r4, -r2, lsl #2]
123 str r2, [r7], r3, asr #24
124 strb r9, [r2]
125 strb r7, [r1, #3]
126 strb r6, [r4, #405]!
127 strb r5, [r7], #72
128 strb r1, [sp], #-1
129 strb r1, [r2, r9]
130 strb r2, [r3, -r8]
131 strb r3, [r4, r7]!
132 strb r4, [r5, -r6]!
133 strb r5, [r6], r5
134 strb r6, [r2], -r4
135 strb r7, [r12, -r3, lsl #5]
136 strb sp, [r7], r2, asr #12
137 strbt r6, [r2], #12
138 strbt r5, [r6], #-13
139 strbt r4, [r9], r5
140 strbt r3, [r8], -r2, lsl #3
141 strd r0, r1, [r4]
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
154 strh r3, [r4]
155 strh r2, [r7, #4]
156 strh r1, [r8, #64]!
157 strh r12, [sp], #4
158 strh r6, [r5, r4]
159 strh r3, [r8, r11]!
160 strh r1, [r2, -r1]!
161 strh r9, [r7], r2
162 strh r4, [r3], -r2
163 strht r2, [r5], #76
164 strht r8, [r1], #-25
165 strht r5, [r3], r4
166 strht r6, [r8], -r0
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
340 # CHECK: Resources:
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