1 // RUN
: llvm-mc
-triple
=arm64
-mattr
=+neon
-show-encoding
< %s | FileCheck
%s
3 // Check that the assembler can handle the documented syntax for AArch64
5 //------------------------------------------------------------------------------
6 // Load multiple
1-element structures from one register
(post-index
)
7 //------------------------------------------------------------------------------
8 ld1
{ v0.16
b }, [x0
], x1
9 ld1
{ v15.8h
}, [x15
], x2
10 ld1
{ v31.4s
}, [sp
], #16
11 ld1
{ v0.2d
}, [x0
], #16
12 ld1
{ v0.8
b }, [x0
], x2
13 ld1
{ v15.4h
}, [x15
], x3
14 ld1
{ v31.2s
}, [sp
], #8
15 ld1
{ v0.1d
}, [x0
], #8
16 // CHECK
: ld1
{ v0.16
b }, [x0
], x1
17 // CHECK
: // encoding
: [0x00,0x70,0xc1,0x4c]
18 // CHECK
: ld1
{ v15.8h
}, [x15
], x2
19 // CHECK
: // encoding
: [0xef,0x75,0xc2,0x4c]
20 // CHECK
: ld1
{ v31.4s
}, [sp
], #16
21 // CHECK
: // encoding
: [0xff,0x7b,0xdf,0x4c]
22 // CHECK
: ld1
{ v0.2d
}, [x0
], #16
23 // CHECK
: // encoding
: [0x00,0x7c,0xdf,0x4c]
24 // CHECK
: ld1
{ v0.8
b }, [x0
], x2
25 // CHECK
: // encoding
: [0x00,0x70,0xc2,0x0c]
26 // CHECK
: ld1
{ v15.4h
}, [x15
], x3
27 // CHECK
: // encoding
: [0xef,0x75,0xc3,0x0c]
28 // CHECK
: ld1
{ v31.2s
}, [sp
], #8
29 // CHECK
: // encoding
: [0xff,0x7b,0xdf,0x0c]
30 // CHECK
: ld1
{ v0.1d
}, [x0
], #8
31 // CHECK
: // encoding
: [0x00,0x7c,0xdf,0x0c]
33 //------------------------------------------------------------------------------
34 // Load multiple
1-element structures from two consecutive registers
36 //------------------------------------------------------------------------------
37 ld1
{ v0.16
b, v1.16
b }, [x0
], x1
38 ld1
{ v15.8h
, v16.8h
}, [x15
], x2
39 ld1
{ v31.4s
, v0.4s
}, [sp
], #32
40 ld1
{ v0.2d
, v1.2d
}, [x0
], #32
41 ld1
{ v0.8
b, v1.8
b }, [x0
], x2
42 ld1
{ v15.4h
, v16.4h
}, [x15
], x3
43 ld1
{ v31.2s
, v0.2s
}, [sp
], #16
44 ld1
{ v0.1d
, v1.1d
}, [x0
], #16
45 // CHECK
: ld1
{ v0.16
b, v1.16
b }, [x0
], x1
46 // CHECK
: // encoding
: [0x00,0xa0,0xc1,0x4c]
47 // CHECK
: ld1
{ v15.8h
, v16.8h
}, [x15
], x2
48 // CHECK
: // encoding
: [0xef,0xa5,0xc2,0x4c]
49 // CHECK
: ld1
{ v31.4s
, v0.4s
}, [sp
], #32
50 // CHECK
: // encoding
: [0xff,0xab,0xdf,0x4c]
51 // CHECK
: ld1
{ v0.2d
, v1.2d
}, [x0
], #32
52 // CHECK
: // encoding
: [0x00,0xac,0xdf,0x4c]
53 // CHECK
: ld1
{ v0.8
b, v1.8
b }, [x0
], x2
54 // CHECK
: // encoding
: [0x00,0xa0,0xc2,0x0c]
55 // CHECK
: ld1
{ v15.4h
, v16.4h
}, [x15
], x3
56 // CHECK
: // encoding
: [0xef,0xa5,0xc3,0x0c]
57 // CHECK
: ld1
{ v31.2s
, v0.2s
}, [sp
], #16
58 // CHECK
: // encoding
: [0xff,0xab,0xdf,0x0c]
59 // CHECK
: ld1
{ v0.1d
, v1.1d
}, [x0
], #16
60 // CHECK
: // encoding
: [0x00,0xac,0xdf,0x0c]
62 //------------------------------------------------------------------------------
63 // Load multiple
1-element structures from three consecutive registers
65 //------------------------------------------------------------------------------
66 ld1
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
67 ld1
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
68 ld1
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
69 ld1
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
70 ld1
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
71 ld1
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
72 ld1
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
73 ld1
{ v0.1d
, v1.1d
, v2.1d
}, [x0
], #24
74 // CHECK
: ld1
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
75 // CHECK
: // encoding
: [0x00,0x60,0xc1,0x4c]
76 // CHECK
: ld1
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
77 // CHECK
: // encoding
: [0xef,0x65,0xc2,0x4c]
78 // CHECK
: ld1
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
79 // CHECK
: // encoding
: [0xff,0x6b,0xdf,0x4c]
80 // CHECK
: ld1
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
81 // CHECK
: // encoding
: [0x00,0x6c,0xdf,0x4c]
82 // CHECK
: ld1
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
83 // CHECK
: // encoding
: [0x00,0x60,0xc2,0x0c]
84 // CHECK
: ld1
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
85 // CHECK
: // encoding
: [0xef,0x65,0xc3,0x0c]
86 // CHECK
: ld1
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
87 // CHECK
: // encoding
: [0xff,0x6b,0xdf,0x0c]
88 // CHECK
: ld1
{ v0.1d
, v1.1d
, v2.1d
}, [x0
], #24
89 // CHECK
: // encoding
: [0x00,0x6c,0xdf,0x0c]
91 //------------------------------------------------------------------------------
92 // Load multiple
1-element structures from four consecutive registers
94 //------------------------------------------------------------------------------
95 ld1
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
96 ld1
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
97 ld1
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
98 ld1
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
99 ld1
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
100 ld1
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
101 ld1
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
102 ld1
{ v0.1d
, v1.1d
, v2.1d
, v3.1d
}, [x0
], #32
103 // CHECK
: ld1
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
104 // CHECK
: // encoding
: [0x00,0x20,0xc1,0x4c]
105 // CHECK
: ld1
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
106 // CHECK
: // encoding
: [0xef,0x25,0xc2,0x4c]
107 // CHECK
: ld1
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
108 // CHECK
: // encoding
: [0xff,0x2b,0xdf,0x4c]
109 // CHECK
: ld1
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
110 // CHECK
: // encoding
: [0x00,0x2c,0xdf,0x4c]
111 // CHECK
: ld1
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
112 // CHECK
: // encoding
: [0x00,0x20,0xc3,0x0c]
113 // CHECK
: ld1
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
114 // CHECK
: // encoding
: [0xef,0x25,0xc4,0x0c]
115 // CHECK
: ld1
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
116 // CHECK
: // encoding
: [0xff,0x2b,0xdf,0x0c]
117 // CHECK
: ld1
{ v0.1d
, v1.1d
, v2.1d
, v3.1d
}, [x0
], #32
118 // CHECK
: // encoding
: [0x00,0x2c,0xdf,0x0c]
120 //------------------------------------------------------------------------------
121 // Load multiple
2-element structures from two consecutive registers
123 //------------------------------------------------------------------------------
124 ld2
{ v0.16
b, v1.16
b }, [x0
], x1
125 ld2
{ v15.8h
, v16.8h
}, [x15
], x2
126 ld2
{ v31.4s
, v0.4s
}, [sp
], #32
127 ld2
{ v0.2d
, v1.2d
}, [x0
], #32
128 ld2
{ v0.8
b, v1.8
b }, [x0
], x2
129 ld2
{ v15.4h
, v16.4h
}, [x15
], x3
130 ld2
{ v31.2s
, v0.2s
}, [sp
], #16
131 // CHECK
: ld2
{ v0.16
b, v1.16
b }, [x0
], x1
132 // CHECK
: // encoding
: [0x00,0x80,0xc1,0x4c]
133 // CHECK
: ld2
{ v15.8h
, v16.8h
}, [x15
], x2
134 // CHECK
: // encoding
: [0xef,0x85,0xc2,0x4c]
135 // CHECK
: ld2
{ v31.4s
, v0.4s
}, [sp
], #32
136 // CHECK
: // encoding
: [0xff,0x8b,0xdf,0x4c]
137 // CHECK
: ld2
{ v0.2d
, v1.2d
}, [x0
], #32
138 // CHECK
: // encoding
: [0x00,0x8c,0xdf,0x4c]
139 // CHECK
: ld2
{ v0.8
b, v1.8
b }, [x0
], x2
140 // CHECK
: // encoding
: [0x00,0x80,0xc2,0x0c]
141 // CHECK
: ld2
{ v15.4h
, v16.4h
}, [x15
], x3
142 // CHECK
: // encoding
: [0xef,0x85,0xc3,0x0c]
143 // CHECK
: ld2
{ v31.2s
, v0.2s
}, [sp
], #16
144 // CHECK
: // encoding
: [0xff,0x8b,0xdf,0x0c]
146 //------------------------------------------------------------------------------
147 // Load multiple
3-element structures from three consecutive registers
149 //------------------------------------------------------------------------------
150 ld3
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
151 ld3
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
152 ld3
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
153 ld3
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
154 ld3
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
155 ld3
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
156 ld3
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
157 // CHECK
: ld3
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
158 // CHECK
: // encoding
: [0x00,0x40,0xc1,0x4c]
159 // CHECK
: ld3
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
160 // CHECK
: // encoding
: [0xef,0x45,0xc2,0x4c]
161 // CHECK
: ld3
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
162 // CHECK
: // encoding
: [0xff,0x4b,0xdf,0x4c]
163 // CHECK
: ld3
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
164 // CHECK
: // encoding
: [0x00,0x4c,0xdf,0x4c]
165 // CHECK
: ld3
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
166 // CHECK
: // encoding
: [0x00,0x40,0xc2,0x0c]
167 // CHECK
: ld3
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
168 // CHECK
: // encoding
: [0xef,0x45,0xc3,0x0c]
169 // CHECK
: ld3
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
170 // CHECK
: // encoding
: [0xff,0x4b,0xdf,0x0c]
172 //------------------------------------------------------------------------------
173 // Load multiple
4-element structures from four consecutive registers
175 //------------------------------------------------------------------------------
176 ld4
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
177 ld4
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
178 ld4
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
179 ld4
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
180 ld4
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
181 ld4
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
182 ld4
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
183 // CHECK
: ld4
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
184 // CHECK
: // encoding
: [0x00,0x00,0xc1,0x4c]
185 // CHECK
: ld4
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
186 // CHECK
: // encoding
: [0xef,0x05,0xc2,0x4c]
187 // CHECK
: ld4
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
188 // CHECK
: // encoding
: [0xff,0x0b,0xdf,0x4c]
189 // CHECK
: ld4
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
190 // CHECK
: // encoding
: [0x00,0x0c,0xdf,0x4c]
191 // CHECK
: ld4
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
192 // CHECK
: // encoding
: [0x00,0x00,0xc3,0x0c]
193 // CHECK
: ld4
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
194 // CHECK
: // encoding
: [0xef,0x05,0xc4,0x0c]
195 // CHECK
: ld4
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
196 // CHECK
: // encoding
: [0xff,0x0b,0xdf,0x0c]
198 //------------------------------------------------------------------------------
199 // Store multiple
1-element structures from one register
(post-index
)
200 //------------------------------------------------------------------------------
201 st1
{ v0.16
b }, [x0
], x1
202 st1
{ v15.8h
}, [x15
], x2
203 st1
{ v31.4s
}, [sp
], #16
204 st1
{ v0.2d
}, [x0
], #16
205 st1
{ v0.8
b }, [x0
], x2
206 st1
{ v15.4h
}, [x15
], x3
207 st1
{ v31.2s
}, [sp
], #8
208 st1
{ v0.1d
}, [x0
], #8
209 // CHECK
: st1
{ v0.16
b }, [x0
], x1
210 // CHECK
: // encoding
: [0x00,0x70,0x81,0x4c]
211 // CHECK
: st1
{ v15.8h
}, [x15
], x2
212 // CHECK
: // encoding
: [0xef,0x75,0x82,0x4c]
213 // CHECK
: st1
{ v31.4s
}, [sp
], #16
214 // CHECK
: // encoding
: [0xff,0x7b,0x9f,0x4c]
215 // CHECK
: st1
{ v0.2d
}, [x0
], #16
216 // CHECK
: // encoding
: [0x00,0x7c,0x9f,0x4c]
217 // CHECK
: st1
{ v0.8
b }, [x0
], x2
218 // CHECK
: // encoding
: [0x00,0x70,0x82,0x0c]
219 // CHECK
: st1
{ v15.4h
}, [x15
], x3
220 // CHECK
: // encoding
: [0xef,0x75,0x83,0x0c]
221 // CHECK
: st1
{ v31.2s
}, [sp
], #8
222 // CHECK
: // encoding
: [0xff,0x7b,0x9f,0x0c]
223 // CHECK
: st1
{ v0.1d
}, [x0
], #8
224 // CHECK
: // encoding
: [0x00,0x7c,0x9f,0x0c]
226 //------------------------------------------------------------------------------
227 // Store multiple
1-element structures from two consecutive registers
229 //------------------------------------------------------------------------------
230 st1
{ v0.16
b, v1.16
b }, [x0
], x1
231 st1
{ v15.8h
, v16.8h
}, [x15
], x2
232 st1
{ v31.4s
, v0.4s
}, [sp
], #32
233 st1
{ v0.2d
, v1.2d
}, [x0
], #32
234 st1
{ v0.8
b, v1.8
b }, [x0
], x2
235 st1
{ v15.4h
, v16.4h
}, [x15
], x3
236 st1
{ v31.2s
, v0.2s
}, [sp
], #16
237 st1
{ v0.1d
, v1.1d
}, [x0
], #16
238 // CHECK
: st1
{ v0.16
b, v1.16
b }, [x0
], x1
239 // CHECK
: // encoding
: [0x00,0xa0,0x81,0x4c]
240 // CHECK
: st1
{ v15.8h
, v16.8h
}, [x15
], x2
241 // CHECK
: // encoding
: [0xef,0xa5,0x82,0x4c]
242 // CHECK
: st1
{ v31.4s
, v0.4s
}, [sp
], #32
243 // CHECK
: // encoding
: [0xff,0xab,0x9f,0x4c]
244 // CHECK
: st1
{ v0.2d
, v1.2d
}, [x0
], #32
245 // CHECK
: // encoding
: [0x00,0xac,0x9f,0x4c]
246 // CHECK
: st1
{ v0.8
b, v1.8
b }, [x0
], x2
247 // CHECK
: // encoding
: [0x00,0xa0,0x82,0x0c]
248 // CHECK
: st1
{ v15.4h
, v16.4h
}, [x15
], x3
249 // CHECK
: // encoding
: [0xef,0xa5,0x83,0x0c]
250 // CHECK
: st1
{ v31.2s
, v0.2s
}, [sp
], #16
251 // CHECK
: // encoding
: [0xff,0xab,0x9f,0x0c]
252 // CHECK
: st1
{ v0.1d
, v1.1d
}, [x0
], #16
253 // CHECK
: // encoding
: [0x00,0xac,0x9f,0x0c]
255 //------------------------------------------------------------------------------
256 // Store multiple
1-element structures from three consecutive registers
258 //------------------------------------------------------------------------------
259 st1
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
260 st1
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
261 st1
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
262 st1
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
263 st1
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
264 st1
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
265 st1
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
266 st1
{ v0.1d
, v1.1d
, v2.1d
}, [x0
], #24
267 // CHECK
: st1
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
268 // CHECK
: // encoding
: [0x00,0x60,0x81,0x4c]
269 // CHECK
: st1
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
270 // CHECK
: // encoding
: [0xef,0x65,0x82,0x4c]
271 // CHECK
: st1
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
272 // CHECK
: // encoding
: [0xff,0x6b,0x9f,0x4c]
273 // CHECK
: st1
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
274 // CHECK
: // encoding
: [0x00,0x6c,0x9f,0x4c]
275 // CHECK
: st1
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
276 // CHECK
: // encoding
: [0x00,0x60,0x82,0x0c]
277 // CHECK
: st1
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
278 // CHECK
: // encoding
: [0xef,0x65,0x83,0x0c]
279 // CHECK
: st1
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
280 // CHECK
: // encoding
: [0xff,0x6b,0x9f,0x0c]
281 // CHECK
: st1
{ v0.1d
, v1.1d
, v2.1d
}, [x0
], #24
282 // CHECK
: // encoding
: [0x00,0x6c,0x9f,0x0c]
284 //------------------------------------------------------------------------------
285 // Store multiple
1-element structures from four consecutive registers
287 //------------------------------------------------------------------------------
288 st1
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
289 st1
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
290 st1
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
291 st1
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
292 st1
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
293 st1
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
294 st1
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
295 st1
{ v0.1d
, v1.1d
, v2.1d
, v3.1d
}, [x0
], #32
296 // CHECK
: st1
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
297 // CHECK
: // encoding
: [0x00,0x20,0x81,0x4c]
298 // CHECK
: st1
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
299 // CHECK
: // encoding
: [0xef,0x25,0x82,0x4c]
300 // CHECK
: st1
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
301 // CHECK
: // encoding
: [0xff,0x2b,0x9f,0x4c]
302 // CHECK
: st1
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
303 // CHECK
: // encoding
: [0x00,0x2c,0x9f,0x4c]
304 // CHECK
: st1
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
305 // CHECK
: // encoding
: [0x00,0x20,0x83,0x0c]
306 // CHECK
: st1
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
307 // CHECK
: // encoding
: [0xef,0x25,0x84,0x0c]
308 // CHECK
: st1
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
309 // CHECK
: // encoding
: [0xff,0x2b,0x9f,0x0c]
310 // CHECK
: st1
{ v0.1d
, v1.1d
, v2.1d
, v3.1d
}, [x0
], #32
311 // CHECK
: // encoding
: [0x00,0x2c,0x9f,0x0c]
313 //------------------------------------------------------------------------------
314 // Store multiple
2-element structures from two consecutive registers
316 //------------------------------------------------------------------------------
317 st2
{ v0.16
b, v1.16
b }, [x0
], x1
318 st2
{ v15.8h
, v16.8h
}, [x15
], x2
319 st2
{ v31.4s
, v0.4s
}, [sp
], #32
320 st2
{ v0.2d
, v1.2d
}, [x0
], #32
321 st2
{ v0.8
b, v1.8
b }, [x0
], x2
322 st2
{ v15.4h
, v16.4h
}, [x15
], x3
323 st2
{ v31.2s
, v0.2s
}, [sp
], #16
324 // CHECK
: st2
{ v0.16
b, v1.16
b }, [x0
], x1
325 // CHECK
: // encoding
: [0x00,0x80,0x81,0x4c]
326 // CHECK
: st2
{ v15.8h
, v16.8h
}, [x15
], x2
327 // CHECK
: // encoding
: [0xef,0x85,0x82,0x4c]
328 // CHECK
: st2
{ v31.4s
, v0.4s
}, [sp
], #32
329 // CHECK
: // encoding
: [0xff,0x8b,0x9f,0x4c]
330 // CHECK
: st2
{ v0.2d
, v1.2d
}, [x0
], #32
331 // CHECK
: // encoding
: [0x00,0x8c,0x9f,0x4c]
332 // CHECK
: st2
{ v0.8
b, v1.8
b }, [x0
], x2
333 // CHECK
: // encoding
: [0x00,0x80,0x82,0x0c]
334 // CHECK
: st2
{ v15.4h
, v16.4h
}, [x15
], x3
335 // CHECK
: // encoding
: [0xef,0x85,0x83,0x0c]
336 // CHECK
: st2
{ v31.2s
, v0.2s
}, [sp
], #16
337 // CHECK
: // encoding
: [0xff,0x8b,0x9f,0x0c]
339 //------------------------------------------------------------------------------
340 // Store multiple
3-element structures from three consecutive registers
342 //------------------------------------------------------------------------------
343 st3
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
344 st3
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
345 st3
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
346 st3
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
347 st3
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
348 st3
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
349 st3
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
350 // CHECK
: st3
{ v0.16
b, v1.16
b, v2.16
b }, [x0
], x1
351 // CHECK
: // encoding
: [0x00,0x40,0x81,0x4c]
352 // CHECK
: st3
{ v15.8h
, v16.8h
, v17.8h
}, [x15
], x2
353 // CHECK
: // encoding
: [0xef,0x45,0x82,0x4c]
354 // CHECK
: st3
{ v31.4s
, v0.4s
, v1.4s
}, [sp
], #48
355 // CHECK
: // encoding
: [0xff,0x4b,0x9f,0x4c]
356 // CHECK
: st3
{ v0.2d
, v1.2d
, v2.2d
}, [x0
], #48
357 // CHECK
: // encoding
: [0x00,0x4c,0x9f,0x4c]
358 // CHECK
: st3
{ v0.8
b, v1.8
b, v2.8
b }, [x0
], x2
359 // CHECK
: // encoding
: [0x00,0x40,0x82,0x0c]
360 // CHECK
: st3
{ v15.4h
, v16.4h
, v17.4h
}, [x15
], x3
361 // CHECK
: // encoding
: [0xef,0x45,0x83,0x0c]
362 // CHECK
: st3
{ v31.2s
, v0.2s
, v1.2s
}, [sp
], #24
363 // CHECK
: // encoding
: [0xff,0x4b,0x9f,0x0c]
365 //------------------------------------------------------------------------------
366 // Store multiple
4-element structures from four consecutive registers
368 //------------------------------------------------------------------------------
369 st4
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
370 st4
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
371 st4
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
372 st4
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
373 st4
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
374 st4
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
375 st4
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
376 // CHECK
: st4
{ v0.16
b, v1.16
b, v2.16
b, v3.16
b }, [x0
], x1
377 // CHECK
: // encoding
: [0x00,0x00,0x81,0x4c]
378 // CHECK
: st4
{ v15.8h
, v16.8h
, v17.8h
, v18.8h
}, [x15
], x2
379 // CHECK
: // encoding
: [0xef,0x05,0x82,0x4c]
380 // CHECK
: st4
{ v31.4s
, v0.4s
, v1.4s
, v2.4s
}, [sp
], #64
381 // CHECK
: // encoding
: [0xff,0x0b,0x9f,0x4c]
382 // CHECK
: st4
{ v0.2d
, v1.2d
, v2.2d
, v3.2d
}, [x0
], #64
383 // CHECK
: // encoding
: [0x00,0x0c,0x9f,0x4c]
384 // CHECK
: st4
{ v0.8
b, v1.8
b, v2.8
b, v3.8
b }, [x0
], x3
385 // CHECK
: // encoding
: [0x00,0x00,0x83,0x0c]
386 // CHECK
: st4
{ v15.4h
, v16.4h
, v17.4h
, v18.4h
}, [x15
], x4
387 // CHECK
: // encoding
: [0xef,0x05,0x84,0x0c]
388 // CHECK
: st4
{ v31.2s
, v0.2s
, v1.2s
, v2.2s
}, [sp
], #32
389 // CHECK
: // encoding
: [0xff,0x0b,0x9f,0x0c]