1 // REQUIRES: aarch64-registered-target
2 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \
3 // RUN: -ffp-contract=fast -S -O3 -o - %s | FileCheck %s
4
5 #include <arm_neon.h>
6
test_vld1q_dup_u8(uint8_t * a)7 uint8x16_t test_vld1q_dup_u8(uint8_t *a) {
8 // CHECK-LABEL: test_vld1q_dup_u8
9 return vld1q_dup_u8(a);
10 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
11 }
12
test_vld1q_dup_u16(uint16_t * a)13 uint16x8_t test_vld1q_dup_u16(uint16_t *a) {
14 // CHECK-LABEL: test_vld1q_dup_u16
15 return vld1q_dup_u16(a);
16 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
17 }
18
test_vld1q_dup_u32(uint32_t * a)19 uint32x4_t test_vld1q_dup_u32(uint32_t *a) {
20 // CHECK-LABEL: test_vld1q_dup_u32
21 return vld1q_dup_u32(a);
22 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
23 }
24
test_vld1q_dup_u64(uint64_t * a)25 uint64x2_t test_vld1q_dup_u64(uint64_t *a) {
26 // CHECK-LABEL: test_vld1q_dup_u64
27 return vld1q_dup_u64(a);
28 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
29 }
30
test_vld1q_dup_s8(int8_t * a)31 int8x16_t test_vld1q_dup_s8(int8_t *a) {
32 // CHECK-LABEL: test_vld1q_dup_s8
33 return vld1q_dup_s8(a);
34 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
35 }
36
test_vld1q_dup_s16(int16_t * a)37 int16x8_t test_vld1q_dup_s16(int16_t *a) {
38 // CHECK-LABEL: test_vld1q_dup_s16
39 return vld1q_dup_s16(a);
40 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
41 }
42
test_vld1q_dup_s32(int32_t * a)43 int32x4_t test_vld1q_dup_s32(int32_t *a) {
44 // CHECK-LABEL: test_vld1q_dup_s32
45 return vld1q_dup_s32(a);
46 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
47 }
48
test_vld1q_dup_s64(int64_t * a)49 int64x2_t test_vld1q_dup_s64(int64_t *a) {
50 // CHECK-LABEL: test_vld1q_dup_s64
51 return vld1q_dup_s64(a);
52 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
53 }
54
test_vld1q_dup_f16(float16_t * a)55 float16x8_t test_vld1q_dup_f16(float16_t *a) {
56 // CHECK-LABEL: test_vld1q_dup_f16
57 return vld1q_dup_f16(a);
58 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
59 }
60
test_vld1q_dup_f32(float32_t * a)61 float32x4_t test_vld1q_dup_f32(float32_t *a) {
62 // CHECK-LABEL: test_vld1q_dup_f32
63 return vld1q_dup_f32(a);
64 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
65 }
66
test_vld1q_dup_f64(float64_t * a)67 float64x2_t test_vld1q_dup_f64(float64_t *a) {
68 // CHECK-LABEL: test_vld1q_dup_f64
69 return vld1q_dup_f64(a);
70 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
71 }
72
test_vld1q_dup_p8(poly8_t * a)73 poly8x16_t test_vld1q_dup_p8(poly8_t *a) {
74 // CHECK-LABEL: test_vld1q_dup_p8
75 return vld1q_dup_p8(a);
76 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
77 }
78
test_vld1q_dup_p16(poly16_t * a)79 poly16x8_t test_vld1q_dup_p16(poly16_t *a) {
80 // CHECK-LABEL: test_vld1q_dup_p16
81 return vld1q_dup_p16(a);
82 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
83 }
84
test_vld1q_dup_p64(poly64_t * a)85 poly64x2_t test_vld1q_dup_p64(poly64_t *a) {
86 // CHECK-LABEL: test_vld1q_dup_p64
87 return vld1q_dup_p64(a);
88 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
89 }
90
test_vld1_dup_u8(uint8_t * a)91 uint8x8_t test_vld1_dup_u8(uint8_t *a) {
92 // CHECK-LABEL: test_vld1_dup_u8
93 return vld1_dup_u8(a);
94 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
95 }
96
test_vld1_dup_u16(uint16_t * a)97 uint16x4_t test_vld1_dup_u16(uint16_t *a) {
98 // CHECK-LABEL: test_vld1_dup_u16
99 return vld1_dup_u16(a);
100 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
101 }
102
test_vld1_dup_u32(uint32_t * a)103 uint32x2_t test_vld1_dup_u32(uint32_t *a) {
104 // CHECK-LABEL: test_vld1_dup_u32
105 return vld1_dup_u32(a);
106 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
107 }
108
test_vld1_dup_u64(uint64_t * a)109 uint64x1_t test_vld1_dup_u64(uint64_t *a) {
110 // CHECK-LABEL: test_vld1_dup_u64
111 return vld1_dup_u64(a);
112 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
113 }
114
test_vld1_dup_s8(int8_t * a)115 int8x8_t test_vld1_dup_s8(int8_t *a) {
116 // CHECK-LABEL: test_vld1_dup_s8
117 return vld1_dup_s8(a);
118 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
119 }
120
test_vld1_dup_s16(int16_t * a)121 int16x4_t test_vld1_dup_s16(int16_t *a) {
122 // CHECK-LABEL: test_vld1_dup_s16
123 return vld1_dup_s16(a);
124 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
125 }
126
test_vld1_dup_s32(int32_t * a)127 int32x2_t test_vld1_dup_s32(int32_t *a) {
128 // CHECK-LABEL: test_vld1_dup_s32
129 return vld1_dup_s32(a);
130 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
131 }
132
test_vld1_dup_s64(int64_t * a)133 int64x1_t test_vld1_dup_s64(int64_t *a) {
134 // CHECK-LABEL: test_vld1_dup_s64
135 return vld1_dup_s64(a);
136 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
137 }
138
test_vld1_dup_f16(float16_t * a)139 float16x4_t test_vld1_dup_f16(float16_t *a) {
140 // CHECK-LABEL: test_vld1_dup_f16
141 return vld1_dup_f16(a);
142 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
143 }
144
test_vld1_dup_f32(float32_t * a)145 float32x2_t test_vld1_dup_f32(float32_t *a) {
146 // CHECK-LABEL: test_vld1_dup_f32
147 return vld1_dup_f32(a);
148 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
149 }
150
test_vld1_dup_f64(float64_t * a)151 float64x1_t test_vld1_dup_f64(float64_t *a) {
152 // CHECK-LABEL: test_vld1_dup_f64
153 return vld1_dup_f64(a);
154 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
155 }
156
test_vld1_dup_p8(poly8_t * a)157 poly8x8_t test_vld1_dup_p8(poly8_t *a) {
158 // CHECK-LABEL: test_vld1_dup_p8
159 return vld1_dup_p8(a);
160 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
161 }
162
test_vld1_dup_p16(poly16_t * a)163 poly16x4_t test_vld1_dup_p16(poly16_t *a) {
164 // CHECK-LABEL: test_vld1_dup_p16
165 return vld1_dup_p16(a);
166 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
167 }
168
test_vld1_dup_p64(poly64_t * a)169 poly64x1_t test_vld1_dup_p64(poly64_t *a) {
170 // CHECK-LABEL: test_vld1_dup_p64
171 return vld1_dup_p64(a);
172 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
173 }
174
test_vld2q_dup_u8(uint8_t * a)175 uint8x16x2_t test_vld2q_dup_u8(uint8_t *a) {
176 // CHECK-LABEL: test_vld2q_dup_u8
177 return vld2q_dup_u8(a);
178 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
179 }
180
test_vld2q_dup_u16(uint16_t * a)181 uint16x8x2_t test_vld2q_dup_u16(uint16_t *a) {
182 // CHECK-LABEL: test_vld2q_dup_u16
183 return vld2q_dup_u16(a);
184 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
185 }
186
test_vld2q_dup_u32(uint32_t * a)187 uint32x4x2_t test_vld2q_dup_u32(uint32_t *a) {
188 // CHECK-LABEL: test_vld2q_dup_u32
189 return vld2q_dup_u32(a);
190 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
191 }
192
test_vld2q_dup_u64(uint64_t * a)193 uint64x2x2_t test_vld2q_dup_u64(uint64_t *a) {
194 // CHECK-LABEL: test_vld2q_dup_u64
195 return vld2q_dup_u64(a);
196 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
197 }
198
test_vld2q_dup_s8(int8_t * a)199 int8x16x2_t test_vld2q_dup_s8(int8_t *a) {
200 // CHECK-LABEL: test_vld2q_dup_s8
201 return vld2q_dup_s8(a);
202 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
203 }
204
test_vld2q_dup_s16(int16_t * a)205 int16x8x2_t test_vld2q_dup_s16(int16_t *a) {
206 // CHECK-LABEL: test_vld2q_dup_s16
207 return vld2q_dup_s16(a);
208 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
209 }
210
test_vld2q_dup_s32(int32_t * a)211 int32x4x2_t test_vld2q_dup_s32(int32_t *a) {
212 // CHECK-LABEL: test_vld2q_dup_s32
213 return vld2q_dup_s32(a);
214 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
215 }
216
test_vld2q_dup_s64(int64_t * a)217 int64x2x2_t test_vld2q_dup_s64(int64_t *a) {
218 // CHECK-LABEL: test_vld2q_dup_s64
219 return vld2q_dup_s64(a);
220 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
221 }
222
test_vld2q_dup_f16(float16_t * a)223 float16x8x2_t test_vld2q_dup_f16(float16_t *a) {
224 // CHECK-LABEL: test_vld2q_dup_f16
225 return vld2q_dup_f16(a);
226 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
227 }
228
test_vld2q_dup_f32(float32_t * a)229 float32x4x2_t test_vld2q_dup_f32(float32_t *a) {
230 // CHECK-LABEL: test_vld2q_dup_f32
231 return vld2q_dup_f32(a);
232 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
233 }
234
test_vld2q_dup_f64(float64_t * a)235 float64x2x2_t test_vld2q_dup_f64(float64_t *a) {
236 // CHECK-LABEL: test_vld2q_dup_f64
237 return vld2q_dup_f64(a);
238 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
239 }
240
test_vld2q_dup_p8(poly8_t * a)241 poly8x16x2_t test_vld2q_dup_p8(poly8_t *a) {
242 // CHECK-LABEL: test_vld2q_dup_p8
243 return vld2q_dup_p8(a);
244 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
245 }
246
test_vld2q_dup_p16(poly16_t * a)247 poly16x8x2_t test_vld2q_dup_p16(poly16_t *a) {
248 // CHECK-LABEL: test_vld2q_dup_p16
249 return vld2q_dup_p16(a);
250 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
251 }
252
test_vld2q_dup_p64(poly64_t * a)253 poly64x2x2_t test_vld2q_dup_p64(poly64_t *a) {
254 // CHECK-LABEL: test_vld2q_dup_p64
255 return vld2q_dup_p64(a);
256 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
257 }
258
test_vld2_dup_u8(uint8_t * a)259 uint8x8x2_t test_vld2_dup_u8(uint8_t *a) {
260 // CHECK-LABEL: test_vld2_dup_u8
261 return vld2_dup_u8(a);
262 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
263 }
264
test_vld2_dup_u16(uint16_t * a)265 uint16x4x2_t test_vld2_dup_u16(uint16_t *a) {
266 // CHECK-LABEL: test_vld2_dup_u16
267 return vld2_dup_u16(a);
268 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
269 }
270
test_vld2_dup_u32(uint32_t * a)271 uint32x2x2_t test_vld2_dup_u32(uint32_t *a) {
272 // CHECK-LABEL: test_vld2_dup_u32
273 return vld2_dup_u32(a);
274 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
275 }
276
test_vld2_dup_u64(uint64_t * a)277 uint64x1x2_t test_vld2_dup_u64(uint64_t *a) {
278 // CHECK-LABEL: test_vld2_dup_u64
279 return vld2_dup_u64(a);
280 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
281 }
282
test_vld2_dup_s8(int8_t * a)283 int8x8x2_t test_vld2_dup_s8(int8_t *a) {
284 // CHECK-LABEL: test_vld2_dup_s8
285 return vld2_dup_s8(a);
286 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
287 }
288
test_vld2_dup_s16(int16_t * a)289 int16x4x2_t test_vld2_dup_s16(int16_t *a) {
290 // CHECK-LABEL: test_vld2_dup_s16
291 return vld2_dup_s16(a);
292 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
293 }
294
test_vld2_dup_s32(int32_t * a)295 int32x2x2_t test_vld2_dup_s32(int32_t *a) {
296 // CHECK-LABEL: test_vld2_dup_s32
297 return vld2_dup_s32(a);
298 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
299 }
300
test_vld2_dup_s64(int64_t * a)301 int64x1x2_t test_vld2_dup_s64(int64_t *a) {
302 // CHECK-LABEL: test_vld2_dup_s64
303 return vld2_dup_s64(a);
304 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
305 }
306
test_vld2_dup_f16(float16_t * a)307 float16x4x2_t test_vld2_dup_f16(float16_t *a) {
308 // CHECK-LABEL: test_vld2_dup_f16
309 return vld2_dup_f16(a);
310 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
311 }
312
test_vld2_dup_f32(float32_t * a)313 float32x2x2_t test_vld2_dup_f32(float32_t *a) {
314 // CHECK-LABEL: test_vld2_dup_f32
315 return vld2_dup_f32(a);
316 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
317 }
318
test_vld2_dup_f64(float64_t * a)319 float64x1x2_t test_vld2_dup_f64(float64_t *a) {
320 // CHECK-LABEL: test_vld2_dup_f64
321 return vld2_dup_f64(a);
322 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
323 }
324
test_vld2_dup_p8(poly8_t * a)325 poly8x8x2_t test_vld2_dup_p8(poly8_t *a) {
326 // CHECK-LABEL: test_vld2_dup_p8
327 return vld2_dup_p8(a);
328 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
329 }
330
test_vld2_dup_p16(poly16_t * a)331 poly16x4x2_t test_vld2_dup_p16(poly16_t *a) {
332 // CHECK-LABEL: test_vld2_dup_p16
333 return vld2_dup_p16(a);
334 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
335 }
336
test_vld2_dup_p64(poly64_t * a)337 poly64x1x2_t test_vld2_dup_p64(poly64_t *a) {
338 // CHECK-LABEL: test_vld2_dup_p64
339 return vld2_dup_p64(a);
340 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
341 }
342
test_vld3q_dup_u8(uint8_t * a)343 uint8x16x3_t test_vld3q_dup_u8(uint8_t *a) {
344 // CHECK-LABEL: test_vld3q_dup_u8
345 return vld3q_dup_u8(a);
346 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}},
347 // [{{x[0-9]+|sp}}]
348 }
349
test_vld3q_dup_u16(uint16_t * a)350 uint16x8x3_t test_vld3q_dup_u16(uint16_t *a) {
351 // CHECK-LABEL: test_vld3q_dup_u16
352 return vld3q_dup_u16(a);
353 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}},
354 // [{{x[0-9]+|sp}}]
355 }
356
test_vld3q_dup_u32(uint32_t * a)357 uint32x4x3_t test_vld3q_dup_u32(uint32_t *a) {
358 // CHECK-LABEL: test_vld3q_dup_u32
359 return vld3q_dup_u32(a);
360 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}},
361 // [{{x[0-9]+|sp}}]
362 }
363
test_vld3q_dup_u64(uint64_t * a)364 uint64x2x3_t test_vld3q_dup_u64(uint64_t *a) {
365 // CHECK-LABEL: test_vld3q_dup_u64
366 return vld3q_dup_u64(a);
367 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}},
368 // [{{x[0-9]+|sp}}]
369 }
370
test_vld3q_dup_s8(int8_t * a)371 int8x16x3_t test_vld3q_dup_s8(int8_t *a) {
372 // CHECK-LABEL: test_vld3q_dup_s8
373 return vld3q_dup_s8(a);
374 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}},
375 // [{{x[0-9]+|sp}}]
376 }
377
test_vld3q_dup_s16(int16_t * a)378 int16x8x3_t test_vld3q_dup_s16(int16_t *a) {
379 // CHECK-LABEL: test_vld3q_dup_s16
380 return vld3q_dup_s16(a);
381 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}},
382 // [{{x[0-9]+|sp}}]
383 }
384
test_vld3q_dup_s32(int32_t * a)385 int32x4x3_t test_vld3q_dup_s32(int32_t *a) {
386 // CHECK-LABEL: test_vld3q_dup_s32
387 return vld3q_dup_s32(a);
388 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}},
389 // [{{x[0-9]+|sp}}]
390 }
391
test_vld3q_dup_s64(int64_t * a)392 int64x2x3_t test_vld3q_dup_s64(int64_t *a) {
393 // CHECK-LABEL: test_vld3q_dup_s64
394 return vld3q_dup_s64(a);
395 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}},
396 // [{{x[0-9]+|sp}}]
397 }
398
test_vld3q_dup_f16(float16_t * a)399 float16x8x3_t test_vld3q_dup_f16(float16_t *a) {
400 // CHECK-LABEL: test_vld3q_dup_f16
401 return vld3q_dup_f16(a);
402 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}},
403 // [{{x[0-9]+|sp}}]
404 }
405
test_vld3q_dup_f32(float32_t * a)406 float32x4x3_t test_vld3q_dup_f32(float32_t *a) {
407 // CHECK-LABEL: test_vld3q_dup_f32
408 return vld3q_dup_f32(a);
409 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}},
410 // [{{x[0-9]+|sp}}]
411 }
412
test_vld3q_dup_f64(float64_t * a)413 float64x2x3_t test_vld3q_dup_f64(float64_t *a) {
414 // CHECK-LABEL: test_vld3q_dup_f64
415 return vld3q_dup_f64(a);
416 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}},
417 // [{{x[0-9]+|sp}}]
418 }
419
test_vld3q_dup_p8(poly8_t * a)420 poly8x16x3_t test_vld3q_dup_p8(poly8_t *a) {
421 // CHECK-LABEL: test_vld3q_dup_p8
422 return vld3q_dup_p8(a);
423 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}},
424 // [{{x[0-9]+|sp}}]
425 }
426
test_vld3q_dup_p16(poly16_t * a)427 poly16x8x3_t test_vld3q_dup_p16(poly16_t *a) {
428 // CHECK-LABEL: test_vld3q_dup_p16
429 return vld3q_dup_p16(a);
430 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}},
431 // [{{x[0-9]+|sp}}]
432 }
433
test_vld3q_dup_p64(poly64_t * a)434 poly64x2x3_t test_vld3q_dup_p64(poly64_t *a) {
435 // CHECK-LABEL: test_vld3q_dup_p64
436 return vld3q_dup_p64(a);
437 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}},
438 // [{{x[0-9]+|sp}}]
439 }
440
test_vld3_dup_u8(uint8_t * a)441 uint8x8x3_t test_vld3_dup_u8(uint8_t *a) {
442 // CHECK-LABEL: test_vld3_dup_u8
443 return vld3_dup_u8(a);
444 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}},
445 // [{{x[0-9]+|sp}}]
446 }
447
test_vld3_dup_u16(uint16_t * a)448 uint16x4x3_t test_vld3_dup_u16(uint16_t *a) {
449 // CHECK-LABEL: test_vld3_dup_u16
450 return vld3_dup_u16(a);
451 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}},
452 // [{{x[0-9]+|sp}}]
453 }
454
test_vld3_dup_u32(uint32_t * a)455 uint32x2x3_t test_vld3_dup_u32(uint32_t *a) {
456 // CHECK-LABEL: test_vld3_dup_u32
457 return vld3_dup_u32(a);
458 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}},
459 // [{{x[0-9]+|sp}}]
460 }
461
test_vld3_dup_u64(uint64_t * a)462 uint64x1x3_t test_vld3_dup_u64(uint64_t *a) {
463 // CHECK-LABEL: test_vld3_dup_u64
464 return vld3_dup_u64(a);
465 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}},
466 // [{{x[0-9]+|sp}}]
467 }
468
test_vld3_dup_s8(int8_t * a)469 int8x8x3_t test_vld3_dup_s8(int8_t *a) {
470 // CHECK-LABEL: test_vld3_dup_s8
471 return vld3_dup_s8(a);
472 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}},
473 // [{{x[0-9]+|sp}}]
474 }
475
test_vld3_dup_s16(int16_t * a)476 int16x4x3_t test_vld3_dup_s16(int16_t *a) {
477 // CHECK-LABEL: test_vld3_dup_s16
478 return vld3_dup_s16(a);
479 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}},
480 // [{{x[0-9]+|sp}}]
481 }
482
test_vld3_dup_s32(int32_t * a)483 int32x2x3_t test_vld3_dup_s32(int32_t *a) {
484 // CHECK-LABEL: test_vld3_dup_s32
485 return vld3_dup_s32(a);
486 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}},
487 // [{{x[0-9]+|sp}}]
488 }
489
test_vld3_dup_s64(int64_t * a)490 int64x1x3_t test_vld3_dup_s64(int64_t *a) {
491 // CHECK-LABEL: test_vld3_dup_s64
492 return vld3_dup_s64(a);
493 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}},
494 // [{{x[0-9]+|sp}}]
495 }
496
test_vld3_dup_f16(float16_t * a)497 float16x4x3_t test_vld3_dup_f16(float16_t *a) {
498 // CHECK-LABEL: test_vld3_dup_f16
499 return vld3_dup_f16(a);
500 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}},
501 // [{{x[0-9]+|sp}}]
502 }
503
test_vld3_dup_f32(float32_t * a)504 float32x2x3_t test_vld3_dup_f32(float32_t *a) {
505 // CHECK-LABEL: test_vld3_dup_f32
506 return vld3_dup_f32(a);
507 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}},
508 // [{{x[0-9]+|sp}}]
509 }
510
test_vld3_dup_f64(float64_t * a)511 float64x1x3_t test_vld3_dup_f64(float64_t *a) {
512 // CHECK-LABEL: test_vld3_dup_f64
513 return vld3_dup_f64(a);
514 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}},
515 // [{{x[0-9]+|sp}}]
516 }
517
test_vld3_dup_p8(poly8_t * a)518 poly8x8x3_t test_vld3_dup_p8(poly8_t *a) {
519 // CHECK-LABEL: test_vld3_dup_p8
520 return vld3_dup_p8(a);
521 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}},
522 // [{{x[0-9]+|sp}}]
523 }
524
test_vld3_dup_p16(poly16_t * a)525 poly16x4x3_t test_vld3_dup_p16(poly16_t *a) {
526 // CHECK-LABEL: test_vld3_dup_p16
527 return vld3_dup_p16(a);
528 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}},
529 // [{{x[0-9]+|sp}}]
530 }
531
test_vld3_dup_p64(poly64_t * a)532 poly64x1x3_t test_vld3_dup_p64(poly64_t *a) {
533 // CHECK-LABEL: test_vld3_dup_p64
534 return vld3_dup_p64(a);
535 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}},
536 // [{{x[0-9]+|sp}}]
537 }
538
test_vld4q_dup_u8(uint8_t * a)539 uint8x16x4_t test_vld4q_dup_u8(uint8_t *a) {
540 // CHECK-LABEL: test_vld4q_dup_u8
541 return vld4q_dup_u8(a);
542 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
543 }
544
test_vld4q_dup_u16(uint16_t * a)545 uint16x8x4_t test_vld4q_dup_u16(uint16_t *a) {
546 // CHECK-LABEL: test_vld4q_dup_u16
547 return vld4q_dup_u16(a);
548 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
549 }
550
test_vld4q_dup_u32(uint32_t * a)551 uint32x4x4_t test_vld4q_dup_u32(uint32_t *a) {
552 // CHECK-LABEL: test_vld4q_dup_u32
553 return vld4q_dup_u32(a);
554 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
555 }
556
test_vld4q_dup_u64(uint64_t * a)557 uint64x2x4_t test_vld4q_dup_u64(uint64_t *a) {
558 // CHECK-LABEL: test_vld4q_dup_u64
559 return vld4q_dup_u64(a);
560 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
561 }
562
test_vld4q_dup_s8(int8_t * a)563 int8x16x4_t test_vld4q_dup_s8(int8_t *a) {
564 // CHECK-LABEL: test_vld4q_dup_s8
565 return vld4q_dup_s8(a);
566 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
567 }
568
test_vld4q_dup_s16(int16_t * a)569 int16x8x4_t test_vld4q_dup_s16(int16_t *a) {
570 // CHECK-LABEL: test_vld4q_dup_s16
571 return vld4q_dup_s16(a);
572 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
573 }
574
test_vld4q_dup_s32(int32_t * a)575 int32x4x4_t test_vld4q_dup_s32(int32_t *a) {
576 // CHECK-LABEL: test_vld4q_dup_s32
577 return vld4q_dup_s32(a);
578 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
579 }
580
test_vld4q_dup_s64(int64_t * a)581 int64x2x4_t test_vld4q_dup_s64(int64_t *a) {
582 // CHECK-LABEL: test_vld4q_dup_s64
583 return vld4q_dup_s64(a);
584 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
585 }
586
test_vld4q_dup_f16(float16_t * a)587 float16x8x4_t test_vld4q_dup_f16(float16_t *a) {
588 // CHECK-LABEL: test_vld4q_dup_f16
589 return vld4q_dup_f16(a);
590 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
591 }
592
test_vld4q_dup_f32(float32_t * a)593 float32x4x4_t test_vld4q_dup_f32(float32_t *a) {
594 // CHECK-LABEL: test_vld4q_dup_f32
595 return vld4q_dup_f32(a);
596 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}]
597 }
598
test_vld4q_dup_f64(float64_t * a)599 float64x2x4_t test_vld4q_dup_f64(float64_t *a) {
600 // CHECK-LABEL: test_vld4q_dup_f64
601 return vld4q_dup_f64(a);
602 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
603 }
604
test_vld4q_dup_p8(poly8_t * a)605 poly8x16x4_t test_vld4q_dup_p8(poly8_t *a) {
606 // CHECK-LABEL: test_vld4q_dup_p8
607 return vld4q_dup_p8(a);
608 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}]
609 }
610
test_vld4q_dup_p16(poly16_t * a)611 poly16x8x4_t test_vld4q_dup_p16(poly16_t *a) {
612 // CHECK-LABEL: test_vld4q_dup_p16
613 return vld4q_dup_p16(a);
614 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}]
615 }
616
test_vld4q_dup_p64(poly64_t * a)617 poly64x2x4_t test_vld4q_dup_p64(poly64_t *a) {
618 // CHECK-LABEL: test_vld4q_dup_p64
619 return vld4q_dup_p64(a);
620 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}]
621 }
622
test_vld4_dup_u8(uint8_t * a)623 uint8x8x4_t test_vld4_dup_u8(uint8_t *a) {
624 // CHECK-LABEL: test_vld4_dup_u8
625 return vld4_dup_u8(a);
626 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
627 }
628
test_vld4_dup_u16(uint16_t * a)629 uint16x4x4_t test_vld4_dup_u16(uint16_t *a) {
630 // CHECK-LABEL: test_vld4_dup_u16
631 return vld4_dup_u16(a);
632 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
633 }
634
test_vld4_dup_u32(uint32_t * a)635 uint32x2x4_t test_vld4_dup_u32(uint32_t *a) {
636 // CHECK-LABEL: test_vld4_dup_u32
637 return vld4_dup_u32(a);
638 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
639 }
640
test_vld4_dup_u64(uint64_t * a)641 uint64x1x4_t test_vld4_dup_u64(uint64_t *a) {
642 // CHECK-LABEL: test_vld4_dup_u64
643 return vld4_dup_u64(a);
644 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
645 }
646
test_vld4_dup_s8(int8_t * a)647 int8x8x4_t test_vld4_dup_s8(int8_t *a) {
648 // CHECK-LABEL: test_vld4_dup_s8
649 return vld4_dup_s8(a);
650 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
651 }
652
test_vld4_dup_s16(int16_t * a)653 int16x4x4_t test_vld4_dup_s16(int16_t *a) {
654 // CHECK-LABEL: test_vld4_dup_s16
655 return vld4_dup_s16(a);
656 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
657 }
658
test_vld4_dup_s32(int32_t * a)659 int32x2x4_t test_vld4_dup_s32(int32_t *a) {
660 // CHECK-LABEL: test_vld4_dup_s32
661 return vld4_dup_s32(a);
662 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
663 }
664
test_vld4_dup_s64(int64_t * a)665 int64x1x4_t test_vld4_dup_s64(int64_t *a) {
666 // CHECK-LABEL: test_vld4_dup_s64
667 return vld4_dup_s64(a);
668 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
669 }
670
test_vld4_dup_f16(float16_t * a)671 float16x4x4_t test_vld4_dup_f16(float16_t *a) {
672 // CHECK-LABEL: test_vld4_dup_f16
673 return vld4_dup_f16(a);
674 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
675 }
676
test_vld4_dup_f32(float32_t * a)677 float32x2x4_t test_vld4_dup_f32(float32_t *a) {
678 // CHECK-LABEL: test_vld4_dup_f32
679 return vld4_dup_f32(a);
680 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}]
681 }
682
test_vld4_dup_f64(float64_t * a)683 float64x1x4_t test_vld4_dup_f64(float64_t *a) {
684 // CHECK-LABEL: test_vld4_dup_f64
685 return vld4_dup_f64(a);
686 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
687 }
688
test_vld4_dup_p8(poly8_t * a)689 poly8x8x4_t test_vld4_dup_p8(poly8_t *a) {
690 // CHECK-LABEL: test_vld4_dup_p8
691 return vld4_dup_p8(a);
692 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}]
693 }
694
test_vld4_dup_p16(poly16_t * a)695 poly16x4x4_t test_vld4_dup_p16(poly16_t *a) {
696 // CHECK-LABEL: test_vld4_dup_p16
697 return vld4_dup_p16(a);
698 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}]
699 }
700
test_vld4_dup_p64(poly64_t * a)701 poly64x1x4_t test_vld4_dup_p64(poly64_t *a) {
702 // CHECK-LABEL: test_vld4_dup_p64
703 return vld4_dup_p64(a);
704 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}]
705 }
706
test_vld1q_lane_u8(uint8_t * a,uint8x16_t b)707 uint8x16_t test_vld1q_lane_u8(uint8_t *a, uint8x16_t b) {
708 // CHECK-LABEL: test_vld1q_lane_u8
709 return vld1q_lane_u8(a, b, 15);
710 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
711 }
712
test_vld1q_lane_u16(uint16_t * a,uint16x8_t b)713 uint16x8_t test_vld1q_lane_u16(uint16_t *a, uint16x8_t b) {
714 // CHECK-LABEL: test_vld1q_lane_u16
715 return vld1q_lane_u16(a, b, 7);
716 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
717 }
718
test_vld1q_lane_u32(uint32_t * a,uint32x4_t b)719 uint32x4_t test_vld1q_lane_u32(uint32_t *a, uint32x4_t b) {
720 // CHECK-LABEL: test_vld1q_lane_u32
721 return vld1q_lane_u32(a, b, 3);
722 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
723 }
724
test_vld1q_lane_u64(uint64_t * a,uint64x2_t b)725 uint64x2_t test_vld1q_lane_u64(uint64_t *a, uint64x2_t b) {
726 // CHECK-LABEL: test_vld1q_lane_u64
727 return vld1q_lane_u64(a, b, 1);
728 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
729 }
730
test_vld1q_lane_s8(int8_t * a,int8x16_t b)731 int8x16_t test_vld1q_lane_s8(int8_t *a, int8x16_t b) {
732 // CHECK-LABEL: test_vld1q_lane_s8
733 return vld1q_lane_s8(a, b, 15);
734 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
735 }
736
test_vld1q_lane_s16(int16_t * a,int16x8_t b)737 int16x8_t test_vld1q_lane_s16(int16_t *a, int16x8_t b) {
738 // CHECK-LABEL: test_vld1q_lane_s16
739 return vld1q_lane_s16(a, b, 7);
740 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
741 }
742
test_vld1q_lane_s32(int32_t * a,int32x4_t b)743 int32x4_t test_vld1q_lane_s32(int32_t *a, int32x4_t b) {
744 // CHECK-LABEL: test_vld1q_lane_s32
745 return vld1q_lane_s32(a, b, 3);
746 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
747 }
748
test_vld1q_lane_s64(int64_t * a,int64x2_t b)749 int64x2_t test_vld1q_lane_s64(int64_t *a, int64x2_t b) {
750 // CHECK-LABEL: test_vld1q_lane_s64
751 return vld1q_lane_s64(a, b, 1);
752 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
753 }
754
test_vld1q_lane_f16(float16_t * a,float16x8_t b)755 float16x8_t test_vld1q_lane_f16(float16_t *a, float16x8_t b) {
756 // CHECK-LABEL: test_vld1q_lane_f16
757 return vld1q_lane_f16(a, b, 7);
758 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
759 }
760
test_vld1q_lane_f32(float32_t * a,float32x4_t b)761 float32x4_t test_vld1q_lane_f32(float32_t *a, float32x4_t b) {
762 // CHECK-LABEL: test_vld1q_lane_f32
763 return vld1q_lane_f32(a, b, 3);
764 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
765 }
766
test_vld1q_lane_f64(float64_t * a,float64x2_t b)767 float64x2_t test_vld1q_lane_f64(float64_t *a, float64x2_t b) {
768 // CHECK-LABEL: test_vld1q_lane_f64
769 return vld1q_lane_f64(a, b, 1);
770 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
771 }
772
test_vld1q_lane_p8(poly8_t * a,poly8x16_t b)773 poly8x16_t test_vld1q_lane_p8(poly8_t *a, poly8x16_t b) {
774 // CHECK-LABEL: test_vld1q_lane_p8
775 return vld1q_lane_p8(a, b, 15);
776 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
777 }
778
test_vld1q_lane_p16(poly16_t * a,poly16x8_t b)779 poly16x8_t test_vld1q_lane_p16(poly16_t *a, poly16x8_t b) {
780 // CHECK-LABEL: test_vld1q_lane_p16
781 return vld1q_lane_p16(a, b, 7);
782 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
783 }
784
test_vld1q_lane_p64(poly64_t * a,poly64x2_t b)785 poly64x2_t test_vld1q_lane_p64(poly64_t *a, poly64x2_t b) {
786 // CHECK-LABEL: test_vld1q_lane_p64
787 return vld1q_lane_p64(a, b, 1);
788 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
789 }
790
test_vld1_lane_u8(uint8_t * a,uint8x8_t b)791 uint8x8_t test_vld1_lane_u8(uint8_t *a, uint8x8_t b) {
792 // CHECK-LABEL: test_vld1_lane_u8
793 return vld1_lane_u8(a, b, 7);
794 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
795 }
796
test_vld1_lane_u16(uint16_t * a,uint16x4_t b)797 uint16x4_t test_vld1_lane_u16(uint16_t *a, uint16x4_t b) {
798 // CHECK-LABEL: test_vld1_lane_u16
799 return vld1_lane_u16(a, b, 3);
800 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
801 }
802
test_vld1_lane_u32(uint32_t * a,uint32x2_t b)803 uint32x2_t test_vld1_lane_u32(uint32_t *a, uint32x2_t b) {
804 // CHECK-LABEL: test_vld1_lane_u32
805 return vld1_lane_u32(a, b, 1);
806 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
807 }
808
test_vld1_lane_u64(uint64_t * a,uint64x1_t b)809 uint64x1_t test_vld1_lane_u64(uint64_t *a, uint64x1_t b) {
810 // CHECK-LABEL: test_vld1_lane_u64
811 return vld1_lane_u64(a, b, 0);
812 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
813 }
814
test_vld1_lane_s8(int8_t * a,int8x8_t b)815 int8x8_t test_vld1_lane_s8(int8_t *a, int8x8_t b) {
816 // CHECK-LABEL: test_vld1_lane_s8
817 return vld1_lane_s8(a, b, 7);
818 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
819 }
820
test_vld1_lane_s16(int16_t * a,int16x4_t b)821 int16x4_t test_vld1_lane_s16(int16_t *a, int16x4_t b) {
822 // CHECK-LABEL: test_vld1_lane_s16
823 return vld1_lane_s16(a, b, 3);
824 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
825 }
826
test_vld1_lane_s32(int32_t * a,int32x2_t b)827 int32x2_t test_vld1_lane_s32(int32_t *a, int32x2_t b) {
828 // CHECK-LABEL: test_vld1_lane_s32
829 return vld1_lane_s32(a, b, 1);
830 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
831 }
832
test_vld1_lane_s64(int64_t * a,int64x1_t b)833 int64x1_t test_vld1_lane_s64(int64_t *a, int64x1_t b) {
834 // CHECK-LABEL: test_vld1_lane_s64
835 return vld1_lane_s64(a, b, 0);
836 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
837 }
838
test_vld1_lane_f16(float16_t * a,float16x4_t b)839 float16x4_t test_vld1_lane_f16(float16_t *a, float16x4_t b) {
840 // CHECK-LABEL: test_vld1_lane_f16
841 return vld1_lane_f16(a, b, 3);
842 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
843 }
844
test_vld1_lane_f32(float32_t * a,float32x2_t b)845 float32x2_t test_vld1_lane_f32(float32_t *a, float32x2_t b) {
846 // CHECK-LABEL: test_vld1_lane_f32
847 return vld1_lane_f32(a, b, 1);
848 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
849 }
850
test_vld1_lane_f64(float64_t * a,float64x1_t b)851 float64x1_t test_vld1_lane_f64(float64_t *a, float64x1_t b) {
852 // CHECK-LABEL: test_vld1_lane_f64
853 return vld1_lane_f64(a, b, 0);
854 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
855 }
856
test_vld1_lane_p8(poly8_t * a,poly8x8_t b)857 poly8x8_t test_vld1_lane_p8(poly8_t *a, poly8x8_t b) {
858 // CHECK-LABEL: test_vld1_lane_p8
859 return vld1_lane_p8(a, b, 7);
860 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
861 }
862
test_vld1_lane_p16(poly16_t * a,poly16x4_t b)863 poly16x4_t test_vld1_lane_p16(poly16_t *a, poly16x4_t b) {
864 // CHECK-LABEL: test_vld1_lane_p16
865 return vld1_lane_p16(a, b, 3);
866 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
867 }
868
test_vld1_lane_p64(poly64_t * a,poly64x1_t b)869 poly64x1_t test_vld1_lane_p64(poly64_t *a, poly64x1_t b) {
870 // CHECK-LABEL: test_vld1_lane_p64
871 return vld1_lane_p64(a, b, 0);
872 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}]
873 }
874
test_vld2q_lane_s8(int8_t const * ptr,int8x16x2_t src)875 int8x16x2_t test_vld2q_lane_s8(int8_t const * ptr, int8x16x2_t src) {
876 // CHECK-LABEL: test_vld2q_lane_s8
877 return vld2q_lane_s8(ptr, src, 15);
878 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0]
879 }
880
test_vld2q_lane_u8(uint8_t const * ptr,uint8x16x2_t src)881 uint8x16x2_t test_vld2q_lane_u8(uint8_t const * ptr, uint8x16x2_t src) {
882 // CHECK-LABEL: test_vld2q_lane_u8
883 return vld2q_lane_u8(ptr, src, 15);
884 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0]
885 }
886
test_vld2q_lane_p8(poly8_t const * ptr,poly8x16x2_t src)887 poly8x16x2_t test_vld2q_lane_p8(poly8_t const * ptr, poly8x16x2_t src) {
888 // CHECK-LABEL: test_vld2q_lane_p8
889 return vld2q_lane_p8(ptr, src, 15);
890 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0]
891 }
892
test_vld3q_lane_s8(int8_t const * ptr,int8x16x3_t src)893 int8x16x3_t test_vld3q_lane_s8(int8_t const * ptr, int8x16x3_t src) {
894 // CHECK-LABEL: test_vld3q_lane_s8
895 return vld3q_lane_s8(ptr, src, 15);
896 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [x0]
897 }
898
test_vld3q_lane_u8(uint8_t const * ptr,uint8x16x3_t src)899 uint8x16x3_t test_vld3q_lane_u8(uint8_t const * ptr, uint8x16x3_t src) {
900 // CHECK-LABEL: test_vld3q_lane_u8
901 return vld3q_lane_u8(ptr, src, 15);
902 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [x0]
903 }
904
test_vld2q_lane_u16(uint16_t * a,uint16x8x2_t b)905 uint16x8x2_t test_vld2q_lane_u16(uint16_t *a, uint16x8x2_t b) {
906 // CHECK-LABEL: test_vld2q_lane_u16
907 return vld2q_lane_u16(a, b, 7);
908 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
909 }
910
test_vld2q_lane_u32(uint32_t * a,uint32x4x2_t b)911 uint32x4x2_t test_vld2q_lane_u32(uint32_t *a, uint32x4x2_t b) {
912 // CHECK-LABEL: test_vld2q_lane_u32
913 return vld2q_lane_u32(a, b, 3);
914 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
915 }
916
test_vld2q_lane_u64(uint64_t * a,uint64x2x2_t b)917 uint64x2x2_t test_vld2q_lane_u64(uint64_t *a, uint64x2x2_t b) {
918 // CHECK-LABEL: test_vld2q_lane_u64
919 return vld2q_lane_u64(a, b, 1);
920 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
921 }
922
test_vld2q_lane_s16(int16_t * a,int16x8x2_t b)923 int16x8x2_t test_vld2q_lane_s16(int16_t *a, int16x8x2_t b) {
924 // CHECK-LABEL: test_vld2q_lane_s16
925 return vld2q_lane_s16(a, b, 7);
926 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
927 }
928
test_vld2q_lane_s32(int32_t * a,int32x4x2_t b)929 int32x4x2_t test_vld2q_lane_s32(int32_t *a, int32x4x2_t b) {
930 // CHECK-LABEL: test_vld2q_lane_s32
931 return vld2q_lane_s32(a, b, 3);
932 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
933 }
934
test_vld2q_lane_s64(int64_t * a,int64x2x2_t b)935 int64x2x2_t test_vld2q_lane_s64(int64_t *a, int64x2x2_t b) {
936 // CHECK-LABEL: test_vld2q_lane_s64
937 return vld2q_lane_s64(a, b, 1);
938 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
939 }
940
test_vld2q_lane_f16(float16_t * a,float16x8x2_t b)941 float16x8x2_t test_vld2q_lane_f16(float16_t *a, float16x8x2_t b) {
942 // CHECK-LABEL: test_vld2q_lane_f16
943 return vld2q_lane_f16(a, b, 7);
944 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
945 }
946
test_vld2q_lane_f32(float32_t * a,float32x4x2_t b)947 float32x4x2_t test_vld2q_lane_f32(float32_t *a, float32x4x2_t b) {
948 // CHECK-LABEL: test_vld2q_lane_f32
949 return vld2q_lane_f32(a, b, 3);
950 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
951 }
952
test_vld2q_lane_f64(float64_t * a,float64x2x2_t b)953 float64x2x2_t test_vld2q_lane_f64(float64_t *a, float64x2x2_t b) {
954 // CHECK-LABEL: test_vld2q_lane_f64
955 return vld2q_lane_f64(a, b, 1);
956 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
957 }
958
test_vld2q_lane_p16(poly16_t * a,poly16x8x2_t b)959 poly16x8x2_t test_vld2q_lane_p16(poly16_t *a, poly16x8x2_t b) {
960 // CHECK-LABEL: test_vld2q_lane_p16
961 return vld2q_lane_p16(a, b, 7);
962 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
963 }
964
test_vld2q_lane_p64(poly64_t * a,poly64x2x2_t b)965 poly64x2x2_t test_vld2q_lane_p64(poly64_t *a, poly64x2x2_t b) {
966 // CHECK-LABEL: test_vld2q_lane_p64
967 return vld2q_lane_p64(a, b, 1);
968 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
969 }
970
test_vld2_lane_u8(uint8_t * a,uint8x8x2_t b)971 uint8x8x2_t test_vld2_lane_u8(uint8_t *a, uint8x8x2_t b) {
972 // CHECK-LABEL: test_vld2_lane_u8
973 return vld2_lane_u8(a, b, 7);
974 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
975 }
976
test_vld2_lane_u16(uint16_t * a,uint16x4x2_t b)977 uint16x4x2_t test_vld2_lane_u16(uint16_t *a, uint16x4x2_t b) {
978 // CHECK-LABEL: test_vld2_lane_u16
979 return vld2_lane_u16(a, b, 3);
980 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
981 }
982
test_vld2_lane_u32(uint32_t * a,uint32x2x2_t b)983 uint32x2x2_t test_vld2_lane_u32(uint32_t *a, uint32x2x2_t b) {
984 // CHECK-LABEL: test_vld2_lane_u32
985 return vld2_lane_u32(a, b, 1);
986 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
987 }
988
test_vld2_lane_u64(uint64_t * a,uint64x1x2_t b)989 uint64x1x2_t test_vld2_lane_u64(uint64_t *a, uint64x1x2_t b) {
990 // CHECK-LABEL: test_vld2_lane_u64
991 return vld2_lane_u64(a, b, 0);
992 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
993 }
994
test_vld2_lane_s8(int8_t * a,int8x8x2_t b)995 int8x8x2_t test_vld2_lane_s8(int8_t *a, int8x8x2_t b) {
996 // CHECK-LABEL: test_vld2_lane_s8
997 return vld2_lane_s8(a, b, 7);
998 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
999 }
1000
test_vld2_lane_s16(int16_t * a,int16x4x2_t b)1001 int16x4x2_t test_vld2_lane_s16(int16_t *a, int16x4x2_t b) {
1002 // CHECK-LABEL: test_vld2_lane_s16
1003 return vld2_lane_s16(a, b, 3);
1004 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1005 }
1006
test_vld2_lane_s32(int32_t * a,int32x2x2_t b)1007 int32x2x2_t test_vld2_lane_s32(int32_t *a, int32x2x2_t b) {
1008 // CHECK-LABEL: test_vld2_lane_s32
1009 return vld2_lane_s32(a, b, 1);
1010 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1011 }
1012
test_vld2_lane_s64(int64_t * a,int64x1x2_t b)1013 int64x1x2_t test_vld2_lane_s64(int64_t *a, int64x1x2_t b) {
1014 // CHECK-LABEL: test_vld2_lane_s64
1015 return vld2_lane_s64(a, b, 0);
1016 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1017 }
1018
test_vld2_lane_f16(float16_t * a,float16x4x2_t b)1019 float16x4x2_t test_vld2_lane_f16(float16_t *a, float16x4x2_t b) {
1020 // CHECK-LABEL: test_vld2_lane_f16
1021 return vld2_lane_f16(a, b, 3);
1022 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1023 }
1024
test_vld2_lane_f32(float32_t * a,float32x2x2_t b)1025 float32x2x2_t test_vld2_lane_f32(float32_t *a, float32x2x2_t b) {
1026 // CHECK-LABEL: test_vld2_lane_f32
1027 return vld2_lane_f32(a, b, 1);
1028 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1029 }
1030
test_vld2_lane_f64(float64_t * a,float64x1x2_t b)1031 float64x1x2_t test_vld2_lane_f64(float64_t *a, float64x1x2_t b) {
1032 // CHECK-LABEL: test_vld2_lane_f64
1033 return vld2_lane_f64(a, b, 0);
1034 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1035 }
1036
test_vld2_lane_p8(poly8_t * a,poly8x8x2_t b)1037 poly8x8x2_t test_vld2_lane_p8(poly8_t *a, poly8x8x2_t b) {
1038 // CHECK-LABEL: test_vld2_lane_p8
1039 return vld2_lane_p8(a, b, 7);
1040 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1041 }
1042
test_vld2_lane_p16(poly16_t * a,poly16x4x2_t b)1043 poly16x4x2_t test_vld2_lane_p16(poly16_t *a, poly16x4x2_t b) {
1044 // CHECK-LABEL: test_vld2_lane_p16
1045 return vld2_lane_p16(a, b, 3);
1046 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1047 }
1048
test_vld2_lane_p64(poly64_t * a,poly64x1x2_t b)1049 poly64x1x2_t test_vld2_lane_p64(poly64_t *a, poly64x1x2_t b) {
1050 // CHECK-LABEL: test_vld2_lane_p64
1051 return vld2_lane_p64(a, b, 0);
1052 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1053 }
1054
test_vld3q_lane_u16(uint16_t * a,uint16x8x3_t b)1055 uint16x8x3_t test_vld3q_lane_u16(uint16_t *a, uint16x8x3_t b) {
1056 // CHECK-LABEL: test_vld3q_lane_u16
1057 return vld3q_lane_u16(a, b, 7);
1058 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1059 }
1060
test_vld3q_lane_u32(uint32_t * a,uint32x4x3_t b)1061 uint32x4x3_t test_vld3q_lane_u32(uint32_t *a, uint32x4x3_t b) {
1062 // CHECK-LABEL: test_vld3q_lane_u32
1063 return vld3q_lane_u32(a, b, 3);
1064 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1065 }
1066
test_vld3q_lane_u64(uint64_t * a,uint64x2x3_t b)1067 uint64x2x3_t test_vld3q_lane_u64(uint64_t *a, uint64x2x3_t b) {
1068 // CHECK-LABEL: test_vld3q_lane_u64
1069 return vld3q_lane_u64(a, b, 1);
1070 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1071 }
1072
test_vld3q_lane_s16(int16_t * a,int16x8x3_t b)1073 int16x8x3_t test_vld3q_lane_s16(int16_t *a, int16x8x3_t b) {
1074 // CHECK-LABEL: test_vld3q_lane_s16
1075 return vld3q_lane_s16(a, b, 7);
1076 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1077 }
1078
test_vld3q_lane_s32(int32_t * a,int32x4x3_t b)1079 int32x4x3_t test_vld3q_lane_s32(int32_t *a, int32x4x3_t b) {
1080 // CHECK-LABEL: test_vld3q_lane_s32
1081 return vld3q_lane_s32(a, b, 3);
1082 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1083 }
1084
test_vld3q_lane_s64(int64_t * a,int64x2x3_t b)1085 int64x2x3_t test_vld3q_lane_s64(int64_t *a, int64x2x3_t b) {
1086 // CHECK-LABEL: test_vld3q_lane_s64
1087 return vld3q_lane_s64(a, b, 1);
1088 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1089 }
1090
test_vld3q_lane_f16(float16_t * a,float16x8x3_t b)1091 float16x8x3_t test_vld3q_lane_f16(float16_t *a, float16x8x3_t b) {
1092 // CHECK-LABEL: test_vld3q_lane_f16
1093 return vld3q_lane_f16(a, b, 7);
1094 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1095 }
1096
test_vld3q_lane_f32(float32_t * a,float32x4x3_t b)1097 float32x4x3_t test_vld3q_lane_f32(float32_t *a, float32x4x3_t b) {
1098 // CHECK-LABEL: test_vld3q_lane_f32
1099 return vld3q_lane_f32(a, b, 3);
1100 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1101 }
1102
test_vld3q_lane_f64(float64_t * a,float64x2x3_t b)1103 float64x2x3_t test_vld3q_lane_f64(float64_t *a, float64x2x3_t b) {
1104 // CHECK-LABEL: test_vld3q_lane_f64
1105 return vld3q_lane_f64(a, b, 1);
1106 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1107 }
1108
test_vld3q_lane_p8(poly8_t * a,poly8x16x3_t b)1109 poly8x16x3_t test_vld3q_lane_p8(poly8_t *a, poly8x16x3_t b) {
1110 // CHECK-LABEL: test_vld3q_lane_p8
1111 return vld3q_lane_p8(a, b, 15);
1112 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1113 }
1114
test_vld3q_lane_p16(poly16_t * a,poly16x8x3_t b)1115 poly16x8x3_t test_vld3q_lane_p16(poly16_t *a, poly16x8x3_t b) {
1116 // CHECK-LABEL: test_vld3q_lane_p16
1117 return vld3q_lane_p16(a, b, 7);
1118 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1119 }
1120
test_vld3q_lane_p64(poly64_t * a,poly64x2x3_t b)1121 poly64x2x3_t test_vld3q_lane_p64(poly64_t *a, poly64x2x3_t b) {
1122 // CHECK-LABEL: test_vld3q_lane_p64
1123 return vld3q_lane_p64(a, b, 1);
1124 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1125 }
1126
test_vld3_lane_u8(uint8_t * a,uint8x8x3_t b)1127 uint8x8x3_t test_vld3_lane_u8(uint8_t *a, uint8x8x3_t b) {
1128 // CHECK-LABEL: test_vld3_lane_u8
1129 return vld3_lane_u8(a, b, 7);
1130 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1131 }
1132
test_vld3_lane_u16(uint16_t * a,uint16x4x3_t b)1133 uint16x4x3_t test_vld3_lane_u16(uint16_t *a, uint16x4x3_t b) {
1134 // CHECK-LABEL: test_vld3_lane_u16
1135 return vld3_lane_u16(a, b, 3);
1136 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1137 }
1138
test_vld3_lane_u32(uint32_t * a,uint32x2x3_t b)1139 uint32x2x3_t test_vld3_lane_u32(uint32_t *a, uint32x2x3_t b) {
1140 // CHECK-LABEL: test_vld3_lane_u32
1141 return vld3_lane_u32(a, b, 1);
1142 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1143 }
1144
test_vld3_lane_u64(uint64_t * a,uint64x1x3_t b)1145 uint64x1x3_t test_vld3_lane_u64(uint64_t *a, uint64x1x3_t b) {
1146 // CHECK-LABEL: test_vld3_lane_u64
1147 return vld3_lane_u64(a, b, 0);
1148 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1149 }
1150
test_vld3_lane_s8(int8_t * a,int8x8x3_t b)1151 int8x8x3_t test_vld3_lane_s8(int8_t *a, int8x8x3_t b) {
1152 // CHECK-LABEL: test_vld3_lane_s8
1153 return vld3_lane_s8(a, b, 7);
1154 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1155 }
1156
test_vld3_lane_s16(int16_t * a,int16x4x3_t b)1157 int16x4x3_t test_vld3_lane_s16(int16_t *a, int16x4x3_t b) {
1158 // CHECK-LABEL: test_vld3_lane_s16
1159 return vld3_lane_s16(a, b, 3);
1160 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1161 }
1162
test_vld3_lane_s32(int32_t * a,int32x2x3_t b)1163 int32x2x3_t test_vld3_lane_s32(int32_t *a, int32x2x3_t b) {
1164 // CHECK-LABEL: test_vld3_lane_s32
1165 return vld3_lane_s32(a, b, 1);
1166 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1167 }
1168
test_vld3_lane_s64(int64_t * a,int64x1x3_t b)1169 int64x1x3_t test_vld3_lane_s64(int64_t *a, int64x1x3_t b) {
1170 // CHECK-LABEL: test_vld3_lane_s64
1171 return vld3_lane_s64(a, b, 0);
1172 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1173 }
1174
test_vld3_lane_f16(float16_t * a,float16x4x3_t b)1175 float16x4x3_t test_vld3_lane_f16(float16_t *a, float16x4x3_t b) {
1176 // CHECK-LABEL: test_vld3_lane_f16
1177 return vld3_lane_f16(a, b, 3);
1178 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1179 }
1180
test_vld3_lane_f32(float32_t * a,float32x2x3_t b)1181 float32x2x3_t test_vld3_lane_f32(float32_t *a, float32x2x3_t b) {
1182 // CHECK-LABEL: test_vld3_lane_f32
1183 return vld3_lane_f32(a, b, 1);
1184 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1185 }
1186
test_vld3_lane_f64(float64_t * a,float64x1x3_t b)1187 float64x1x3_t test_vld3_lane_f64(float64_t *a, float64x1x3_t b) {
1188 // CHECK-LABEL: test_vld3_lane_f64
1189 return vld3_lane_f64(a, b, 0);
1190 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1191 }
1192
test_vld3_lane_p8(poly8_t * a,poly8x8x3_t b)1193 poly8x8x3_t test_vld3_lane_p8(poly8_t *a, poly8x8x3_t b) {
1194 // CHECK-LABEL: test_vld3_lane_p8
1195 return vld3_lane_p8(a, b, 7);
1196 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1197 }
1198
test_vld3_lane_p16(poly16_t * a,poly16x4x3_t b)1199 poly16x4x3_t test_vld3_lane_p16(poly16_t *a, poly16x4x3_t b) {
1200 // CHECK-LABEL: test_vld3_lane_p16
1201 return vld3_lane_p16(a, b, 3);
1202 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1203 }
1204
test_vld3_lane_p64(poly64_t * a,poly64x1x3_t b)1205 poly64x1x3_t test_vld3_lane_p64(poly64_t *a, poly64x1x3_t b) {
1206 // CHECK-LABEL: test_vld3_lane_p64
1207 return vld3_lane_p64(a, b, 0);
1208 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1209 }
1210
test_vld4q_lane_u8(uint8_t * a,uint8x16x4_t b)1211 uint8x16x4_t test_vld4q_lane_u8(uint8_t *a, uint8x16x4_t b) {
1212 // CHECK-LABEL: test_vld4q_lane_u8
1213 return vld4q_lane_u8(a, b, 15);
1214 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1215 }
1216
test_vld4q_lane_u16(uint16_t * a,uint16x8x4_t b)1217 uint16x8x4_t test_vld4q_lane_u16(uint16_t *a, uint16x8x4_t b) {
1218 // CHECK-LABEL: test_vld4q_lane_u16
1219 return vld4q_lane_u16(a, b, 7);
1220 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1221 }
1222
test_vld4q_lane_u32(uint32_t * a,uint32x4x4_t b)1223 uint32x4x4_t test_vld4q_lane_u32(uint32_t *a, uint32x4x4_t b) {
1224 // CHECK-LABEL: test_vld4q_lane_u32
1225 return vld4q_lane_u32(a, b, 3);
1226 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1227 }
1228
test_vld4q_lane_u64(uint64_t * a,uint64x2x4_t b)1229 uint64x2x4_t test_vld4q_lane_u64(uint64_t *a, uint64x2x4_t b) {
1230 // CHECK-LABEL: test_vld4q_lane_u64
1231 return vld4q_lane_u64(a, b, 1);
1232 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1233 }
1234
test_vld4q_lane_s8(int8_t * a,int8x16x4_t b)1235 int8x16x4_t test_vld4q_lane_s8(int8_t *a, int8x16x4_t b) {
1236 // CHECK-LABEL: test_vld4q_lane_s8
1237 return vld4q_lane_s8(a, b, 15);
1238 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1239 }
1240
test_vld4q_lane_s16(int16_t * a,int16x8x4_t b)1241 int16x8x4_t test_vld4q_lane_s16(int16_t *a, int16x8x4_t b) {
1242 // CHECK-LABEL: test_vld4q_lane_s16
1243 return vld4q_lane_s16(a, b, 7);
1244 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1245 }
1246
test_vld4q_lane_s32(int32_t * a,int32x4x4_t b)1247 int32x4x4_t test_vld4q_lane_s32(int32_t *a, int32x4x4_t b) {
1248 // CHECK-LABEL: test_vld4q_lane_s32
1249 return vld4q_lane_s32(a, b, 3);
1250 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1251 }
1252
test_vld4q_lane_s64(int64_t * a,int64x2x4_t b)1253 int64x2x4_t test_vld4q_lane_s64(int64_t *a, int64x2x4_t b) {
1254 // CHECK-LABEL: test_vld4q_lane_s64
1255 return vld4q_lane_s64(a, b, 1);
1256 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1257 }
1258
test_vld4q_lane_f16(float16_t * a,float16x8x4_t b)1259 float16x8x4_t test_vld4q_lane_f16(float16_t *a, float16x8x4_t b) {
1260 // CHECK-LABEL: test_vld4q_lane_f16
1261 return vld4q_lane_f16(a, b, 7);
1262 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1263 }
1264
test_vld4q_lane_f32(float32_t * a,float32x4x4_t b)1265 float32x4x4_t test_vld4q_lane_f32(float32_t *a, float32x4x4_t b) {
1266 // CHECK-LABEL: test_vld4q_lane_f32
1267 return vld4q_lane_f32(a, b, 3);
1268 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1269 }
1270
test_vld4q_lane_f64(float64_t * a,float64x2x4_t b)1271 float64x2x4_t test_vld4q_lane_f64(float64_t *a, float64x2x4_t b) {
1272 // CHECK-LABEL: test_vld4q_lane_f64
1273 return vld4q_lane_f64(a, b, 1);
1274 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1275 }
1276
test_vld4q_lane_p8(poly8_t * a,poly8x16x4_t b)1277 poly8x16x4_t test_vld4q_lane_p8(poly8_t *a, poly8x16x4_t b) {
1278 // CHECK-LABEL: test_vld4q_lane_p8
1279 return vld4q_lane_p8(a, b, 15);
1280 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1281 }
1282
test_vld4q_lane_p16(poly16_t * a,poly16x8x4_t b)1283 poly16x8x4_t test_vld4q_lane_p16(poly16_t *a, poly16x8x4_t b) {
1284 // CHECK-LABEL: test_vld4q_lane_p16
1285 return vld4q_lane_p16(a, b, 7);
1286 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1287 }
1288
test_vld4q_lane_p64(poly64_t * a,poly64x2x4_t b)1289 poly64x2x4_t test_vld4q_lane_p64(poly64_t *a, poly64x2x4_t b) {
1290 // CHECK-LABEL: test_vld4q_lane_p64
1291 return vld4q_lane_p64(a, b, 1);
1292 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1293 }
1294
test_vld4_lane_u8(uint8_t * a,uint8x8x4_t b)1295 uint8x8x4_t test_vld4_lane_u8(uint8_t *a, uint8x8x4_t b) {
1296 // CHECK-LABEL: test_vld4_lane_u8
1297 return vld4_lane_u8(a, b, 7);
1298 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1299 }
1300
test_vld4_lane_u16(uint16_t * a,uint16x4x4_t b)1301 uint16x4x4_t test_vld4_lane_u16(uint16_t *a, uint16x4x4_t b) {
1302 // CHECK-LABEL: test_vld4_lane_u16
1303 return vld4_lane_u16(a, b, 3);
1304 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1305 }
1306
test_vld4_lane_u32(uint32_t * a,uint32x2x4_t b)1307 uint32x2x4_t test_vld4_lane_u32(uint32_t *a, uint32x2x4_t b) {
1308 // CHECK-LABEL: test_vld4_lane_u32
1309 return vld4_lane_u32(a, b, 1);
1310 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1311 }
1312
test_vld4_lane_u64(uint64_t * a,uint64x1x4_t b)1313 uint64x1x4_t test_vld4_lane_u64(uint64_t *a, uint64x1x4_t b) {
1314 // CHECK-LABEL: test_vld4_lane_u64
1315 return vld4_lane_u64(a, b, 0);
1316 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1317 }
1318
test_vld4_lane_s8(int8_t * a,int8x8x4_t b)1319 int8x8x4_t test_vld4_lane_s8(int8_t *a, int8x8x4_t b) {
1320 // CHECK-LABEL: test_vld4_lane_s8
1321 return vld4_lane_s8(a, b, 7);
1322 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1323 }
1324
test_vld4_lane_s16(int16_t * a,int16x4x4_t b)1325 int16x4x4_t test_vld4_lane_s16(int16_t *a, int16x4x4_t b) {
1326 // CHECK-LABEL: test_vld4_lane_s16
1327 return vld4_lane_s16(a, b, 3);
1328 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1329 }
1330
test_vld4_lane_s32(int32_t * a,int32x2x4_t b)1331 int32x2x4_t test_vld4_lane_s32(int32_t *a, int32x2x4_t b) {
1332 // CHECK-LABEL: test_vld4_lane_s32
1333 return vld4_lane_s32(a, b, 1);
1334 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1335 }
1336
test_vld4_lane_s64(int64_t * a,int64x1x4_t b)1337 int64x1x4_t test_vld4_lane_s64(int64_t *a, int64x1x4_t b) {
1338 // CHECK-LABEL: test_vld4_lane_s64
1339 return vld4_lane_s64(a, b, 0);
1340 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1341 }
1342
test_vld4_lane_f16(float16_t * a,float16x4x4_t b)1343 float16x4x4_t test_vld4_lane_f16(float16_t *a, float16x4x4_t b) {
1344 // CHECK-LABEL: test_vld4_lane_f16
1345 return vld4_lane_f16(a, b, 3);
1346 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1347 }
1348
test_vld4_lane_f32(float32_t * a,float32x2x4_t b)1349 float32x2x4_t test_vld4_lane_f32(float32_t *a, float32x2x4_t b) {
1350 // CHECK-LABEL: test_vld4_lane_f32
1351 return vld4_lane_f32(a, b, 1);
1352 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1353 }
1354
test_vld4_lane_f64(float64_t * a,float64x1x4_t b)1355 float64x1x4_t test_vld4_lane_f64(float64_t *a, float64x1x4_t b) {
1356 // CHECK-LABEL: test_vld4_lane_f64
1357 return vld4_lane_f64(a, b, 0);
1358 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1359 }
1360
test_vld4_lane_p8(poly8_t * a,poly8x8x4_t b)1361 poly8x8x4_t test_vld4_lane_p8(poly8_t *a, poly8x8x4_t b) {
1362 // CHECK-LABEL: test_vld4_lane_p8
1363 return vld4_lane_p8(a, b, 7);
1364 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1365 }
1366
test_vld4_lane_p16(poly16_t * a,poly16x4x4_t b)1367 poly16x4x4_t test_vld4_lane_p16(poly16_t *a, poly16x4x4_t b) {
1368 // CHECK-LABEL: test_vld4_lane_p16
1369 return vld4_lane_p16(a, b, 3);
1370 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1371 }
1372
test_vld4_lane_p64(poly64_t * a,poly64x1x4_t b)1373 poly64x1x4_t test_vld4_lane_p64(poly64_t *a, poly64x1x4_t b) {
1374 // CHECK-LABEL: test_vld4_lane_p64
1375 return vld4_lane_p64(a, b, 0);
1376 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1377 }
1378
test_vst1q_lane_u8(uint8_t * a,uint8x16_t b)1379 void test_vst1q_lane_u8(uint8_t *a, uint8x16_t b) {
1380 // CHECK-LABEL: test_vst1q_lane_u8
1381 vst1q_lane_u8(a, b, 15);
1382 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1383 }
1384
test_vst1q_lane_u16(uint16_t * a,uint16x8_t b)1385 void test_vst1q_lane_u16(uint16_t *a, uint16x8_t b) {
1386 // CHECK-LABEL: test_vst1q_lane_u16
1387 vst1q_lane_u16(a, b, 7);
1388 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1389 }
1390
test_vst1q_lane_u32(uint32_t * a,uint32x4_t b)1391 void test_vst1q_lane_u32(uint32_t *a, uint32x4_t b) {
1392 // CHECK-LABEL: test_vst1q_lane_u32
1393 vst1q_lane_u32(a, b, 3);
1394 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1395 }
1396
test_vst1q_lane_u64(uint64_t * a,uint64x2_t b)1397 void test_vst1q_lane_u64(uint64_t *a, uint64x2_t b) {
1398 // CHECK-LABEL: test_vst1q_lane_u64
1399 vst1q_lane_u64(a, b, 1);
1400 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1401 }
1402
test_vst1q_lane_s8(int8_t * a,int8x16_t b)1403 void test_vst1q_lane_s8(int8_t *a, int8x16_t b) {
1404 // CHECK-LABEL: test_vst1q_lane_s8
1405 vst1q_lane_s8(a, b, 15);
1406 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1407 }
1408
test_vst1q_lane_s16(int16_t * a,int16x8_t b)1409 void test_vst1q_lane_s16(int16_t *a, int16x8_t b) {
1410 // CHECK-LABEL: test_vst1q_lane_s16
1411 vst1q_lane_s16(a, b, 7);
1412 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1413 }
1414
test_vst1q_lane_s32(int32_t * a,int32x4_t b)1415 void test_vst1q_lane_s32(int32_t *a, int32x4_t b) {
1416 // CHECK-LABEL: test_vst1q_lane_s32
1417 vst1q_lane_s32(a, b, 3);
1418 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1419 }
1420
test_vst1q_lane_s64(int64_t * a,int64x2_t b)1421 void test_vst1q_lane_s64(int64_t *a, int64x2_t b) {
1422 // CHECK-LABEL: test_vst1q_lane_s64
1423 vst1q_lane_s64(a, b, 1);
1424 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1425 }
1426
test_vst1q_lane_f16(float16_t * a,float16x8_t b)1427 void test_vst1q_lane_f16(float16_t *a, float16x8_t b) {
1428 // CHECK-LABEL: test_vst1q_lane_f16
1429 vst1q_lane_f16(a, b, 7);
1430 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1431 }
1432
test_vst1q_lane_f32(float32_t * a,float32x4_t b)1433 void test_vst1q_lane_f32(float32_t *a, float32x4_t b) {
1434 // CHECK-LABEL: test_vst1q_lane_f32
1435 vst1q_lane_f32(a, b, 3);
1436 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1437 }
1438
test_vst1q_lane_f64(float64_t * a,float64x2_t b)1439 void test_vst1q_lane_f64(float64_t *a, float64x2_t b) {
1440 // CHECK-LABEL: test_vst1q_lane_f64
1441 vst1q_lane_f64(a, b, 1);
1442 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1443 }
1444
test_vst1q_lane_p8(poly8_t * a,poly8x16_t b)1445 void test_vst1q_lane_p8(poly8_t *a, poly8x16_t b) {
1446 // CHECK-LABEL: test_vst1q_lane_p8
1447 vst1q_lane_p8(a, b, 15);
1448 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1449 }
1450
test_vst1q_lane_p16(poly16_t * a,poly16x8_t b)1451 void test_vst1q_lane_p16(poly16_t *a, poly16x8_t b) {
1452 // CHECK-LABEL: test_vst1q_lane_p16
1453 vst1q_lane_p16(a, b, 7);
1454 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1455 }
1456
test_vst1q_lane_p64(poly64_t * a,poly64x2_t b)1457 void test_vst1q_lane_p64(poly64_t *a, poly64x2_t b) {
1458 // CHECK-LABEL: test_vst1q_lane_p64
1459 vst1q_lane_p64(a, b, 1);
1460 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1461 }
1462
test_vst1_lane_u8(uint8_t * a,uint8x8_t b)1463 void test_vst1_lane_u8(uint8_t *a, uint8x8_t b) {
1464 // CHECK-LABEL: test_vst1_lane_u8
1465 vst1_lane_u8(a, b, 7);
1466 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1467 }
1468
test_vst1_lane_u16(uint16_t * a,uint16x4_t b)1469 void test_vst1_lane_u16(uint16_t *a, uint16x4_t b) {
1470 // CHECK-LABEL: test_vst1_lane_u16
1471 vst1_lane_u16(a, b, 3);
1472 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1473 }
1474
test_vst1_lane_u32(uint32_t * a,uint32x2_t b)1475 void test_vst1_lane_u32(uint32_t *a, uint32x2_t b) {
1476 // CHECK-LABEL: test_vst1_lane_u32
1477 vst1_lane_u32(a, b, 1);
1478 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1479 }
1480
test_vst1_lane_u64(uint64_t * a,uint64x1_t b)1481 void test_vst1_lane_u64(uint64_t *a, uint64x1_t b) {
1482 // CHECK-LABEL: test_vst1_lane_u64
1483 vst1_lane_u64(a, b, 0);
1484 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1485 }
1486
test_vst1_lane_s8(int8_t * a,int8x8_t b)1487 void test_vst1_lane_s8(int8_t *a, int8x8_t b) {
1488 // CHECK-LABEL: test_vst1_lane_s8
1489 vst1_lane_s8(a, b, 7);
1490 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1491 }
1492
test_vst1_lane_s16(int16_t * a,int16x4_t b)1493 void test_vst1_lane_s16(int16_t *a, int16x4_t b) {
1494 // CHECK-LABEL: test_vst1_lane_s16
1495 vst1_lane_s16(a, b, 3);
1496 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1497 }
1498
test_vst1_lane_s32(int32_t * a,int32x2_t b)1499 void test_vst1_lane_s32(int32_t *a, int32x2_t b) {
1500 // CHECK-LABEL: test_vst1_lane_s32
1501 vst1_lane_s32(a, b, 1);
1502 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1503 }
1504
test_vst1_lane_s64(int64_t * a,int64x1_t b)1505 void test_vst1_lane_s64(int64_t *a, int64x1_t b) {
1506 // CHECK-LABEL: test_vst1_lane_s64
1507 vst1_lane_s64(a, b, 0);
1508 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1509 }
1510
test_vst1_lane_f16(float16_t * a,float16x4_t b)1511 void test_vst1_lane_f16(float16_t *a, float16x4_t b) {
1512 // CHECK-LABEL: test_vst1_lane_f16
1513 vst1_lane_f16(a, b, 3);
1514 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1515 }
1516
test_vst1_lane_f32(float32_t * a,float32x2_t b)1517 void test_vst1_lane_f32(float32_t *a, float32x2_t b) {
1518 // CHECK-LABEL: test_vst1_lane_f32
1519 vst1_lane_f32(a, b, 1);
1520 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1521 }
1522
test_vst1_lane_f64(float64_t * a,float64x1_t b)1523 void test_vst1_lane_f64(float64_t *a, float64x1_t b) {
1524 // CHECK-LABEL: test_vst1_lane_f64
1525 vst1_lane_f64(a, b, 0);
1526 // CHECK: {{st1 { v[0-9]+.d }\[0]|str d[0-9]+}}, [{{x[0-9]+|sp}}]
1527 }
1528
test_vst1_lane_p8(poly8_t * a,poly8x8_t b)1529 void test_vst1_lane_p8(poly8_t *a, poly8x8_t b) {
1530 // CHECK-LABEL: test_vst1_lane_p8
1531 vst1_lane_p8(a, b, 7);
1532 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1533 }
1534
test_vst1_lane_p16(poly16_t * a,poly16x4_t b)1535 void test_vst1_lane_p16(poly16_t *a, poly16x4_t b) {
1536 // CHECK-LABEL: test_vst1_lane_p16
1537 vst1_lane_p16(a, b, 3);
1538 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1539 }
1540
test_vst1_lane_p64(poly64_t * a,poly64x1_t b)1541 void test_vst1_lane_p64(poly64_t *a, poly64x1_t b) {
1542 // CHECK-LABEL: test_vst1_lane_p64
1543 vst1_lane_p64(a, b, 0);
1544 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1545 }
1546
test_vst2q_lane_u8(uint8_t * a,uint8x16x2_t b)1547 void test_vst2q_lane_u8(uint8_t *a, uint8x16x2_t b) {
1548 // CHECK-LABEL: test_vst2q_lane_u8
1549 vst2q_lane_u8(a, b, 15);
1550 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1551 }
1552
test_vst2q_lane_u16(uint16_t * a,uint16x8x2_t b)1553 void test_vst2q_lane_u16(uint16_t *a, uint16x8x2_t b) {
1554 // CHECK-LABEL: test_vst2q_lane_u16
1555 vst2q_lane_u16(a, b, 7);
1556 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1557 }
1558
test_vst2q_lane_u32(uint32_t * a,uint32x4x2_t b)1559 void test_vst2q_lane_u32(uint32_t *a, uint32x4x2_t b) {
1560 // CHECK-LABEL: test_vst2q_lane_u32
1561 vst2q_lane_u32(a, b, 3);
1562 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1563 }
1564
test_vst2q_lane_u64(uint64_t * a,uint64x2x2_t b)1565 void test_vst2q_lane_u64(uint64_t *a, uint64x2x2_t b) {
1566 // CHECK-LABEL: test_vst2q_lane_u64
1567 vst2q_lane_u64(a, b, 1);
1568 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1569 }
1570
test_vst2q_lane_s8(int8_t * a,int8x16x2_t b)1571 void test_vst2q_lane_s8(int8_t *a, int8x16x2_t b) {
1572 // CHECK-LABEL: test_vst2q_lane_s8
1573 vst2q_lane_s8(a, b, 15);
1574 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1575 }
1576
test_vst2q_lane_s16(int16_t * a,int16x8x2_t b)1577 void test_vst2q_lane_s16(int16_t *a, int16x8x2_t b) {
1578 // CHECK-LABEL: test_vst2q_lane_s16
1579 vst2q_lane_s16(a, b, 7);
1580 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1581 }
1582
test_vst2q_lane_s32(int32_t * a,int32x4x2_t b)1583 void test_vst2q_lane_s32(int32_t *a, int32x4x2_t b) {
1584 // CHECK-LABEL: test_vst2q_lane_s32
1585 vst2q_lane_s32(a, b, 3);
1586 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1587 }
1588
test_vst2q_lane_s64(int64_t * a,int64x2x2_t b)1589 void test_vst2q_lane_s64(int64_t *a, int64x2x2_t b) {
1590 // CHECK-LABEL: test_vst2q_lane_s64
1591 vst2q_lane_s64(a, b, 1);
1592 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1593 }
1594
test_vst2q_lane_f16(float16_t * a,float16x8x2_t b)1595 void test_vst2q_lane_f16(float16_t *a, float16x8x2_t b) {
1596 // CHECK-LABEL: test_vst2q_lane_f16
1597 vst2q_lane_f16(a, b, 7);
1598 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1599 }
1600
test_vst2q_lane_f32(float32_t * a,float32x4x2_t b)1601 void test_vst2q_lane_f32(float32_t *a, float32x4x2_t b) {
1602 // CHECK-LABEL: test_vst2q_lane_f32
1603 vst2q_lane_f32(a, b, 3);
1604 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1605 }
1606
test_vst2q_lane_f64(float64_t * a,float64x2x2_t b)1607 void test_vst2q_lane_f64(float64_t *a, float64x2x2_t b) {
1608 // CHECK-LABEL: test_vst2q_lane_f64
1609 vst2q_lane_f64(a, b, 1);
1610 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1611 }
1612
test_vst2q_lane_p8(poly8_t * a,poly8x16x2_t b)1613 void test_vst2q_lane_p8(poly8_t *a, poly8x16x2_t b) {
1614 // CHECK-LABEL: test_vst2q_lane_p8
1615 vst2q_lane_p8(a, b, 15);
1616 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1617 }
1618
test_vst2q_lane_p16(poly16_t * a,poly16x8x2_t b)1619 void test_vst2q_lane_p16(poly16_t *a, poly16x8x2_t b) {
1620 // CHECK-LABEL: test_vst2q_lane_p16
1621 vst2q_lane_p16(a, b, 7);
1622 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1623 }
1624
test_vst2q_lane_p64(poly64_t * a,poly64x2x2_t b)1625 void test_vst2q_lane_p64(poly64_t *a, poly64x2x2_t b) {
1626 // CHECK-LABEL: test_vst2q_lane_p64
1627 vst2q_lane_p64(a, b, 1);
1628 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1629 }
1630
test_vst2_lane_u8(uint8_t * a,uint8x8x2_t b)1631 void test_vst2_lane_u8(uint8_t *a, uint8x8x2_t b) {
1632 // CHECK-LABEL: test_vst2_lane_u8
1633 vst2_lane_u8(a, b, 7);
1634 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1635 }
1636
test_vst2_lane_u16(uint16_t * a,uint16x4x2_t b)1637 void test_vst2_lane_u16(uint16_t *a, uint16x4x2_t b) {
1638 // CHECK-LABEL: test_vst2_lane_u16
1639 vst2_lane_u16(a, b, 3);
1640 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1641 }
1642
test_vst2_lane_u32(uint32_t * a,uint32x2x2_t b)1643 void test_vst2_lane_u32(uint32_t *a, uint32x2x2_t b) {
1644 // CHECK-LABEL: test_vst2_lane_u32
1645 vst2_lane_u32(a, b, 1);
1646 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1647 }
1648
test_vst2_lane_u64(uint64_t * a,uint64x1x2_t b)1649 void test_vst2_lane_u64(uint64_t *a, uint64x1x2_t b) {
1650 // CHECK-LABEL: test_vst2_lane_u64
1651 vst2_lane_u64(a, b, 0);
1652 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1653 }
1654
test_vst2_lane_s8(int8_t * a,int8x8x2_t b)1655 void test_vst2_lane_s8(int8_t *a, int8x8x2_t b) {
1656 // CHECK-LABEL: test_vst2_lane_s8
1657 vst2_lane_s8(a, b, 7);
1658 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1659 }
1660
test_vst2_lane_s16(int16_t * a,int16x4x2_t b)1661 void test_vst2_lane_s16(int16_t *a, int16x4x2_t b) {
1662 // CHECK-LABEL: test_vst2_lane_s16
1663 vst2_lane_s16(a, b, 3);
1664 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1665 }
1666
test_vst2_lane_s32(int32_t * a,int32x2x2_t b)1667 void test_vst2_lane_s32(int32_t *a, int32x2x2_t b) {
1668 // CHECK-LABEL: test_vst2_lane_s32
1669 vst2_lane_s32(a, b, 1);
1670 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1671 }
1672
test_vst2_lane_s64(int64_t * a,int64x1x2_t b)1673 void test_vst2_lane_s64(int64_t *a, int64x1x2_t b) {
1674 // CHECK-LABEL: test_vst2_lane_s64
1675 vst2_lane_s64(a, b, 0);
1676 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1677 }
1678
test_vst2_lane_f16(float16_t * a,float16x4x2_t b)1679 void test_vst2_lane_f16(float16_t *a, float16x4x2_t b) {
1680 // CHECK-LABEL: test_vst2_lane_f16
1681 vst2_lane_f16(a, b, 3);
1682 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1683 }
1684
test_vst2_lane_f32(float32_t * a,float32x2x2_t b)1685 void test_vst2_lane_f32(float32_t *a, float32x2x2_t b) {
1686 // CHECK-LABEL: test_vst2_lane_f32
1687 vst2_lane_f32(a, b, 1);
1688 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1689 }
1690
test_vst2_lane_f64(float64_t * a,float64x1x2_t b)1691 void test_vst2_lane_f64(float64_t *a, float64x1x2_t b) {
1692 // CHECK-LABEL: test_vst2_lane_f64
1693 vst2_lane_f64(a, b, 0);
1694 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1695 }
1696
test_vst2_lane_p8(poly8_t * a,poly8x8x2_t b)1697 void test_vst2_lane_p8(poly8_t *a, poly8x8x2_t b) {
1698 // CHECK-LABEL: test_vst2_lane_p8
1699 vst2_lane_p8(a, b, 7);
1700 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1701 }
1702
test_vst2_lane_p16(poly16_t * a,poly16x4x2_t b)1703 void test_vst2_lane_p16(poly16_t *a, poly16x4x2_t b) {
1704 // CHECK-LABEL: test_vst2_lane_p16
1705 vst2_lane_p16(a, b, 3);
1706 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1707 }
1708
test_vst2_lane_p64(poly64_t * a,poly64x1x2_t b)1709 void test_vst2_lane_p64(poly64_t *a, poly64x1x2_t b) {
1710 // CHECK-LABEL: test_vst2_lane_p64
1711 vst2_lane_p64(a, b, 0);
1712 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1713 }
1714
test_vst3q_lane_u8(uint8_t * a,uint8x16x3_t b)1715 void test_vst3q_lane_u8(uint8_t *a, uint8x16x3_t b) {
1716 // CHECK-LABEL: test_vst3q_lane_u8
1717 vst3q_lane_u8(a, b, 15);
1718 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1719 }
1720
test_vst3q_lane_u16(uint16_t * a,uint16x8x3_t b)1721 void test_vst3q_lane_u16(uint16_t *a, uint16x8x3_t b) {
1722 // CHECK-LABEL: test_vst3q_lane_u16
1723 vst3q_lane_u16(a, b, 7);
1724 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1725 }
1726
test_vst3q_lane_u32(uint32_t * a,uint32x4x3_t b)1727 void test_vst3q_lane_u32(uint32_t *a, uint32x4x3_t b) {
1728 // CHECK-LABEL: test_vst3q_lane_u32
1729 vst3q_lane_u32(a, b, 3);
1730 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1731 }
1732
test_vst3q_lane_u64(uint64_t * a,uint64x2x3_t b)1733 void test_vst3q_lane_u64(uint64_t *a, uint64x2x3_t b) {
1734 // CHECK-LABEL: test_vst3q_lane_u64
1735 vst3q_lane_u64(a, b, 1);
1736 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1737 }
1738
test_vst3q_lane_s8(int8_t * a,int8x16x3_t b)1739 void test_vst3q_lane_s8(int8_t *a, int8x16x3_t b) {
1740 // CHECK-LABEL: test_vst3q_lane_s8
1741 vst3q_lane_s8(a, b, 15);
1742 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1743 }
1744
test_vst3q_lane_s16(int16_t * a,int16x8x3_t b)1745 void test_vst3q_lane_s16(int16_t *a, int16x8x3_t b) {
1746 // CHECK-LABEL: test_vst3q_lane_s16
1747 vst3q_lane_s16(a, b, 7);
1748 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1749 }
1750
test_vst3q_lane_s32(int32_t * a,int32x4x3_t b)1751 void test_vst3q_lane_s32(int32_t *a, int32x4x3_t b) {
1752 // CHECK-LABEL: test_vst3q_lane_s32
1753 vst3q_lane_s32(a, b, 3);
1754 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1755 }
1756
test_vst3q_lane_s64(int64_t * a,int64x2x3_t b)1757 void test_vst3q_lane_s64(int64_t *a, int64x2x3_t b) {
1758 // CHECK-LABEL: test_vst3q_lane_s64
1759 vst3q_lane_s64(a, b, 1);
1760 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1761 }
1762
test_vst3q_lane_f16(float16_t * a,float16x8x3_t b)1763 void test_vst3q_lane_f16(float16_t *a, float16x8x3_t b) {
1764 // CHECK-LABEL: test_vst3q_lane_f16
1765 vst3q_lane_f16(a, b, 7);
1766 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1767 }
1768
test_vst3q_lane_f32(float32_t * a,float32x4x3_t b)1769 void test_vst3q_lane_f32(float32_t *a, float32x4x3_t b) {
1770 // CHECK-LABEL: test_vst3q_lane_f32
1771 vst3q_lane_f32(a, b, 3);
1772 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1773 }
1774
test_vst3q_lane_f64(float64_t * a,float64x2x3_t b)1775 void test_vst3q_lane_f64(float64_t *a, float64x2x3_t b) {
1776 // CHECK-LABEL: test_vst3q_lane_f64
1777 vst3q_lane_f64(a, b, 1);
1778 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1779 }
1780
test_vst3q_lane_p8(poly8_t * a,poly8x16x3_t b)1781 void test_vst3q_lane_p8(poly8_t *a, poly8x16x3_t b) {
1782 // CHECK-LABEL: test_vst3q_lane_p8
1783 vst3q_lane_p8(a, b, 15);
1784 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1785 }
1786
test_vst3q_lane_p16(poly16_t * a,poly16x8x3_t b)1787 void test_vst3q_lane_p16(poly16_t *a, poly16x8x3_t b) {
1788 // CHECK-LABEL: test_vst3q_lane_p16
1789 vst3q_lane_p16(a, b, 7);
1790 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1791 }
1792
test_vst3q_lane_p64(poly64_t * a,poly64x2x3_t b)1793 void test_vst3q_lane_p64(poly64_t *a, poly64x2x3_t b) {
1794 // CHECK-LABEL: test_vst3q_lane_p64
1795 vst3q_lane_p64(a, b, 1);
1796 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1797 }
1798
test_vst3_lane_u8(uint8_t * a,uint8x8x3_t b)1799 void test_vst3_lane_u8(uint8_t *a, uint8x8x3_t b) {
1800 // CHECK-LABEL: test_vst3_lane_u8
1801 vst3_lane_u8(a, b, 7);
1802 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1803 }
1804
test_vst3_lane_u16(uint16_t * a,uint16x4x3_t b)1805 void test_vst3_lane_u16(uint16_t *a, uint16x4x3_t b) {
1806 // CHECK-LABEL: test_vst3_lane_u16
1807 vst3_lane_u16(a, b, 3);
1808 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1809 }
1810
test_vst3_lane_u32(uint32_t * a,uint32x2x3_t b)1811 void test_vst3_lane_u32(uint32_t *a, uint32x2x3_t b) {
1812 // CHECK-LABEL: test_vst3_lane_u32
1813 vst3_lane_u32(a, b, 1);
1814 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1815 }
1816
test_vst3_lane_u64(uint64_t * a,uint64x1x3_t b)1817 void test_vst3_lane_u64(uint64_t *a, uint64x1x3_t b) {
1818 // CHECK-LABEL: test_vst3_lane_u64
1819 vst3_lane_u64(a, b, 0);
1820 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1821 }
1822
test_vst3_lane_s8(int8_t * a,int8x8x3_t b)1823 void test_vst3_lane_s8(int8_t *a, int8x8x3_t b) {
1824 // CHECK-LABEL: test_vst3_lane_s8
1825 vst3_lane_s8(a, b, 7);
1826 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1827 }
1828
test_vst3_lane_s16(int16_t * a,int16x4x3_t b)1829 void test_vst3_lane_s16(int16_t *a, int16x4x3_t b) {
1830 // CHECK-LABEL: test_vst3_lane_s16
1831 vst3_lane_s16(a, b, 3);
1832 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1833 }
1834
test_vst3_lane_s32(int32_t * a,int32x2x3_t b)1835 void test_vst3_lane_s32(int32_t *a, int32x2x3_t b) {
1836 // CHECK-LABEL: test_vst3_lane_s32
1837 vst3_lane_s32(a, b, 1);
1838 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1839 }
1840
test_vst3_lane_s64(int64_t * a,int64x1x3_t b)1841 void test_vst3_lane_s64(int64_t *a, int64x1x3_t b) {
1842 // CHECK-LABEL: test_vst3_lane_s64
1843 vst3_lane_s64(a, b, 0);
1844 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1845 }
1846
test_vst3_lane_f16(float16_t * a,float16x4x3_t b)1847 void test_vst3_lane_f16(float16_t *a, float16x4x3_t b) {
1848 // CHECK-LABEL: test_vst3_lane_f16
1849 vst3_lane_f16(a, b, 3);
1850 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1851 }
1852
test_vst3_lane_f32(float32_t * a,float32x2x3_t b)1853 void test_vst3_lane_f32(float32_t *a, float32x2x3_t b) {
1854 // CHECK-LABEL: test_vst3_lane_f32
1855 vst3_lane_f32(a, b, 1);
1856 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1857 }
1858
test_vst3_lane_f64(float64_t * a,float64x1x3_t b)1859 void test_vst3_lane_f64(float64_t *a, float64x1x3_t b) {
1860 // CHECK-LABEL: test_vst3_lane_f64
1861 vst3_lane_f64(a, b, 0);
1862 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1863 }
1864
test_vst3_lane_p8(poly8_t * a,poly8x8x3_t b)1865 void test_vst3_lane_p8(poly8_t *a, poly8x8x3_t b) {
1866 // CHECK-LABEL: test_vst3_lane_p8
1867 vst3_lane_p8(a, b, 7);
1868 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1869 }
1870
test_vst3_lane_p16(poly16_t * a,poly16x4x3_t b)1871 void test_vst3_lane_p16(poly16_t *a, poly16x4x3_t b) {
1872 // CHECK-LABEL: test_vst3_lane_p16
1873 vst3_lane_p16(a, b, 3);
1874 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1875 }
1876
test_vst3_lane_p64(poly64_t * a,poly64x1x3_t b)1877 void test_vst3_lane_p64(poly64_t *a, poly64x1x3_t b) {
1878 // CHECK-LABEL: test_vst3_lane_p64
1879 vst3_lane_p64(a, b, 0);
1880 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1881 }
1882
test_vst4q_lane_u8(uint8_t * a,uint8x16x4_t b)1883 void test_vst4q_lane_u8(uint8_t *a, uint8x16x4_t b) {
1884 // CHECK-LABEL: test_vst4q_lane_u8
1885 vst4q_lane_u8(a, b, 15);
1886 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1887 }
1888
test_vst4q_lane_u16(uint16_t * a,uint16x8x4_t b)1889 void test_vst4q_lane_u16(uint16_t *a, uint16x8x4_t b) {
1890 // CHECK-LABEL: test_vst4q_lane_u16
1891 vst4q_lane_u16(a, b, 7);
1892 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1893 }
1894
test_vst4q_lane_u32(uint32_t * a,uint32x4x4_t b)1895 void test_vst4q_lane_u32(uint32_t *a, uint32x4x4_t b) {
1896 // CHECK-LABEL: test_vst4q_lane_u32
1897 vst4q_lane_u32(a, b, 3);
1898 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1899 }
1900
test_vst4q_lane_u64(uint64_t * a,uint64x2x4_t b)1901 void test_vst4q_lane_u64(uint64_t *a, uint64x2x4_t b) {
1902 // CHECK-LABEL: test_vst4q_lane_u64
1903 vst4q_lane_u64(a, b, 1);
1904 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1905 }
1906
test_vst4q_lane_s8(int8_t * a,int8x16x4_t b)1907 void test_vst4q_lane_s8(int8_t *a, int8x16x4_t b) {
1908 // CHECK-LABEL: test_vst4q_lane_s8
1909 vst4q_lane_s8(a, b, 15);
1910 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1911 }
1912
test_vst4q_lane_s16(int16_t * a,int16x8x4_t b)1913 void test_vst4q_lane_s16(int16_t *a, int16x8x4_t b) {
1914 // CHECK-LABEL: test_vst4q_lane_s16
1915 vst4q_lane_s16(a, b, 7);
1916 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1917 }
1918
test_vst4q_lane_s32(int32_t * a,int32x4x4_t b)1919 void test_vst4q_lane_s32(int32_t *a, int32x4x4_t b) {
1920 // CHECK-LABEL: test_vst4q_lane_s32
1921 vst4q_lane_s32(a, b, 3);
1922 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1923 }
1924
test_vst4q_lane_s64(int64_t * a,int64x2x4_t b)1925 void test_vst4q_lane_s64(int64_t *a, int64x2x4_t b) {
1926 // CHECK-LABEL: test_vst4q_lane_s64
1927 vst4q_lane_s64(a, b, 1);
1928 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1929 }
1930
test_vst4q_lane_f16(float16_t * a,float16x8x4_t b)1931 void test_vst4q_lane_f16(float16_t *a, float16x8x4_t b) {
1932 // CHECK-LABEL: test_vst4q_lane_f16
1933 vst4q_lane_f16(a, b, 7);
1934 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1935 }
1936
test_vst4q_lane_f32(float32_t * a,float32x4x4_t b)1937 void test_vst4q_lane_f32(float32_t *a, float32x4x4_t b) {
1938 // CHECK-LABEL: test_vst4q_lane_f32
1939 vst4q_lane_f32(a, b, 3);
1940 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}]
1941 }
1942
test_vst4q_lane_f64(float64_t * a,float64x2x4_t b)1943 void test_vst4q_lane_f64(float64_t *a, float64x2x4_t b) {
1944 // CHECK-LABEL: test_vst4q_lane_f64
1945 vst4q_lane_f64(a, b, 1);
1946 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1947 }
1948
test_vst4q_lane_p8(poly8_t * a,poly8x16x4_t b)1949 void test_vst4q_lane_p8(poly8_t *a, poly8x16x4_t b) {
1950 // CHECK-LABEL: test_vst4q_lane_p8
1951 vst4q_lane_p8(a, b, 15);
1952 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}]
1953 }
1954
test_vst4q_lane_p16(poly16_t * a,poly16x8x4_t b)1955 void test_vst4q_lane_p16(poly16_t *a, poly16x8x4_t b) {
1956 // CHECK-LABEL: test_vst4q_lane_p16
1957 vst4q_lane_p16(a, b, 7);
1958 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}]
1959 }
1960
test_vst4q_lane_p64(poly64_t * a,poly64x2x4_t b)1961 void test_vst4q_lane_p64(poly64_t *a, poly64x2x4_t b) {
1962 // CHECK-LABEL: test_vst4q_lane_p64
1963 vst4q_lane_p64(a, b, 1);
1964 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}]
1965 }
1966
test_vst4_lane_u8(uint8_t * a,uint8x8x4_t b)1967 void test_vst4_lane_u8(uint8_t *a, uint8x8x4_t b) {
1968 // CHECK-LABEL: test_vst4_lane_u8
1969 vst4_lane_u8(a, b, 7);
1970 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1971 }
1972
test_vst4_lane_u16(uint16_t * a,uint16x4x4_t b)1973 void test_vst4_lane_u16(uint16_t *a, uint16x4x4_t b) {
1974 // CHECK-LABEL: test_vst4_lane_u16
1975 vst4_lane_u16(a, b, 3);
1976 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
1977 }
1978
test_vst4_lane_u32(uint32_t * a,uint32x2x4_t b)1979 void test_vst4_lane_u32(uint32_t *a, uint32x2x4_t b) {
1980 // CHECK-LABEL: test_vst4_lane_u32
1981 vst4_lane_u32(a, b, 1);
1982 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
1983 }
1984
test_vst4_lane_u64(uint64_t * a,uint64x1x4_t b)1985 void test_vst4_lane_u64(uint64_t *a, uint64x1x4_t b) {
1986 // CHECK-LABEL: test_vst4_lane_u64
1987 vst4_lane_u64(a, b, 0);
1988 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
1989 }
1990
test_vst4_lane_s8(int8_t * a,int8x8x4_t b)1991 void test_vst4_lane_s8(int8_t *a, int8x8x4_t b) {
1992 // CHECK-LABEL: test_vst4_lane_s8
1993 vst4_lane_s8(a, b, 7);
1994 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
1995 }
1996
test_vst4_lane_s16(int16_t * a,int16x4x4_t b)1997 void test_vst4_lane_s16(int16_t *a, int16x4x4_t b) {
1998 // CHECK-LABEL: test_vst4_lane_s16
1999 vst4_lane_s16(a, b, 3);
2000 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
2001 }
2002
test_vst4_lane_s32(int32_t * a,int32x2x4_t b)2003 void test_vst4_lane_s32(int32_t *a, int32x2x4_t b) {
2004 // CHECK-LABEL: test_vst4_lane_s32
2005 vst4_lane_s32(a, b, 1);
2006 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
2007 }
2008
test_vst4_lane_s64(int64_t * a,int64x1x4_t b)2009 void test_vst4_lane_s64(int64_t *a, int64x1x4_t b) {
2010 // CHECK-LABEL: test_vst4_lane_s64
2011 vst4_lane_s64(a, b, 0);
2012 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
2013 }
2014
test_vst4_lane_f16(float16_t * a,float16x4x4_t b)2015 void test_vst4_lane_f16(float16_t *a, float16x4x4_t b) {
2016 // CHECK-LABEL: test_vst4_lane_f16
2017 vst4_lane_f16(a, b, 3);
2018 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
2019 }
2020
test_vst4_lane_f32(float32_t * a,float32x2x4_t b)2021 void test_vst4_lane_f32(float32_t *a, float32x2x4_t b) {
2022 // CHECK-LABEL: test_vst4_lane_f32
2023 vst4_lane_f32(a, b, 1);
2024 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}]
2025 }
2026
test_vst4_lane_f64(float64_t * a,float64x1x4_t b)2027 void test_vst4_lane_f64(float64_t *a, float64x1x4_t b) {
2028 // CHECK-LABEL: test_vst4_lane_f64
2029 vst4_lane_f64(a, b, 0);
2030 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
2031 }
2032
test_vst4_lane_p8(poly8_t * a,poly8x8x4_t b)2033 void test_vst4_lane_p8(poly8_t *a, poly8x8x4_t b) {
2034 // CHECK-LABEL: test_vst4_lane_p8
2035 vst4_lane_p8(a, b, 7);
2036 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}]
2037 }
2038
test_vst4_lane_p16(poly16_t * a,poly16x4x4_t b)2039 void test_vst4_lane_p16(poly16_t *a, poly16x4x4_t b) {
2040 // CHECK-LABEL: test_vst4_lane_p16
2041 vst4_lane_p16(a, b, 3);
2042 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}]
2043 }
2044
test_vst4_lane_p64(poly64_t * a,poly64x1x4_t b)2045 void test_vst4_lane_p64(poly64_t *a, poly64x1x4_t b) {
2046 // CHECK-LABEL: test_vst4_lane_p64
2047 vst4_lane_p64(a, b, 0);
2048 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}]
2049 }
2050