xref: /llvm-project/llvm/test/tools/llvm-mca/ARM/cortex-a57-memory-instructions.s (revision a10ce71ac4ef55cc9a80c0aece501a09bd39cc9a)
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
3
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
167
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)
175
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           *            strbt	r6, [r2], #12
310# CHECK-NEXT:  2      1     1.00           *            strbt	r5, [r6], #-13
311# CHECK-NEXT:  2      2     1.00           *            strbt	r4, [r9], r5
312# CHECK-NEXT:  2      2     1.00           *            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           *            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           *            strh	r3, [r8, r11]!
332# CHECK-NEXT:  2      1     1.00           *            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           *            strht	r2, [r5], #76
336# CHECK-NEXT:  2      1     1.00           *            strht	r8, [r1], #-25
337# CHECK-NEXT:  2      1     1.00           *            strht	r5, [r3], r4
338# CHECK-NEXT:  2      1     1.00           *            strht	r6, [r8], -r0
339
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
349
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   -      -
353
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
518