xref: /llvm-project/llvm/test/tools/llvm-mca/ARM/m55-mve-ldst.s (revision d8ba9e505ac3a57211fade270532519adde374c2)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=thumbv8.1-m.main-none-none-eabi -mcpu=cortex-m55 -instruction-tables < %s | FileCheck %s
3
4vldrb.8 q1, [r0, 0]
5vldrb.8 q1, [r0, 0]!
6vldrb.8 q1, [r0], 0
7vldrh.16 q1, [r0, 0]
8vldrh.16 q1, [r0, 0]!
9vldrh.16 q1, [r0], 0
10vldrw.32 q1, [r0, 0]
11vldrw.32 q1, [r0, 0]!
12vldrw.32 q1, [r0], 0
13
14vldrb.u16 q1, [r0, 0]
15vldrb.u16 q1, [r0, 0]!
16vldrb.u16 q1, [r0], 0
17vldrb.u32 q1, [r0, 0]
18vldrb.u32 q1, [r0, 0]!
19vldrb.u32 q1, [r0], 0
20vldrh.u32 q1, [r0, 0]
21vldrh.u32 q1, [r0, 0]!
22vldrh.u32 q1, [r0], 0
23
24vldrb.s16 q1, [r0, 4]
25vldrb.s16 q1, [r0, 4]!
26vldrb.s16 q1, [r0], 4
27vldrb.s32 q1, [r0, 4]
28vldrb.s32 q1, [r0, 4]!
29vldrb.s32 q1, [r0], 4
30vldrh.s32 q1, [r0, 4]
31vldrh.s32 q1, [r0, 4]!
32vldrh.s32 q1, [r0], 4
33
34vldrw.32 q1, [r0, q0]
35vldrh.16 q1, [r0, q0]
36vldrb.8 q1, [r0, q0]
37vldrb.u16 q1, [r0, q0]
38vldrb.u32 q1, [r0, q0]
39vldrh.u32 q1, [r0, q0]
40vldrb.s16 q1, [r0, q0]
41vldrb.s32 q1, [r0, q0]
42vldrh.s32 q1, [r0, q0]
43vldrw.32 q1, [r0, q0, uxtw #2]
44vldrh.16 q1, [r0, q0, uxtw #1]
45vldrh.u32 q1, [r0, q0, uxtw #1]
46vldrh.s32 q1, [r0, q0, uxtw #1]
47
48vldrw.32 q1, [q0, 4]
49vldrw.32 q1, [q0, 4]!
50
51vld20.8 {q0, q1}, [r0]
52vld21.8 {q0, q1}, [r0]!
53vld40.8 {q0, q1, q2, q3}, [r0]
54vld43.8 {q0, q1, q2, q3}, [r0]!
55vld20.16 {q0, q1}, [r0]
56vld21.16 {q0, q1}, [r0]!
57vld40.16 {q0, q1, q2, q3}, [r0]
58vld43.16 {q0, q1, q2, q3}, [r0]!
59vld20.32 {q0, q1}, [r0]
60vld21.32 {q0, q1}, [r0]!
61vld40.32 {q0, q1, q2, q3}, [r0]
62vld43.32 {q0, q1, q2, q3}, [r0]!
63
64vstrb.8 q1, [r0, 0]
65vstrb.8 q1, [r0, 0]!
66vstrb.8 q1, [r0], 0
67vstrh.16 q1, [r0, 0]
68vstrh.16 q1, [r0, 0]!
69vstrh.16 q1, [r0], 0
70vstrw.32 q1, [r0, 0]
71vstrw.32 q1, [r0, 0]!
72vstrw.32 q1, [r0], 0
73
74vstrb.16 q1, [r0, 0]
75vstrb.16 q1, [r0, 0]!
76vstrb.16 q1, [r0], 0
77vstrb.32 q1, [r0, 0]
78vstrb.32 q1, [r0, 0]!
79vstrb.32 q1, [r0], 0
80vstrh.32 q1, [r0, 0]
81vstrh.32 q1, [r0, 0]!
82vstrh.32 q1, [r0], 0
83
84vstrw.32 q1, [r0, q0]
85vstrh.16 q1, [r0, q0]
86vstrb.8 q1, [r0, q0]
87vstrb.16 q1, [r0, q0]
88vstrb.32 q1, [r0, q0]
89vstrh.32 q1, [r0, q0]
90
91vstrw.32 q1, [r0, q0, uxtw #2]
92vstrh.16 q1, [r0, q0, uxtw #1]
93vstrh.32 q1, [r0, q0, uxtw #1]
94
95vstrw.32 q1, [q0, 4]
96vstrw.32 q1, [q0, 4]!
97
98vst20.8 {q0, q1}, [r0]
99vst21.8 {q0, q1}, [r0]!
100vst40.8 {q0, q1, q2, q3}, [r0]
101vst43.8 {q0, q1, q2, q3}, [r0]!
102vst20.16 {q0, q1}, [r0]
103vst21.16 {q0, q1}, [r0]!
104vst40.16 {q0, q1, q2, q3}, [r0]
105vst43.16 {q0, q1, q2, q3}, [r0]!
106vst20.32 {q0, q1}, [r0]
107vst21.32 {q0, q1}, [r0]!
108vst40.32 {q0, q1, q2, q3}, [r0]
109vst43.32 {q0, q1, q2, q3}, [r0]!
110
111# CHECK:      Instruction Info:
112# CHECK-NEXT: [1]: #uOps
113# CHECK-NEXT: [2]: Latency
114# CHECK-NEXT: [3]: RThroughput
115# CHECK-NEXT: [4]: MayLoad
116# CHECK-NEXT: [5]: MayStore
117# CHECK-NEXT: [6]: HasSideEffects (U)
118
119# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
120# CHECK-NEXT:  1      1     2.00    *                   vldrb.u8	q1, [r0]
121# CHECK-NEXT:  1      1     2.00    *                   vldrb.u8	q1, [r0, #0]!
122# CHECK-NEXT:  1      1     2.00    *                   vldrb.u8	q1, [r0], #0
123# CHECK-NEXT:  1      1     2.00    *                   vldrh.u16	q1, [r0]
124# CHECK-NEXT:  1      1     2.00    *                   vldrh.u16	q1, [r0, #0]!
125# CHECK-NEXT:  1      1     2.00    *                   vldrh.u16	q1, [r0], #0
126# CHECK-NEXT:  1      1     2.00    *                   vldrw.u32	q1, [r0]
127# CHECK-NEXT:  1      1     2.00    *                   vldrw.u32	q1, [r0, #0]!
128# CHECK-NEXT:  1      1     2.00    *                   vldrw.u32	q1, [r0], #0
129# CHECK-NEXT:  1      1     2.00    *                   vldrb.u16	q1, [r0]
130# CHECK-NEXT:  1      1     2.00    *                   vldrb.u16	q1, [r0]!
131# CHECK-NEXT:  1      1     2.00    *                   vldrb.u16	q1, [r0], #0
132# CHECK-NEXT:  1      1     2.00    *                   vldrb.u32	q1, [r0]
133# CHECK-NEXT:  1      1     2.00    *                   vldrb.u32	q1, [r0]!
134# CHECK-NEXT:  1      1     2.00    *                   vldrb.u32	q1, [r0], #0
135# CHECK-NEXT:  1      1     2.00    *                   vldrh.u32	q1, [r0]
136# CHECK-NEXT:  1      1     2.00    *                   vldrh.u32	q1, [r0]!
137# CHECK-NEXT:  1      1     2.00    *                   vldrh.u32	q1, [r0], #0
138# CHECK-NEXT:  1      1     2.00    *                   vldrb.s16	q1, [r0, #4]
139# CHECK-NEXT:  1      1     2.00    *                   vldrb.s16	q1, [r0, #4]!
140# CHECK-NEXT:  1      1     2.00    *                   vldrb.s16	q1, [r0], #4
141# CHECK-NEXT:  1      1     2.00    *                   vldrb.s32	q1, [r0, #4]
142# CHECK-NEXT:  1      1     2.00    *                   vldrb.s32	q1, [r0, #4]!
143# CHECK-NEXT:  1      1     2.00    *                   vldrb.s32	q1, [r0], #4
144# CHECK-NEXT:  1      1     2.00    *                   vldrh.s32	q1, [r0, #4]
145# CHECK-NEXT:  1      1     2.00    *                   vldrh.s32	q1, [r0, #4]!
146# CHECK-NEXT:  1      1     2.00    *                   vldrh.s32	q1, [r0], #4
147# CHECK-NEXT:  1      6     2.00    *                   vldrw.u32	q1, [r0, q0]
148# CHECK-NEXT:  1      6     2.00    *                   vldrh.u16	q1, [r0, q0]
149# CHECK-NEXT:  1      6     2.00    *                   vldrb.u8	q1, [r0, q0]
150# CHECK-NEXT:  1      6     2.00    *                   vldrb.u16	q1, [r0, q0]
151# CHECK-NEXT:  1      6     2.00    *                   vldrb.u32	q1, [r0, q0]
152# CHECK-NEXT:  1      6     2.00    *                   vldrh.u32	q1, [r0, q0]
153# CHECK-NEXT:  1      6     2.00    *                   vldrb.s16	q1, [r0, q0]
154# CHECK-NEXT:  1      6     2.00    *                   vldrb.s32	q1, [r0, q0]
155# CHECK-NEXT:  1      6     2.00    *                   vldrh.s32	q1, [r0, q0]
156# CHECK-NEXT:  1      6     2.00    *                   vldrw.u32	q1, [r0, q0, uxtw #2]
157# CHECK-NEXT:  1      6     2.00    *                   vldrh.u16	q1, [r0, q0, uxtw #1]
158# CHECK-NEXT:  1      6     2.00    *                   vldrh.u32	q1, [r0, q0, uxtw #1]
159# CHECK-NEXT:  1      6     2.00    *                   vldrh.s32	q1, [r0, q0, uxtw #1]
160# CHECK-NEXT:  1      6     2.00    *                   vldrw.u32	q1, [q0, #4]
161# CHECK-NEXT:  1      6     2.00    *                   vldrw.u32	q1, [q0, #4]!
162# CHECK-NEXT:  1      1     2.00    *                   vld20.8	{q0, q1}, [r0]
163# CHECK-NEXT:  1      1     2.00    *                   vld21.8	{q0, q1}, [r0]!
164# CHECK-NEXT:  1      1     2.00    *                   vld40.8	{q0, q1, q2, q3}, [r0]
165# CHECK-NEXT:  1      1     2.00    *                   vld43.8	{q0, q1, q2, q3}, [r0]!
166# CHECK-NEXT:  1      1     2.00    *                   vld20.16	{q0, q1}, [r0]
167# CHECK-NEXT:  1      1     2.00    *                   vld21.16	{q0, q1}, [r0]!
168# CHECK-NEXT:  1      1     2.00    *                   vld40.16	{q0, q1, q2, q3}, [r0]
169# CHECK-NEXT:  1      1     2.00    *                   vld43.16	{q0, q1, q2, q3}, [r0]!
170# CHECK-NEXT:  1      1     2.00    *                   vld20.32	{q0, q1}, [r0]
171# CHECK-NEXT:  1      1     2.00    *                   vld21.32	{q0, q1}, [r0]!
172# CHECK-NEXT:  1      1     2.00    *                   vld40.32	{q0, q1, q2, q3}, [r0]
173# CHECK-NEXT:  1      1     2.00    *                   vld43.32	{q0, q1, q2, q3}, [r0]!
174# CHECK-NEXT:  1      1     2.00           *            vstrb.8	q1, [r0]
175# CHECK-NEXT:  1      1     2.00           *            vstrb.8	q1, [r0, #0]!
176# CHECK-NEXT:  1      1     2.00           *            vstrb.8	q1, [r0], #0
177# CHECK-NEXT:  1      1     2.00           *            vstrh.16	q1, [r0]
178# CHECK-NEXT:  1      1     2.00           *            vstrh.16	q1, [r0, #0]!
179# CHECK-NEXT:  1      1     2.00           *            vstrh.16	q1, [r0], #0
180# CHECK-NEXT:  1      1     2.00           *            vstrw.32	q1, [r0]
181# CHECK-NEXT:  1      1     2.00           *            vstrw.32	q1, [r0, #0]!
182# CHECK-NEXT:  1      1     2.00           *            vstrw.32	q1, [r0], #0
183# CHECK-NEXT:  1      1     2.00           *            vstrb.16	q1, [r0]
184# CHECK-NEXT:  1      1     2.00           *            vstrb.16	q1, [r0]!
185# CHECK-NEXT:  1      1     2.00           *            vstrb.16	q1, [r0], #0
186# CHECK-NEXT:  1      1     2.00           *            vstrb.32	q1, [r0]
187# CHECK-NEXT:  1      1     2.00           *            vstrb.32	q1, [r0]!
188# CHECK-NEXT:  1      1     2.00           *            vstrb.32	q1, [r0], #0
189# CHECK-NEXT:  1      1     2.00           *            vstrh.32	q1, [r0]
190# CHECK-NEXT:  1      1     2.00           *            vstrh.32	q1, [r0]!
191# CHECK-NEXT:  1      1     2.00           *            vstrh.32	q1, [r0], #0
192# CHECK-NEXT:  1      5     2.00           *            vstrw.32	q1, [r0, q0]
193# CHECK-NEXT:  1      5     2.00           *            vstrh.16	q1, [r0, q0]
194# CHECK-NEXT:  1      5     2.00           *            vstrb.8	q1, [r0, q0]
195# CHECK-NEXT:  1      5     2.00           *            vstrb.16	q1, [r0, q0]
196# CHECK-NEXT:  1      5     2.00           *            vstrb.32	q1, [r0, q0]
197# CHECK-NEXT:  1      5     2.00           *            vstrh.32	q1, [r0, q0]
198# CHECK-NEXT:  1      5     2.00           *            vstrw.32	q1, [r0, q0, uxtw #2]
199# CHECK-NEXT:  1      5     2.00           *            vstrh.16	q1, [r0, q0, uxtw #1]
200# CHECK-NEXT:  1      5     2.00           *            vstrh.32	q1, [r0, q0, uxtw #1]
201# CHECK-NEXT:  1      5     2.00           *            vstrw.32	q1, [q0, #4]
202# CHECK-NEXT:  1      5     2.00           *            vstrw.32	q1, [q0, #4]!
203# CHECK-NEXT:  1      1     2.00           *            vst20.8	{q0, q1}, [r0]
204# CHECK-NEXT:  1      1     2.00           *            vst21.8	{q0, q1}, [r0]!
205# CHECK-NEXT:  1      1     2.00           *            vst40.8	{q0, q1, q2, q3}, [r0]
206# CHECK-NEXT:  1      1     2.00           *            vst43.8	{q0, q1, q2, q3}, [r0]!
207# CHECK-NEXT:  1      1     2.00           *            vst20.16	{q0, q1}, [r0]
208# CHECK-NEXT:  1      1     2.00           *            vst21.16	{q0, q1}, [r0]!
209# CHECK-NEXT:  1      1     2.00           *            vst40.16	{q0, q1, q2, q3}, [r0]
210# CHECK-NEXT:  1      1     2.00           *            vst43.16	{q0, q1, q2, q3}, [r0]!
211# CHECK-NEXT:  1      1     2.00           *            vst20.32	{q0, q1}, [r0]
212# CHECK-NEXT:  1      1     2.00           *            vst21.32	{q0, q1}, [r0]!
213# CHECK-NEXT:  1      1     2.00           *            vst40.32	{q0, q1, q2, q3}, [r0]
214# CHECK-NEXT:  1      1     2.00           *            vst43.32	{q0, q1, q2, q3}, [r0]!
215
216# CHECK:      Resources:
217# CHECK-NEXT: [0]   - M55UnitALU
218# CHECK-NEXT: [1]   - M55UnitLoadStore
219# CHECK-NEXT: [2]   - M55UnitVecALU
220# CHECK-NEXT: [3]   - M55UnitVecFPALU
221# CHECK-NEXT: [4]   - M55UnitVecSys
222
223# CHECK:      Resource pressure per iteration:
224# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]
225# CHECK-NEXT:  -     190.00  -      -      -
226
227# CHECK:      Resource pressure by instruction:
228# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    Instructions:
229# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u8	q1, [r0]
230# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u8	q1, [r0, #0]!
231# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u8	q1, [r0], #0
232# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u16	q1, [r0]
233# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u16	q1, [r0, #0]!
234# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u16	q1, [r0], #0
235# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [r0]
236# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [r0, #0]!
237# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [r0], #0
238# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u16	q1, [r0]
239# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u16	q1, [r0]!
240# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u16	q1, [r0], #0
241# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u32	q1, [r0]
242# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u32	q1, [r0]!
243# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u32	q1, [r0], #0
244# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u32	q1, [r0]
245# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u32	q1, [r0]!
246# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u32	q1, [r0], #0
247# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s16	q1, [r0, #4]
248# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s16	q1, [r0, #4]!
249# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s16	q1, [r0], #4
250# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s32	q1, [r0, #4]
251# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s32	q1, [r0, #4]!
252# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s32	q1, [r0], #4
253# CHECK-NEXT:  -     2.00    -      -      -     vldrh.s32	q1, [r0, #4]
254# CHECK-NEXT:  -     2.00    -      -      -     vldrh.s32	q1, [r0, #4]!
255# CHECK-NEXT:  -     2.00    -      -      -     vldrh.s32	q1, [r0], #4
256# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [r0, q0]
257# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u16	q1, [r0, q0]
258# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u8	q1, [r0, q0]
259# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u16	q1, [r0, q0]
260# CHECK-NEXT:  -     2.00    -      -      -     vldrb.u32	q1, [r0, q0]
261# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u32	q1, [r0, q0]
262# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s16	q1, [r0, q0]
263# CHECK-NEXT:  -     2.00    -      -      -     vldrb.s32	q1, [r0, q0]
264# CHECK-NEXT:  -     2.00    -      -      -     vldrh.s32	q1, [r0, q0]
265# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [r0, q0, uxtw #2]
266# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u16	q1, [r0, q0, uxtw #1]
267# CHECK-NEXT:  -     2.00    -      -      -     vldrh.u32	q1, [r0, q0, uxtw #1]
268# CHECK-NEXT:  -     2.00    -      -      -     vldrh.s32	q1, [r0, q0, uxtw #1]
269# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [q0, #4]
270# CHECK-NEXT:  -     2.00    -      -      -     vldrw.u32	q1, [q0, #4]!
271# CHECK-NEXT:  -     2.00    -      -      -     vld20.8	{q0, q1}, [r0]
272# CHECK-NEXT:  -     2.00    -      -      -     vld21.8	{q0, q1}, [r0]!
273# CHECK-NEXT:  -     2.00    -      -      -     vld40.8	{q0, q1, q2, q3}, [r0]
274# CHECK-NEXT:  -     2.00    -      -      -     vld43.8	{q0, q1, q2, q3}, [r0]!
275# CHECK-NEXT:  -     2.00    -      -      -     vld20.16	{q0, q1}, [r0]
276# CHECK-NEXT:  -     2.00    -      -      -     vld21.16	{q0, q1}, [r0]!
277# CHECK-NEXT:  -     2.00    -      -      -     vld40.16	{q0, q1, q2, q3}, [r0]
278# CHECK-NEXT:  -     2.00    -      -      -     vld43.16	{q0, q1, q2, q3}, [r0]!
279# CHECK-NEXT:  -     2.00    -      -      -     vld20.32	{q0, q1}, [r0]
280# CHECK-NEXT:  -     2.00    -      -      -     vld21.32	{q0, q1}, [r0]!
281# CHECK-NEXT:  -     2.00    -      -      -     vld40.32	{q0, q1, q2, q3}, [r0]
282# CHECK-NEXT:  -     2.00    -      -      -     vld43.32	{q0, q1, q2, q3}, [r0]!
283# CHECK-NEXT:  -     2.00    -      -      -     vstrb.8	q1, [r0]
284# CHECK-NEXT:  -     2.00    -      -      -     vstrb.8	q1, [r0, #0]!
285# CHECK-NEXT:  -     2.00    -      -      -     vstrb.8	q1, [r0], #0
286# CHECK-NEXT:  -     2.00    -      -      -     vstrh.16	q1, [r0]
287# CHECK-NEXT:  -     2.00    -      -      -     vstrh.16	q1, [r0, #0]!
288# CHECK-NEXT:  -     2.00    -      -      -     vstrh.16	q1, [r0], #0
289# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [r0]
290# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [r0, #0]!
291# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [r0], #0
292# CHECK-NEXT:  -     2.00    -      -      -     vstrb.16	q1, [r0]
293# CHECK-NEXT:  -     2.00    -      -      -     vstrb.16	q1, [r0]!
294# CHECK-NEXT:  -     2.00    -      -      -     vstrb.16	q1, [r0], #0
295# CHECK-NEXT:  -     2.00    -      -      -     vstrb.32	q1, [r0]
296# CHECK-NEXT:  -     2.00    -      -      -     vstrb.32	q1, [r0]!
297# CHECK-NEXT:  -     2.00    -      -      -     vstrb.32	q1, [r0], #0
298# CHECK-NEXT:  -     2.00    -      -      -     vstrh.32	q1, [r0]
299# CHECK-NEXT:  -     2.00    -      -      -     vstrh.32	q1, [r0]!
300# CHECK-NEXT:  -     2.00    -      -      -     vstrh.32	q1, [r0], #0
301# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [r0, q0]
302# CHECK-NEXT:  -     2.00    -      -      -     vstrh.16	q1, [r0, q0]
303# CHECK-NEXT:  -     2.00    -      -      -     vstrb.8	q1, [r0, q0]
304# CHECK-NEXT:  -     2.00    -      -      -     vstrb.16	q1, [r0, q0]
305# CHECK-NEXT:  -     2.00    -      -      -     vstrb.32	q1, [r0, q0]
306# CHECK-NEXT:  -     2.00    -      -      -     vstrh.32	q1, [r0, q0]
307# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [r0, q0, uxtw #2]
308# CHECK-NEXT:  -     2.00    -      -      -     vstrh.16	q1, [r0, q0, uxtw #1]
309# CHECK-NEXT:  -     2.00    -      -      -     vstrh.32	q1, [r0, q0, uxtw #1]
310# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [q0, #4]
311# CHECK-NEXT:  -     2.00    -      -      -     vstrw.32	q1, [q0, #4]!
312# CHECK-NEXT:  -     2.00    -      -      -     vst20.8	{q0, q1}, [r0]
313# CHECK-NEXT:  -     2.00    -      -      -     vst21.8	{q0, q1}, [r0]!
314# CHECK-NEXT:  -     2.00    -      -      -     vst40.8	{q0, q1, q2, q3}, [r0]
315# CHECK-NEXT:  -     2.00    -      -      -     vst43.8	{q0, q1, q2, q3}, [r0]!
316# CHECK-NEXT:  -     2.00    -      -      -     vst20.16	{q0, q1}, [r0]
317# CHECK-NEXT:  -     2.00    -      -      -     vst21.16	{q0, q1}, [r0]!
318# CHECK-NEXT:  -     2.00    -      -      -     vst40.16	{q0, q1, q2, q3}, [r0]
319# CHECK-NEXT:  -     2.00    -      -      -     vst43.16	{q0, q1, q2, q3}, [r0]!
320# CHECK-NEXT:  -     2.00    -      -      -     vst20.32	{q0, q1}, [r0]
321# CHECK-NEXT:  -     2.00    -      -      -     vst21.32	{q0, q1}, [r0]!
322# CHECK-NEXT:  -     2.00    -      -      -     vst40.32	{q0, q1, q2, q3}, [r0]
323# CHECK-NEXT:  -     2.00    -      -      -     vst43.32	{q0, q1, q2, q3}, [r0]!
324