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