1 // RUN: %clang_cc1 -triple thumbv7s-apple-darwin -target-abi apcs-gnu\
2 // RUN: -target-cpu swift -ffreestanding -Os -S -o - %s\
3 // RUN: | FileCheck %s
4
5 // REQUIRES: long_tests
6
7 #include <arm_neon.h>
8
9 // CHECK: test_vaba_s8
10 // CHECK: vaba.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s8(int8x8_t a,int8x8_t b,int8x8_t c)11 int8x8_t test_vaba_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
12 return vaba_s8(a, b, c);
13 }
14
15 // CHECK: test_vaba_s16
16 // CHECK: vaba.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s16(int16x4_t a,int16x4_t b,int16x4_t c)17 int16x4_t test_vaba_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
18 return vaba_s16(a, b, c);
19 }
20
21 // CHECK: test_vaba_s32
22 // CHECK: vaba.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s32(int32x2_t a,int32x2_t b,int32x2_t c)23 int32x2_t test_vaba_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
24 return vaba_s32(a, b, c);
25 }
26
27 // CHECK: test_vaba_u8
28 // CHECK: vaba.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)29 uint8x8_t test_vaba_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
30 return vaba_u8(a, b, c);
31 }
32
33 // CHECK: test_vaba_u16
34 // CHECK: vaba.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)35 uint16x4_t test_vaba_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
36 return vaba_u16(a, b, c);
37 }
38
39 // CHECK: test_vaba_u32
40 // CHECK: vaba.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)41 uint32x2_t test_vaba_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
42 return vaba_u32(a, b, c);
43 }
44
45 // CHECK: test_vabaq_s8
46 // CHECK: vaba.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)47 int8x16_t test_vabaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
48 return vabaq_s8(a, b, c);
49 }
50
51 // CHECK: test_vabaq_s16
52 // CHECK: vaba.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)53 int16x8_t test_vabaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
54 return vabaq_s16(a, b, c);
55 }
56
57 // CHECK: test_vabaq_s32
58 // CHECK: vaba.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)59 int32x4_t test_vabaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
60 return vabaq_s32(a, b, c);
61 }
62
63 // CHECK: test_vabaq_u8
64 // CHECK: vaba.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)65 uint8x16_t test_vabaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
66 return vabaq_u8(a, b, c);
67 }
68
69 // CHECK: test_vabaq_u16
70 // CHECK: vaba.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)71 uint16x8_t test_vabaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
72 return vabaq_u16(a, b, c);
73 }
74
75 // CHECK: test_vabaq_u32
76 // CHECK: vaba.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)77 uint32x4_t test_vabaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
78 return vabaq_u32(a, b, c);
79 }
80
81
82 // CHECK: test_vabal_s8
83 // CHECK: vabal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s8(int16x8_t a,int8x8_t b,int8x8_t c)84 int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
85 return vabal_s8(a, b, c);
86 }
87
88 // CHECK: test_vabal_s16
89 // CHECK: vabal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s16(int32x4_t a,int16x4_t b,int16x4_t c)90 int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
91 return vabal_s16(a, b, c);
92 }
93
94 // CHECK: test_vabal_s32
95 // CHECK: vabal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s32(int64x2_t a,int32x2_t b,int32x2_t c)96 int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
97 return vabal_s32(a, b, c);
98 }
99
100 // CHECK: test_vabal_u8
101 // CHECK: vabal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)102 uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
103 return vabal_u8(a, b, c);
104 }
105
106 // CHECK: test_vabal_u16
107 // CHECK: vabal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)108 uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
109 return vabal_u16(a, b, c);
110 }
111
112 // CHECK: test_vabal_u32
113 // CHECK: vabal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)114 uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
115 return vabal_u32(a, b, c);
116 }
117
118
119 // CHECK: test_vabd_s8
120 // CHECK: vabd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s8(int8x8_t a,int8x8_t b)121 int8x8_t test_vabd_s8(int8x8_t a, int8x8_t b) {
122 return vabd_s8(a, b);
123 }
124
125 // CHECK: test_vabd_s16
126 // CHECK: vabd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s16(int16x4_t a,int16x4_t b)127 int16x4_t test_vabd_s16(int16x4_t a, int16x4_t b) {
128 return vabd_s16(a, b);
129 }
130
131 // CHECK: test_vabd_s32
132 // CHECK: vabd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s32(int32x2_t a,int32x2_t b)133 int32x2_t test_vabd_s32(int32x2_t a, int32x2_t b) {
134 return vabd_s32(a, b);
135 }
136
137 // CHECK: test_vabd_u8
138 // CHECK: vabd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u8(uint8x8_t a,uint8x8_t b)139 uint8x8_t test_vabd_u8(uint8x8_t a, uint8x8_t b) {
140 return vabd_u8(a, b);
141 }
142
143 // CHECK: test_vabd_u16
144 // CHECK: vabd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u16(uint16x4_t a,uint16x4_t b)145 uint16x4_t test_vabd_u16(uint16x4_t a, uint16x4_t b) {
146 return vabd_u16(a, b);
147 }
148
149 // CHECK: test_vabd_u32
150 // CHECK: vabd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u32(uint32x2_t a,uint32x2_t b)151 uint32x2_t test_vabd_u32(uint32x2_t a, uint32x2_t b) {
152 return vabd_u32(a, b);
153 }
154
155 // CHECK: test_vabd_f32
156 // CHECK: vabd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_f32(float32x2_t a,float32x2_t b)157 float32x2_t test_vabd_f32(float32x2_t a, float32x2_t b) {
158 return vabd_f32(a, b);
159 }
160
161 // CHECK: test_vabdq_s8
162 // CHECK: vabd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s8(int8x16_t a,int8x16_t b)163 int8x16_t test_vabdq_s8(int8x16_t a, int8x16_t b) {
164 return vabdq_s8(a, b);
165 }
166
167 // CHECK: test_vabdq_s16
168 // CHECK: vabd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s16(int16x8_t a,int16x8_t b)169 int16x8_t test_vabdq_s16(int16x8_t a, int16x8_t b) {
170 return vabdq_s16(a, b);
171 }
172
173 // CHECK: test_vabdq_s32
174 // CHECK: vabd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s32(int32x4_t a,int32x4_t b)175 int32x4_t test_vabdq_s32(int32x4_t a, int32x4_t b) {
176 return vabdq_s32(a, b);
177 }
178
179 // CHECK: test_vabdq_u8
180 // CHECK: vabd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u8(uint8x16_t a,uint8x16_t b)181 uint8x16_t test_vabdq_u8(uint8x16_t a, uint8x16_t b) {
182 return vabdq_u8(a, b);
183 }
184
185 // CHECK: test_vabdq_u16
186 // CHECK: vabd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u16(uint16x8_t a,uint16x8_t b)187 uint16x8_t test_vabdq_u16(uint16x8_t a, uint16x8_t b) {
188 return vabdq_u16(a, b);
189 }
190
191 // CHECK: test_vabdq_u32
192 // CHECK: vabd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u32(uint32x4_t a,uint32x4_t b)193 uint32x4_t test_vabdq_u32(uint32x4_t a, uint32x4_t b) {
194 return vabdq_u32(a, b);
195 }
196
197 // CHECK: test_vabdq_f32
198 // CHECK: vabd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_f32(float32x4_t a,float32x4_t b)199 float32x4_t test_vabdq_f32(float32x4_t a, float32x4_t b) {
200 return vabdq_f32(a, b);
201 }
202
203
204 // CHECK: test_vabdl_s8
205 // CHECK: vabdl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s8(int8x8_t a,int8x8_t b)206 int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) {
207 return vabdl_s8(a, b);
208 }
209
210 // CHECK: test_vabdl_s16
211 // CHECK: vabdl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s16(int16x4_t a,int16x4_t b)212 int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) {
213 return vabdl_s16(a, b);
214 }
215
216 // CHECK: test_vabdl_s32
217 // CHECK: vabdl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s32(int32x2_t a,int32x2_t b)218 int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) {
219 return vabdl_s32(a, b);
220 }
221
222 // CHECK: test_vabdl_u8
223 // CHECK: vabdl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u8(uint8x8_t a,uint8x8_t b)224 uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) {
225 return vabdl_u8(a, b);
226 }
227
228 // CHECK: test_vabdl_u16
229 // CHECK: vabdl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u16(uint16x4_t a,uint16x4_t b)230 uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) {
231 return vabdl_u16(a, b);
232 }
233
234 // CHECK: test_vabdl_u32
235 // CHECK: vabdl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u32(uint32x2_t a,uint32x2_t b)236 uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) {
237 return vabdl_u32(a, b);
238 }
239
240
241 // CHECK: test_vabs_s8
242 // CHECK: vabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s8(int8x8_t a)243 int8x8_t test_vabs_s8(int8x8_t a) {
244 return vabs_s8(a);
245 }
246
247 // CHECK: test_vabs_s16
248 // CHECK: vabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s16(int16x4_t a)249 int16x4_t test_vabs_s16(int16x4_t a) {
250 return vabs_s16(a);
251 }
252
253 // CHECK: test_vabs_s32
254 // CHECK: vabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s32(int32x2_t a)255 int32x2_t test_vabs_s32(int32x2_t a) {
256 return vabs_s32(a);
257 }
258
259 // CHECK: test_vabs_f32
260 // CHECK: vabs.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_f32(float32x2_t a)261 float32x2_t test_vabs_f32(float32x2_t a) {
262 return vabs_f32(a);
263 }
264
265 // CHECK: test_vabsq_s8
266 // CHECK: vabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s8(int8x16_t a)267 int8x16_t test_vabsq_s8(int8x16_t a) {
268 return vabsq_s8(a);
269 }
270
271 // CHECK: test_vabsq_s16
272 // CHECK: vabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s16(int16x8_t a)273 int16x8_t test_vabsq_s16(int16x8_t a) {
274 return vabsq_s16(a);
275 }
276
277 // CHECK: test_vabsq_s32
278 // CHECK: vabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s32(int32x4_t a)279 int32x4_t test_vabsq_s32(int32x4_t a) {
280 return vabsq_s32(a);
281 }
282
283 // CHECK: test_vabsq_f32
284 // CHECK: vabs.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_f32(float32x4_t a)285 float32x4_t test_vabsq_f32(float32x4_t a) {
286 return vabsq_f32(a);
287 }
288
289
290 // CHECK: test_vadd_s8
291 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s8(int8x8_t a,int8x8_t b)292 int8x8_t test_vadd_s8(int8x8_t a, int8x8_t b) {
293 return vadd_s8(a, b);
294 }
295
296 // CHECK: test_vadd_s16
297 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s16(int16x4_t a,int16x4_t b)298 int16x4_t test_vadd_s16(int16x4_t a, int16x4_t b) {
299 return vadd_s16(a, b);
300 }
301
302 // CHECK: test_vadd_s32
303 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s32(int32x2_t a,int32x2_t b)304 int32x2_t test_vadd_s32(int32x2_t a, int32x2_t b) {
305 return vadd_s32(a, b);
306 }
307
308 // CHECK: test_vadd_s64
309 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s64(int64x1_t a,int64x1_t b)310 int64x1_t test_vadd_s64(int64x1_t a, int64x1_t b) {
311 return vadd_s64(a, b);
312 }
313
314 // CHECK: test_vadd_f32
315 // CHECK: vadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_f32(float32x2_t a,float32x2_t b)316 float32x2_t test_vadd_f32(float32x2_t a, float32x2_t b) {
317 return vadd_f32(a, b);
318 }
319
320 // CHECK: test_vadd_u8
321 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u8(uint8x8_t a,uint8x8_t b)322 uint8x8_t test_vadd_u8(uint8x8_t a, uint8x8_t b) {
323 return vadd_u8(a, b);
324 }
325
326 // CHECK: test_vadd_u16
327 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u16(uint16x4_t a,uint16x4_t b)328 uint16x4_t test_vadd_u16(uint16x4_t a, uint16x4_t b) {
329 return vadd_u16(a, b);
330 }
331
332 // CHECK: test_vadd_u32
333 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u32(uint32x2_t a,uint32x2_t b)334 uint32x2_t test_vadd_u32(uint32x2_t a, uint32x2_t b) {
335 return vadd_u32(a, b);
336 }
337
338 // CHECK: test_vadd_u64
339 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u64(uint64x1_t a,uint64x1_t b)340 uint64x1_t test_vadd_u64(uint64x1_t a, uint64x1_t b) {
341 return vadd_u64(a, b);
342 }
343
344 // CHECK: test_vaddq_s8
345 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s8(int8x16_t a,int8x16_t b)346 int8x16_t test_vaddq_s8(int8x16_t a, int8x16_t b) {
347 return vaddq_s8(a, b);
348 }
349
350 // CHECK: test_vaddq_s16
351 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s16(int16x8_t a,int16x8_t b)352 int16x8_t test_vaddq_s16(int16x8_t a, int16x8_t b) {
353 return vaddq_s16(a, b);
354 }
355
356 // CHECK: test_vaddq_s32
357 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s32(int32x4_t a,int32x4_t b)358 int32x4_t test_vaddq_s32(int32x4_t a, int32x4_t b) {
359 return vaddq_s32(a, b);
360 }
361
362 // CHECK: test_vaddq_s64
363 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s64(int64x2_t a,int64x2_t b)364 int64x2_t test_vaddq_s64(int64x2_t a, int64x2_t b) {
365 return vaddq_s64(a, b);
366 }
367
368 // CHECK: test_vaddq_f32
369 // CHECK: vadd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_f32(float32x4_t a,float32x4_t b)370 float32x4_t test_vaddq_f32(float32x4_t a, float32x4_t b) {
371 return vaddq_f32(a, b);
372 }
373
374 // CHECK: test_vaddq_u8
375 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u8(uint8x16_t a,uint8x16_t b)376 uint8x16_t test_vaddq_u8(uint8x16_t a, uint8x16_t b) {
377 return vaddq_u8(a, b);
378 }
379
380 // CHECK: test_vaddq_u16
381 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u16(uint16x8_t a,uint16x8_t b)382 uint16x8_t test_vaddq_u16(uint16x8_t a, uint16x8_t b) {
383 return vaddq_u16(a, b);
384 }
385
386 // CHECK: test_vaddq_u32
387 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u32(uint32x4_t a,uint32x4_t b)388 uint32x4_t test_vaddq_u32(uint32x4_t a, uint32x4_t b) {
389 return vaddq_u32(a, b);
390 }
391
392 // CHECK: test_vaddq_u64
393 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u64(uint64x2_t a,uint64x2_t b)394 uint64x2_t test_vaddq_u64(uint64x2_t a, uint64x2_t b) {
395 return vaddq_u64(a, b);
396 }
397
398
399 // CHECK: test_vaddhn_s16
400 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s16(int16x8_t a,int16x8_t b)401 int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) {
402 return vaddhn_s16(a, b);
403 }
404
405 // CHECK: test_vaddhn_s32
406 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s32(int32x4_t a,int32x4_t b)407 int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) {
408 return vaddhn_s32(a, b);
409 }
410
411 // CHECK: test_vaddhn_s64
412 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s64(int64x2_t a,int64x2_t b)413 int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) {
414 return vaddhn_s64(a, b);
415 }
416
417 // CHECK: test_vaddhn_u16
418 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u16(uint16x8_t a,uint16x8_t b)419 uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) {
420 return vaddhn_u16(a, b);
421 }
422
423 // CHECK: test_vaddhn_u32
424 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u32(uint32x4_t a,uint32x4_t b)425 uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) {
426 return vaddhn_u32(a, b);
427 }
428
429 // CHECK: test_vaddhn_u64
430 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u64(uint64x2_t a,uint64x2_t b)431 uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) {
432 return vaddhn_u64(a, b);
433 }
434
435
436 // CHECK: test_vaddl_s8
437 // CHECK: vaddl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s8(int8x8_t a,int8x8_t b)438 int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) {
439 return vaddl_s8(a, b);
440 }
441
442 // CHECK: test_vaddl_s16
443 // CHECK: vaddl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s16(int16x4_t a,int16x4_t b)444 int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) {
445 return vaddl_s16(a, b);
446 }
447
448 // CHECK: test_vaddl_s32
449 // CHECK: vaddl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s32(int32x2_t a,int32x2_t b)450 int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) {
451 return vaddl_s32(a, b);
452 }
453
454 // CHECK: test_vaddl_u8
455 // CHECK: vaddl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u8(uint8x8_t a,uint8x8_t b)456 uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) {
457 return vaddl_u8(a, b);
458 }
459
460 // CHECK: test_vaddl_u16
461 // CHECK: vaddl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u16(uint16x4_t a,uint16x4_t b)462 uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) {
463 return vaddl_u16(a, b);
464 }
465
466 // CHECK: test_vaddl_u32
467 // CHECK: vaddl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u32(uint32x2_t a,uint32x2_t b)468 uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) {
469 return vaddl_u32(a, b);
470 }
471
472
473 // CHECK: test_vaddw_s8
474 // CHECK: vaddw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s8(int16x8_t a,int8x8_t b)475 int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) {
476 return vaddw_s8(a, b);
477 }
478
479 // CHECK: test_vaddw_s16
480 // CHECK: vaddw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s16(int32x4_t a,int16x4_t b)481 int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) {
482 return vaddw_s16(a, b);
483 }
484
485 // CHECK: test_vaddw_s32
486 // CHECK: vaddw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s32(int64x2_t a,int32x2_t b)487 int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) {
488 return vaddw_s32(a, b);
489 }
490
491 // CHECK: test_vaddw_u8
492 // CHECK: vaddw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u8(uint16x8_t a,uint8x8_t b)493 uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) {
494 return vaddw_u8(a, b);
495 }
496
497 // CHECK: test_vaddw_u16
498 // CHECK: vaddw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u16(uint32x4_t a,uint16x4_t b)499 uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) {
500 return vaddw_u16(a, b);
501 }
502
503 // CHECK: test_vaddw_u32
504 // CHECK: vaddw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u32(uint64x2_t a,uint32x2_t b)505 uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) {
506 return vaddw_u32(a, b);
507 }
508
509
510 // CHECK: test_vand_s8
511 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s8(int8x8_t a,int8x8_t b)512 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
513 return vand_s8(a, b);
514 }
515
516 // CHECK: test_vand_s16
517 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s16(int16x4_t a,int16x4_t b)518 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
519 return vand_s16(a, b);
520 }
521
522 // CHECK: test_vand_s32
523 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s32(int32x2_t a,int32x2_t b)524 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
525 return vand_s32(a, b);
526 }
527
528 // CHECK: test_vand_s64
529 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s64(int64x1_t a,int64x1_t b)530 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
531 return vand_s64(a, b);
532 }
533
534 // CHECK: test_vand_u8
535 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u8(uint8x8_t a,uint8x8_t b)536 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
537 return vand_u8(a, b);
538 }
539
540 // CHECK: test_vand_u16
541 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u16(uint16x4_t a,uint16x4_t b)542 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
543 return vand_u16(a, b);
544 }
545
546 // CHECK: test_vand_u32
547 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u32(uint32x2_t a,uint32x2_t b)548 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
549 return vand_u32(a, b);
550 }
551
552 // CHECK: test_vand_u64
553 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u64(uint64x1_t a,uint64x1_t b)554 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
555 return vand_u64(a, b);
556 }
557
558 // CHECK: test_vandq_s8
559 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s8(int8x16_t a,int8x16_t b)560 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
561 return vandq_s8(a, b);
562 }
563
564 // CHECK: test_vandq_s16
565 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s16(int16x8_t a,int16x8_t b)566 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
567 return vandq_s16(a, b);
568 }
569
570 // CHECK: test_vandq_s32
571 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s32(int32x4_t a,int32x4_t b)572 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
573 return vandq_s32(a, b);
574 }
575
576 // CHECK: test_vandq_s64
577 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s64(int64x2_t a,int64x2_t b)578 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
579 return vandq_s64(a, b);
580 }
581
582 // CHECK: test_vandq_u8
583 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u8(uint8x16_t a,uint8x16_t b)584 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
585 return vandq_u8(a, b);
586 }
587
588 // CHECK: test_vandq_u16
589 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u16(uint16x8_t a,uint16x8_t b)590 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
591 return vandq_u16(a, b);
592 }
593
594 // CHECK: test_vandq_u32
595 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u32(uint32x4_t a,uint32x4_t b)596 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
597 return vandq_u32(a, b);
598 }
599
600 // CHECK: test_vandq_u64
601 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u64(uint64x2_t a,uint64x2_t b)602 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
603 return vandq_u64(a, b);
604 }
605
606
607 // CHECK: test_vbic_s8
608 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s8(int8x8_t a,int8x8_t b)609 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
610 return vbic_s8(a, b);
611 }
612
613 // CHECK: test_vbic_s16
614 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s16(int16x4_t a,int16x4_t b)615 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
616 return vbic_s16(a, b);
617 }
618
619 // CHECK: test_vbic_s32
620 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s32(int32x2_t a,int32x2_t b)621 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
622 return vbic_s32(a, b);
623 }
624
625 // CHECK: test_vbic_s64
626 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s64(int64x1_t a,int64x1_t b)627 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
628 return vbic_s64(a, b);
629 }
630
631 // CHECK: test_vbic_u8
632 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u8(uint8x8_t a,uint8x8_t b)633 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
634 return vbic_u8(a, b);
635 }
636
637 // CHECK: test_vbic_u16
638 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u16(uint16x4_t a,uint16x4_t b)639 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
640 return vbic_u16(a, b);
641 }
642
643 // CHECK: test_vbic_u32
644 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u32(uint32x2_t a,uint32x2_t b)645 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
646 return vbic_u32(a, b);
647 }
648
649 // CHECK: test_vbic_u64
650 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u64(uint64x1_t a,uint64x1_t b)651 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
652 return vbic_u64(a, b);
653 }
654
655 // CHECK: test_vbicq_s8
656 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s8(int8x16_t a,int8x16_t b)657 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
658 return vbicq_s8(a, b);
659 }
660
661 // CHECK: test_vbicq_s16
662 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s16(int16x8_t a,int16x8_t b)663 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
664 return vbicq_s16(a, b);
665 }
666
667 // CHECK: test_vbicq_s32
668 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s32(int32x4_t a,int32x4_t b)669 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
670 return vbicq_s32(a, b);
671 }
672
673 // CHECK: test_vbicq_s64
674 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s64(int64x2_t a,int64x2_t b)675 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
676 return vbicq_s64(a, b);
677 }
678
679 // CHECK: test_vbicq_u8
680 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u8(uint8x16_t a,uint8x16_t b)681 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
682 return vbicq_u8(a, b);
683 }
684
685 // CHECK: test_vbicq_u16
686 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u16(uint16x8_t a,uint16x8_t b)687 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
688 return vbicq_u16(a, b);
689 }
690
691 // CHECK: test_vbicq_u32
692 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u32(uint32x4_t a,uint32x4_t b)693 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
694 return vbicq_u32(a, b);
695 }
696
697 // CHECK: test_vbicq_u64
698 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u64(uint64x2_t a,uint64x2_t b)699 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
700 return vbicq_u64(a, b);
701 }
702
703
704 // CHECK: test_vbsl_s8
705 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s8(uint8x8_t a,int8x8_t b,int8x8_t c)706 int8x8_t test_vbsl_s8(uint8x8_t a, int8x8_t b, int8x8_t c) {
707 return vbsl_s8(a, b, c);
708 }
709
710 // CHECK: test_vbsl_s16
711 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s16(uint16x4_t a,int16x4_t b,int16x4_t c)712 int16x4_t test_vbsl_s16(uint16x4_t a, int16x4_t b, int16x4_t c) {
713 return vbsl_s16(a, b, c);
714 }
715
716 // CHECK: test_vbsl_s32
717 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s32(uint32x2_t a,int32x2_t b,int32x2_t c)718 int32x2_t test_vbsl_s32(uint32x2_t a, int32x2_t b, int32x2_t c) {
719 return vbsl_s32(a, b, c);
720 }
721
722 // CHECK: test_vbsl_s64
723 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s64(uint64x1_t a,int64x1_t b,int64x1_t c)724 int64x1_t test_vbsl_s64(uint64x1_t a, int64x1_t b, int64x1_t c) {
725 return vbsl_s64(a, b, c);
726 }
727
728 // CHECK: test_vbsl_u8
729 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)730 uint8x8_t test_vbsl_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
731 return vbsl_u8(a, b, c);
732 }
733
734 // CHECK: test_vbsl_u16
735 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)736 uint16x4_t test_vbsl_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
737 return vbsl_u16(a, b, c);
738 }
739
740 // CHECK: test_vbsl_u32
741 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)742 uint32x2_t test_vbsl_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
743 return vbsl_u32(a, b, c);
744 }
745
746 // CHECK: test_vbsl_u64
747 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u64(uint64x1_t a,uint64x1_t b,uint64x1_t c)748 uint64x1_t test_vbsl_u64(uint64x1_t a, uint64x1_t b, uint64x1_t c) {
749 return vbsl_u64(a, b, c);
750 }
751
752 // CHECK: test_vbsl_f32
753 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_f32(uint32x2_t a,float32x2_t b,float32x2_t c)754 float32x2_t test_vbsl_f32(uint32x2_t a, float32x2_t b, float32x2_t c) {
755 return vbsl_f32(a, b, c);
756 }
757
758 // CHECK: test_vbsl_p8
759 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p8(uint8x8_t a,poly8x8_t b,poly8x8_t c)760 poly8x8_t test_vbsl_p8(uint8x8_t a, poly8x8_t b, poly8x8_t c) {
761 return vbsl_p8(a, b, c);
762 }
763
764 // CHECK: test_vbsl_p16
765 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p16(uint16x4_t a,poly16x4_t b,poly16x4_t c)766 poly16x4_t test_vbsl_p16(uint16x4_t a, poly16x4_t b, poly16x4_t c) {
767 return vbsl_p16(a, b, c);
768 }
769
770 // CHECK: test_vbslq_s8
771 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s8(uint8x16_t a,int8x16_t b,int8x16_t c)772 int8x16_t test_vbslq_s8(uint8x16_t a, int8x16_t b, int8x16_t c) {
773 return vbslq_s8(a, b, c);
774 }
775
776 // CHECK: test_vbslq_s16
777 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s16(uint16x8_t a,int16x8_t b,int16x8_t c)778 int16x8_t test_vbslq_s16(uint16x8_t a, int16x8_t b, int16x8_t c) {
779 return vbslq_s16(a, b, c);
780 }
781
782 // CHECK: test_vbslq_s32
783 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s32(uint32x4_t a,int32x4_t b,int32x4_t c)784 int32x4_t test_vbslq_s32(uint32x4_t a, int32x4_t b, int32x4_t c) {
785 return vbslq_s32(a, b, c);
786 }
787
788 // CHECK: test_vbslq_s64
789 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s64(uint64x2_t a,int64x2_t b,int64x2_t c)790 int64x2_t test_vbslq_s64(uint64x2_t a, int64x2_t b, int64x2_t c) {
791 return vbslq_s64(a, b, c);
792 }
793
794 // CHECK: test_vbslq_u8
795 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)796 uint8x16_t test_vbslq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
797 return vbslq_u8(a, b, c);
798 }
799
800 // CHECK: test_vbslq_u16
801 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)802 uint16x8_t test_vbslq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
803 return vbslq_u16(a, b, c);
804 }
805
806 // CHECK: test_vbslq_u32
807 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)808 uint32x4_t test_vbslq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
809 return vbslq_u32(a, b, c);
810 }
811
812 // CHECK: test_vbslq_u64
813 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u64(uint64x2_t a,uint64x2_t b,uint64x2_t c)814 uint64x2_t test_vbslq_u64(uint64x2_t a, uint64x2_t b, uint64x2_t c) {
815 return vbslq_u64(a, b, c);
816 }
817
818 // CHECK: test_vbslq_f32
819 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_f32(uint32x4_t a,float32x4_t b,float32x4_t c)820 float32x4_t test_vbslq_f32(uint32x4_t a, float32x4_t b, float32x4_t c) {
821 return vbslq_f32(a, b, c);
822 }
823
824 // CHECK: test_vbslq_p8
825 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p8(uint8x16_t a,poly8x16_t b,poly8x16_t c)826 poly8x16_t test_vbslq_p8(uint8x16_t a, poly8x16_t b, poly8x16_t c) {
827 return vbslq_p8(a, b, c);
828 }
829
830 // CHECK: test_vbslq_p16
831 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p16(uint16x8_t a,poly16x8_t b,poly16x8_t c)832 poly16x8_t test_vbslq_p16(uint16x8_t a, poly16x8_t b, poly16x8_t c) {
833 return vbslq_p16(a, b, c);
834 }
835
836
837 // CHECK: test_vcage_f32
838 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcage_f32(float32x2_t a,float32x2_t b)839 uint32x2_t test_vcage_f32(float32x2_t a, float32x2_t b) {
840 return vcage_f32(a, b);
841 }
842
843 // CHECK: test_vcageq_f32
844 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcageq_f32(float32x4_t a,float32x4_t b)845 uint32x4_t test_vcageq_f32(float32x4_t a, float32x4_t b) {
846 return vcageq_f32(a, b);
847 }
848
849
850 // CHECK: test_vcagt_f32
851 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcagt_f32(float32x2_t a,float32x2_t b)852 uint32x2_t test_vcagt_f32(float32x2_t a, float32x2_t b) {
853 return vcagt_f32(a, b);
854 }
855
856 // CHECK: test_vcagtq_f32
857 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcagtq_f32(float32x4_t a,float32x4_t b)858 uint32x4_t test_vcagtq_f32(float32x4_t a, float32x4_t b) {
859 return vcagtq_f32(a, b);
860 }
861
862
863 // CHECK: test_vcale_f32
864 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcale_f32(float32x2_t a,float32x2_t b)865 uint32x2_t test_vcale_f32(float32x2_t a, float32x2_t b) {
866 return vcale_f32(a, b);
867 }
868
869 // CHECK: test_vcaleq_f32
870 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaleq_f32(float32x4_t a,float32x4_t b)871 uint32x4_t test_vcaleq_f32(float32x4_t a, float32x4_t b) {
872 return vcaleq_f32(a, b);
873 }
874
875
876 // CHECK: test_vcalt_f32
877 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcalt_f32(float32x2_t a,float32x2_t b)878 uint32x2_t test_vcalt_f32(float32x2_t a, float32x2_t b) {
879 return vcalt_f32(a, b);
880 }
881
882 // CHECK: test_vcaltq_f32
883 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaltq_f32(float32x4_t a,float32x4_t b)884 uint32x4_t test_vcaltq_f32(float32x4_t a, float32x4_t b) {
885 return vcaltq_f32(a, b);
886 }
887
888
889 // CHECK: test_vceq_s8
890 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s8(int8x8_t a,int8x8_t b)891 uint8x8_t test_vceq_s8(int8x8_t a, int8x8_t b) {
892 return vceq_s8(a, b);
893 }
894
895 // CHECK: test_vceq_s16
896 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s16(int16x4_t a,int16x4_t b)897 uint16x4_t test_vceq_s16(int16x4_t a, int16x4_t b) {
898 return vceq_s16(a, b);
899 }
900
901 // CHECK: test_vceq_s32
902 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s32(int32x2_t a,int32x2_t b)903 uint32x2_t test_vceq_s32(int32x2_t a, int32x2_t b) {
904 return vceq_s32(a, b);
905 }
906
907 // CHECK: test_vceq_f32
908 // CHECK: vceq.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_f32(float32x2_t a,float32x2_t b)909 uint32x2_t test_vceq_f32(float32x2_t a, float32x2_t b) {
910 return vceq_f32(a, b);
911 }
912
913 // CHECK: test_vceq_u8
914 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u8(uint8x8_t a,uint8x8_t b)915 uint8x8_t test_vceq_u8(uint8x8_t a, uint8x8_t b) {
916 return vceq_u8(a, b);
917 }
918
919 // CHECK: test_vceq_u16
920 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u16(uint16x4_t a,uint16x4_t b)921 uint16x4_t test_vceq_u16(uint16x4_t a, uint16x4_t b) {
922 return vceq_u16(a, b);
923 }
924
925 // CHECK: test_vceq_u32
926 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u32(uint32x2_t a,uint32x2_t b)927 uint32x2_t test_vceq_u32(uint32x2_t a, uint32x2_t b) {
928 return vceq_u32(a, b);
929 }
930
931 // CHECK: test_vceq_p8
932 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_p8(poly8x8_t a,poly8x8_t b)933 uint8x8_t test_vceq_p8(poly8x8_t a, poly8x8_t b) {
934 return vceq_p8(a, b);
935 }
936
937 // CHECK: test_vceqq_s8
938 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s8(int8x16_t a,int8x16_t b)939 uint8x16_t test_vceqq_s8(int8x16_t a, int8x16_t b) {
940 return vceqq_s8(a, b);
941 }
942
943 // CHECK: test_vceqq_s16
944 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s16(int16x8_t a,int16x8_t b)945 uint16x8_t test_vceqq_s16(int16x8_t a, int16x8_t b) {
946 return vceqq_s16(a, b);
947 }
948
949 // CHECK: test_vceqq_s32
950 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s32(int32x4_t a,int32x4_t b)951 uint32x4_t test_vceqq_s32(int32x4_t a, int32x4_t b) {
952 return vceqq_s32(a, b);
953 }
954
955 // CHECK: test_vceqq_f32
956 // CHECK: vceq.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_f32(float32x4_t a,float32x4_t b)957 uint32x4_t test_vceqq_f32(float32x4_t a, float32x4_t b) {
958 return vceqq_f32(a, b);
959 }
960
961 // CHECK: test_vceqq_u8
962 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u8(uint8x16_t a,uint8x16_t b)963 uint8x16_t test_vceqq_u8(uint8x16_t a, uint8x16_t b) {
964 return vceqq_u8(a, b);
965 }
966
967 // CHECK: test_vceqq_u16
968 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u16(uint16x8_t a,uint16x8_t b)969 uint16x8_t test_vceqq_u16(uint16x8_t a, uint16x8_t b) {
970 return vceqq_u16(a, b);
971 }
972
973 // CHECK: test_vceqq_u32
974 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u32(uint32x4_t a,uint32x4_t b)975 uint32x4_t test_vceqq_u32(uint32x4_t a, uint32x4_t b) {
976 return vceqq_u32(a, b);
977 }
978
979 // CHECK: test_vceqq_p8
980 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_p8(poly8x16_t a,poly8x16_t b)981 uint8x16_t test_vceqq_p8(poly8x16_t a, poly8x16_t b) {
982 return vceqq_p8(a, b);
983 }
984
985
986 // CHECK: test_vcge_s8
987 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s8(int8x8_t a,int8x8_t b)988 uint8x8_t test_vcge_s8(int8x8_t a, int8x8_t b) {
989 return vcge_s8(a, b);
990 }
991
992 // CHECK: test_vcge_s16
993 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s16(int16x4_t a,int16x4_t b)994 uint16x4_t test_vcge_s16(int16x4_t a, int16x4_t b) {
995 return vcge_s16(a, b);
996 }
997
998 // CHECK: test_vcge_s32
999 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s32(int32x2_t a,int32x2_t b)1000 uint32x2_t test_vcge_s32(int32x2_t a, int32x2_t b) {
1001 return vcge_s32(a, b);
1002 }
1003
1004 // CHECK: test_vcge_f32
1005 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_f32(float32x2_t a,float32x2_t b)1006 uint32x2_t test_vcge_f32(float32x2_t a, float32x2_t b) {
1007 return vcge_f32(a, b);
1008 }
1009
1010 // CHECK: test_vcge_u8
1011 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u8(uint8x8_t a,uint8x8_t b)1012 uint8x8_t test_vcge_u8(uint8x8_t a, uint8x8_t b) {
1013 return vcge_u8(a, b);
1014 }
1015
1016 // CHECK: test_vcge_u16
1017 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u16(uint16x4_t a,uint16x4_t b)1018 uint16x4_t test_vcge_u16(uint16x4_t a, uint16x4_t b) {
1019 return vcge_u16(a, b);
1020 }
1021
1022 // CHECK: test_vcge_u32
1023 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u32(uint32x2_t a,uint32x2_t b)1024 uint32x2_t test_vcge_u32(uint32x2_t a, uint32x2_t b) {
1025 return vcge_u32(a, b);
1026 }
1027
1028 // CHECK: test_vcgeq_s8
1029 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s8(int8x16_t a,int8x16_t b)1030 uint8x16_t test_vcgeq_s8(int8x16_t a, int8x16_t b) {
1031 return vcgeq_s8(a, b);
1032 }
1033
1034 // CHECK: test_vcgeq_s16
1035 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s16(int16x8_t a,int16x8_t b)1036 uint16x8_t test_vcgeq_s16(int16x8_t a, int16x8_t b) {
1037 return vcgeq_s16(a, b);
1038 }
1039
1040 // CHECK: test_vcgeq_s32
1041 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s32(int32x4_t a,int32x4_t b)1042 uint32x4_t test_vcgeq_s32(int32x4_t a, int32x4_t b) {
1043 return vcgeq_s32(a, b);
1044 }
1045
1046 // CHECK: test_vcgeq_f32
1047 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_f32(float32x4_t a,float32x4_t b)1048 uint32x4_t test_vcgeq_f32(float32x4_t a, float32x4_t b) {
1049 return vcgeq_f32(a, b);
1050 }
1051
1052 // CHECK: test_vcgeq_u8
1053 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u8(uint8x16_t a,uint8x16_t b)1054 uint8x16_t test_vcgeq_u8(uint8x16_t a, uint8x16_t b) {
1055 return vcgeq_u8(a, b);
1056 }
1057
1058 // CHECK: test_vcgeq_u16
1059 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u16(uint16x8_t a,uint16x8_t b)1060 uint16x8_t test_vcgeq_u16(uint16x8_t a, uint16x8_t b) {
1061 return vcgeq_u16(a, b);
1062 }
1063
1064 // CHECK: test_vcgeq_u32
1065 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u32(uint32x4_t a,uint32x4_t b)1066 uint32x4_t test_vcgeq_u32(uint32x4_t a, uint32x4_t b) {
1067 return vcgeq_u32(a, b);
1068 }
1069
1070
1071 // CHECK: test_vcgt_s8
1072 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s8(int8x8_t a,int8x8_t b)1073 uint8x8_t test_vcgt_s8(int8x8_t a, int8x8_t b) {
1074 return vcgt_s8(a, b);
1075 }
1076
1077 // CHECK: test_vcgt_s16
1078 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s16(int16x4_t a,int16x4_t b)1079 uint16x4_t test_vcgt_s16(int16x4_t a, int16x4_t b) {
1080 return vcgt_s16(a, b);
1081 }
1082
1083 // CHECK: test_vcgt_s32
1084 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s32(int32x2_t a,int32x2_t b)1085 uint32x2_t test_vcgt_s32(int32x2_t a, int32x2_t b) {
1086 return vcgt_s32(a, b);
1087 }
1088
1089 // CHECK: test_vcgt_f32
1090 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_f32(float32x2_t a,float32x2_t b)1091 uint32x2_t test_vcgt_f32(float32x2_t a, float32x2_t b) {
1092 return vcgt_f32(a, b);
1093 }
1094
1095 // CHECK: test_vcgt_u8
1096 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u8(uint8x8_t a,uint8x8_t b)1097 uint8x8_t test_vcgt_u8(uint8x8_t a, uint8x8_t b) {
1098 return vcgt_u8(a, b);
1099 }
1100
1101 // CHECK: test_vcgt_u16
1102 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u16(uint16x4_t a,uint16x4_t b)1103 uint16x4_t test_vcgt_u16(uint16x4_t a, uint16x4_t b) {
1104 return vcgt_u16(a, b);
1105 }
1106
1107 // CHECK: test_vcgt_u32
1108 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u32(uint32x2_t a,uint32x2_t b)1109 uint32x2_t test_vcgt_u32(uint32x2_t a, uint32x2_t b) {
1110 return vcgt_u32(a, b);
1111 }
1112
1113 // CHECK: test_vcgtq_s8
1114 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s8(int8x16_t a,int8x16_t b)1115 uint8x16_t test_vcgtq_s8(int8x16_t a, int8x16_t b) {
1116 return vcgtq_s8(a, b);
1117 }
1118
1119 // CHECK: test_vcgtq_s16
1120 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s16(int16x8_t a,int16x8_t b)1121 uint16x8_t test_vcgtq_s16(int16x8_t a, int16x8_t b) {
1122 return vcgtq_s16(a, b);
1123 }
1124
1125 // CHECK: test_vcgtq_s32
1126 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s32(int32x4_t a,int32x4_t b)1127 uint32x4_t test_vcgtq_s32(int32x4_t a, int32x4_t b) {
1128 return vcgtq_s32(a, b);
1129 }
1130
1131 // CHECK: test_vcgtq_f32
1132 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_f32(float32x4_t a,float32x4_t b)1133 uint32x4_t test_vcgtq_f32(float32x4_t a, float32x4_t b) {
1134 return vcgtq_f32(a, b);
1135 }
1136
1137 // CHECK: test_vcgtq_u8
1138 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u8(uint8x16_t a,uint8x16_t b)1139 uint8x16_t test_vcgtq_u8(uint8x16_t a, uint8x16_t b) {
1140 return vcgtq_u8(a, b);
1141 }
1142
1143 // CHECK: test_vcgtq_u16
1144 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u16(uint16x8_t a,uint16x8_t b)1145 uint16x8_t test_vcgtq_u16(uint16x8_t a, uint16x8_t b) {
1146 return vcgtq_u16(a, b);
1147 }
1148
1149 // CHECK: test_vcgtq_u32
1150 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u32(uint32x4_t a,uint32x4_t b)1151 uint32x4_t test_vcgtq_u32(uint32x4_t a, uint32x4_t b) {
1152 return vcgtq_u32(a, b);
1153 }
1154
1155
1156 // CHECK: test_vcle_s8
1157 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s8(int8x8_t a,int8x8_t b)1158 uint8x8_t test_vcle_s8(int8x8_t a, int8x8_t b) {
1159 return vcle_s8(a, b);
1160 }
1161
1162 // CHECK: test_vcle_s16
1163 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s16(int16x4_t a,int16x4_t b)1164 uint16x4_t test_vcle_s16(int16x4_t a, int16x4_t b) {
1165 return vcle_s16(a, b);
1166 }
1167
1168 // CHECK: test_vcle_s32
1169 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s32(int32x2_t a,int32x2_t b)1170 uint32x2_t test_vcle_s32(int32x2_t a, int32x2_t b) {
1171 return vcle_s32(a, b);
1172 }
1173
1174 // CHECK: test_vcle_f32
1175 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_f32(float32x2_t a,float32x2_t b)1176 uint32x2_t test_vcle_f32(float32x2_t a, float32x2_t b) {
1177 return vcle_f32(a, b);
1178 }
1179
1180 // CHECK: test_vcle_u8
1181 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u8(uint8x8_t a,uint8x8_t b)1182 uint8x8_t test_vcle_u8(uint8x8_t a, uint8x8_t b) {
1183 return vcle_u8(a, b);
1184 }
1185
1186 // CHECK: test_vcle_u16
1187 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u16(uint16x4_t a,uint16x4_t b)1188 uint16x4_t test_vcle_u16(uint16x4_t a, uint16x4_t b) {
1189 return vcle_u16(a, b);
1190 }
1191
1192 // CHECK: test_vcle_u32
1193 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u32(uint32x2_t a,uint32x2_t b)1194 uint32x2_t test_vcle_u32(uint32x2_t a, uint32x2_t b) {
1195 return vcle_u32(a, b);
1196 }
1197
1198 // CHECK: test_vcleq_s8
1199 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s8(int8x16_t a,int8x16_t b)1200 uint8x16_t test_vcleq_s8(int8x16_t a, int8x16_t b) {
1201 return vcleq_s8(a, b);
1202 }
1203
1204 // CHECK: test_vcleq_s16
1205 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s16(int16x8_t a,int16x8_t b)1206 uint16x8_t test_vcleq_s16(int16x8_t a, int16x8_t b) {
1207 return vcleq_s16(a, b);
1208 }
1209
1210 // CHECK: test_vcleq_s32
1211 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s32(int32x4_t a,int32x4_t b)1212 uint32x4_t test_vcleq_s32(int32x4_t a, int32x4_t b) {
1213 return vcleq_s32(a, b);
1214 }
1215
1216 // CHECK: test_vcleq_f32
1217 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_f32(float32x4_t a,float32x4_t b)1218 uint32x4_t test_vcleq_f32(float32x4_t a, float32x4_t b) {
1219 return vcleq_f32(a, b);
1220 }
1221
1222 // CHECK: test_vcleq_u8
1223 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u8(uint8x16_t a,uint8x16_t b)1224 uint8x16_t test_vcleq_u8(uint8x16_t a, uint8x16_t b) {
1225 return vcleq_u8(a, b);
1226 }
1227
1228 // CHECK: test_vcleq_u16
1229 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u16(uint16x8_t a,uint16x8_t b)1230 uint16x8_t test_vcleq_u16(uint16x8_t a, uint16x8_t b) {
1231 return vcleq_u16(a, b);
1232 }
1233
1234 // CHECK: test_vcleq_u32
1235 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u32(uint32x4_t a,uint32x4_t b)1236 uint32x4_t test_vcleq_u32(uint32x4_t a, uint32x4_t b) {
1237 return vcleq_u32(a, b);
1238 }
1239
1240
1241 // CHECK: test_vcls_s8
1242 // CHECK: vcls.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s8(int8x8_t a)1243 int8x8_t test_vcls_s8(int8x8_t a) {
1244 return vcls_s8(a);
1245 }
1246
1247 // CHECK: test_vcls_s16
1248 // CHECK: vcls.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s16(int16x4_t a)1249 int16x4_t test_vcls_s16(int16x4_t a) {
1250 return vcls_s16(a);
1251 }
1252
1253 // CHECK: test_vcls_s32
1254 // CHECK: vcls.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s32(int32x2_t a)1255 int32x2_t test_vcls_s32(int32x2_t a) {
1256 return vcls_s32(a);
1257 }
1258
1259 // CHECK: test_vclsq_s8
1260 // CHECK: vcls.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s8(int8x16_t a)1261 int8x16_t test_vclsq_s8(int8x16_t a) {
1262 return vclsq_s8(a);
1263 }
1264
1265 // CHECK: test_vclsq_s16
1266 // CHECK: vcls.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s16(int16x8_t a)1267 int16x8_t test_vclsq_s16(int16x8_t a) {
1268 return vclsq_s16(a);
1269 }
1270
1271 // CHECK: test_vclsq_s32
1272 // CHECK: vcls.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s32(int32x4_t a)1273 int32x4_t test_vclsq_s32(int32x4_t a) {
1274 return vclsq_s32(a);
1275 }
1276
1277
1278 // CHECK: test_vclt_s8
1279 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s8(int8x8_t a,int8x8_t b)1280 uint8x8_t test_vclt_s8(int8x8_t a, int8x8_t b) {
1281 return vclt_s8(a, b);
1282 }
1283
1284 // CHECK: test_vclt_s16
1285 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s16(int16x4_t a,int16x4_t b)1286 uint16x4_t test_vclt_s16(int16x4_t a, int16x4_t b) {
1287 return vclt_s16(a, b);
1288 }
1289
1290 // CHECK: test_vclt_s32
1291 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s32(int32x2_t a,int32x2_t b)1292 uint32x2_t test_vclt_s32(int32x2_t a, int32x2_t b) {
1293 return vclt_s32(a, b);
1294 }
1295
1296 // CHECK: test_vclt_f32
1297 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_f32(float32x2_t a,float32x2_t b)1298 uint32x2_t test_vclt_f32(float32x2_t a, float32x2_t b) {
1299 return vclt_f32(a, b);
1300 }
1301
1302 // CHECK: test_vclt_u8
1303 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u8(uint8x8_t a,uint8x8_t b)1304 uint8x8_t test_vclt_u8(uint8x8_t a, uint8x8_t b) {
1305 return vclt_u8(a, b);
1306 }
1307
1308 // CHECK: test_vclt_u16
1309 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u16(uint16x4_t a,uint16x4_t b)1310 uint16x4_t test_vclt_u16(uint16x4_t a, uint16x4_t b) {
1311 return vclt_u16(a, b);
1312 }
1313
1314 // CHECK: test_vclt_u32
1315 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u32(uint32x2_t a,uint32x2_t b)1316 uint32x2_t test_vclt_u32(uint32x2_t a, uint32x2_t b) {
1317 return vclt_u32(a, b);
1318 }
1319
1320 // CHECK: test_vcltq_s8
1321 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s8(int8x16_t a,int8x16_t b)1322 uint8x16_t test_vcltq_s8(int8x16_t a, int8x16_t b) {
1323 return vcltq_s8(a, b);
1324 }
1325
1326 // CHECK: test_vcltq_s16
1327 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s16(int16x8_t a,int16x8_t b)1328 uint16x8_t test_vcltq_s16(int16x8_t a, int16x8_t b) {
1329 return vcltq_s16(a, b);
1330 }
1331
1332 // CHECK: test_vcltq_s32
1333 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s32(int32x4_t a,int32x4_t b)1334 uint32x4_t test_vcltq_s32(int32x4_t a, int32x4_t b) {
1335 return vcltq_s32(a, b);
1336 }
1337
1338 // CHECK: test_vcltq_f32
1339 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_f32(float32x4_t a,float32x4_t b)1340 uint32x4_t test_vcltq_f32(float32x4_t a, float32x4_t b) {
1341 return vcltq_f32(a, b);
1342 }
1343
1344 // CHECK: test_vcltq_u8
1345 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u8(uint8x16_t a,uint8x16_t b)1346 uint8x16_t test_vcltq_u8(uint8x16_t a, uint8x16_t b) {
1347 return vcltq_u8(a, b);
1348 }
1349
1350 // CHECK: test_vcltq_u16
1351 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u16(uint16x8_t a,uint16x8_t b)1352 uint16x8_t test_vcltq_u16(uint16x8_t a, uint16x8_t b) {
1353 return vcltq_u16(a, b);
1354 }
1355
1356 // CHECK: test_vcltq_u32
1357 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u32(uint32x4_t a,uint32x4_t b)1358 uint32x4_t test_vcltq_u32(uint32x4_t a, uint32x4_t b) {
1359 return vcltq_u32(a, b);
1360 }
1361
1362
1363 // CHECK: test_vclz_s8
1364 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s8(int8x8_t a)1365 int8x8_t test_vclz_s8(int8x8_t a) {
1366 return vclz_s8(a);
1367 }
1368
1369 // CHECK: test_vclz_s16
1370 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s16(int16x4_t a)1371 int16x4_t test_vclz_s16(int16x4_t a) {
1372 return vclz_s16(a);
1373 }
1374
1375 // CHECK: test_vclz_s32
1376 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s32(int32x2_t a)1377 int32x2_t test_vclz_s32(int32x2_t a) {
1378 return vclz_s32(a);
1379 }
1380
1381 // CHECK: test_vclz_u8
1382 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u8(uint8x8_t a)1383 uint8x8_t test_vclz_u8(uint8x8_t a) {
1384 return vclz_u8(a);
1385 }
1386
1387 // CHECK: test_vclz_u16
1388 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u16(uint16x4_t a)1389 uint16x4_t test_vclz_u16(uint16x4_t a) {
1390 return vclz_u16(a);
1391 }
1392
1393 // CHECK: test_vclz_u32
1394 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u32(uint32x2_t a)1395 uint32x2_t test_vclz_u32(uint32x2_t a) {
1396 return vclz_u32(a);
1397 }
1398
1399 // CHECK: test_vclzq_s8
1400 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s8(int8x16_t a)1401 int8x16_t test_vclzq_s8(int8x16_t a) {
1402 return vclzq_s8(a);
1403 }
1404
1405 // CHECK: test_vclzq_s16
1406 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s16(int16x8_t a)1407 int16x8_t test_vclzq_s16(int16x8_t a) {
1408 return vclzq_s16(a);
1409 }
1410
1411 // CHECK: test_vclzq_s32
1412 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s32(int32x4_t a)1413 int32x4_t test_vclzq_s32(int32x4_t a) {
1414 return vclzq_s32(a);
1415 }
1416
1417 // CHECK: test_vclzq_u8
1418 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u8(uint8x16_t a)1419 uint8x16_t test_vclzq_u8(uint8x16_t a) {
1420 return vclzq_u8(a);
1421 }
1422
1423 // CHECK: test_vclzq_u16
1424 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u16(uint16x8_t a)1425 uint16x8_t test_vclzq_u16(uint16x8_t a) {
1426 return vclzq_u16(a);
1427 }
1428
1429 // CHECK: test_vclzq_u32
1430 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u32(uint32x4_t a)1431 uint32x4_t test_vclzq_u32(uint32x4_t a) {
1432 return vclzq_u32(a);
1433 }
1434
1435
1436 // CHECK: test_vcnt_u8
1437 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_u8(uint8x8_t a)1438 uint8x8_t test_vcnt_u8(uint8x8_t a) {
1439 return vcnt_u8(a);
1440 }
1441
1442 // CHECK: test_vcnt_s8
1443 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_s8(int8x8_t a)1444 int8x8_t test_vcnt_s8(int8x8_t a) {
1445 return vcnt_s8(a);
1446 }
1447
1448 // CHECK: test_vcnt_p8
1449 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_p8(poly8x8_t a)1450 poly8x8_t test_vcnt_p8(poly8x8_t a) {
1451 return vcnt_p8(a);
1452 }
1453
1454 // CHECK: test_vcntq_u8
1455 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_u8(uint8x16_t a)1456 uint8x16_t test_vcntq_u8(uint8x16_t a) {
1457 return vcntq_u8(a);
1458 }
1459
1460 // CHECK: test_vcntq_s8
1461 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_s8(int8x16_t a)1462 int8x16_t test_vcntq_s8(int8x16_t a) {
1463 return vcntq_s8(a);
1464 }
1465
1466 // CHECK: test_vcntq_p8
1467 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_p8(poly8x16_t a)1468 poly8x16_t test_vcntq_p8(poly8x16_t a) {
1469 return vcntq_p8(a);
1470 }
1471
1472
1473 // CHECK: test_vcombine_s8
test_vcombine_s8(int8x8_t a,int8x8_t b)1474 int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) {
1475 return vcombine_s8(a, b);
1476 }
1477
1478 // CHECK: test_vcombine_s16
test_vcombine_s16(int16x4_t a,int16x4_t b)1479 int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) {
1480 return vcombine_s16(a, b);
1481 }
1482
1483 // CHECK: test_vcombine_s32
test_vcombine_s32(int32x2_t a,int32x2_t b)1484 int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) {
1485 return vcombine_s32(a, b);
1486 }
1487
1488 // CHECK: test_vcombine_s64
test_vcombine_s64(int64x1_t a,int64x1_t b)1489 int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) {
1490 return vcombine_s64(a, b);
1491 }
1492
1493 // CHECK: test_vcombine_f16
test_vcombine_f16(float16x4_t a,float16x4_t b)1494 float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) {
1495 return vcombine_f16(a, b);
1496 }
1497
1498 // CHECK: test_vcombine_f32
test_vcombine_f32(float32x2_t a,float32x2_t b)1499 float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) {
1500 return vcombine_f32(a, b);
1501 }
1502
1503 // CHECK: test_vcombine_u8
test_vcombine_u8(uint8x8_t a,uint8x8_t b)1504 uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) {
1505 return vcombine_u8(a, b);
1506 }
1507
1508 // CHECK: test_vcombine_u16
test_vcombine_u16(uint16x4_t a,uint16x4_t b)1509 uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) {
1510 return vcombine_u16(a, b);
1511 }
1512
1513 // CHECK: test_vcombine_u32
test_vcombine_u32(uint32x2_t a,uint32x2_t b)1514 uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) {
1515 return vcombine_u32(a, b);
1516 }
1517
1518 // CHECK: test_vcombine_u64
test_vcombine_u64(uint64x1_t a,uint64x1_t b)1519 uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) {
1520 return vcombine_u64(a, b);
1521 }
1522
1523 // CHECK: test_vcombine_p8
test_vcombine_p8(poly8x8_t a,poly8x8_t b)1524 poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) {
1525 return vcombine_p8(a, b);
1526 }
1527
1528 // CHECK: test_vcombine_p16
test_vcombine_p16(poly16x4_t a,poly16x4_t b)1529 poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) {
1530 return vcombine_p16(a, b);
1531 }
1532
1533
1534 // CHECK: test_vcreate_s8
test_vcreate_s8(uint64_t a)1535 int8x8_t test_vcreate_s8(uint64_t a) {
1536 return vcreate_s8(a);
1537 }
1538
1539 // CHECK: test_vcreate_s16
test_vcreate_s16(uint64_t a)1540 int16x4_t test_vcreate_s16(uint64_t a) {
1541 return vcreate_s16(a);
1542 }
1543
1544 // CHECK: test_vcreate_s32
test_vcreate_s32(uint64_t a)1545 int32x2_t test_vcreate_s32(uint64_t a) {
1546 return vcreate_s32(a);
1547 }
1548
1549 // CHECK: test_vcreate_f16
test_vcreate_f16(uint64_t a)1550 float16x4_t test_vcreate_f16(uint64_t a) {
1551 return vcreate_f16(a);
1552 }
1553
1554 // CHECK: test_vcreate_f32
test_vcreate_f32(uint64_t a)1555 float32x2_t test_vcreate_f32(uint64_t a) {
1556 return vcreate_f32(a);
1557 }
1558
1559 // CHECK: test_vcreate_u8
test_vcreate_u8(uint64_t a)1560 uint8x8_t test_vcreate_u8(uint64_t a) {
1561 return vcreate_u8(a);
1562 }
1563
1564 // CHECK: test_vcreate_u16
test_vcreate_u16(uint64_t a)1565 uint16x4_t test_vcreate_u16(uint64_t a) {
1566 return vcreate_u16(a);
1567 }
1568
1569 // CHECK: test_vcreate_u32
test_vcreate_u32(uint64_t a)1570 uint32x2_t test_vcreate_u32(uint64_t a) {
1571 return vcreate_u32(a);
1572 }
1573
1574 // CHECK: test_vcreate_u64
test_vcreate_u64(uint64_t a)1575 uint64x1_t test_vcreate_u64(uint64_t a) {
1576 return vcreate_u64(a);
1577 }
1578
1579 // CHECK: test_vcreate_p8
test_vcreate_p8(uint64_t a)1580 poly8x8_t test_vcreate_p8(uint64_t a) {
1581 return vcreate_p8(a);
1582 }
1583
1584 // CHECK: test_vcreate_p16
test_vcreate_p16(uint64_t a)1585 poly16x4_t test_vcreate_p16(uint64_t a) {
1586 return vcreate_p16(a);
1587 }
1588
1589 // CHECK: test_vcreate_s64
test_vcreate_s64(uint64_t a)1590 int64x1_t test_vcreate_s64(uint64_t a) {
1591 return vcreate_s64(a);
1592 }
1593
1594
1595 // CHECK: test_vcvt_f16_f32
1596 // CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}}
test_vcvt_f16_f32(float32x4_t a)1597 float16x4_t test_vcvt_f16_f32(float32x4_t a) {
1598 return vcvt_f16_f32(a);
1599 }
1600
1601
1602 // CHECK: test_vcvt_f32_s32
1603 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_s32(int32x2_t a)1604 float32x2_t test_vcvt_f32_s32(int32x2_t a) {
1605 return vcvt_f32_s32(a);
1606 }
1607
1608 // CHECK: test_vcvt_f32_u32
1609 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_u32(uint32x2_t a)1610 float32x2_t test_vcvt_f32_u32(uint32x2_t a) {
1611 return vcvt_f32_u32(a);
1612 }
1613
1614 // CHECK: test_vcvtq_f32_s32
1615 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_s32(int32x4_t a)1616 float32x4_t test_vcvtq_f32_s32(int32x4_t a) {
1617 return vcvtq_f32_s32(a);
1618 }
1619
1620 // CHECK: test_vcvtq_f32_u32
1621 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_u32(uint32x4_t a)1622 float32x4_t test_vcvtq_f32_u32(uint32x4_t a) {
1623 return vcvtq_f32_u32(a);
1624 }
1625
1626
1627 // CHECK: test_vcvt_f32_f16
1628 // CHECK: vcvt.f32.f16
test_vcvt_f32_f16(float16x4_t a)1629 float32x4_t test_vcvt_f32_f16(float16x4_t a) {
1630 return vcvt_f32_f16(a);
1631 }
1632
1633
1634 // CHECK: test_vcvt_n_f32_s32
1635 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_s32(int32x2_t a)1636 float32x2_t test_vcvt_n_f32_s32(int32x2_t a) {
1637 return vcvt_n_f32_s32(a, 1);
1638 }
1639
1640 // CHECK: test_vcvt_n_f32_u32
1641 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_u32(uint32x2_t a)1642 float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) {
1643 return vcvt_n_f32_u32(a, 1);
1644 }
1645
1646 // CHECK: test_vcvtq_n_f32_s32
1647 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_s32(int32x4_t a)1648 float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) {
1649 return vcvtq_n_f32_s32(a, 3);
1650 }
1651
1652 // CHECK: test_vcvtq_n_f32_u32
1653 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_u32(uint32x4_t a)1654 float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) {
1655 return vcvtq_n_f32_u32(a, 3);
1656 }
1657
1658
1659 // CHECK: test_vcvt_n_s32_f32
1660 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_s32_f32(float32x2_t a)1661 int32x2_t test_vcvt_n_s32_f32(float32x2_t a) {
1662 return vcvt_n_s32_f32(a, 1);
1663 }
1664
1665 // CHECK: test_vcvtq_n_s32_f32
1666 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_s32_f32(float32x4_t a)1667 int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) {
1668 return vcvtq_n_s32_f32(a, 3);
1669 }
1670
1671
1672 // CHECK: test_vcvt_n_u32_f32
1673 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_u32_f32(float32x2_t a)1674 uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) {
1675 return vcvt_n_u32_f32(a, 1);
1676 }
1677
1678 // CHECK: test_vcvtq_n_u32_f32
1679 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_u32_f32(float32x4_t a)1680 uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) {
1681 return vcvtq_n_u32_f32(a, 3);
1682 }
1683
1684
1685 // CHECK: test_vcvt_s32_f32
1686 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_s32_f32(float32x2_t a)1687 int32x2_t test_vcvt_s32_f32(float32x2_t a) {
1688 return vcvt_s32_f32(a);
1689 }
1690
1691 // CHECK: test_vcvtq_s32_f32
1692 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_s32_f32(float32x4_t a)1693 int32x4_t test_vcvtq_s32_f32(float32x4_t a) {
1694 return vcvtq_s32_f32(a);
1695 }
1696
1697
1698 // CHECK: test_vcvt_u32_f32
1699 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_u32_f32(float32x2_t a)1700 uint32x2_t test_vcvt_u32_f32(float32x2_t a) {
1701 return vcvt_u32_f32(a);
1702 }
1703
1704 // CHECK: test_vcvtq_u32_f32
1705 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_u32_f32(float32x4_t a)1706 uint32x4_t test_vcvtq_u32_f32(float32x4_t a) {
1707 return vcvtq_u32_f32(a);
1708 }
1709
1710
1711 // CHECK: test_vdup_lane_u8
1712 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u8(uint8x8_t a)1713 uint8x8_t test_vdup_lane_u8(uint8x8_t a) {
1714 return vdup_lane_u8(a, 7);
1715 }
1716
1717 // CHECK: test_vdup_lane_u16
1718 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u16(uint16x4_t a)1719 uint16x4_t test_vdup_lane_u16(uint16x4_t a) {
1720 return vdup_lane_u16(a, 3);
1721 }
1722
1723 // CHECK: test_vdup_lane_u32
1724 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u32(uint32x2_t a)1725 uint32x2_t test_vdup_lane_u32(uint32x2_t a) {
1726 return vdup_lane_u32(a, 1);
1727 }
1728
1729 // CHECK: test_vdup_lane_s8
1730 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s8(int8x8_t a)1731 int8x8_t test_vdup_lane_s8(int8x8_t a) {
1732 return vdup_lane_s8(a, 7);
1733 }
1734
1735 // CHECK: test_vdup_lane_s16
1736 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s16(int16x4_t a)1737 int16x4_t test_vdup_lane_s16(int16x4_t a) {
1738 return vdup_lane_s16(a, 3);
1739 }
1740
1741 // CHECK: test_vdup_lane_s32
1742 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s32(int32x2_t a)1743 int32x2_t test_vdup_lane_s32(int32x2_t a) {
1744 return vdup_lane_s32(a, 1);
1745 }
1746
1747 // CHECK: test_vdup_lane_p8
1748 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p8(poly8x8_t a)1749 poly8x8_t test_vdup_lane_p8(poly8x8_t a) {
1750 return vdup_lane_p8(a, 7);
1751 }
1752
1753 // CHECK: test_vdup_lane_p16
1754 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p16(poly16x4_t a)1755 poly16x4_t test_vdup_lane_p16(poly16x4_t a) {
1756 return vdup_lane_p16(a, 3);
1757 }
1758
1759 // CHECK: test_vdup_lane_f32
1760 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_f32(float32x2_t a)1761 float32x2_t test_vdup_lane_f32(float32x2_t a) {
1762 return vdup_lane_f32(a, 1);
1763 }
1764
1765 // CHECK: test_vdupq_lane_u8
1766 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u8(uint8x8_t a)1767 uint8x16_t test_vdupq_lane_u8(uint8x8_t a) {
1768 return vdupq_lane_u8(a, 7);
1769 }
1770
1771 // CHECK: test_vdupq_lane_u16
1772 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u16(uint16x4_t a)1773 uint16x8_t test_vdupq_lane_u16(uint16x4_t a) {
1774 return vdupq_lane_u16(a, 3);
1775 }
1776
1777 // CHECK: test_vdupq_lane_u32
1778 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u32(uint32x2_t a)1779 uint32x4_t test_vdupq_lane_u32(uint32x2_t a) {
1780 return vdupq_lane_u32(a, 1);
1781 }
1782
1783 // CHECK: test_vdupq_lane_s8
1784 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s8(int8x8_t a)1785 int8x16_t test_vdupq_lane_s8(int8x8_t a) {
1786 return vdupq_lane_s8(a, 7);
1787 }
1788
1789 // CHECK: test_vdupq_lane_s16
1790 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s16(int16x4_t a)1791 int16x8_t test_vdupq_lane_s16(int16x4_t a) {
1792 return vdupq_lane_s16(a, 3);
1793 }
1794
1795 // CHECK: test_vdupq_lane_s32
1796 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s32(int32x2_t a)1797 int32x4_t test_vdupq_lane_s32(int32x2_t a) {
1798 return vdupq_lane_s32(a, 1);
1799 }
1800
1801 // CHECK: test_vdupq_lane_p8
1802 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p8(poly8x8_t a)1803 poly8x16_t test_vdupq_lane_p8(poly8x8_t a) {
1804 return vdupq_lane_p8(a, 7);
1805 }
1806
1807 // CHECK: test_vdupq_lane_p16
1808 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p16(poly16x4_t a)1809 poly16x8_t test_vdupq_lane_p16(poly16x4_t a) {
1810 return vdupq_lane_p16(a, 3);
1811 }
1812
1813 // CHECK: test_vdupq_lane_f32
1814 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_f32(float32x2_t a)1815 float32x4_t test_vdupq_lane_f32(float32x2_t a) {
1816 return vdupq_lane_f32(a, 1);
1817 }
1818
1819 // CHECK: test_vdup_lane_s64
test_vdup_lane_s64(int64x1_t a)1820 int64x1_t test_vdup_lane_s64(int64x1_t a) {
1821 return vdup_lane_s64(a, 0);
1822 }
1823
1824 // CHECK: test_vdup_lane_u64
test_vdup_lane_u64(uint64x1_t a)1825 uint64x1_t test_vdup_lane_u64(uint64x1_t a) {
1826 return vdup_lane_u64(a, 0);
1827 }
1828
1829 // CHECK: test_vdupq_lane_s64
1830 // CHECK: {{vmov|vdup}}
test_vdupq_lane_s64(int64x1_t a)1831 int64x2_t test_vdupq_lane_s64(int64x1_t a) {
1832 return vdupq_lane_s64(a, 0);
1833 }
1834
1835 // CHECK: test_vdupq_lane_u64
1836 // CHECK: {{vmov|vdup}}
test_vdupq_lane_u64(uint64x1_t a)1837 uint64x2_t test_vdupq_lane_u64(uint64x1_t a) {
1838 return vdupq_lane_u64(a, 0);
1839 }
1840
1841
1842 // CHECK: test_vdup_n_u8
1843 // CHECK: vmov
test_vdup_n_u8(uint8_t a)1844 uint8x8_t test_vdup_n_u8(uint8_t a) {
1845 return vdup_n_u8(a);
1846 }
1847
1848 // CHECK: test_vdup_n_u16
1849 // CHECK: vmov
test_vdup_n_u16(uint16_t a)1850 uint16x4_t test_vdup_n_u16(uint16_t a) {
1851 return vdup_n_u16(a);
1852 }
1853
1854 // CHECK: test_vdup_n_u32
1855 // CHECK: vmov
test_vdup_n_u32(uint32_t a)1856 uint32x2_t test_vdup_n_u32(uint32_t a) {
1857 return vdup_n_u32(a);
1858 }
1859
1860 // CHECK: test_vdup_n_s8
1861 // CHECK: vmov
test_vdup_n_s8(int8_t a)1862 int8x8_t test_vdup_n_s8(int8_t a) {
1863 return vdup_n_s8(a);
1864 }
1865
1866 // CHECK: test_vdup_n_s16
1867 // CHECK: vmov
test_vdup_n_s16(int16_t a)1868 int16x4_t test_vdup_n_s16(int16_t a) {
1869 return vdup_n_s16(a);
1870 }
1871
1872 // CHECK: test_vdup_n_s32
1873 // CHECK: vmov
test_vdup_n_s32(int32_t a)1874 int32x2_t test_vdup_n_s32(int32_t a) {
1875 return vdup_n_s32(a);
1876 }
1877
1878 // CHECK: test_vdup_n_p8
1879 // CHECK: vmov
test_vdup_n_p8(poly8_t a)1880 poly8x8_t test_vdup_n_p8(poly8_t a) {
1881 return vdup_n_p8(a);
1882 }
1883
1884 // CHECK: test_vdup_n_p16
1885 // CHECK: vmov
test_vdup_n_p16(poly16_t a)1886 poly16x4_t test_vdup_n_p16(poly16_t a) {
1887 return vdup_n_p16(a);
1888 }
1889
1890 // CHECK: test_vdup_n_f32
1891 // CHECK: vmov
test_vdup_n_f32(float32_t a)1892 float32x2_t test_vdup_n_f32(float32_t a) {
1893 return vdup_n_f32(a);
1894 }
1895
1896 // CHECK: test_vdupq_n_u8
1897 // CHECK: vmov
test_vdupq_n_u8(uint8_t a)1898 uint8x16_t test_vdupq_n_u8(uint8_t a) {
1899 return vdupq_n_u8(a);
1900 }
1901
1902 // CHECK: test_vdupq_n_u16
1903 // CHECK: vmov
test_vdupq_n_u16(uint16_t a)1904 uint16x8_t test_vdupq_n_u16(uint16_t a) {
1905 return vdupq_n_u16(a);
1906 }
1907
1908 // CHECK: test_vdupq_n_u32
1909 // CHECK: vmov
test_vdupq_n_u32(uint32_t a)1910 uint32x4_t test_vdupq_n_u32(uint32_t a) {
1911 return vdupq_n_u32(a);
1912 }
1913
1914 // CHECK: test_vdupq_n_s8
1915 // CHECK: vmov
test_vdupq_n_s8(int8_t a)1916 int8x16_t test_vdupq_n_s8(int8_t a) {
1917 return vdupq_n_s8(a);
1918 }
1919
1920 // CHECK: test_vdupq_n_s16
1921 // CHECK: vmov
test_vdupq_n_s16(int16_t a)1922 int16x8_t test_vdupq_n_s16(int16_t a) {
1923 return vdupq_n_s16(a);
1924 }
1925
1926 // CHECK: test_vdupq_n_s32
1927 // CHECK: vmov
test_vdupq_n_s32(int32_t a)1928 int32x4_t test_vdupq_n_s32(int32_t a) {
1929 return vdupq_n_s32(a);
1930 }
1931
1932 // CHECK: test_vdupq_n_p8
1933 // CHECK: vmov
test_vdupq_n_p8(poly8_t a)1934 poly8x16_t test_vdupq_n_p8(poly8_t a) {
1935 return vdupq_n_p8(a);
1936 }
1937
1938 // CHECK: test_vdupq_n_p16
1939 // CHECK: vmov
test_vdupq_n_p16(poly16_t a)1940 poly16x8_t test_vdupq_n_p16(poly16_t a) {
1941 return vdupq_n_p16(a);
1942 }
1943
1944 // CHECK: test_vdupq_n_f32
1945 // CHECK: vmov
test_vdupq_n_f32(float32_t a)1946 float32x4_t test_vdupq_n_f32(float32_t a) {
1947 return vdupq_n_f32(a);
1948 }
1949
1950 // CHECK: test_vdup_n_s64
1951 // CHECK: vmov
test_vdup_n_s64(int64_t a)1952 int64x1_t test_vdup_n_s64(int64_t a) {
1953 return vdup_n_s64(a);
1954 }
1955
1956 // CHECK: test_vdup_n_u64
1957 // CHECK: vmov
test_vdup_n_u64(uint64_t a)1958 uint64x1_t test_vdup_n_u64(uint64_t a) {
1959 return vdup_n_u64(a);
1960 }
1961
1962 // CHECK: test_vdupq_n_s64
1963 // CHECK: vmov
test_vdupq_n_s64(int64_t a)1964 int64x2_t test_vdupq_n_s64(int64_t a) {
1965 return vdupq_n_s64(a);
1966 }
1967
1968 // CHECK: test_vdupq_n_u64
1969 // CHECK: vmov
test_vdupq_n_u64(uint64_t a)1970 uint64x2_t test_vdupq_n_u64(uint64_t a) {
1971 return vdupq_n_u64(a);
1972 }
1973
1974
1975 // CHECK: test_veor_s8
1976 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s8(int8x8_t a,int8x8_t b)1977 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
1978 return veor_s8(a, b);
1979 }
1980
1981 // CHECK: test_veor_s16
1982 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s16(int16x4_t a,int16x4_t b)1983 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
1984 return veor_s16(a, b);
1985 }
1986
1987 // CHECK: test_veor_s32
1988 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s32(int32x2_t a,int32x2_t b)1989 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
1990 return veor_s32(a, b);
1991 }
1992
1993 // CHECK: test_veor_s64
1994 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s64(int64x1_t a,int64x1_t b)1995 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
1996 return veor_s64(a, b);
1997 }
1998
1999 // CHECK: test_veor_u8
2000 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u8(uint8x8_t a,uint8x8_t b)2001 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
2002 return veor_u8(a, b);
2003 }
2004
2005 // CHECK: test_veor_u16
2006 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u16(uint16x4_t a,uint16x4_t b)2007 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
2008 return veor_u16(a, b);
2009 }
2010
2011 // CHECK: test_veor_u32
2012 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u32(uint32x2_t a,uint32x2_t b)2013 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
2014 return veor_u32(a, b);
2015 }
2016
2017 // CHECK: test_veor_u64
2018 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u64(uint64x1_t a,uint64x1_t b)2019 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
2020 return veor_u64(a, b);
2021 }
2022
2023 // CHECK: test_veorq_s8
2024 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s8(int8x16_t a,int8x16_t b)2025 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
2026 return veorq_s8(a, b);
2027 }
2028
2029 // CHECK: test_veorq_s16
2030 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s16(int16x8_t a,int16x8_t b)2031 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
2032 return veorq_s16(a, b);
2033 }
2034
2035 // CHECK: test_veorq_s32
2036 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s32(int32x4_t a,int32x4_t b)2037 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
2038 return veorq_s32(a, b);
2039 }
2040
2041 // CHECK: test_veorq_s64
2042 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s64(int64x2_t a,int64x2_t b)2043 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
2044 return veorq_s64(a, b);
2045 }
2046
2047 // CHECK: test_veorq_u8
2048 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u8(uint8x16_t a,uint8x16_t b)2049 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
2050 return veorq_u8(a, b);
2051 }
2052
2053 // CHECK: test_veorq_u16
2054 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u16(uint16x8_t a,uint16x8_t b)2055 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
2056 return veorq_u16(a, b);
2057 }
2058
2059 // CHECK: test_veorq_u32
2060 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u32(uint32x4_t a,uint32x4_t b)2061 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
2062 return veorq_u32(a, b);
2063 }
2064
2065 // CHECK: test_veorq_u64
2066 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u64(uint64x2_t a,uint64x2_t b)2067 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
2068 return veorq_u64(a, b);
2069 }
2070
2071
2072 // CHECK: test_vext_s8
2073 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s8(int8x8_t a,int8x8_t b)2074 int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) {
2075 return vext_s8(a, b, 7);
2076 }
2077
2078 // CHECK: test_vext_u8
2079 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u8(uint8x8_t a,uint8x8_t b)2080 uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) {
2081 return vext_u8(a, b, 7);
2082 }
2083
2084 // CHECK: test_vext_p8
2085 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p8(poly8x8_t a,poly8x8_t b)2086 poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) {
2087 return vext_p8(a, b, 7);
2088 }
2089
2090 // CHECK: test_vext_s16
2091 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s16(int16x4_t a,int16x4_t b)2092 int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) {
2093 return vext_s16(a, b, 3);
2094 }
2095
2096 // CHECK: test_vext_u16
2097 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u16(uint16x4_t a,uint16x4_t b)2098 uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) {
2099 return vext_u16(a, b, 3);
2100 }
2101
2102 // CHECK: test_vext_p16
2103 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p16(poly16x4_t a,poly16x4_t b)2104 poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) {
2105 return vext_p16(a, b, 3);
2106 }
2107
2108 // CHECK: test_vext_s32
2109 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s32(int32x2_t a,int32x2_t b)2110 int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) {
2111 return vext_s32(a, b, 1);
2112 }
2113
2114 // CHECK: test_vext_u32
2115 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u32(uint32x2_t a,uint32x2_t b)2116 uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) {
2117 return vext_u32(a, b, 1);
2118 }
2119
2120 // CHECK: test_vext_s64
test_vext_s64(int64x1_t a,int64x1_t b)2121 int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) {
2122 return vext_s64(a, b, 0);
2123 }
2124
2125 // CHECK: test_vext_u64
test_vext_u64(uint64x1_t a,uint64x1_t b)2126 uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) {
2127 return vext_u64(a, b, 0);
2128 }
2129
2130 // CHECK: test_vext_f32
2131 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_f32(float32x2_t a,float32x2_t b)2132 float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) {
2133 return vext_f32(a, b, 1);
2134 }
2135
2136 // CHECK: test_vextq_s8
2137 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s8(int8x16_t a,int8x16_t b)2138 int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) {
2139 return vextq_s8(a, b, 15);
2140 }
2141
2142 // CHECK: test_vextq_u8
2143 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u8(uint8x16_t a,uint8x16_t b)2144 uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) {
2145 return vextq_u8(a, b, 15);
2146 }
2147
2148 // CHECK: test_vextq_p8
2149 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p8(poly8x16_t a,poly8x16_t b)2150 poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
2151 return vextq_p8(a, b, 15);
2152 }
2153
2154 // CHECK: test_vextq_s16
2155 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s16(int16x8_t a,int16x8_t b)2156 int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) {
2157 return vextq_s16(a, b, 7);
2158 }
2159
2160 // CHECK: test_vextq_u16
2161 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u16(uint16x8_t a,uint16x8_t b)2162 uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) {
2163 return vextq_u16(a, b, 7);
2164 }
2165
2166 // CHECK: test_vextq_p16
2167 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p16(poly16x8_t a,poly16x8_t b)2168 poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) {
2169 return vextq_p16(a, b, 7);
2170 }
2171
2172 // CHECK: test_vextq_s32
2173 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s32(int32x4_t a,int32x4_t b)2174 int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) {
2175 return vextq_s32(a, b, 3);
2176 }
2177
2178 // CHECK: test_vextq_u32
2179 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u32(uint32x4_t a,uint32x4_t b)2180 uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) {
2181 return vextq_u32(a, b, 3);
2182 }
2183
2184 // CHECK: test_vextq_s64
2185 // CHECK: {{vmov|vdup}}
test_vextq_s64(int64x2_t a,int64x2_t b)2186 int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) {
2187 return vextq_s64(a, b, 1);
2188 }
2189
2190 // CHECK: test_vextq_u64
2191 // CHECK: {{vmov|vdup}}
test_vextq_u64(uint64x2_t a,uint64x2_t b)2192 uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) {
2193 return vextq_u64(a, b, 1);
2194 }
2195
2196 // CHECK: test_vextq_f32
2197 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_f32(float32x4_t a,float32x4_t b)2198 float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) {
2199 return vextq_f32(a, b, 3);
2200 }
2201
2202
2203 // CHECK: test_vfma_f32
2204 // CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vfma_f32(float32x2_t a,float32x2_t b,float32x2_t c)2205 float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
2206 return vfma_f32(a, b, c);
2207 }
2208
2209 // CHECK: test_vfmaq_f32
2210 // CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vfmaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)2211 float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
2212 return vfmaq_f32(a, b, c);
2213 }
2214
2215
2216 // CHECK: test_vget_high_s8
test_vget_high_s8(int8x16_t a)2217 int8x8_t test_vget_high_s8(int8x16_t a) {
2218 return vget_high_s8(a);
2219 }
2220
2221 // CHECK: test_vget_high_s16
test_vget_high_s16(int16x8_t a)2222 int16x4_t test_vget_high_s16(int16x8_t a) {
2223 return vget_high_s16(a);
2224 }
2225
2226 // CHECK: test_vget_high_s32
test_vget_high_s32(int32x4_t a)2227 int32x2_t test_vget_high_s32(int32x4_t a) {
2228 return vget_high_s32(a);
2229 }
2230
2231 // CHECK: test_vget_high_s64
test_vget_high_s64(int64x2_t a)2232 int64x1_t test_vget_high_s64(int64x2_t a) {
2233 return vget_high_s64(a);
2234 }
2235
2236 // CHECK: test_vget_high_f16
test_vget_high_f16(float16x8_t a)2237 float16x4_t test_vget_high_f16(float16x8_t a) {
2238 return vget_high_f16(a);
2239 }
2240
2241 // CHECK: test_vget_high_f32
test_vget_high_f32(float32x4_t a)2242 float32x2_t test_vget_high_f32(float32x4_t a) {
2243 return vget_high_f32(a);
2244 }
2245
2246 // CHECK: test_vget_high_u8
test_vget_high_u8(uint8x16_t a)2247 uint8x8_t test_vget_high_u8(uint8x16_t a) {
2248 return vget_high_u8(a);
2249 }
2250
2251 // CHECK: test_vget_high_u16
test_vget_high_u16(uint16x8_t a)2252 uint16x4_t test_vget_high_u16(uint16x8_t a) {
2253 return vget_high_u16(a);
2254 }
2255
2256 // CHECK: test_vget_high_u32
test_vget_high_u32(uint32x4_t a)2257 uint32x2_t test_vget_high_u32(uint32x4_t a) {
2258 return vget_high_u32(a);
2259 }
2260
2261 // CHECK: test_vget_high_u64
test_vget_high_u64(uint64x2_t a)2262 uint64x1_t test_vget_high_u64(uint64x2_t a) {
2263 return vget_high_u64(a);
2264 }
2265
2266 // CHECK: test_vget_high_p8
test_vget_high_p8(poly8x16_t a)2267 poly8x8_t test_vget_high_p8(poly8x16_t a) {
2268 return vget_high_p8(a);
2269 }
2270
2271 // CHECK: test_vget_high_p16
test_vget_high_p16(poly16x8_t a)2272 poly16x4_t test_vget_high_p16(poly16x8_t a) {
2273 return vget_high_p16(a);
2274 }
2275
2276
2277 // CHECK: test_vget_lane_u8
2278 // CHECK: vmov
test_vget_lane_u8(uint8x8_t a)2279 uint8_t test_vget_lane_u8(uint8x8_t a) {
2280 return vget_lane_u8(a, 7);
2281 }
2282
2283 // CHECK: test_vget_lane_u16
2284 // CHECK: vmov
test_vget_lane_u16(uint16x4_t a)2285 uint16_t test_vget_lane_u16(uint16x4_t a) {
2286 return vget_lane_u16(a, 3);
2287 }
2288
2289 // CHECK: test_vget_lane_u32
2290 // CHECK: vmov
test_vget_lane_u32(uint32x2_t a)2291 uint32_t test_vget_lane_u32(uint32x2_t a) {
2292 return vget_lane_u32(a, 1);
2293 }
2294
2295 // CHECK: test_vget_lane_s8
2296 // CHECK: vmov
test_vget_lane_s8(int8x8_t a)2297 int8_t test_vget_lane_s8(int8x8_t a) {
2298 return vget_lane_s8(a, 7);
2299 }
2300
2301 // CHECK: test_vget_lane_s16
2302 // CHECK: vmov
test_vget_lane_s16(int16x4_t a)2303 int16_t test_vget_lane_s16(int16x4_t a) {
2304 return vget_lane_s16(a, 3);
2305 }
2306
2307 // CHECK: test_vget_lane_s32
2308 // CHECK: vmov
test_vget_lane_s32(int32x2_t a)2309 int32_t test_vget_lane_s32(int32x2_t a) {
2310 return vget_lane_s32(a, 1);
2311 }
2312
2313 // CHECK: test_vget_lane_p8
2314 // CHECK: vmov
test_vget_lane_p8(poly8x8_t a)2315 poly8_t test_vget_lane_p8(poly8x8_t a) {
2316 return vget_lane_p8(a, 7);
2317 }
2318
2319 // CHECK: test_vget_lane_p16
2320 // CHECK: vmov
test_vget_lane_p16(poly16x4_t a)2321 poly16_t test_vget_lane_p16(poly16x4_t a) {
2322 return vget_lane_p16(a, 3);
2323 }
2324
2325 // CHECK: test_vget_lane_f32
2326 // CHECK: vmov
test_vget_lane_f32(float32x2_t a)2327 float32_t test_vget_lane_f32(float32x2_t a) {
2328 return vget_lane_f32(a, 1);
2329 }
2330
2331 // CHECK: test_vgetq_lane_u8
2332 // CHECK: vmov
test_vgetq_lane_u8(uint8x16_t a)2333 uint8_t test_vgetq_lane_u8(uint8x16_t a) {
2334 return vgetq_lane_u8(a, 15);
2335 }
2336
2337 // CHECK: test_vgetq_lane_u16
2338 // CHECK: vmov
test_vgetq_lane_u16(uint16x8_t a)2339 uint16_t test_vgetq_lane_u16(uint16x8_t a) {
2340 return vgetq_lane_u16(a, 7);
2341 }
2342
2343 // CHECK: test_vgetq_lane_u32
2344 // CHECK: vmov
test_vgetq_lane_u32(uint32x4_t a)2345 uint32_t test_vgetq_lane_u32(uint32x4_t a) {
2346 return vgetq_lane_u32(a, 3);
2347 }
2348
2349 // CHECK: test_vgetq_lane_s8
2350 // CHECK: vmov
test_vgetq_lane_s8(int8x16_t a)2351 int8_t test_vgetq_lane_s8(int8x16_t a) {
2352 return vgetq_lane_s8(a, 15);
2353 }
2354
2355 // CHECK: test_vgetq_lane_s16
2356 // CHECK: vmov
test_vgetq_lane_s16(int16x8_t a)2357 int16_t test_vgetq_lane_s16(int16x8_t a) {
2358 return vgetq_lane_s16(a, 7);
2359 }
2360
2361 // CHECK: test_vgetq_lane_s32
2362 // CHECK: vmov
test_vgetq_lane_s32(int32x4_t a)2363 int32_t test_vgetq_lane_s32(int32x4_t a) {
2364 return vgetq_lane_s32(a, 3);
2365 }
2366
2367 // CHECK: test_vgetq_lane_p8
2368 // CHECK: vmov
test_vgetq_lane_p8(poly8x16_t a)2369 poly8_t test_vgetq_lane_p8(poly8x16_t a) {
2370 return vgetq_lane_p8(a, 15);
2371 }
2372
2373 // CHECK: test_vgetq_lane_p16
2374 // CHECK: vmov
test_vgetq_lane_p16(poly16x8_t a)2375 poly16_t test_vgetq_lane_p16(poly16x8_t a) {
2376 return vgetq_lane_p16(a, 7);
2377 }
2378
2379 // CHECK: test_vgetq_lane_f32
2380 // CHECK: vmov
test_vgetq_lane_f32(float32x4_t a)2381 float32_t test_vgetq_lane_f32(float32x4_t a) {
2382 return vgetq_lane_f32(a, 3);
2383 }
2384
2385 // CHECK: test_vget_lane_s64
2386 // CHECK: vmov
test_vget_lane_s64(int64x1_t a)2387 int64_t test_vget_lane_s64(int64x1_t a) {
2388 return vget_lane_s64(a, 0);
2389 }
2390
2391 // CHECK: test_vget_lane_u64
2392 // CHECK: vmov
test_vget_lane_u64(uint64x1_t a)2393 uint64_t test_vget_lane_u64(uint64x1_t a) {
2394 return vget_lane_u64(a, 0);
2395 }
2396
2397 // CHECK: test_vgetq_lane_s64
2398 // CHECK: vmov
test_vgetq_lane_s64(int64x2_t a)2399 int64_t test_vgetq_lane_s64(int64x2_t a) {
2400 return vgetq_lane_s64(a, 1);
2401 }
2402
2403 // CHECK: test_vgetq_lane_u64
2404 // CHECK: vmov
test_vgetq_lane_u64(uint64x2_t a)2405 uint64_t test_vgetq_lane_u64(uint64x2_t a) {
2406 return vgetq_lane_u64(a, 1);
2407 }
2408
2409
2410 // CHECK: test_vget_low_s8
test_vget_low_s8(int8x16_t a)2411 int8x8_t test_vget_low_s8(int8x16_t a) {
2412 return vget_low_s8(a);
2413 }
2414
2415 // CHECK: test_vget_low_s16
test_vget_low_s16(int16x8_t a)2416 int16x4_t test_vget_low_s16(int16x8_t a) {
2417 return vget_low_s16(a);
2418 }
2419
2420 // CHECK: test_vget_low_s32
test_vget_low_s32(int32x4_t a)2421 int32x2_t test_vget_low_s32(int32x4_t a) {
2422 return vget_low_s32(a);
2423 }
2424
2425 // CHECK: test_vget_low_s64
test_vget_low_s64(int64x2_t a)2426 int64x1_t test_vget_low_s64(int64x2_t a) {
2427 return vget_low_s64(a);
2428 }
2429
2430 // CHECK: test_vget_low_f16
test_vget_low_f16(float16x8_t a)2431 float16x4_t test_vget_low_f16(float16x8_t a) {
2432 return vget_low_f16(a);
2433 }
2434
2435 // CHECK: test_vget_low_f32
test_vget_low_f32(float32x4_t a)2436 float32x2_t test_vget_low_f32(float32x4_t a) {
2437 return vget_low_f32(a);
2438 }
2439
2440 // CHECK: test_vget_low_u8
test_vget_low_u8(uint8x16_t a)2441 uint8x8_t test_vget_low_u8(uint8x16_t a) {
2442 return vget_low_u8(a);
2443 }
2444
2445 // CHECK: test_vget_low_u16
test_vget_low_u16(uint16x8_t a)2446 uint16x4_t test_vget_low_u16(uint16x8_t a) {
2447 return vget_low_u16(a);
2448 }
2449
2450 // CHECK: test_vget_low_u32
test_vget_low_u32(uint32x4_t a)2451 uint32x2_t test_vget_low_u32(uint32x4_t a) {
2452 return vget_low_u32(a);
2453 }
2454
2455 // CHECK: test_vget_low_u64
test_vget_low_u64(uint64x2_t a)2456 uint64x1_t test_vget_low_u64(uint64x2_t a) {
2457 return vget_low_u64(a);
2458 }
2459
2460 // CHECK: test_vget_low_p8
test_vget_low_p8(poly8x16_t a)2461 poly8x8_t test_vget_low_p8(poly8x16_t a) {
2462 return vget_low_p8(a);
2463 }
2464
2465 // CHECK: test_vget_low_p16
test_vget_low_p16(poly16x8_t a)2466 poly16x4_t test_vget_low_p16(poly16x8_t a) {
2467 return vget_low_p16(a);
2468 }
2469
2470
2471 // CHECK: test_vhadd_s8
2472 // CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s8(int8x8_t a,int8x8_t b)2473 int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) {
2474 return vhadd_s8(a, b);
2475 }
2476
2477 // CHECK: test_vhadd_s16
2478 // CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s16(int16x4_t a,int16x4_t b)2479 int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) {
2480 return vhadd_s16(a, b);
2481 }
2482
2483 // CHECK: test_vhadd_s32
2484 // CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s32(int32x2_t a,int32x2_t b)2485 int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) {
2486 return vhadd_s32(a, b);
2487 }
2488
2489 // CHECK: test_vhadd_u8
2490 // CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u8(uint8x8_t a,uint8x8_t b)2491 uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) {
2492 return vhadd_u8(a, b);
2493 }
2494
2495 // CHECK: test_vhadd_u16
2496 // CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u16(uint16x4_t a,uint16x4_t b)2497 uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) {
2498 return vhadd_u16(a, b);
2499 }
2500
2501 // CHECK: test_vhadd_u32
2502 // CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u32(uint32x2_t a,uint32x2_t b)2503 uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) {
2504 return vhadd_u32(a, b);
2505 }
2506
2507 // CHECK: test_vhaddq_s8
2508 // CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s8(int8x16_t a,int8x16_t b)2509 int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) {
2510 return vhaddq_s8(a, b);
2511 }
2512
2513 // CHECK: test_vhaddq_s16
2514 // CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s16(int16x8_t a,int16x8_t b)2515 int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) {
2516 return vhaddq_s16(a, b);
2517 }
2518
2519 // CHECK: test_vhaddq_s32
2520 // CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s32(int32x4_t a,int32x4_t b)2521 int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) {
2522 return vhaddq_s32(a, b);
2523 }
2524
2525 // CHECK: test_vhaddq_u8
2526 // CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u8(uint8x16_t a,uint8x16_t b)2527 uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) {
2528 return vhaddq_u8(a, b);
2529 }
2530
2531 // CHECK: test_vhaddq_u16
2532 // CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u16(uint16x8_t a,uint16x8_t b)2533 uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) {
2534 return vhaddq_u16(a, b);
2535 }
2536
2537 // CHECK: test_vhaddq_u32
2538 // CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u32(uint32x4_t a,uint32x4_t b)2539 uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) {
2540 return vhaddq_u32(a, b);
2541 }
2542
2543
2544 // CHECK: test_vhsub_s8
2545 // CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s8(int8x8_t a,int8x8_t b)2546 int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) {
2547 return vhsub_s8(a, b);
2548 }
2549
2550 // CHECK: test_vhsub_s16
2551 // CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s16(int16x4_t a,int16x4_t b)2552 int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) {
2553 return vhsub_s16(a, b);
2554 }
2555
2556 // CHECK: test_vhsub_s32
2557 // CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s32(int32x2_t a,int32x2_t b)2558 int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) {
2559 return vhsub_s32(a, b);
2560 }
2561
2562 // CHECK: test_vhsub_u8
2563 // CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u8(uint8x8_t a,uint8x8_t b)2564 uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) {
2565 return vhsub_u8(a, b);
2566 }
2567
2568 // CHECK: test_vhsub_u16
2569 // CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u16(uint16x4_t a,uint16x4_t b)2570 uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) {
2571 return vhsub_u16(a, b);
2572 }
2573
2574 // CHECK: test_vhsub_u32
2575 // CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u32(uint32x2_t a,uint32x2_t b)2576 uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) {
2577 return vhsub_u32(a, b);
2578 }
2579
2580 // CHECK: test_vhsubq_s8
2581 // CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s8(int8x16_t a,int8x16_t b)2582 int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) {
2583 return vhsubq_s8(a, b);
2584 }
2585
2586 // CHECK: test_vhsubq_s16
2587 // CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s16(int16x8_t a,int16x8_t b)2588 int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) {
2589 return vhsubq_s16(a, b);
2590 }
2591
2592 // CHECK: test_vhsubq_s32
2593 // CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s32(int32x4_t a,int32x4_t b)2594 int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) {
2595 return vhsubq_s32(a, b);
2596 }
2597
2598 // CHECK: test_vhsubq_u8
2599 // CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u8(uint8x16_t a,uint8x16_t b)2600 uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) {
2601 return vhsubq_u8(a, b);
2602 }
2603
2604 // CHECK: test_vhsubq_u16
2605 // CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u16(uint16x8_t a,uint16x8_t b)2606 uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) {
2607 return vhsubq_u16(a, b);
2608 }
2609
2610 // CHECK: test_vhsubq_u32
2611 // CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u32(uint32x4_t a,uint32x4_t b)2612 uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) {
2613 return vhsubq_u32(a, b);
2614 }
2615
2616
2617 // CHECK: test_vld1q_u8
2618 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u8(uint8_t const * a)2619 uint8x16_t test_vld1q_u8(uint8_t const * a) {
2620 return vld1q_u8(a);
2621 }
2622
2623 // CHECK: test_vld1q_u16
2624 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u16(uint16_t const * a)2625 uint16x8_t test_vld1q_u16(uint16_t const * a) {
2626 return vld1q_u16(a);
2627 }
2628
2629 // CHECK: test_vld1q_u32
2630 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u32(uint32_t const * a)2631 uint32x4_t test_vld1q_u32(uint32_t const * a) {
2632 return vld1q_u32(a);
2633 }
2634
2635 // CHECK: test_vld1q_u64
2636 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u64(uint64_t const * a)2637 uint64x2_t test_vld1q_u64(uint64_t const * a) {
2638 return vld1q_u64(a);
2639 }
2640
2641 // CHECK: test_vld1q_s8
2642 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s8(int8_t const * a)2643 int8x16_t test_vld1q_s8(int8_t const * a) {
2644 return vld1q_s8(a);
2645 }
2646
2647 // CHECK: test_vld1q_s16
2648 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s16(int16_t const * a)2649 int16x8_t test_vld1q_s16(int16_t const * a) {
2650 return vld1q_s16(a);
2651 }
2652
2653 // CHECK: test_vld1q_s32
2654 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s32(int32_t const * a)2655 int32x4_t test_vld1q_s32(int32_t const * a) {
2656 return vld1q_s32(a);
2657 }
2658
2659 // CHECK: test_vld1q_s64
2660 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s64(int64_t const * a)2661 int64x2_t test_vld1q_s64(int64_t const * a) {
2662 return vld1q_s64(a);
2663 }
2664
2665 // CHECK: test_vld1q_f16
2666 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f16(float16_t const * a)2667 float16x8_t test_vld1q_f16(float16_t const * a) {
2668 return vld1q_f16(a);
2669 }
2670
2671 // CHECK: test_vld1q_f32
2672 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f32(float32_t const * a)2673 float32x4_t test_vld1q_f32(float32_t const * a) {
2674 return vld1q_f32(a);
2675 }
2676
2677 // CHECK: test_vld1q_p8
2678 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p8(poly8_t const * a)2679 poly8x16_t test_vld1q_p8(poly8_t const * a) {
2680 return vld1q_p8(a);
2681 }
2682
2683 // CHECK: test_vld1q_p16
2684 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p16(poly16_t const * a)2685 poly16x8_t test_vld1q_p16(poly16_t const * a) {
2686 return vld1q_p16(a);
2687 }
2688
2689 // CHECK: test_vld1_u8
2690 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u8(uint8_t const * a)2691 uint8x8_t test_vld1_u8(uint8_t const * a) {
2692 return vld1_u8(a);
2693 }
2694
2695 // CHECK: test_vld1_u16
2696 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u16(uint16_t const * a)2697 uint16x4_t test_vld1_u16(uint16_t const * a) {
2698 return vld1_u16(a);
2699 }
2700
2701 // CHECK: test_vld1_u32
2702 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u32(uint32_t const * a)2703 uint32x2_t test_vld1_u32(uint32_t const * a) {
2704 return vld1_u32(a);
2705 }
2706
2707 // CHECK: test_vld1_u64
2708 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u64(uint64_t const * a)2709 uint64x1_t test_vld1_u64(uint64_t const * a) {
2710 return vld1_u64(a);
2711 }
2712
2713 // CHECK: test_vld1_s8
2714 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s8(int8_t const * a)2715 int8x8_t test_vld1_s8(int8_t const * a) {
2716 return vld1_s8(a);
2717 }
2718
2719 // CHECK: test_vld1_s16
2720 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s16(int16_t const * a)2721 int16x4_t test_vld1_s16(int16_t const * a) {
2722 return vld1_s16(a);
2723 }
2724
2725 // CHECK: test_vld1_s32
2726 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s32(int32_t const * a)2727 int32x2_t test_vld1_s32(int32_t const * a) {
2728 return vld1_s32(a);
2729 }
2730
2731 // CHECK: test_vld1_s64
2732 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s64(int64_t const * a)2733 int64x1_t test_vld1_s64(int64_t const * a) {
2734 return vld1_s64(a);
2735 }
2736
2737 // CHECK: test_vld1_f16
2738 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f16(float16_t const * a)2739 float16x4_t test_vld1_f16(float16_t const * a) {
2740 return vld1_f16(a);
2741 }
2742
2743 // CHECK: test_vld1_f32
2744 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f32(float32_t const * a)2745 float32x2_t test_vld1_f32(float32_t const * a) {
2746 return vld1_f32(a);
2747 }
2748
2749 // CHECK: test_vld1_p8
2750 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p8(poly8_t const * a)2751 poly8x8_t test_vld1_p8(poly8_t const * a) {
2752 return vld1_p8(a);
2753 }
2754
2755 // CHECK: test_vld1_p16
2756 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p16(poly16_t const * a)2757 poly16x4_t test_vld1_p16(poly16_t const * a) {
2758 return vld1_p16(a);
2759 }
2760
2761
2762 // CHECK: test_vld1q_dup_u8
2763 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_u8(uint8_t const * a)2764 uint8x16_t test_vld1q_dup_u8(uint8_t const * a) {
2765 return vld1q_dup_u8(a);
2766 }
2767
2768 // CHECK: test_vld1q_dup_u16
2769 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_u16(uint16_t const * a)2770 uint16x8_t test_vld1q_dup_u16(uint16_t const * a) {
2771 return vld1q_dup_u16(a);
2772 }
2773
2774 // CHECK: test_vld1q_dup_u32
2775 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_u32(uint32_t const * a)2776 uint32x4_t test_vld1q_dup_u32(uint32_t const * a) {
2777 return vld1q_dup_u32(a);
2778 }
2779
2780 // CHECK: test_vld1q_dup_u64
2781 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_u64(uint64_t const * a)2782 uint64x2_t test_vld1q_dup_u64(uint64_t const * a) {
2783 return vld1q_dup_u64(a);
2784 }
2785
2786 // CHECK: test_vld1q_dup_s8
2787 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_s8(int8_t const * a)2788 int8x16_t test_vld1q_dup_s8(int8_t const * a) {
2789 return vld1q_dup_s8(a);
2790 }
2791
2792 // CHECK: test_vld1q_dup_s16
2793 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_s16(int16_t const * a)2794 int16x8_t test_vld1q_dup_s16(int16_t const * a) {
2795 return vld1q_dup_s16(a);
2796 }
2797
2798 // CHECK: test_vld1q_dup_s32
2799 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_s32(int32_t const * a)2800 int32x4_t test_vld1q_dup_s32(int32_t const * a) {
2801 return vld1q_dup_s32(a);
2802 }
2803
2804 // CHECK: test_vld1q_dup_s64
2805 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_s64(int64_t const * a)2806 int64x2_t test_vld1q_dup_s64(int64_t const * a) {
2807 return vld1q_dup_s64(a);
2808 }
2809
2810 // CHECK: test_vld1q_dup_f16
2811 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_f16(float16_t const * a)2812 float16x8_t test_vld1q_dup_f16(float16_t const * a) {
2813 return vld1q_dup_f16(a);
2814 }
2815
2816 // CHECK: test_vld1q_dup_f32
2817 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_f32(float32_t const * a)2818 float32x4_t test_vld1q_dup_f32(float32_t const * a) {
2819 return vld1q_dup_f32(a);
2820 }
2821
2822 // CHECK: test_vld1q_dup_p8
2823 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_p8(poly8_t const * a)2824 poly8x16_t test_vld1q_dup_p8(poly8_t const * a) {
2825 return vld1q_dup_p8(a);
2826 }
2827
2828 // CHECK: test_vld1q_dup_p16
2829 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_p16(poly16_t const * a)2830 poly16x8_t test_vld1q_dup_p16(poly16_t const * a) {
2831 return vld1q_dup_p16(a);
2832 }
2833
2834 // CHECK: test_vld1_dup_u8
2835 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_u8(uint8_t const * a)2836 uint8x8_t test_vld1_dup_u8(uint8_t const * a) {
2837 return vld1_dup_u8(a);
2838 }
2839
2840 // CHECK: test_vld1_dup_u16
2841 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_u16(uint16_t const * a)2842 uint16x4_t test_vld1_dup_u16(uint16_t const * a) {
2843 return vld1_dup_u16(a);
2844 }
2845
2846 // CHECK: test_vld1_dup_u32
2847 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_u32(uint32_t const * a)2848 uint32x2_t test_vld1_dup_u32(uint32_t const * a) {
2849 return vld1_dup_u32(a);
2850 }
2851
2852 // CHECK: test_vld1_dup_u64
2853 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_u64(uint64_t const * a)2854 uint64x1_t test_vld1_dup_u64(uint64_t const * a) {
2855 return vld1_dup_u64(a);
2856 }
2857
2858 // CHECK: test_vld1_dup_s8
2859 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_s8(int8_t const * a)2860 int8x8_t test_vld1_dup_s8(int8_t const * a) {
2861 return vld1_dup_s8(a);
2862 }
2863
2864 // CHECK: test_vld1_dup_s16
2865 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_s16(int16_t const * a)2866 int16x4_t test_vld1_dup_s16(int16_t const * a) {
2867 return vld1_dup_s16(a);
2868 }
2869
2870 // CHECK: test_vld1_dup_s32
2871 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_s32(int32_t const * a)2872 int32x2_t test_vld1_dup_s32(int32_t const * a) {
2873 return vld1_dup_s32(a);
2874 }
2875
2876 // CHECK: test_vld1_dup_s64
2877 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_s64(int64_t const * a)2878 int64x1_t test_vld1_dup_s64(int64_t const * a) {
2879 return vld1_dup_s64(a);
2880 }
2881
2882 // CHECK: test_vld1_dup_f16
2883 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_f16(float16_t const * a)2884 float16x4_t test_vld1_dup_f16(float16_t const * a) {
2885 return vld1_dup_f16(a);
2886 }
2887
2888 // CHECK: test_vld1_dup_f32
2889 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_f32(float32_t const * a)2890 float32x2_t test_vld1_dup_f32(float32_t const * a) {
2891 return vld1_dup_f32(a);
2892 }
2893
2894 // CHECK: test_vld1_dup_p8
2895 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_p8(poly8_t const * a)2896 poly8x8_t test_vld1_dup_p8(poly8_t const * a) {
2897 return vld1_dup_p8(a);
2898 }
2899
2900 // CHECK: test_vld1_dup_p16
2901 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_p16(poly16_t const * a)2902 poly16x4_t test_vld1_dup_p16(poly16_t const * a) {
2903 return vld1_dup_p16(a);
2904 }
2905
2906
2907 // CHECK: test_vld1q_lane_u8
2908 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_u8(uint8_t const * a,uint8x16_t b)2909 uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) {
2910 return vld1q_lane_u8(a, b, 15);
2911 }
2912
2913 // CHECK: test_vld1q_lane_u16
2914 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_u16(uint16_t const * a,uint16x8_t b)2915 uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) {
2916 return vld1q_lane_u16(a, b, 7);
2917 }
2918
2919 // CHECK: test_vld1q_lane_u32
2920 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_u32(uint32_t const * a,uint32x4_t b)2921 uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) {
2922 return vld1q_lane_u32(a, b, 3);
2923 }
2924
2925 // CHECK: test_vld1q_lane_u64
2926 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_u64(uint64_t const * a,uint64x2_t b)2927 uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) {
2928 return vld1q_lane_u64(a, b, 1);
2929 }
2930
2931 // CHECK: test_vld1q_lane_s8
2932 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_s8(int8_t const * a,int8x16_t b)2933 int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) {
2934 return vld1q_lane_s8(a, b, 15);
2935 }
2936
2937 // CHECK: test_vld1q_lane_s16
2938 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_s16(int16_t const * a,int16x8_t b)2939 int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) {
2940 return vld1q_lane_s16(a, b, 7);
2941 }
2942
2943 // CHECK: test_vld1q_lane_s32
2944 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_s32(int32_t const * a,int32x4_t b)2945 int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) {
2946 return vld1q_lane_s32(a, b, 3);
2947 }
2948
2949 // CHECK: test_vld1q_lane_s64
2950 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_s64(int64_t const * a,int64x2_t b)2951 int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) {
2952 return vld1q_lane_s64(a, b, 1);
2953 }
2954
2955 // CHECK: test_vld1q_lane_f16
2956 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_f16(float16_t const * a,float16x8_t b)2957 float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) {
2958 return vld1q_lane_f16(a, b, 7);
2959 }
2960
2961 // CHECK: test_vld1q_lane_f32
2962 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_f32(float32_t const * a,float32x4_t b)2963 float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) {
2964 return vld1q_lane_f32(a, b, 3);
2965 }
2966
2967 // CHECK: test_vld1q_lane_p8
2968 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_p8(poly8_t const * a,poly8x16_t b)2969 poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) {
2970 return vld1q_lane_p8(a, b, 15);
2971 }
2972
2973 // CHECK: test_vld1q_lane_p16
2974 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_p16(poly16_t const * a,poly16x8_t b)2975 poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) {
2976 return vld1q_lane_p16(a, b, 7);
2977 }
2978
2979 // CHECK: test_vld1_lane_u8
2980 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_u8(uint8_t const * a,uint8x8_t b)2981 uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) {
2982 return vld1_lane_u8(a, b, 7);
2983 }
2984
2985 // CHECK: test_vld1_lane_u16
2986 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_u16(uint16_t const * a,uint16x4_t b)2987 uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) {
2988 return vld1_lane_u16(a, b, 3);
2989 }
2990
2991 // CHECK: test_vld1_lane_u32
2992 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_u32(uint32_t const * a,uint32x2_t b)2993 uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) {
2994 return vld1_lane_u32(a, b, 1);
2995 }
2996
2997 // CHECK: test_vld1_lane_u64
2998 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_u64(uint64_t const * a,uint64x1_t b)2999 uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) {
3000 return vld1_lane_u64(a, b, 0);
3001 }
3002
3003 // CHECK: test_vld1_lane_s8
3004 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_s8(int8_t const * a,int8x8_t b)3005 int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) {
3006 return vld1_lane_s8(a, b, 7);
3007 }
3008
3009 // CHECK: test_vld1_lane_s16
3010 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_s16(int16_t const * a,int16x4_t b)3011 int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) {
3012 return vld1_lane_s16(a, b, 3);
3013 }
3014
3015 // CHECK: test_vld1_lane_s32
3016 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_s32(int32_t const * a,int32x2_t b)3017 int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) {
3018 return vld1_lane_s32(a, b, 1);
3019 }
3020
3021 // CHECK: test_vld1_lane_s64
3022 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_s64(int64_t const * a,int64x1_t b)3023 int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) {
3024 return vld1_lane_s64(a, b, 0);
3025 }
3026
3027 // CHECK: test_vld1_lane_f16
3028 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_f16(float16_t const * a,float16x4_t b)3029 float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) {
3030 return vld1_lane_f16(a, b, 3);
3031 }
3032
3033 // CHECK: test_vld1_lane_f32
3034 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_f32(float32_t const * a,float32x2_t b)3035 float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) {
3036 return vld1_lane_f32(a, b, 1);
3037 }
3038
3039 // CHECK: test_vld1_lane_p8
3040 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_p8(poly8_t const * a,poly8x8_t b)3041 poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) {
3042 return vld1_lane_p8(a, b, 7);
3043 }
3044
3045 // CHECK: test_vld1_lane_p16
3046 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_p16(poly16_t const * a,poly16x4_t b)3047 poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) {
3048 return vld1_lane_p16(a, b, 3);
3049 }
3050
3051
3052 // CHECK: test_vld2q_u8
3053 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u8(uint8_t const * a)3054 uint8x16x2_t test_vld2q_u8(uint8_t const * a) {
3055 return vld2q_u8(a);
3056 }
3057
3058 // CHECK: test_vld2q_u16
3059 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u16(uint16_t const * a)3060 uint16x8x2_t test_vld2q_u16(uint16_t const * a) {
3061 return vld2q_u16(a);
3062 }
3063
3064 // CHECK: test_vld2q_u32
3065 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u32(uint32_t const * a)3066 uint32x4x2_t test_vld2q_u32(uint32_t const * a) {
3067 return vld2q_u32(a);
3068 }
3069
3070 // CHECK: test_vld2q_s8
3071 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s8(int8_t const * a)3072 int8x16x2_t test_vld2q_s8(int8_t const * a) {
3073 return vld2q_s8(a);
3074 }
3075
3076 // CHECK: test_vld2q_s16
3077 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s16(int16_t const * a)3078 int16x8x2_t test_vld2q_s16(int16_t const * a) {
3079 return vld2q_s16(a);
3080 }
3081
3082 // CHECK: test_vld2q_s32
3083 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s32(int32_t const * a)3084 int32x4x2_t test_vld2q_s32(int32_t const * a) {
3085 return vld2q_s32(a);
3086 }
3087
3088 // CHECK: test_vld2q_f16
3089 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_f16(float16_t const * a)3090 float16x8x2_t test_vld2q_f16(float16_t const * a) {
3091 return vld2q_f16(a);
3092 }
3093
3094 // CHECK: test_vld2q_f32
3095 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_f32(float32_t const * a)3096 float32x4x2_t test_vld2q_f32(float32_t const * a) {
3097 return vld2q_f32(a);
3098 }
3099
3100 // CHECK: test_vld2q_p8
3101 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_p8(poly8_t const * a)3102 poly8x16x2_t test_vld2q_p8(poly8_t const * a) {
3103 return vld2q_p8(a);
3104 }
3105
3106 // CHECK: test_vld2q_p16
3107 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_p16(poly16_t const * a)3108 poly16x8x2_t test_vld2q_p16(poly16_t const * a) {
3109 return vld2q_p16(a);
3110 }
3111
3112 // CHECK: test_vld2_u8
3113 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u8(uint8_t const * a)3114 uint8x8x2_t test_vld2_u8(uint8_t const * a) {
3115 return vld2_u8(a);
3116 }
3117
3118 // CHECK: test_vld2_u16
3119 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u16(uint16_t const * a)3120 uint16x4x2_t test_vld2_u16(uint16_t const * a) {
3121 return vld2_u16(a);
3122 }
3123
3124 // CHECK: test_vld2_u32
3125 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u32(uint32_t const * a)3126 uint32x2x2_t test_vld2_u32(uint32_t const * a) {
3127 return vld2_u32(a);
3128 }
3129
3130 // CHECK: test_vld2_u64
3131 // CHECK: vld1.64
test_vld2_u64(uint64_t const * a)3132 uint64x1x2_t test_vld2_u64(uint64_t const * a) {
3133 return vld2_u64(a);
3134 }
3135
3136 // CHECK: test_vld2_s8
3137 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s8(int8_t const * a)3138 int8x8x2_t test_vld2_s8(int8_t const * a) {
3139 return vld2_s8(a);
3140 }
3141
3142 // CHECK: test_vld2_s16
3143 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s16(int16_t const * a)3144 int16x4x2_t test_vld2_s16(int16_t const * a) {
3145 return vld2_s16(a);
3146 }
3147
3148 // CHECK: test_vld2_s32
3149 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s32(int32_t const * a)3150 int32x2x2_t test_vld2_s32(int32_t const * a) {
3151 return vld2_s32(a);
3152 }
3153
3154 // CHECK: test_vld2_s64
3155 // CHECK: vld1.64
test_vld2_s64(int64_t const * a)3156 int64x1x2_t test_vld2_s64(int64_t const * a) {
3157 return vld2_s64(a);
3158 }
3159
3160 // CHECK: test_vld2_f16
3161 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f16(float16_t const * a)3162 float16x4x2_t test_vld2_f16(float16_t const * a) {
3163 return vld2_f16(a);
3164 }
3165
3166 // CHECK: test_vld2_f32
3167 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f32(float32_t const * a)3168 float32x2x2_t test_vld2_f32(float32_t const * a) {
3169 return vld2_f32(a);
3170 }
3171
3172 // CHECK: test_vld2_p8
3173 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p8(poly8_t const * a)3174 poly8x8x2_t test_vld2_p8(poly8_t const * a) {
3175 return vld2_p8(a);
3176 }
3177
3178 // CHECK: test_vld2_p16
3179 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p16(poly16_t const * a)3180 poly16x4x2_t test_vld2_p16(poly16_t const * a) {
3181 return vld2_p16(a);
3182 }
3183
3184
3185 // CHECK: test_vld2_dup_u8
3186 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u8(uint8_t const * a)3187 uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) {
3188 return vld2_dup_u8(a);
3189 }
3190
3191 // CHECK: test_vld2_dup_u16
3192 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u16(uint16_t const * a)3193 uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) {
3194 return vld2_dup_u16(a);
3195 }
3196
3197 // CHECK: test_vld2_dup_u32
3198 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u32(uint32_t const * a)3199 uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) {
3200 return vld2_dup_u32(a);
3201 }
3202
3203 // CHECK: test_vld2_dup_u64
3204 // CHECK: vld1.64
test_vld2_dup_u64(uint64_t const * a)3205 uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) {
3206 return vld2_dup_u64(a);
3207 }
3208
3209 // CHECK: test_vld2_dup_s8
3210 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s8(int8_t const * a)3211 int8x8x2_t test_vld2_dup_s8(int8_t const * a) {
3212 return vld2_dup_s8(a);
3213 }
3214
3215 // CHECK: test_vld2_dup_s16
3216 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s16(int16_t const * a)3217 int16x4x2_t test_vld2_dup_s16(int16_t const * a) {
3218 return vld2_dup_s16(a);
3219 }
3220
3221 // CHECK: test_vld2_dup_s32
3222 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s32(int32_t const * a)3223 int32x2x2_t test_vld2_dup_s32(int32_t const * a) {
3224 return vld2_dup_s32(a);
3225 }
3226
3227 // CHECK: test_vld2_dup_s64
3228 // CHECK: vld1.64
test_vld2_dup_s64(int64_t const * a)3229 int64x1x2_t test_vld2_dup_s64(int64_t const * a) {
3230 return vld2_dup_s64(a);
3231 }
3232
3233 // CHECK: test_vld2_dup_f16
3234 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f16(float16_t const * a)3235 float16x4x2_t test_vld2_dup_f16(float16_t const * a) {
3236 return vld2_dup_f16(a);
3237 }
3238
3239 // CHECK: test_vld2_dup_f32
3240 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f32(float32_t const * a)3241 float32x2x2_t test_vld2_dup_f32(float32_t const * a) {
3242 return vld2_dup_f32(a);
3243 }
3244
3245 // CHECK: test_vld2_dup_p8
3246 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p8(poly8_t const * a)3247 poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) {
3248 return vld2_dup_p8(a);
3249 }
3250
3251 // CHECK: test_vld2_dup_p16
3252 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p16(poly16_t const * a)3253 poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) {
3254 return vld2_dup_p16(a);
3255 }
3256
3257
3258 // CHECK: test_vld2q_lane_u16
3259 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_u16(uint16_t const * a,uint16x8x2_t b)3260 uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) {
3261 return vld2q_lane_u16(a, b, 7);
3262 }
3263
3264 // CHECK: test_vld2q_lane_u32
3265 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_u32(uint32_t const * a,uint32x4x2_t b)3266 uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) {
3267 return vld2q_lane_u32(a, b, 3);
3268 }
3269
3270 // CHECK: test_vld2q_lane_s16
3271 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_s16(int16_t const * a,int16x8x2_t b)3272 int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) {
3273 return vld2q_lane_s16(a, b, 7);
3274 }
3275
3276 // CHECK: test_vld2q_lane_s32
3277 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_s32(int32_t const * a,int32x4x2_t b)3278 int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) {
3279 return vld2q_lane_s32(a, b, 3);
3280 }
3281
3282 // CHECK: test_vld2q_lane_f16
3283 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_f16(float16_t const * a,float16x8x2_t b)3284 float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) {
3285 return vld2q_lane_f16(a, b, 7);
3286 }
3287
3288 // CHECK: test_vld2q_lane_f32
3289 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_f32(float32_t const * a,float32x4x2_t b)3290 float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) {
3291 return vld2q_lane_f32(a, b, 3);
3292 }
3293
3294 // CHECK: test_vld2q_lane_p16
3295 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_p16(poly16_t const * a,poly16x8x2_t b)3296 poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) {
3297 return vld2q_lane_p16(a, b, 7);
3298 }
3299
3300 // CHECK: test_vld2_lane_u8
3301 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u8(uint8_t const * a,uint8x8x2_t b)3302 uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) {
3303 return vld2_lane_u8(a, b, 7);
3304 }
3305
3306 // CHECK: test_vld2_lane_u16
3307 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u16(uint16_t const * a,uint16x4x2_t b)3308 uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) {
3309 return vld2_lane_u16(a, b, 3);
3310 }
3311
3312 // CHECK: test_vld2_lane_u32
3313 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u32(uint32_t const * a,uint32x2x2_t b)3314 uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) {
3315 return vld2_lane_u32(a, b, 1);
3316 }
3317
3318 // CHECK: test_vld2_lane_s8
3319 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s8(int8_t const * a,int8x8x2_t b)3320 int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) {
3321 return vld2_lane_s8(a, b, 7);
3322 }
3323
3324 // CHECK: test_vld2_lane_s16
3325 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s16(int16_t const * a,int16x4x2_t b)3326 int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) {
3327 return vld2_lane_s16(a, b, 3);
3328 }
3329
3330 // CHECK: test_vld2_lane_s32
3331 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s32(int32_t const * a,int32x2x2_t b)3332 int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) {
3333 return vld2_lane_s32(a, b, 1);
3334 }
3335
3336 // CHECK: test_vld2_lane_f16
3337 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_f16(float16_t const * a,float16x4x2_t b)3338 float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) {
3339 return vld2_lane_f16(a, b, 3);
3340 }
3341
3342 // CHECK: test_vld2_lane_f32
3343 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_f32(float32_t const * a,float32x2x2_t b)3344 float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) {
3345 return vld2_lane_f32(a, b, 1);
3346 }
3347
3348 // CHECK: test_vld2_lane_p8
3349 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_p8(poly8_t const * a,poly8x8x2_t b)3350 poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) {
3351 return vld2_lane_p8(a, b, 7);
3352 }
3353
3354 // CHECK: test_vld2_lane_p16
3355 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_p16(poly16_t const * a,poly16x4x2_t b)3356 poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) {
3357 return vld2_lane_p16(a, b, 3);
3358 }
3359
3360
3361 // CHECK: test_vld3q_u8
3362 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u8(uint8_t const * a)3363 uint8x16x3_t test_vld3q_u8(uint8_t const * a) {
3364 return vld3q_u8(a);
3365 }
3366
3367 // CHECK: test_vld3q_u16
3368 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u16(uint16_t const * a)3369 uint16x8x3_t test_vld3q_u16(uint16_t const * a) {
3370 return vld3q_u16(a);
3371 }
3372
3373 // CHECK: test_vld3q_u32
3374 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u32(uint32_t const * a)3375 uint32x4x3_t test_vld3q_u32(uint32_t const * a) {
3376 return vld3q_u32(a);
3377 }
3378
3379 // CHECK: test_vld3q_s8
3380 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s8(int8_t const * a)3381 int8x16x3_t test_vld3q_s8(int8_t const * a) {
3382 return vld3q_s8(a);
3383 }
3384
3385 // CHECK: test_vld3q_s16
3386 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s16(int16_t const * a)3387 int16x8x3_t test_vld3q_s16(int16_t const * a) {
3388 return vld3q_s16(a);
3389 }
3390
3391 // CHECK: test_vld3q_s32
3392 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s32(int32_t const * a)3393 int32x4x3_t test_vld3q_s32(int32_t const * a) {
3394 return vld3q_s32(a);
3395 }
3396
3397 // CHECK: test_vld3q_f16
3398 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f16(float16_t const * a)3399 float16x8x3_t test_vld3q_f16(float16_t const * a) {
3400 return vld3q_f16(a);
3401 }
3402
3403 // CHECK: test_vld3q_f32
3404 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f32(float32_t const * a)3405 float32x4x3_t test_vld3q_f32(float32_t const * a) {
3406 return vld3q_f32(a);
3407 }
3408
3409 // CHECK: test_vld3q_p8
3410 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p8(poly8_t const * a)3411 poly8x16x3_t test_vld3q_p8(poly8_t const * a) {
3412 return vld3q_p8(a);
3413 }
3414
3415 // CHECK: test_vld3q_p16
3416 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p16(poly16_t const * a)3417 poly16x8x3_t test_vld3q_p16(poly16_t const * a) {
3418 return vld3q_p16(a);
3419 }
3420
3421 // CHECK: test_vld3_u8
3422 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u8(uint8_t const * a)3423 uint8x8x3_t test_vld3_u8(uint8_t const * a) {
3424 return vld3_u8(a);
3425 }
3426
3427 // CHECK: test_vld3_u16
3428 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u16(uint16_t const * a)3429 uint16x4x3_t test_vld3_u16(uint16_t const * a) {
3430 return vld3_u16(a);
3431 }
3432
3433 // CHECK: test_vld3_u32
3434 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u32(uint32_t const * a)3435 uint32x2x3_t test_vld3_u32(uint32_t const * a) {
3436 return vld3_u32(a);
3437 }
3438
3439 // CHECK: test_vld3_u64
3440 // CHECK: vld1.64
test_vld3_u64(uint64_t const * a)3441 uint64x1x3_t test_vld3_u64(uint64_t const * a) {
3442 return vld3_u64(a);
3443 }
3444
3445 // CHECK: test_vld3_s8
3446 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s8(int8_t const * a)3447 int8x8x3_t test_vld3_s8(int8_t const * a) {
3448 return vld3_s8(a);
3449 }
3450
3451 // CHECK: test_vld3_s16
3452 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s16(int16_t const * a)3453 int16x4x3_t test_vld3_s16(int16_t const * a) {
3454 return vld3_s16(a);
3455 }
3456
3457 // CHECK: test_vld3_s32
3458 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s32(int32_t const * a)3459 int32x2x3_t test_vld3_s32(int32_t const * a) {
3460 return vld3_s32(a);
3461 }
3462
3463 // CHECK: test_vld3_s64
3464 // CHECK: vld1.64
test_vld3_s64(int64_t const * a)3465 int64x1x3_t test_vld3_s64(int64_t const * a) {
3466 return vld3_s64(a);
3467 }
3468
3469 // CHECK: test_vld3_f16
3470 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f16(float16_t const * a)3471 float16x4x3_t test_vld3_f16(float16_t const * a) {
3472 return vld3_f16(a);
3473 }
3474
3475 // CHECK: test_vld3_f32
3476 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f32(float32_t const * a)3477 float32x2x3_t test_vld3_f32(float32_t const * a) {
3478 return vld3_f32(a);
3479 }
3480
3481 // CHECK: test_vld3_p8
3482 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p8(poly8_t const * a)3483 poly8x8x3_t test_vld3_p8(poly8_t const * a) {
3484 return vld3_p8(a);
3485 }
3486
3487 // CHECK: test_vld3_p16
3488 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p16(poly16_t const * a)3489 poly16x4x3_t test_vld3_p16(poly16_t const * a) {
3490 return vld3_p16(a);
3491 }
3492
3493
3494 // CHECK: test_vld3_dup_u8
3495 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u8(uint8_t const * a)3496 uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) {
3497 return vld3_dup_u8(a);
3498 }
3499
3500 // CHECK: test_vld3_dup_u16
3501 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u16(uint16_t const * a)3502 uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) {
3503 return vld3_dup_u16(a);
3504 }
3505
3506 // CHECK: test_vld3_dup_u32
3507 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u32(uint32_t const * a)3508 uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) {
3509 return vld3_dup_u32(a);
3510 }
3511
3512 // CHECK: test_vld3_dup_u64
3513 // CHECK: vld1.64
test_vld3_dup_u64(uint64_t const * a)3514 uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) {
3515 return vld3_dup_u64(a);
3516 }
3517
3518 // CHECK: test_vld3_dup_s8
3519 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s8(int8_t const * a)3520 int8x8x3_t test_vld3_dup_s8(int8_t const * a) {
3521 return vld3_dup_s8(a);
3522 }
3523
3524 // CHECK: test_vld3_dup_s16
3525 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s16(int16_t const * a)3526 int16x4x3_t test_vld3_dup_s16(int16_t const * a) {
3527 return vld3_dup_s16(a);
3528 }
3529
3530 // CHECK: test_vld3_dup_s32
3531 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s32(int32_t const * a)3532 int32x2x3_t test_vld3_dup_s32(int32_t const * a) {
3533 return vld3_dup_s32(a);
3534 }
3535
3536 // CHECK: test_vld3_dup_s64
3537 // CHECK: vld1.64
test_vld3_dup_s64(int64_t const * a)3538 int64x1x3_t test_vld3_dup_s64(int64_t const * a) {
3539 return vld3_dup_s64(a);
3540 }
3541
3542 // CHECK: test_vld3_dup_f16
3543 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f16(float16_t const * a)3544 float16x4x3_t test_vld3_dup_f16(float16_t const * a) {
3545 return vld3_dup_f16(a);
3546 }
3547
3548 // CHECK: test_vld3_dup_f32
3549 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f32(float32_t const * a)3550 float32x2x3_t test_vld3_dup_f32(float32_t const * a) {
3551 return vld3_dup_f32(a);
3552 }
3553
3554 // CHECK: test_vld3_dup_p8
3555 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p8(poly8_t const * a)3556 poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) {
3557 return vld3_dup_p8(a);
3558 }
3559
3560 // CHECK: test_vld3_dup_p16
3561 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p16(poly16_t const * a)3562 poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) {
3563 return vld3_dup_p16(a);
3564 }
3565
3566
3567 // CHECK: test_vld3q_lane_u16
3568 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_u16(uint16_t const * a,uint16x8x3_t b)3569 uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) {
3570 return vld3q_lane_u16(a, b, 7);
3571 }
3572
3573 // CHECK: test_vld3q_lane_u32
3574 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_u32(uint32_t const * a,uint32x4x3_t b)3575 uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) {
3576 return vld3q_lane_u32(a, b, 3);
3577 }
3578
3579 // CHECK: test_vld3q_lane_s16
3580 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_s16(int16_t const * a,int16x8x3_t b)3581 int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) {
3582 return vld3q_lane_s16(a, b, 7);
3583 }
3584
3585 // CHECK: test_vld3q_lane_s32
3586 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_s32(int32_t const * a,int32x4x3_t b)3587 int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) {
3588 return vld3q_lane_s32(a, b, 3);
3589 }
3590
3591 // CHECK: test_vld3q_lane_f16
3592 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_f16(float16_t const * a,float16x8x3_t b)3593 float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) {
3594 return vld3q_lane_f16(a, b, 7);
3595 }
3596
3597 // CHECK: test_vld3q_lane_f32
3598 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_f32(float32_t const * a,float32x4x3_t b)3599 float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) {
3600 return vld3q_lane_f32(a, b, 3);
3601 }
3602
3603 // CHECK: test_vld3q_lane_p16
3604 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_p16(poly16_t const * a,poly16x8x3_t b)3605 poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) {
3606 return vld3q_lane_p16(a, b, 7);
3607 }
3608
3609 // CHECK: test_vld3_lane_u8
3610 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u8(uint8_t const * a,uint8x8x3_t b)3611 uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) {
3612 return vld3_lane_u8(a, b, 7);
3613 }
3614
3615 // CHECK: test_vld3_lane_u16
3616 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u16(uint16_t const * a,uint16x4x3_t b)3617 uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) {
3618 return vld3_lane_u16(a, b, 3);
3619 }
3620
3621 // CHECK: test_vld3_lane_u32
3622 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u32(uint32_t const * a,uint32x2x3_t b)3623 uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) {
3624 return vld3_lane_u32(a, b, 1);
3625 }
3626
3627 // CHECK: test_vld3_lane_s8
3628 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s8(int8_t const * a,int8x8x3_t b)3629 int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) {
3630 return vld3_lane_s8(a, b, 7);
3631 }
3632
3633 // CHECK: test_vld3_lane_s16
3634 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s16(int16_t const * a,int16x4x3_t b)3635 int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) {
3636 return vld3_lane_s16(a, b, 3);
3637 }
3638
3639 // CHECK: test_vld3_lane_s32
3640 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s32(int32_t const * a,int32x2x3_t b)3641 int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) {
3642 return vld3_lane_s32(a, b, 1);
3643 }
3644
3645 // CHECK: test_vld3_lane_f16
3646 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_f16(float16_t const * a,float16x4x3_t b)3647 float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) {
3648 return vld3_lane_f16(a, b, 3);
3649 }
3650
3651 // CHECK: test_vld3_lane_f32
3652 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_f32(float32_t const * a,float32x2x3_t b)3653 float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) {
3654 return vld3_lane_f32(a, b, 1);
3655 }
3656
3657 // CHECK: test_vld3_lane_p8
3658 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_p8(poly8_t const * a,poly8x8x3_t b)3659 poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) {
3660 return vld3_lane_p8(a, b, 7);
3661 }
3662
3663 // CHECK: test_vld3_lane_p16
3664 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_p16(poly16_t const * a,poly16x4x3_t b)3665 poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) {
3666 return vld3_lane_p16(a, b, 3);
3667 }
3668
3669
3670 // CHECK: test_vld4q_u8
3671 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u8(uint8_t const * a)3672 uint8x16x4_t test_vld4q_u8(uint8_t const * a) {
3673 return vld4q_u8(a);
3674 }
3675
3676 // CHECK: test_vld4q_u16
3677 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u16(uint16_t const * a)3678 uint16x8x4_t test_vld4q_u16(uint16_t const * a) {
3679 return vld4q_u16(a);
3680 }
3681
3682 // CHECK: test_vld4q_u32
3683 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u32(uint32_t const * a)3684 uint32x4x4_t test_vld4q_u32(uint32_t const * a) {
3685 return vld4q_u32(a);
3686 }
3687
3688 // CHECK: test_vld4q_s8
3689 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s8(int8_t const * a)3690 int8x16x4_t test_vld4q_s8(int8_t const * a) {
3691 return vld4q_s8(a);
3692 }
3693
3694 // CHECK: test_vld4q_s16
3695 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s16(int16_t const * a)3696 int16x8x4_t test_vld4q_s16(int16_t const * a) {
3697 return vld4q_s16(a);
3698 }
3699
3700 // CHECK: test_vld4q_s32
3701 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s32(int32_t const * a)3702 int32x4x4_t test_vld4q_s32(int32_t const * a) {
3703 return vld4q_s32(a);
3704 }
3705
3706 // CHECK: test_vld4q_f16
3707 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f16(float16_t const * a)3708 float16x8x4_t test_vld4q_f16(float16_t const * a) {
3709 return vld4q_f16(a);
3710 }
3711
3712 // CHECK: test_vld4q_f32
3713 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f32(float32_t const * a)3714 float32x4x4_t test_vld4q_f32(float32_t const * a) {
3715 return vld4q_f32(a);
3716 }
3717
3718 // CHECK: test_vld4q_p8
3719 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p8(poly8_t const * a)3720 poly8x16x4_t test_vld4q_p8(poly8_t const * a) {
3721 return vld4q_p8(a);
3722 }
3723
3724 // CHECK: test_vld4q_p16
3725 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p16(poly16_t const * a)3726 poly16x8x4_t test_vld4q_p16(poly16_t const * a) {
3727 return vld4q_p16(a);
3728 }
3729
3730 // CHECK: test_vld4_u8
3731 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u8(uint8_t const * a)3732 uint8x8x4_t test_vld4_u8(uint8_t const * a) {
3733 return vld4_u8(a);
3734 }
3735
3736 // CHECK: test_vld4_u16
3737 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u16(uint16_t const * a)3738 uint16x4x4_t test_vld4_u16(uint16_t const * a) {
3739 return vld4_u16(a);
3740 }
3741
3742 // CHECK: test_vld4_u32
3743 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u32(uint32_t const * a)3744 uint32x2x4_t test_vld4_u32(uint32_t const * a) {
3745 return vld4_u32(a);
3746 }
3747
3748 // CHECK: test_vld4_u64
3749 // CHECK: vld1.64
test_vld4_u64(uint64_t const * a)3750 uint64x1x4_t test_vld4_u64(uint64_t const * a) {
3751 return vld4_u64(a);
3752 }
3753
3754 // CHECK: test_vld4_s8
3755 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s8(int8_t const * a)3756 int8x8x4_t test_vld4_s8(int8_t const * a) {
3757 return vld4_s8(a);
3758 }
3759
3760 // CHECK: test_vld4_s16
3761 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s16(int16_t const * a)3762 int16x4x4_t test_vld4_s16(int16_t const * a) {
3763 return vld4_s16(a);
3764 }
3765
3766 // CHECK: test_vld4_s32
3767 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s32(int32_t const * a)3768 int32x2x4_t test_vld4_s32(int32_t const * a) {
3769 return vld4_s32(a);
3770 }
3771
3772 // CHECK: test_vld4_s64
3773 // CHECK: vld1.64
test_vld4_s64(int64_t const * a)3774 int64x1x4_t test_vld4_s64(int64_t const * a) {
3775 return vld4_s64(a);
3776 }
3777
3778 // CHECK: test_vld4_f16
3779 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_f16(float16_t const * a)3780 float16x4x4_t test_vld4_f16(float16_t const * a) {
3781 return vld4_f16(a);
3782 }
3783
3784 // CHECK: test_vld4_f32
3785 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_f32(float32_t const * a)3786 float32x2x4_t test_vld4_f32(float32_t const * a) {
3787 return vld4_f32(a);
3788 }
3789
3790 // CHECK: test_vld4_p8
3791 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_p8(poly8_t const * a)3792 poly8x8x4_t test_vld4_p8(poly8_t const * a) {
3793 return vld4_p8(a);
3794 }
3795
3796 // CHECK: test_vld4_p16
3797 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_p16(poly16_t const * a)3798 poly16x4x4_t test_vld4_p16(poly16_t const * a) {
3799 return vld4_p16(a);
3800 }
3801
3802
3803 // CHECK: test_vld4_dup_u8
3804 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u8(uint8_t const * a)3805 uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) {
3806 return vld4_dup_u8(a);
3807 }
3808
3809 // CHECK: test_vld4_dup_u16
3810 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u16(uint16_t const * a)3811 uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) {
3812 return vld4_dup_u16(a);
3813 }
3814
3815 // CHECK: test_vld4_dup_u32
3816 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u32(uint32_t const * a)3817 uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) {
3818 return vld4_dup_u32(a);
3819 }
3820
3821 // CHECK: test_vld4_dup_u64
3822 // CHECK: vld1.64
test_vld4_dup_u64(uint64_t const * a)3823 uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) {
3824 return vld4_dup_u64(a);
3825 }
3826
3827 // CHECK: test_vld4_dup_s8
3828 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s8(int8_t const * a)3829 int8x8x4_t test_vld4_dup_s8(int8_t const * a) {
3830 return vld4_dup_s8(a);
3831 }
3832
3833 // CHECK: test_vld4_dup_s16
3834 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s16(int16_t const * a)3835 int16x4x4_t test_vld4_dup_s16(int16_t const * a) {
3836 return vld4_dup_s16(a);
3837 }
3838
3839 // CHECK: test_vld4_dup_s32
3840 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s32(int32_t const * a)3841 int32x2x4_t test_vld4_dup_s32(int32_t const * a) {
3842 return vld4_dup_s32(a);
3843 }
3844
3845 // CHECK: test_vld4_dup_s64
3846 // CHECK: vld1.64
test_vld4_dup_s64(int64_t const * a)3847 int64x1x4_t test_vld4_dup_s64(int64_t const * a) {
3848 return vld4_dup_s64(a);
3849 }
3850
3851 // CHECK: test_vld4_dup_f16
3852 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_f16(float16_t const * a)3853 float16x4x4_t test_vld4_dup_f16(float16_t const * a) {
3854 return vld4_dup_f16(a);
3855 }
3856
3857 // CHECK: test_vld4_dup_f32
3858 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_f32(float32_t const * a)3859 float32x2x4_t test_vld4_dup_f32(float32_t const * a) {
3860 return vld4_dup_f32(a);
3861 }
3862
3863 // CHECK: test_vld4_dup_p8
3864 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_p8(poly8_t const * a)3865 poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) {
3866 return vld4_dup_p8(a);
3867 }
3868
3869 // CHECK: test_vld4_dup_p16
3870 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_p16(poly16_t const * a)3871 poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) {
3872 return vld4_dup_p16(a);
3873 }
3874
3875
3876 // CHECK: test_vld4q_lane_u16
3877 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_u16(uint16_t const * a,uint16x8x4_t b)3878 uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) {
3879 return vld4q_lane_u16(a, b, 7);
3880 }
3881
3882 // CHECK: test_vld4q_lane_u32
3883 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_u32(uint32_t const * a,uint32x4x4_t b)3884 uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) {
3885 return vld4q_lane_u32(a, b, 3);
3886 }
3887
3888 // CHECK: test_vld4q_lane_s16
3889 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_s16(int16_t const * a,int16x8x4_t b)3890 int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) {
3891 return vld4q_lane_s16(a, b, 7);
3892 }
3893
3894 // CHECK: test_vld4q_lane_s32
3895 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_s32(int32_t const * a,int32x4x4_t b)3896 int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) {
3897 return vld4q_lane_s32(a, b, 3);
3898 }
3899
3900 // CHECK: test_vld4q_lane_f16
3901 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_f16(float16_t const * a,float16x8x4_t b)3902 float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) {
3903 return vld4q_lane_f16(a, b, 7);
3904 }
3905
3906 // CHECK: test_vld4q_lane_f32
3907 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_f32(float32_t const * a,float32x4x4_t b)3908 float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) {
3909 return vld4q_lane_f32(a, b, 3);
3910 }
3911
3912 // CHECK: test_vld4q_lane_p16
3913 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_p16(poly16_t const * a,poly16x8x4_t b)3914 poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) {
3915 return vld4q_lane_p16(a, b, 7);
3916 }
3917
3918 // CHECK: test_vld4_lane_u8
3919 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u8(uint8_t const * a,uint8x8x4_t b)3920 uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) {
3921 return vld4_lane_u8(a, b, 7);
3922 }
3923
3924 // CHECK: test_vld4_lane_u16
3925 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u16(uint16_t const * a,uint16x4x4_t b)3926 uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) {
3927 return vld4_lane_u16(a, b, 3);
3928 }
3929
3930 // CHECK: test_vld4_lane_u32
3931 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u32(uint32_t const * a,uint32x2x4_t b)3932 uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) {
3933 return vld4_lane_u32(a, b, 1);
3934 }
3935
3936 // CHECK: test_vld4_lane_s8
3937 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s8(int8_t const * a,int8x8x4_t b)3938 int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) {
3939 return vld4_lane_s8(a, b, 7);
3940 }
3941
3942 // CHECK: test_vld4_lane_s16
3943 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s16(int16_t const * a,int16x4x4_t b)3944 int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) {
3945 return vld4_lane_s16(a, b, 3);
3946 }
3947
3948 // CHECK: test_vld4_lane_s32
3949 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s32(int32_t const * a,int32x2x4_t b)3950 int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) {
3951 return vld4_lane_s32(a, b, 1);
3952 }
3953
3954 // CHECK: test_vld4_lane_f16
3955 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_f16(float16_t const * a,float16x4x4_t b)3956 float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) {
3957 return vld4_lane_f16(a, b, 3);
3958 }
3959
3960 // CHECK: test_vld4_lane_f32
3961 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_f32(float32_t const * a,float32x2x4_t b)3962 float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) {
3963 return vld4_lane_f32(a, b, 1);
3964 }
3965
3966 // CHECK: test_vld4_lane_p8
3967 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_p8(poly8_t const * a,poly8x8x4_t b)3968 poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) {
3969 return vld4_lane_p8(a, b, 7);
3970 }
3971
3972 // CHECK: test_vld4_lane_p16
3973 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_p16(poly16_t const * a,poly16x4x4_t b)3974 poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) {
3975 return vld4_lane_p16(a, b, 3);
3976 }
3977
3978
3979 // CHECK: test_vmax_s8
3980 // CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s8(int8x8_t a,int8x8_t b)3981 int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) {
3982 return vmax_s8(a, b);
3983 }
3984
3985 // CHECK: test_vmax_s16
3986 // CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s16(int16x4_t a,int16x4_t b)3987 int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) {
3988 return vmax_s16(a, b);
3989 }
3990
3991 // CHECK: test_vmax_s32
3992 // CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s32(int32x2_t a,int32x2_t b)3993 int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) {
3994 return vmax_s32(a, b);
3995 }
3996
3997 // CHECK: test_vmax_u8
3998 // CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u8(uint8x8_t a,uint8x8_t b)3999 uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) {
4000 return vmax_u8(a, b);
4001 }
4002
4003 // CHECK: test_vmax_u16
4004 // CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u16(uint16x4_t a,uint16x4_t b)4005 uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) {
4006 return vmax_u16(a, b);
4007 }
4008
4009 // CHECK: test_vmax_u32
4010 // CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u32(uint32x2_t a,uint32x2_t b)4011 uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) {
4012 return vmax_u32(a, b);
4013 }
4014
4015 // CHECK: test_vmax_f32
4016 // CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_f32(float32x2_t a,float32x2_t b)4017 float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) {
4018 return vmax_f32(a, b);
4019 }
4020
4021 // CHECK: test_vmaxq_s8
4022 // CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s8(int8x16_t a,int8x16_t b)4023 int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) {
4024 return vmaxq_s8(a, b);
4025 }
4026
4027 // CHECK: test_vmaxq_s16
4028 // CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s16(int16x8_t a,int16x8_t b)4029 int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) {
4030 return vmaxq_s16(a, b);
4031 }
4032
4033 // CHECK: test_vmaxq_s32
4034 // CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s32(int32x4_t a,int32x4_t b)4035 int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) {
4036 return vmaxq_s32(a, b);
4037 }
4038
4039 // CHECK: test_vmaxq_u8
4040 // CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u8(uint8x16_t a,uint8x16_t b)4041 uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) {
4042 return vmaxq_u8(a, b);
4043 }
4044
4045 // CHECK: test_vmaxq_u16
4046 // CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u16(uint16x8_t a,uint16x8_t b)4047 uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) {
4048 return vmaxq_u16(a, b);
4049 }
4050
4051 // CHECK: test_vmaxq_u32
4052 // CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u32(uint32x4_t a,uint32x4_t b)4053 uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) {
4054 return vmaxq_u32(a, b);
4055 }
4056
4057 // CHECK: test_vmaxq_f32
4058 // CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_f32(float32x4_t a,float32x4_t b)4059 float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) {
4060 return vmaxq_f32(a, b);
4061 }
4062
4063
4064 // CHECK: test_vmin_s8
4065 // CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s8(int8x8_t a,int8x8_t b)4066 int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) {
4067 return vmin_s8(a, b);
4068 }
4069
4070 // CHECK: test_vmin_s16
4071 // CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s16(int16x4_t a,int16x4_t b)4072 int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) {
4073 return vmin_s16(a, b);
4074 }
4075
4076 // CHECK: test_vmin_s32
4077 // CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s32(int32x2_t a,int32x2_t b)4078 int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) {
4079 return vmin_s32(a, b);
4080 }
4081
4082 // CHECK: test_vmin_u8
4083 // CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u8(uint8x8_t a,uint8x8_t b)4084 uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) {
4085 return vmin_u8(a, b);
4086 }
4087
4088 // CHECK: test_vmin_u16
4089 // CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u16(uint16x4_t a,uint16x4_t b)4090 uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) {
4091 return vmin_u16(a, b);
4092 }
4093
4094 // CHECK: test_vmin_u32
4095 // CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u32(uint32x2_t a,uint32x2_t b)4096 uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) {
4097 return vmin_u32(a, b);
4098 }
4099
4100 // CHECK: test_vmin_f32
4101 // CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_f32(float32x2_t a,float32x2_t b)4102 float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) {
4103 return vmin_f32(a, b);
4104 }
4105
4106 // CHECK: test_vminq_s8
4107 // CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s8(int8x16_t a,int8x16_t b)4108 int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) {
4109 return vminq_s8(a, b);
4110 }
4111
4112 // CHECK: test_vminq_s16
4113 // CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s16(int16x8_t a,int16x8_t b)4114 int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) {
4115 return vminq_s16(a, b);
4116 }
4117
4118 // CHECK: test_vminq_s32
4119 // CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s32(int32x4_t a,int32x4_t b)4120 int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) {
4121 return vminq_s32(a, b);
4122 }
4123
4124 // CHECK: test_vminq_u8
4125 // CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u8(uint8x16_t a,uint8x16_t b)4126 uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) {
4127 return vminq_u8(a, b);
4128 }
4129
4130 // CHECK: test_vminq_u16
4131 // CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u16(uint16x8_t a,uint16x8_t b)4132 uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) {
4133 return vminq_u16(a, b);
4134 }
4135
4136 // CHECK: test_vminq_u32
4137 // CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u32(uint32x4_t a,uint32x4_t b)4138 uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) {
4139 return vminq_u32(a, b);
4140 }
4141
4142 // CHECK: test_vminq_f32
4143 // CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_f32(float32x4_t a,float32x4_t b)4144 float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) {
4145 return vminq_f32(a, b);
4146 }
4147
4148
4149 // CHECK: test_vmla_s8
4150 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)4151 int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4152 return vmla_s8(a, b, c);
4153 }
4154
4155 // CHECK: test_vmla_s16
4156 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)4157 int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4158 return vmla_s16(a, b, c);
4159 }
4160
4161 // CHECK: test_vmla_s32
4162 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)4163 int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4164 return vmla_s32(a, b, c);
4165 }
4166
4167 // CHECK: test_vmla_f32
4168 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4169 // CHECK: vadd.f32
test_vmla_f32(float32x2_t a,float32x2_t b,float32x2_t c)4170 float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4171 return vmla_f32(a, b, c);
4172 }
4173
4174 // CHECK: test_vmla_u8
4175 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4176 uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4177 return vmla_u8(a, b, c);
4178 }
4179
4180 // CHECK: test_vmla_u16
4181 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4182 uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4183 return vmla_u16(a, b, c);
4184 }
4185
4186 // CHECK: test_vmla_u32
4187 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4188 uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4189 return vmla_u32(a, b, c);
4190 }
4191
4192 // CHECK: test_vmlaq_s8
4193 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4194 int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4195 return vmlaq_s8(a, b, c);
4196 }
4197
4198 // CHECK: test_vmlaq_s16
4199 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4200 int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4201 return vmlaq_s16(a, b, c);
4202 }
4203
4204 // CHECK: test_vmlaq_s32
4205 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4206 int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4207 return vmlaq_s32(a, b, c);
4208 }
4209
4210 // CHECK: test_vmlaq_f32
4211 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4212 // CHECK: vadd.f32
test_vmlaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4213 float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4214 return vmlaq_f32(a, b, c);
4215 }
4216
4217 // CHECK: test_vmlaq_u8
4218 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4219 uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4220 return vmlaq_u8(a, b, c);
4221 }
4222
4223 // CHECK: test_vmlaq_u16
4224 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4225 uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4226 return vmlaq_u16(a, b, c);
4227 }
4228
4229 // CHECK: test_vmlaq_u32
4230 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4231 uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4232 return vmlaq_u32(a, b, c);
4233 }
4234
4235
4236 // CHECK: test_vmlal_s8
4237 // CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)4238 int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4239 return vmlal_s8(a, b, c);
4240 }
4241
4242 // CHECK: test_vmlal_s16
4243 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)4244 int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4245 return vmlal_s16(a, b, c);
4246 }
4247
4248 // CHECK: test_vmlal_s32
4249 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)4250 int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4251 return vmlal_s32(a, b, c);
4252 }
4253
4254 // CHECK: test_vmlal_u8
4255 // CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4256 uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4257 return vmlal_u8(a, b, c);
4258 }
4259
4260 // CHECK: test_vmlal_u16
4261 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4262 uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4263 return vmlal_u16(a, b, c);
4264 }
4265
4266 // CHECK: test_vmlal_u32
4267 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4268 uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4269 return vmlal_u32(a, b, c);
4270 }
4271
4272
4273 // CHECK: test_vmlal_lane_s16
4274 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)4275 int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4276 return vmlal_lane_s16(a, b, c, 3);
4277 }
4278
4279 // CHECK: test_vmlal_lane_s32
4280 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)4281 int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4282 return vmlal_lane_s32(a, b, c, 1);
4283 }
4284
4285 // CHECK: test_vmlal_lane_u16
4286 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4287 uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4288 return vmlal_lane_u16(a, b, c, 3);
4289 }
4290
4291 // CHECK: test_vmlal_lane_u32
4292 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4293 uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4294 return vmlal_lane_u32(a, b, c, 1);
4295 }
4296
4297
4298 // CHECK: test_vmlal_n_s16
4299 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)4300 int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4301 return vmlal_n_s16(a, b, c);
4302 }
4303
4304 // CHECK: test_vmlal_n_s32
4305 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)4306 int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4307 return vmlal_n_s32(a, b, c);
4308 }
4309
4310 // CHECK: test_vmlal_n_u16
4311 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)4312 uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4313 return vmlal_n_u16(a, b, c);
4314 }
4315
4316 // CHECK: test_vmlal_n_u32
4317 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)4318 uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4319 return vmlal_n_u32(a, b, c);
4320 }
4321
4322
4323 // CHECK: test_vmla_lane_s16
4324 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_s16(int16x4_t a,int16x4_t b,int16x4_t c)4325 int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4326 return vmla_lane_s16(a, b, c, 3);
4327 }
4328
4329 // CHECK: test_vmla_lane_s32
4330 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_s32(int32x2_t a,int32x2_t b,int32x2_t c)4331 int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4332 return vmla_lane_s32(a, b, c, 1);
4333 }
4334
4335 // CHECK: test_vmla_lane_u16
4336 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4337 uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4338 return vmla_lane_u16(a, b, c, 3);
4339 }
4340
4341 // CHECK: test_vmla_lane_u32
4342 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4343 uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4344 return vmla_lane_u32(a, b, c, 1);
4345 }
4346
4347 // CHECK: test_vmla_lane_f32
4348 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4349 // CHECK: vadd.f32
test_vmla_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4350 float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4351 return vmla_lane_f32(a, b, c, 1);
4352 }
4353
4354 // CHECK: test_vmlaq_lane_s16
4355 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t c)4356 int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4357 return vmlaq_lane_s16(a, b, c, 3);
4358 }
4359
4360 // CHECK: test_vmlaq_lane_s32
4361 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t c)4362 int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4363 return vmlaq_lane_s32(a, b, c, 1);
4364 }
4365
4366 // CHECK: test_vmlaq_lane_u16
4367 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t c)4368 uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4369 return vmlaq_lane_u16(a, b, c, 3);
4370 }
4371
4372 // CHECK: test_vmlaq_lane_u32
4373 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t c)4374 uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4375 return vmlaq_lane_u32(a, b, c, 1);
4376 }
4377
4378 // CHECK: test_vmlaq_lane_f32
4379 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4380 // CHECK: vadd.f32
test_vmlaq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4381 float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4382 return vmlaq_lane_f32(a, b, c, 1);
4383 }
4384
4385
4386 // CHECK: test_vmla_n_s16
4387 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_s16(int16x4_t a,int16x4_t b,int16_t c)4388 int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4389 return vmla_n_s16(a, b, c);
4390 }
4391
4392 // CHECK: test_vmla_n_s32
4393 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_s32(int32x2_t a,int32x2_t b,int32_t c)4394 int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4395 return vmla_n_s32(a, b, c);
4396 }
4397
4398 // CHECK: test_vmla_n_u16
4399 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)4400 uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4401 return vmla_n_u16(a, b, c);
4402 }
4403
4404 // CHECK: test_vmla_n_u32
4405 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)4406 uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4407 return vmla_n_u32(a, b, c);
4408 }
4409
4410 // CHECK: test_vmla_n_f32
4411 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4412 // CHECK: vadd.f32
test_vmla_n_f32(float32x2_t a,float32x2_t b,float32_t c)4413 float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4414 return vmla_n_f32(a, b, c);
4415 }
4416
4417 // CHECK: test_vmlaq_n_s16
4418 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_s16(int16x8_t a,int16x8_t b,int16_t c)4419 int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4420 return vmlaq_n_s16(a, b, c);
4421 }
4422
4423 // CHECK: test_vmlaq_n_s32
4424 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_s32(int32x4_t a,int32x4_t b,int32_t c)4425 int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4426 return vmlaq_n_s32(a, b, c);
4427 }
4428
4429 // CHECK: test_vmlaq_n_u16
4430 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)4431 uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4432 return vmlaq_n_u16(a, b, c);
4433 }
4434
4435 // CHECK: test_vmlaq_n_u32
4436 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)4437 uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4438 return vmlaq_n_u32(a, b, c);
4439 }
4440
4441 // CHECK: test_vmlaq_n_f32
4442 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4443 // CHECK: vadd.f32
test_vmlaq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4444 float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4445 return vmlaq_n_f32(a, b, c);
4446 }
4447
4448
4449 // CHECK: test_vmls_s8
4450 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)4451 int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4452 return vmls_s8(a, b, c);
4453 }
4454
4455 // CHECK: test_vmls_s16
4456 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)4457 int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4458 return vmls_s16(a, b, c);
4459 }
4460
4461 // CHECK: test_vmls_s32
4462 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)4463 int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4464 return vmls_s32(a, b, c);
4465 }
4466
4467 // CHECK: test_vmls_f32
4468 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4469 // CHECK: vsub.f32
test_vmls_f32(float32x2_t a,float32x2_t b,float32x2_t c)4470 float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4471 return vmls_f32(a, b, c);
4472 }
4473
4474 // CHECK: test_vmls_u8
4475 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4476 uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4477 return vmls_u8(a, b, c);
4478 }
4479
4480 // CHECK: test_vmls_u16
4481 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4482 uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4483 return vmls_u16(a, b, c);
4484 }
4485
4486 // CHECK: test_vmls_u32
4487 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4488 uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4489 return vmls_u32(a, b, c);
4490 }
4491
4492 // CHECK: test_vmlsq_s8
4493 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4494 int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4495 return vmlsq_s8(a, b, c);
4496 }
4497
4498 // CHECK: test_vmlsq_s16
4499 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4500 int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4501 return vmlsq_s16(a, b, c);
4502 }
4503
4504 // CHECK: test_vmlsq_s32
4505 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4506 int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4507 return vmlsq_s32(a, b, c);
4508 }
4509
4510 // CHECK: test_vmlsq_f32
4511 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4512 // CHECK: vsub.f32
test_vmlsq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4513 float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4514 return vmlsq_f32(a, b, c);
4515 }
4516
4517 // CHECK: test_vmlsq_u8
4518 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4519 uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4520 return vmlsq_u8(a, b, c);
4521 }
4522
4523 // CHECK: test_vmlsq_u16
4524 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4525 uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4526 return vmlsq_u16(a, b, c);
4527 }
4528
4529 // CHECK: test_vmlsq_u32
4530 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4531 uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4532 return vmlsq_u32(a, b, c);
4533 }
4534
4535
4536 // CHECK: test_vmlsl_s8
4537 // CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)4538 int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4539 return vmlsl_s8(a, b, c);
4540 }
4541
4542 // CHECK: test_vmlsl_s16
4543 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)4544 int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4545 return vmlsl_s16(a, b, c);
4546 }
4547
4548 // CHECK: test_vmlsl_s32
4549 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)4550 int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4551 return vmlsl_s32(a, b, c);
4552 }
4553
4554 // CHECK: test_vmlsl_u8
4555 // CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4556 uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4557 return vmlsl_u8(a, b, c);
4558 }
4559
4560 // CHECK: test_vmlsl_u16
4561 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4562 uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4563 return vmlsl_u16(a, b, c);
4564 }
4565
4566 // CHECK: test_vmlsl_u32
4567 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4568 uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4569 return vmlsl_u32(a, b, c);
4570 }
4571
4572
4573 // CHECK: test_vmlsl_lane_s16
4574 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)4575 int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4576 return vmlsl_lane_s16(a, b, c, 3);
4577 }
4578
4579 // CHECK: test_vmlsl_lane_s32
4580 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)4581 int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4582 return vmlsl_lane_s32(a, b, c, 1);
4583 }
4584
4585 // CHECK: test_vmlsl_lane_u16
4586 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4587 uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4588 return vmlsl_lane_u16(a, b, c, 3);
4589 }
4590
4591 // CHECK: test_vmlsl_lane_u32
4592 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4593 uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4594 return vmlsl_lane_u32(a, b, c, 1);
4595 }
4596
4597
4598 // CHECK: test_vmlsl_n_s16
4599 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)4600 int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4601 return vmlsl_n_s16(a, b, c);
4602 }
4603
4604 // CHECK: test_vmlsl_n_s32
4605 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)4606 int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4607 return vmlsl_n_s32(a, b, c);
4608 }
4609
4610 // CHECK: test_vmlsl_n_u16
4611 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)4612 uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4613 return vmlsl_n_u16(a, b, c);
4614 }
4615
4616 // CHECK: test_vmlsl_n_u32
4617 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)4618 uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4619 return vmlsl_n_u32(a, b, c);
4620 }
4621
4622
4623 // CHECK: test_vmls_lane_s16
4624 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_s16(int16x4_t a,int16x4_t b,int16x4_t c)4625 int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4626 return vmls_lane_s16(a, b, c, 3);
4627 }
4628
4629 // CHECK: test_vmls_lane_s32
4630 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_s32(int32x2_t a,int32x2_t b,int32x2_t c)4631 int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4632 return vmls_lane_s32(a, b, c, 1);
4633 }
4634
4635 // CHECK: test_vmls_lane_u16
4636 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4637 uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4638 return vmls_lane_u16(a, b, c, 3);
4639 }
4640
4641 // CHECK: test_vmls_lane_u32
4642 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4643 uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4644 return vmls_lane_u32(a, b, c, 1);
4645 }
4646
4647 // CHECK: test_vmls_lane_f32
4648 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4649 // CHECK: vsub.f32
test_vmls_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4650 float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4651 return vmls_lane_f32(a, b, c, 1);
4652 }
4653
4654 // CHECK: test_vmlsq_lane_s16
4655 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t c)4656 int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4657 return vmlsq_lane_s16(a, b, c, 3);
4658 }
4659
4660 // CHECK: test_vmlsq_lane_s32
4661 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t c)4662 int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4663 return vmlsq_lane_s32(a, b, c, 1);
4664 }
4665
4666 // CHECK: test_vmlsq_lane_u16
4667 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t c)4668 uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4669 return vmlsq_lane_u16(a, b, c, 3);
4670 }
4671
4672 // CHECK: test_vmlsq_lane_u32
4673 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t c)4674 uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4675 return vmlsq_lane_u32(a, b, c, 1);
4676 }
4677
4678 // CHECK: test_vmlsq_lane_f32
4679 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4680 // CHECK: vsub.f32
test_vmlsq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4681 float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4682 return vmlsq_lane_f32(a, b, c, 1);
4683 }
4684
4685
4686 // CHECK: test_vmls_n_s16
4687 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_s16(int16x4_t a,int16x4_t b,int16_t c)4688 int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4689 return vmls_n_s16(a, b, c);
4690 }
4691
4692 // CHECK: test_vmls_n_s32
4693 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_s32(int32x2_t a,int32x2_t b,int32_t c)4694 int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4695 return vmls_n_s32(a, b, c);
4696 }
4697
4698 // CHECK: test_vmls_n_u16
4699 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)4700 uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4701 return vmls_n_u16(a, b, c);
4702 }
4703
4704 // CHECK: test_vmls_n_u32
4705 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)4706 uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4707 return vmls_n_u32(a, b, c);
4708 }
4709
4710 // CHECK: test_vmls_n_f32
4711 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4712 // CHECK: vsub.f32
test_vmls_n_f32(float32x2_t a,float32x2_t b,float32_t c)4713 float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4714 return vmls_n_f32(a, b, c);
4715 }
4716
4717 // CHECK: test_vmlsq_n_s16
4718 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_s16(int16x8_t a,int16x8_t b,int16_t c)4719 int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4720 return vmlsq_n_s16(a, b, c);
4721 }
4722
4723 // CHECK: test_vmlsq_n_s32
4724 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_s32(int32x4_t a,int32x4_t b,int32_t c)4725 int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4726 return vmlsq_n_s32(a, b, c);
4727 }
4728
4729 // CHECK: test_vmlsq_n_u16
4730 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)4731 uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4732 return vmlsq_n_u16(a, b, c);
4733 }
4734
4735 // CHECK: test_vmlsq_n_u32
4736 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)4737 uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4738 return vmlsq_n_u32(a, b, c);
4739 }
4740
4741 // CHECK: test_vmlsq_n_f32
4742 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4743 // CHECK: vsub.f32
test_vmlsq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4744 float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4745 return vmlsq_n_f32(a, b, c);
4746 }
4747
4748
4749 // CHECK: test_vmovl_s8
4750 // CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s8(int8x8_t a)4751 int16x8_t test_vmovl_s8(int8x8_t a) {
4752 return vmovl_s8(a);
4753 }
4754
4755 // CHECK: test_vmovl_s16
4756 // CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s16(int16x4_t a)4757 int32x4_t test_vmovl_s16(int16x4_t a) {
4758 return vmovl_s16(a);
4759 }
4760
4761 // CHECK: test_vmovl_s32
4762 // CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s32(int32x2_t a)4763 int64x2_t test_vmovl_s32(int32x2_t a) {
4764 return vmovl_s32(a);
4765 }
4766
4767 // CHECK: test_vmovl_u8
4768 // CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u8(uint8x8_t a)4769 uint16x8_t test_vmovl_u8(uint8x8_t a) {
4770 return vmovl_u8(a);
4771 }
4772
4773 // CHECK: test_vmovl_u16
4774 // CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u16(uint16x4_t a)4775 uint32x4_t test_vmovl_u16(uint16x4_t a) {
4776 return vmovl_u16(a);
4777 }
4778
4779 // CHECK: test_vmovl_u32
4780 // CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u32(uint32x2_t a)4781 uint64x2_t test_vmovl_u32(uint32x2_t a) {
4782 return vmovl_u32(a);
4783 }
4784
4785
4786 // CHECK: test_vmovn_s16
4787 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s16(int16x8_t a)4788 int8x8_t test_vmovn_s16(int16x8_t a) {
4789 return vmovn_s16(a);
4790 }
4791
4792 // CHECK: test_vmovn_s32
4793 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s32(int32x4_t a)4794 int16x4_t test_vmovn_s32(int32x4_t a) {
4795 return vmovn_s32(a);
4796 }
4797
4798 // CHECK: test_vmovn_s64
4799 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s64(int64x2_t a)4800 int32x2_t test_vmovn_s64(int64x2_t a) {
4801 return vmovn_s64(a);
4802 }
4803
4804 // CHECK: test_vmovn_u16
4805 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u16(uint16x8_t a)4806 uint8x8_t test_vmovn_u16(uint16x8_t a) {
4807 return vmovn_u16(a);
4808 }
4809
4810 // CHECK: test_vmovn_u32
4811 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u32(uint32x4_t a)4812 uint16x4_t test_vmovn_u32(uint32x4_t a) {
4813 return vmovn_u32(a);
4814 }
4815
4816 // CHECK: test_vmovn_u64
4817 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u64(uint64x2_t a)4818 uint32x2_t test_vmovn_u64(uint64x2_t a) {
4819 return vmovn_u64(a);
4820 }
4821
4822
4823 // CHECK: test_vmov_n_u8
4824 // CHECK: vmov
test_vmov_n_u8(uint8_t a)4825 uint8x8_t test_vmov_n_u8(uint8_t a) {
4826 return vmov_n_u8(a);
4827 }
4828
4829 // CHECK: test_vmov_n_u16
4830 // CHECK: vmov
test_vmov_n_u16(uint16_t a)4831 uint16x4_t test_vmov_n_u16(uint16_t a) {
4832 return vmov_n_u16(a);
4833 }
4834
4835 // CHECK: test_vmov_n_u32
4836 // CHECK: vmov
test_vmov_n_u32(uint32_t a)4837 uint32x2_t test_vmov_n_u32(uint32_t a) {
4838 return vmov_n_u32(a);
4839 }
4840
4841 // CHECK: test_vmov_n_s8
4842 // CHECK: vmov
test_vmov_n_s8(int8_t a)4843 int8x8_t test_vmov_n_s8(int8_t a) {
4844 return vmov_n_s8(a);
4845 }
4846
4847 // CHECK: test_vmov_n_s16
4848 // CHECK: vmov
test_vmov_n_s16(int16_t a)4849 int16x4_t test_vmov_n_s16(int16_t a) {
4850 return vmov_n_s16(a);
4851 }
4852
4853 // CHECK: test_vmov_n_s32
4854 // CHECK: vmov
test_vmov_n_s32(int32_t a)4855 int32x2_t test_vmov_n_s32(int32_t a) {
4856 return vmov_n_s32(a);
4857 }
4858
4859 // CHECK: test_vmov_n_p8
4860 // CHECK: vmov
test_vmov_n_p8(poly8_t a)4861 poly8x8_t test_vmov_n_p8(poly8_t a) {
4862 return vmov_n_p8(a);
4863 }
4864
4865 // CHECK: test_vmov_n_p16
4866 // CHECK: vmov
test_vmov_n_p16(poly16_t a)4867 poly16x4_t test_vmov_n_p16(poly16_t a) {
4868 return vmov_n_p16(a);
4869 }
4870
4871 // CHECK: test_vmov_n_f32
4872 // CHECK: vmov
test_vmov_n_f32(float32_t a)4873 float32x2_t test_vmov_n_f32(float32_t a) {
4874 return vmov_n_f32(a);
4875 }
4876
4877 // CHECK: test_vmovq_n_u8
4878 // CHECK: vmov
test_vmovq_n_u8(uint8_t a)4879 uint8x16_t test_vmovq_n_u8(uint8_t a) {
4880 return vmovq_n_u8(a);
4881 }
4882
4883 // CHECK: test_vmovq_n_u16
4884 // CHECK: vmov
test_vmovq_n_u16(uint16_t a)4885 uint16x8_t test_vmovq_n_u16(uint16_t a) {
4886 return vmovq_n_u16(a);
4887 }
4888
4889 // CHECK: test_vmovq_n_u32
4890 // CHECK: vmov
test_vmovq_n_u32(uint32_t a)4891 uint32x4_t test_vmovq_n_u32(uint32_t a) {
4892 return vmovq_n_u32(a);
4893 }
4894
4895 // CHECK: test_vmovq_n_s8
4896 // CHECK: vmov
test_vmovq_n_s8(int8_t a)4897 int8x16_t test_vmovq_n_s8(int8_t a) {
4898 return vmovq_n_s8(a);
4899 }
4900
4901 // CHECK: test_vmovq_n_s16
4902 // CHECK: vmov
test_vmovq_n_s16(int16_t a)4903 int16x8_t test_vmovq_n_s16(int16_t a) {
4904 return vmovq_n_s16(a);
4905 }
4906
4907 // CHECK: test_vmovq_n_s32
4908 // CHECK: vmov
test_vmovq_n_s32(int32_t a)4909 int32x4_t test_vmovq_n_s32(int32_t a) {
4910 return vmovq_n_s32(a);
4911 }
4912
4913 // CHECK: test_vmovq_n_p8
4914 // CHECK: vmov
test_vmovq_n_p8(poly8_t a)4915 poly8x16_t test_vmovq_n_p8(poly8_t a) {
4916 return vmovq_n_p8(a);
4917 }
4918
4919 // CHECK: test_vmovq_n_p16
4920 // CHECK: vmov
test_vmovq_n_p16(poly16_t a)4921 poly16x8_t test_vmovq_n_p16(poly16_t a) {
4922 return vmovq_n_p16(a);
4923 }
4924
4925 // CHECK: test_vmovq_n_f32
4926 // CHECK: vmov
test_vmovq_n_f32(float32_t a)4927 float32x4_t test_vmovq_n_f32(float32_t a) {
4928 return vmovq_n_f32(a);
4929 }
4930
4931 // CHECK: test_vmov_n_s64
4932 // CHECK: vmov
test_vmov_n_s64(int64_t a)4933 int64x1_t test_vmov_n_s64(int64_t a) {
4934 return vmov_n_s64(a);
4935 }
4936
4937 // CHECK: test_vmov_n_u64
4938 // CHECK: vmov
test_vmov_n_u64(uint64_t a)4939 uint64x1_t test_vmov_n_u64(uint64_t a) {
4940 return vmov_n_u64(a);
4941 }
4942
4943 // CHECK: test_vmovq_n_s64
4944 // CHECK: vmov
test_vmovq_n_s64(int64_t a)4945 int64x2_t test_vmovq_n_s64(int64_t a) {
4946 return vmovq_n_s64(a);
4947 }
4948
4949 // CHECK: test_vmovq_n_u64
4950 // CHECK: vmov
test_vmovq_n_u64(uint64_t a)4951 uint64x2_t test_vmovq_n_u64(uint64_t a) {
4952 return vmovq_n_u64(a);
4953 }
4954
4955
4956 // CHECK: test_vmul_s8
4957 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s8(int8x8_t a,int8x8_t b)4958 int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) {
4959 return vmul_s8(a, b);
4960 }
4961
4962 // CHECK: test_vmul_s16
4963 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s16(int16x4_t a,int16x4_t b)4964 int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) {
4965 return vmul_s16(a, b);
4966 }
4967
4968 // CHECK: test_vmul_s32
4969 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s32(int32x2_t a,int32x2_t b)4970 int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) {
4971 return vmul_s32(a, b);
4972 }
4973
4974 // CHECK: test_vmul_f32
4975 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_f32(float32x2_t a,float32x2_t b)4976 float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) {
4977 return vmul_f32(a, b);
4978 }
4979
4980 // CHECK: test_vmul_u8
4981 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u8(uint8x8_t a,uint8x8_t b)4982 uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) {
4983 return vmul_u8(a, b);
4984 }
4985
4986 // CHECK: test_vmul_u16
4987 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u16(uint16x4_t a,uint16x4_t b)4988 uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) {
4989 return vmul_u16(a, b);
4990 }
4991
4992 // CHECK: test_vmul_u32
4993 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u32(uint32x2_t a,uint32x2_t b)4994 uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) {
4995 return vmul_u32(a, b);
4996 }
4997
4998 // CHECK: test_vmulq_s8
4999 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s8(int8x16_t a,int8x16_t b)5000 int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) {
5001 return vmulq_s8(a, b);
5002 }
5003
5004 // CHECK: test_vmulq_s16
5005 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s16(int16x8_t a,int16x8_t b)5006 int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) {
5007 return vmulq_s16(a, b);
5008 }
5009
5010 // CHECK: test_vmulq_s32
5011 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s32(int32x4_t a,int32x4_t b)5012 int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) {
5013 return vmulq_s32(a, b);
5014 }
5015
5016 // CHECK: test_vmulq_f32
5017 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_f32(float32x4_t a,float32x4_t b)5018 float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) {
5019 return vmulq_f32(a, b);
5020 }
5021
5022 // CHECK: test_vmulq_u8
5023 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u8(uint8x16_t a,uint8x16_t b)5024 uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) {
5025 return vmulq_u8(a, b);
5026 }
5027
5028 // CHECK: test_vmulq_u16
5029 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u16(uint16x8_t a,uint16x8_t b)5030 uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) {
5031 return vmulq_u16(a, b);
5032 }
5033
5034 // CHECK: test_vmulq_u32
5035 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u32(uint32x4_t a,uint32x4_t b)5036 uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) {
5037 return vmulq_u32(a, b);
5038 }
5039
5040
5041 // CHECK: test_vmull_s8
5042 // CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s8(int8x8_t a,int8x8_t b)5043 int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) {
5044 return vmull_s8(a, b);
5045 }
5046
5047 // CHECK: test_vmull_s16
5048 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s16(int16x4_t a,int16x4_t b)5049 int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) {
5050 return vmull_s16(a, b);
5051 }
5052
5053 // CHECK: test_vmull_s32
5054 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s32(int32x2_t a,int32x2_t b)5055 int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) {
5056 return vmull_s32(a, b);
5057 }
5058
5059 // CHECK: test_vmull_u8
5060 // CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u8(uint8x8_t a,uint8x8_t b)5061 uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) {
5062 return vmull_u8(a, b);
5063 }
5064
5065 // CHECK: test_vmull_u16
5066 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u16(uint16x4_t a,uint16x4_t b)5067 uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) {
5068 return vmull_u16(a, b);
5069 }
5070
5071 // CHECK: test_vmull_u32
5072 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u32(uint32x2_t a,uint32x2_t b)5073 uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) {
5074 return vmull_u32(a, b);
5075 }
5076
5077 // CHECK: test_vmull_p8
5078 // CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_p8(poly8x8_t a,poly8x8_t b)5079 poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) {
5080 return vmull_p8(a, b);
5081 }
5082
5083
5084 // CHECK: test_vmull_lane_s16
5085 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s16(int16x4_t a,int16x4_t b)5086 int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) {
5087 return vmull_lane_s16(a, b, 3);
5088 }
5089
5090 // CHECK: test_vmull_lane_s32
5091 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s32(int32x2_t a,int32x2_t b)5092 int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) {
5093 return vmull_lane_s32(a, b, 1);
5094 }
5095
5096 // CHECK: test_vmull_lane_u16
5097 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u16(uint16x4_t a,uint16x4_t b)5098 uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) {
5099 return vmull_lane_u16(a, b, 3);
5100 }
5101
5102 // CHECK: test_vmull_lane_u32
5103 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u32(uint32x2_t a,uint32x2_t b)5104 uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) {
5105 return vmull_lane_u32(a, b, 1);
5106 }
5107
5108
5109 // CHECK: test_vmull_n_s16
5110 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s16(int16x4_t a,int16_t b)5111 int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
5112 return vmull_n_s16(a, b);
5113 }
5114
5115 // CHECK: test_vmull_n_s32
5116 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s32(int32x2_t a,int32_t b)5117 int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
5118 return vmull_n_s32(a, b);
5119 }
5120
5121 // CHECK: test_vmull_n_u16
5122 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u16(uint16x4_t a,uint16_t b)5123 uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
5124 return vmull_n_u16(a, b);
5125 }
5126
5127 // CHECK: test_vmull_n_u32
5128 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u32(uint32x2_t a,uint32_t b)5129 uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
5130 return vmull_n_u32(a, b);
5131 }
5132
5133
5134 // CHECK: test_vmul_p8
5135 // CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_p8(poly8x8_t a,poly8x8_t b)5136 poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) {
5137 return vmul_p8(a, b);
5138 }
5139
5140 // CHECK: test_vmulq_p8
5141 // CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_p8(poly8x16_t a,poly8x16_t b)5142 poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) {
5143 return vmulq_p8(a, b);
5144 }
5145
5146
5147 // CHECK: test_vmul_lane_s16
5148 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s16(int16x4_t a,int16x4_t b)5149 int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) {
5150 return vmul_lane_s16(a, b, 3);
5151 }
5152
5153 // CHECK: test_vmul_lane_s32
5154 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s32(int32x2_t a,int32x2_t b)5155 int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) {
5156 return vmul_lane_s32(a, b, 1);
5157 }
5158
5159 // CHECK: test_vmul_lane_f32
5160 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_f32(float32x2_t a,float32x2_t b)5161 float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) {
5162 return vmul_lane_f32(a, b, 1);
5163 }
5164
5165 // CHECK: test_vmul_lane_u16
5166 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u16(uint16x4_t a,uint16x4_t b)5167 uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) {
5168 return vmul_lane_u16(a, b, 3);
5169 }
5170
5171 // CHECK: test_vmul_lane_u32
5172 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u32(uint32x2_t a,uint32x2_t b)5173 uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) {
5174 return vmul_lane_u32(a, b, 1);
5175 }
5176
5177 // CHECK: test_vmulq_lane_s16
5178 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s16(int16x8_t a,int16x4_t b)5179 int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) {
5180 return vmulq_lane_s16(a, b, 3);
5181 }
5182
5183 // CHECK: test_vmulq_lane_s32
5184 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s32(int32x4_t a,int32x2_t b)5185 int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) {
5186 return vmulq_lane_s32(a, b, 1);
5187 }
5188
5189 // CHECK: test_vmulq_lane_f32
5190 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_f32(float32x4_t a,float32x2_t b)5191 float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) {
5192 return vmulq_lane_f32(a, b, 1);
5193 }
5194
5195 // CHECK: test_vmulq_lane_u16
5196 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u16(uint16x8_t a,uint16x4_t b)5197 uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) {
5198 return vmulq_lane_u16(a, b, 3);
5199 }
5200
5201 // CHECK: test_vmulq_lane_u32
5202 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u32(uint32x4_t a,uint32x2_t b)5203 uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) {
5204 return vmulq_lane_u32(a, b, 1);
5205 }
5206
5207
5208 // CHECK: test_vmul_n_s16
5209 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s16(int16x4_t a,int16_t b)5210 int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
5211 return vmul_n_s16(a, b);
5212 }
5213
5214 // CHECK: test_vmul_n_s32
5215 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s32(int32x2_t a,int32_t b)5216 int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
5217 return vmul_n_s32(a, b);
5218 }
5219
5220 // CHECK: test_vmul_n_f32
5221 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_f32(float32x2_t a,float32_t b)5222 float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
5223 return vmul_n_f32(a, b);
5224 }
5225
5226 // CHECK: test_vmul_n_u16
5227 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u16(uint16x4_t a,uint16_t b)5228 uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
5229 return vmul_n_u16(a, b);
5230 }
5231
5232 // CHECK: test_vmul_n_u32
5233 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u32(uint32x2_t a,uint32_t b)5234 uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
5235 return vmul_n_u32(a, b);
5236 }
5237
5238 // CHECK: test_vmulq_n_s16
5239 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s16(int16x8_t a,int16_t b)5240 int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
5241 return vmulq_n_s16(a, b);
5242 }
5243
5244 // CHECK: test_vmulq_n_s32
5245 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s32(int32x4_t a,int32_t b)5246 int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
5247 return vmulq_n_s32(a, b);
5248 }
5249
5250 // CHECK: test_vmulq_n_f32
5251 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_f32(float32x4_t a,float32_t b)5252 float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
5253 return vmulq_n_f32(a, b);
5254 }
5255
5256 // CHECK: test_vmulq_n_u16
5257 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u16(uint16x8_t a,uint16_t b)5258 uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
5259 return vmulq_n_u16(a, b);
5260 }
5261
5262 // CHECK: test_vmulq_n_u32
5263 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u32(uint32x4_t a,uint32_t b)5264 uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
5265 return vmulq_n_u32(a, b);
5266 }
5267
5268
5269 // CHECK: test_vmvn_s8
5270 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s8(int8x8_t a)5271 int8x8_t test_vmvn_s8(int8x8_t a) {
5272 return vmvn_s8(a);
5273 }
5274
5275 // CHECK: test_vmvn_s16
5276 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s16(int16x4_t a)5277 int16x4_t test_vmvn_s16(int16x4_t a) {
5278 return vmvn_s16(a);
5279 }
5280
5281 // CHECK: test_vmvn_s32
5282 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s32(int32x2_t a)5283 int32x2_t test_vmvn_s32(int32x2_t a) {
5284 return vmvn_s32(a);
5285 }
5286
5287 // CHECK: test_vmvn_u8
5288 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u8(uint8x8_t a)5289 uint8x8_t test_vmvn_u8(uint8x8_t a) {
5290 return vmvn_u8(a);
5291 }
5292
5293 // CHECK: test_vmvn_u16
5294 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u16(uint16x4_t a)5295 uint16x4_t test_vmvn_u16(uint16x4_t a) {
5296 return vmvn_u16(a);
5297 }
5298
5299 // CHECK: test_vmvn_u32
5300 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u32(uint32x2_t a)5301 uint32x2_t test_vmvn_u32(uint32x2_t a) {
5302 return vmvn_u32(a);
5303 }
5304
5305 // CHECK: test_vmvn_p8
5306 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_p8(poly8x8_t a)5307 poly8x8_t test_vmvn_p8(poly8x8_t a) {
5308 return vmvn_p8(a);
5309 }
5310
5311 // CHECK: test_vmvnq_s8
5312 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s8(int8x16_t a)5313 int8x16_t test_vmvnq_s8(int8x16_t a) {
5314 return vmvnq_s8(a);
5315 }
5316
5317 // CHECK: test_vmvnq_s16
5318 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s16(int16x8_t a)5319 int16x8_t test_vmvnq_s16(int16x8_t a) {
5320 return vmvnq_s16(a);
5321 }
5322
5323 // CHECK: test_vmvnq_s32
5324 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s32(int32x4_t a)5325 int32x4_t test_vmvnq_s32(int32x4_t a) {
5326 return vmvnq_s32(a);
5327 }
5328
5329 // CHECK: test_vmvnq_u8
5330 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u8(uint8x16_t a)5331 uint8x16_t test_vmvnq_u8(uint8x16_t a) {
5332 return vmvnq_u8(a);
5333 }
5334
5335 // CHECK: test_vmvnq_u16
5336 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u16(uint16x8_t a)5337 uint16x8_t test_vmvnq_u16(uint16x8_t a) {
5338 return vmvnq_u16(a);
5339 }
5340
5341 // CHECK: test_vmvnq_u32
5342 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u32(uint32x4_t a)5343 uint32x4_t test_vmvnq_u32(uint32x4_t a) {
5344 return vmvnq_u32(a);
5345 }
5346
5347 // CHECK: test_vmvnq_p8
5348 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_p8(poly8x16_t a)5349 poly8x16_t test_vmvnq_p8(poly8x16_t a) {
5350 return vmvnq_p8(a);
5351 }
5352
5353
5354 // CHECK: test_vneg_s8
5355 // CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s8(int8x8_t a)5356 int8x8_t test_vneg_s8(int8x8_t a) {
5357 return vneg_s8(a);
5358 }
5359
5360 // CHECK: test_vneg_s16
5361 // CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s16(int16x4_t a)5362 int16x4_t test_vneg_s16(int16x4_t a) {
5363 return vneg_s16(a);
5364 }
5365
5366 // CHECK: test_vneg_s32
5367 // CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s32(int32x2_t a)5368 int32x2_t test_vneg_s32(int32x2_t a) {
5369 return vneg_s32(a);
5370 }
5371
5372 // CHECK: test_vneg_f32
5373 // CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_f32(float32x2_t a)5374 float32x2_t test_vneg_f32(float32x2_t a) {
5375 return vneg_f32(a);
5376 }
5377
5378 // CHECK: test_vnegq_s8
5379 // CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s8(int8x16_t a)5380 int8x16_t test_vnegq_s8(int8x16_t a) {
5381 return vnegq_s8(a);
5382 }
5383
5384 // CHECK: test_vnegq_s16
5385 // CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s16(int16x8_t a)5386 int16x8_t test_vnegq_s16(int16x8_t a) {
5387 return vnegq_s16(a);
5388 }
5389
5390 // CHECK: test_vnegq_s32
5391 // CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s32(int32x4_t a)5392 int32x4_t test_vnegq_s32(int32x4_t a) {
5393 return vnegq_s32(a);
5394 }
5395
5396 // CHECK: test_vnegq_f32
5397 // CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_f32(float32x4_t a)5398 float32x4_t test_vnegq_f32(float32x4_t a) {
5399 return vnegq_f32(a);
5400 }
5401
5402
5403 // CHECK: test_vorn_s8
5404 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s8(int8x8_t a,int8x8_t b)5405 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
5406 return vorn_s8(a, b);
5407 }
5408
5409 // CHECK: test_vorn_s16
5410 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s16(int16x4_t a,int16x4_t b)5411 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
5412 return vorn_s16(a, b);
5413 }
5414
5415 // CHECK: test_vorn_s32
5416 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s32(int32x2_t a,int32x2_t b)5417 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
5418 return vorn_s32(a, b);
5419 }
5420
5421 // CHECK: test_vorn_s64
5422 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s64(int64x1_t a,int64x1_t b)5423 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
5424 return vorn_s64(a, b);
5425 }
5426
5427 // CHECK: test_vorn_u8
5428 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u8(uint8x8_t a,uint8x8_t b)5429 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
5430 return vorn_u8(a, b);
5431 }
5432
5433 // CHECK: test_vorn_u16
5434 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u16(uint16x4_t a,uint16x4_t b)5435 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
5436 return vorn_u16(a, b);
5437 }
5438
5439 // CHECK: test_vorn_u32
5440 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u32(uint32x2_t a,uint32x2_t b)5441 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
5442 return vorn_u32(a, b);
5443 }
5444
5445 // CHECK: test_vorn_u64
5446 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u64(uint64x1_t a,uint64x1_t b)5447 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
5448 return vorn_u64(a, b);
5449 }
5450
5451 // CHECK: test_vornq_s8
5452 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s8(int8x16_t a,int8x16_t b)5453 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
5454 return vornq_s8(a, b);
5455 }
5456
5457 // CHECK: test_vornq_s16
5458 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s16(int16x8_t a,int16x8_t b)5459 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
5460 return vornq_s16(a, b);
5461 }
5462
5463 // CHECK: test_vornq_s32
5464 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s32(int32x4_t a,int32x4_t b)5465 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
5466 return vornq_s32(a, b);
5467 }
5468
5469 // CHECK: test_vornq_s64
5470 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s64(int64x2_t a,int64x2_t b)5471 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
5472 return vornq_s64(a, b);
5473 }
5474
5475 // CHECK: test_vornq_u8
5476 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u8(uint8x16_t a,uint8x16_t b)5477 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
5478 return vornq_u8(a, b);
5479 }
5480
5481 // CHECK: test_vornq_u16
5482 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u16(uint16x8_t a,uint16x8_t b)5483 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
5484 return vornq_u16(a, b);
5485 }
5486
5487 // CHECK: test_vornq_u32
5488 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u32(uint32x4_t a,uint32x4_t b)5489 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
5490 return vornq_u32(a, b);
5491 }
5492
5493 // CHECK: test_vornq_u64
5494 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u64(uint64x2_t a,uint64x2_t b)5495 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
5496 return vornq_u64(a, b);
5497 }
5498
5499
5500 // CHECK: test_vorr_s8
5501 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s8(int8x8_t a,int8x8_t b)5502 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
5503 return vorr_s8(a, b);
5504 }
5505
5506 // CHECK: test_vorr_s16
5507 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s16(int16x4_t a,int16x4_t b)5508 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
5509 return vorr_s16(a, b);
5510 }
5511
5512 // CHECK: test_vorr_s32
5513 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s32(int32x2_t a,int32x2_t b)5514 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
5515 return vorr_s32(a, b);
5516 }
5517
5518 // CHECK: test_vorr_s64
5519 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s64(int64x1_t a,int64x1_t b)5520 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
5521 return vorr_s64(a, b);
5522 }
5523
5524 // CHECK: test_vorr_u8
5525 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u8(uint8x8_t a,uint8x8_t b)5526 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
5527 return vorr_u8(a, b);
5528 }
5529
5530 // CHECK: test_vorr_u16
5531 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u16(uint16x4_t a,uint16x4_t b)5532 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
5533 return vorr_u16(a, b);
5534 }
5535
5536 // CHECK: test_vorr_u32
5537 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u32(uint32x2_t a,uint32x2_t b)5538 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
5539 return vorr_u32(a, b);
5540 }
5541
5542 // CHECK: test_vorr_u64
5543 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u64(uint64x1_t a,uint64x1_t b)5544 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
5545 return vorr_u64(a, b);
5546 }
5547
5548 // CHECK: test_vorrq_s8
5549 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s8(int8x16_t a,int8x16_t b)5550 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
5551 return vorrq_s8(a, b);
5552 }
5553
5554 // CHECK: test_vorrq_s16
5555 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s16(int16x8_t a,int16x8_t b)5556 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
5557 return vorrq_s16(a, b);
5558 }
5559
5560 // CHECK: test_vorrq_s32
5561 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s32(int32x4_t a,int32x4_t b)5562 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
5563 return vorrq_s32(a, b);
5564 }
5565
5566 // CHECK: test_vorrq_s64
5567 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s64(int64x2_t a,int64x2_t b)5568 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
5569 return vorrq_s64(a, b);
5570 }
5571
5572 // CHECK: test_vorrq_u8
5573 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u8(uint8x16_t a,uint8x16_t b)5574 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
5575 return vorrq_u8(a, b);
5576 }
5577
5578 // CHECK: test_vorrq_u16
5579 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u16(uint16x8_t a,uint16x8_t b)5580 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
5581 return vorrq_u16(a, b);
5582 }
5583
5584 // CHECK: test_vorrq_u32
5585 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u32(uint32x4_t a,uint32x4_t b)5586 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
5587 return vorrq_u32(a, b);
5588 }
5589
5590 // CHECK: test_vorrq_u64
5591 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u64(uint64x2_t a,uint64x2_t b)5592 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
5593 return vorrq_u64(a, b);
5594 }
5595
5596
5597 // CHECK: test_vpadal_s8
5598 // CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s8(int16x4_t a,int8x8_t b)5599 int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) {
5600 return vpadal_s8(a, b);
5601 }
5602
5603 // CHECK: test_vpadal_s16
5604 // CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s16(int32x2_t a,int16x4_t b)5605 int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) {
5606 return vpadal_s16(a, b);
5607 }
5608
5609 // CHECK: test_vpadal_s32
5610 // CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s32(int64x1_t a,int32x2_t b)5611 int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) {
5612 return vpadal_s32(a, b);
5613 }
5614
5615 // CHECK: test_vpadal_u8
5616 // CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u8(uint16x4_t a,uint8x8_t b)5617 uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) {
5618 return vpadal_u8(a, b);
5619 }
5620
5621 // CHECK: test_vpadal_u16
5622 // CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u16(uint32x2_t a,uint16x4_t b)5623 uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) {
5624 return vpadal_u16(a, b);
5625 }
5626
5627 // CHECK: test_vpadal_u32
5628 // CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u32(uint64x1_t a,uint32x2_t b)5629 uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) {
5630 return vpadal_u32(a, b);
5631 }
5632
5633 // CHECK: test_vpadalq_s8
5634 // CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s8(int16x8_t a,int8x16_t b)5635 int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) {
5636 return vpadalq_s8(a, b);
5637 }
5638
5639 // CHECK: test_vpadalq_s16
5640 // CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s16(int32x4_t a,int16x8_t b)5641 int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) {
5642 return vpadalq_s16(a, b);
5643 }
5644
5645 // CHECK: test_vpadalq_s32
5646 // CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s32(int64x2_t a,int32x4_t b)5647 int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) {
5648 return vpadalq_s32(a, b);
5649 }
5650
5651 // CHECK: test_vpadalq_u8
5652 // CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u8(uint16x8_t a,uint8x16_t b)5653 uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) {
5654 return vpadalq_u8(a, b);
5655 }
5656
5657 // CHECK: test_vpadalq_u16
5658 // CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u16(uint32x4_t a,uint16x8_t b)5659 uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) {
5660 return vpadalq_u16(a, b);
5661 }
5662
5663 // CHECK: test_vpadalq_u32
5664 // CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u32(uint64x2_t a,uint32x4_t b)5665 uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) {
5666 return vpadalq_u32(a, b);
5667 }
5668
5669
5670 // CHECK: test_vpadd_s8
5671 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s8(int8x8_t a,int8x8_t b)5672 int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) {
5673 return vpadd_s8(a, b);
5674 }
5675
5676 // CHECK: test_vpadd_s16
5677 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s16(int16x4_t a,int16x4_t b)5678 int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) {
5679 return vpadd_s16(a, b);
5680 }
5681
5682 // CHECK: test_vpadd_s32
5683 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s32(int32x2_t a,int32x2_t b)5684 int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) {
5685 return vpadd_s32(a, b);
5686 }
5687
5688 // CHECK: test_vpadd_u8
5689 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u8(uint8x8_t a,uint8x8_t b)5690 uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) {
5691 return vpadd_u8(a, b);
5692 }
5693
5694 // CHECK: test_vpadd_u16
5695 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u16(uint16x4_t a,uint16x4_t b)5696 uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) {
5697 return vpadd_u16(a, b);
5698 }
5699
5700 // CHECK: test_vpadd_u32
5701 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u32(uint32x2_t a,uint32x2_t b)5702 uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) {
5703 return vpadd_u32(a, b);
5704 }
5705
5706 // CHECK: test_vpadd_f32
5707 // CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_f32(float32x2_t a,float32x2_t b)5708 float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) {
5709 return vpadd_f32(a, b);
5710 }
5711
5712
5713 // CHECK: test_vpaddl_s8
5714 // CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s8(int8x8_t a)5715 int16x4_t test_vpaddl_s8(int8x8_t a) {
5716 return vpaddl_s8(a);
5717 }
5718
5719 // CHECK: test_vpaddl_s16
5720 // CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s16(int16x4_t a)5721 int32x2_t test_vpaddl_s16(int16x4_t a) {
5722 return vpaddl_s16(a);
5723 }
5724
5725 // CHECK: test_vpaddl_s32
5726 // CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s32(int32x2_t a)5727 int64x1_t test_vpaddl_s32(int32x2_t a) {
5728 return vpaddl_s32(a);
5729 }
5730
5731 // CHECK: test_vpaddl_u8
5732 // CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u8(uint8x8_t a)5733 uint16x4_t test_vpaddl_u8(uint8x8_t a) {
5734 return vpaddl_u8(a);
5735 }
5736
5737 // CHECK: test_vpaddl_u16
5738 // CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u16(uint16x4_t a)5739 uint32x2_t test_vpaddl_u16(uint16x4_t a) {
5740 return vpaddl_u16(a);
5741 }
5742
5743 // CHECK: test_vpaddl_u32
5744 // CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u32(uint32x2_t a)5745 uint64x1_t test_vpaddl_u32(uint32x2_t a) {
5746 return vpaddl_u32(a);
5747 }
5748
5749 // CHECK: test_vpaddlq_s8
5750 // CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s8(int8x16_t a)5751 int16x8_t test_vpaddlq_s8(int8x16_t a) {
5752 return vpaddlq_s8(a);
5753 }
5754
5755 // CHECK: test_vpaddlq_s16
5756 // CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s16(int16x8_t a)5757 int32x4_t test_vpaddlq_s16(int16x8_t a) {
5758 return vpaddlq_s16(a);
5759 }
5760
5761 // CHECK: test_vpaddlq_s32
5762 // CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s32(int32x4_t a)5763 int64x2_t test_vpaddlq_s32(int32x4_t a) {
5764 return vpaddlq_s32(a);
5765 }
5766
5767 // CHECK: test_vpaddlq_u8
5768 // CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u8(uint8x16_t a)5769 uint16x8_t test_vpaddlq_u8(uint8x16_t a) {
5770 return vpaddlq_u8(a);
5771 }
5772
5773 // CHECK: test_vpaddlq_u16
5774 // CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u16(uint16x8_t a)5775 uint32x4_t test_vpaddlq_u16(uint16x8_t a) {
5776 return vpaddlq_u16(a);
5777 }
5778
5779 // CHECK: test_vpaddlq_u32
5780 // CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u32(uint32x4_t a)5781 uint64x2_t test_vpaddlq_u32(uint32x4_t a) {
5782 return vpaddlq_u32(a);
5783 }
5784
5785
5786 // CHECK: test_vpmax_s8
5787 // CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s8(int8x8_t a,int8x8_t b)5788 int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) {
5789 return vpmax_s8(a, b);
5790 }
5791
5792 // CHECK: test_vpmax_s16
5793 // CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s16(int16x4_t a,int16x4_t b)5794 int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) {
5795 return vpmax_s16(a, b);
5796 }
5797
5798 // CHECK: test_vpmax_s32
5799 // CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s32(int32x2_t a,int32x2_t b)5800 int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) {
5801 return vpmax_s32(a, b);
5802 }
5803
5804 // CHECK: test_vpmax_u8
5805 // CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u8(uint8x8_t a,uint8x8_t b)5806 uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) {
5807 return vpmax_u8(a, b);
5808 }
5809
5810 // CHECK: test_vpmax_u16
5811 // CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u16(uint16x4_t a,uint16x4_t b)5812 uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) {
5813 return vpmax_u16(a, b);
5814 }
5815
5816 // CHECK: test_vpmax_u32
5817 // CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u32(uint32x2_t a,uint32x2_t b)5818 uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) {
5819 return vpmax_u32(a, b);
5820 }
5821
5822 // CHECK: test_vpmax_f32
5823 // CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_f32(float32x2_t a,float32x2_t b)5824 float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) {
5825 return vpmax_f32(a, b);
5826 }
5827
5828
5829 // CHECK: test_vpmin_s8
5830 // CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s8(int8x8_t a,int8x8_t b)5831 int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) {
5832 return vpmin_s8(a, b);
5833 }
5834
5835 // CHECK: test_vpmin_s16
5836 // CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s16(int16x4_t a,int16x4_t b)5837 int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) {
5838 return vpmin_s16(a, b);
5839 }
5840
5841 // CHECK: test_vpmin_s32
5842 // CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s32(int32x2_t a,int32x2_t b)5843 int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) {
5844 return vpmin_s32(a, b);
5845 }
5846
5847 // CHECK: test_vpmin_u8
5848 // CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u8(uint8x8_t a,uint8x8_t b)5849 uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) {
5850 return vpmin_u8(a, b);
5851 }
5852
5853 // CHECK: test_vpmin_u16
5854 // CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u16(uint16x4_t a,uint16x4_t b)5855 uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) {
5856 return vpmin_u16(a, b);
5857 }
5858
5859 // CHECK: test_vpmin_u32
5860 // CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u32(uint32x2_t a,uint32x2_t b)5861 uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) {
5862 return vpmin_u32(a, b);
5863 }
5864
5865 // CHECK: test_vpmin_f32
5866 // CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_f32(float32x2_t a,float32x2_t b)5867 float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) {
5868 return vpmin_f32(a, b);
5869 }
5870
5871
5872 // CHECK: test_vqabs_s8
5873 // CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s8(int8x8_t a)5874 int8x8_t test_vqabs_s8(int8x8_t a) {
5875 return vqabs_s8(a);
5876 }
5877
5878 // CHECK: test_vqabs_s16
5879 // CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s16(int16x4_t a)5880 int16x4_t test_vqabs_s16(int16x4_t a) {
5881 return vqabs_s16(a);
5882 }
5883
5884 // CHECK: test_vqabs_s32
5885 // CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s32(int32x2_t a)5886 int32x2_t test_vqabs_s32(int32x2_t a) {
5887 return vqabs_s32(a);
5888 }
5889
5890 // CHECK: test_vqabsq_s8
5891 // CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s8(int8x16_t a)5892 int8x16_t test_vqabsq_s8(int8x16_t a) {
5893 return vqabsq_s8(a);
5894 }
5895
5896 // CHECK: test_vqabsq_s16
5897 // CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s16(int16x8_t a)5898 int16x8_t test_vqabsq_s16(int16x8_t a) {
5899 return vqabsq_s16(a);
5900 }
5901
5902 // CHECK: test_vqabsq_s32
5903 // CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s32(int32x4_t a)5904 int32x4_t test_vqabsq_s32(int32x4_t a) {
5905 return vqabsq_s32(a);
5906 }
5907
5908
5909 // CHECK: test_vqadd_s8
5910 // CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s8(int8x8_t a,int8x8_t b)5911 int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) {
5912 return vqadd_s8(a, b);
5913 }
5914
5915 // CHECK: test_vqadd_s16
5916 // CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s16(int16x4_t a,int16x4_t b)5917 int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) {
5918 return vqadd_s16(a, b);
5919 }
5920
5921 // CHECK: test_vqadd_s32
5922 // CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s32(int32x2_t a,int32x2_t b)5923 int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) {
5924 return vqadd_s32(a, b);
5925 }
5926
5927 // CHECK: test_vqadd_s64
5928 // CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s64(int64x1_t a,int64x1_t b)5929 int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) {
5930 return vqadd_s64(a, b);
5931 }
5932
5933 // CHECK: test_vqadd_u8
5934 // CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u8(uint8x8_t a,uint8x8_t b)5935 uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) {
5936 return vqadd_u8(a, b);
5937 }
5938
5939 // CHECK: test_vqadd_u16
5940 // CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u16(uint16x4_t a,uint16x4_t b)5941 uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) {
5942 return vqadd_u16(a, b);
5943 }
5944
5945 // CHECK: test_vqadd_u32
5946 // CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u32(uint32x2_t a,uint32x2_t b)5947 uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) {
5948 return vqadd_u32(a, b);
5949 }
5950
5951 // CHECK: test_vqadd_u64
5952 // CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u64(uint64x1_t a,uint64x1_t b)5953 uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) {
5954 return vqadd_u64(a, b);
5955 }
5956
5957 // CHECK: test_vqaddq_s8
5958 // CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s8(int8x16_t a,int8x16_t b)5959 int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) {
5960 return vqaddq_s8(a, b);
5961 }
5962
5963 // CHECK: test_vqaddq_s16
5964 // CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s16(int16x8_t a,int16x8_t b)5965 int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) {
5966 return vqaddq_s16(a, b);
5967 }
5968
5969 // CHECK: test_vqaddq_s32
5970 // CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s32(int32x4_t a,int32x4_t b)5971 int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) {
5972 return vqaddq_s32(a, b);
5973 }
5974
5975 // CHECK: test_vqaddq_s64
5976 // CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s64(int64x2_t a,int64x2_t b)5977 int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) {
5978 return vqaddq_s64(a, b);
5979 }
5980
5981 // CHECK: test_vqaddq_u8
5982 // CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u8(uint8x16_t a,uint8x16_t b)5983 uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) {
5984 return vqaddq_u8(a, b);
5985 }
5986
5987 // CHECK: test_vqaddq_u16
5988 // CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u16(uint16x8_t a,uint16x8_t b)5989 uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) {
5990 return vqaddq_u16(a, b);
5991 }
5992
5993 // CHECK: test_vqaddq_u32
5994 // CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u32(uint32x4_t a,uint32x4_t b)5995 uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) {
5996 return vqaddq_u32(a, b);
5997 }
5998
5999 // CHECK: test_vqaddq_u64
6000 // CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u64(uint64x2_t a,uint64x2_t b)6001 uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) {
6002 return vqaddq_u64(a, b);
6003 }
6004
6005
6006 // CHECK: test_vqdmlal_s16
6007 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6008 int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6009 return vqdmlal_s16(a, b, c);
6010 }
6011
6012 // CHECK: test_vqdmlal_s32
6013 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6014 int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6015 return vqdmlal_s32(a, b, c);
6016 }
6017
6018
6019 // CHECK: test_vqdmlal_lane_s16
6020 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)6021 int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6022 return vqdmlal_lane_s16(a, b, c, 3);
6023 }
6024
6025 // CHECK: test_vqdmlal_lane_s32
6026 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)6027 int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6028 return vqdmlal_lane_s32(a, b, c, 1);
6029 }
6030
6031
6032 // CHECK: test_vqdmlal_n_s16
6033 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)6034 int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6035 return vqdmlal_n_s16(a, b, c);
6036 }
6037
6038 // CHECK: test_vqdmlal_n_s32
6039 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)6040 int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6041 return vqdmlal_n_s32(a, b, c);
6042 }
6043
6044
6045 // CHECK: test_vqdmlsl_s16
6046 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)6047 int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6048 return vqdmlsl_s16(a, b, c);
6049 }
6050
6051 // CHECK: test_vqdmlsl_s32
6052 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)6053 int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6054 return vqdmlsl_s32(a, b, c);
6055 }
6056
6057
6058 // CHECK: test_vqdmlsl_lane_s16
6059 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)6060 int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6061 return vqdmlsl_lane_s16(a, b, c, 3);
6062 }
6063
6064 // CHECK: test_vqdmlsl_lane_s32
6065 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)6066 int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6067 return vqdmlsl_lane_s32(a, b, c, 1);
6068 }
6069
6070
6071 // CHECK: test_vqdmlsl_n_s16
6072 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)6073 int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6074 return vqdmlsl_n_s16(a, b, c);
6075 }
6076
6077 // CHECK: test_vqdmlsl_n_s32
6078 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)6079 int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6080 return vqdmlsl_n_s32(a, b, c);
6081 }
6082
6083
6084 // CHECK: test_vqdmulh_s16
6085 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s16(int16x4_t a,int16x4_t b)6086 int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) {
6087 return vqdmulh_s16(a, b);
6088 }
6089
6090 // CHECK: test_vqdmulh_s32
6091 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s32(int32x2_t a,int32x2_t b)6092 int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) {
6093 return vqdmulh_s32(a, b);
6094 }
6095
6096 // CHECK: test_vqdmulhq_s16
6097 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s16(int16x8_t a,int16x8_t b)6098 int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) {
6099 return vqdmulhq_s16(a, b);
6100 }
6101
6102 // CHECK: test_vqdmulhq_s32
6103 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s32(int32x4_t a,int32x4_t b)6104 int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) {
6105 return vqdmulhq_s32(a, b);
6106 }
6107
6108
6109 // CHECK: test_vqdmulh_lane_s16
6110 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s16(int16x4_t a,int16x4_t b)6111 int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6112 return vqdmulh_lane_s16(a, b, 3);
6113 }
6114
6115 // CHECK: test_vqdmulh_lane_s32
6116 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s32(int32x2_t a,int32x2_t b)6117 int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6118 return vqdmulh_lane_s32(a, b, 1);
6119 }
6120
6121 // CHECK: test_vqdmulhq_lane_s16
6122 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s16(int16x8_t a,int16x4_t b)6123 int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6124 return vqdmulhq_lane_s16(a, b, 3);
6125 }
6126
6127 // CHECK: test_vqdmulhq_lane_s32
6128 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s32(int32x4_t a,int32x2_t b)6129 int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6130 return vqdmulhq_lane_s32(a, b, 1);
6131 }
6132
6133
6134 // CHECK: test_vqdmulh_n_s16
6135 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s16(int16x4_t a,int16_t b)6136 int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
6137 return vqdmulh_n_s16(a, b);
6138 }
6139
6140 // CHECK: test_vqdmulh_n_s32
6141 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s32(int32x2_t a,int32_t b)6142 int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
6143 return vqdmulh_n_s32(a, b);
6144 }
6145
6146 // CHECK: test_vqdmulhq_n_s16
6147 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s16(int16x8_t a,int16_t b)6148 int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
6149 return vqdmulhq_n_s16(a, b);
6150 }
6151
6152 // CHECK: test_vqdmulhq_n_s32
6153 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s32(int32x4_t a,int32_t b)6154 int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
6155 return vqdmulhq_n_s32(a, b);
6156 }
6157
6158
6159 // CHECK: test_vqdmull_s16
6160 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s16(int16x4_t a,int16x4_t b)6161 int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) {
6162 return vqdmull_s16(a, b);
6163 }
6164
6165 // CHECK: test_vqdmull_s32
6166 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s32(int32x2_t a,int32x2_t b)6167 int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) {
6168 return vqdmull_s32(a, b);
6169 }
6170
6171
6172 // CHECK: test_vqdmull_lane_s16
6173 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s16(int16x4_t a,int16x4_t b)6174 int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) {
6175 return vqdmull_lane_s16(a, b, 3);
6176 }
6177
6178 // CHECK: test_vqdmull_lane_s32
6179 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s32(int32x2_t a,int32x2_t b)6180 int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) {
6181 return vqdmull_lane_s32(a, b, 1);
6182 }
6183
6184
6185 // CHECK: test_vqdmull_n_s16
6186 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s16(int16x4_t a,int16_t b)6187 int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
6188 return vqdmull_n_s16(a, b);
6189 }
6190
6191 // CHECK: test_vqdmull_n_s32
6192 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s32(int32x2_t a,int32_t b)6193 int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
6194 return vqdmull_n_s32(a, b);
6195 }
6196
6197
6198 // CHECK: test_vqmovn_s16
6199 // CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s16(int16x8_t a)6200 int8x8_t test_vqmovn_s16(int16x8_t a) {
6201 return vqmovn_s16(a);
6202 }
6203
6204 // CHECK: test_vqmovn_s32
6205 // CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s32(int32x4_t a)6206 int16x4_t test_vqmovn_s32(int32x4_t a) {
6207 return vqmovn_s32(a);
6208 }
6209
6210 // CHECK: test_vqmovn_s64
6211 // CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s64(int64x2_t a)6212 int32x2_t test_vqmovn_s64(int64x2_t a) {
6213 return vqmovn_s64(a);
6214 }
6215
6216 // CHECK: test_vqmovn_u16
6217 // CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u16(uint16x8_t a)6218 uint8x8_t test_vqmovn_u16(uint16x8_t a) {
6219 return vqmovn_u16(a);
6220 }
6221
6222 // CHECK: test_vqmovn_u32
6223 // CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u32(uint32x4_t a)6224 uint16x4_t test_vqmovn_u32(uint32x4_t a) {
6225 return vqmovn_u32(a);
6226 }
6227
6228 // CHECK: test_vqmovn_u64
6229 // CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u64(uint64x2_t a)6230 uint32x2_t test_vqmovn_u64(uint64x2_t a) {
6231 return vqmovn_u64(a);
6232 }
6233
6234
6235 // CHECK: test_vqmovun_s16
6236 // CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s16(int16x8_t a)6237 uint8x8_t test_vqmovun_s16(int16x8_t a) {
6238 return vqmovun_s16(a);
6239 }
6240
6241 // CHECK: test_vqmovun_s32
6242 // CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s32(int32x4_t a)6243 uint16x4_t test_vqmovun_s32(int32x4_t a) {
6244 return vqmovun_s32(a);
6245 }
6246
6247 // CHECK: test_vqmovun_s64
6248 // CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s64(int64x2_t a)6249 uint32x2_t test_vqmovun_s64(int64x2_t a) {
6250 return vqmovun_s64(a);
6251 }
6252
6253
6254 // CHECK: test_vqneg_s8
6255 // CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s8(int8x8_t a)6256 int8x8_t test_vqneg_s8(int8x8_t a) {
6257 return vqneg_s8(a);
6258 }
6259
6260 // CHECK: test_vqneg_s16
6261 // CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s16(int16x4_t a)6262 int16x4_t test_vqneg_s16(int16x4_t a) {
6263 return vqneg_s16(a);
6264 }
6265
6266 // CHECK: test_vqneg_s32
6267 // CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s32(int32x2_t a)6268 int32x2_t test_vqneg_s32(int32x2_t a) {
6269 return vqneg_s32(a);
6270 }
6271
6272 // CHECK: test_vqnegq_s8
6273 // CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s8(int8x16_t a)6274 int8x16_t test_vqnegq_s8(int8x16_t a) {
6275 return vqnegq_s8(a);
6276 }
6277
6278 // CHECK: test_vqnegq_s16
6279 // CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s16(int16x8_t a)6280 int16x8_t test_vqnegq_s16(int16x8_t a) {
6281 return vqnegq_s16(a);
6282 }
6283
6284 // CHECK: test_vqnegq_s32
6285 // CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s32(int32x4_t a)6286 int32x4_t test_vqnegq_s32(int32x4_t a) {
6287 return vqnegq_s32(a);
6288 }
6289
6290
6291 // CHECK: test_vqrdmulh_s16
6292 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s16(int16x4_t a,int16x4_t b)6293 int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) {
6294 return vqrdmulh_s16(a, b);
6295 }
6296
6297 // CHECK: test_vqrdmulh_s32
6298 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s32(int32x2_t a,int32x2_t b)6299 int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) {
6300 return vqrdmulh_s32(a, b);
6301 }
6302
6303 // CHECK: test_vqrdmulhq_s16
6304 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s16(int16x8_t a,int16x8_t b)6305 int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) {
6306 return vqrdmulhq_s16(a, b);
6307 }
6308
6309 // CHECK: test_vqrdmulhq_s32
6310 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s32(int32x4_t a,int32x4_t b)6311 int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) {
6312 return vqrdmulhq_s32(a, b);
6313 }
6314
6315
6316 // CHECK: test_vqrdmulh_lane_s16
6317 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s16(int16x4_t a,int16x4_t b)6318 int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6319 return vqrdmulh_lane_s16(a, b, 3);
6320 }
6321
6322 // CHECK: test_vqrdmulh_lane_s32
6323 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s32(int32x2_t a,int32x2_t b)6324 int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6325 return vqrdmulh_lane_s32(a, b, 1);
6326 }
6327
6328 // CHECK: test_vqrdmulhq_lane_s16
6329 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s16(int16x8_t a,int16x4_t b)6330 int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6331 return vqrdmulhq_lane_s16(a, b, 3);
6332 }
6333
6334 // CHECK: test_vqrdmulhq_lane_s32
6335 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s32(int32x4_t a,int32x2_t b)6336 int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6337 return vqrdmulhq_lane_s32(a, b, 1);
6338 }
6339
6340
6341 // CHECK: test_vqrdmulh_n_s16
6342 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s16(int16x4_t a,int16_t b)6343 int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
6344 return vqrdmulh_n_s16(a, b);
6345 }
6346
6347 // CHECK: test_vqrdmulh_n_s32
6348 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s32(int32x2_t a,int32_t b)6349 int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
6350 return vqrdmulh_n_s32(a, b);
6351 }
6352
6353 // CHECK: test_vqrdmulhq_n_s16
6354 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s16(int16x8_t a,int16_t b)6355 int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
6356 return vqrdmulhq_n_s16(a, b);
6357 }
6358
6359 // CHECK: test_vqrdmulhq_n_s32
6360 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s32(int32x4_t a,int32_t b)6361 int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
6362 return vqrdmulhq_n_s32(a, b);
6363 }
6364
6365
6366 // CHECK: test_vqrshl_s8
6367 // CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s8(int8x8_t a,int8x8_t b)6368 int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) {
6369 return vqrshl_s8(a, b);
6370 }
6371
6372 // CHECK: test_vqrshl_s16
6373 // CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s16(int16x4_t a,int16x4_t b)6374 int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) {
6375 return vqrshl_s16(a, b);
6376 }
6377
6378 // CHECK: test_vqrshl_s32
6379 // CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s32(int32x2_t a,int32x2_t b)6380 int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) {
6381 return vqrshl_s32(a, b);
6382 }
6383
6384 // CHECK: test_vqrshl_s64
6385 // CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s64(int64x1_t a,int64x1_t b)6386 int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) {
6387 return vqrshl_s64(a, b);
6388 }
6389
6390 // CHECK: test_vqrshl_u8
6391 // CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u8(uint8x8_t a,int8x8_t b)6392 uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) {
6393 return vqrshl_u8(a, b);
6394 }
6395
6396 // CHECK: test_vqrshl_u16
6397 // CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u16(uint16x4_t a,int16x4_t b)6398 uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) {
6399 return vqrshl_u16(a, b);
6400 }
6401
6402 // CHECK: test_vqrshl_u32
6403 // CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u32(uint32x2_t a,int32x2_t b)6404 uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) {
6405 return vqrshl_u32(a, b);
6406 }
6407
6408 // CHECK: test_vqrshl_u64
6409 // CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u64(uint64x1_t a,int64x1_t b)6410 uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) {
6411 return vqrshl_u64(a, b);
6412 }
6413
6414 // CHECK: test_vqrshlq_s8
6415 // CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s8(int8x16_t a,int8x16_t b)6416 int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) {
6417 return vqrshlq_s8(a, b);
6418 }
6419
6420 // CHECK: test_vqrshlq_s16
6421 // CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s16(int16x8_t a,int16x8_t b)6422 int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) {
6423 return vqrshlq_s16(a, b);
6424 }
6425
6426 // CHECK: test_vqrshlq_s32
6427 // CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s32(int32x4_t a,int32x4_t b)6428 int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) {
6429 return vqrshlq_s32(a, b);
6430 }
6431
6432 // CHECK: test_vqrshlq_s64
6433 // CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s64(int64x2_t a,int64x2_t b)6434 int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) {
6435 return vqrshlq_s64(a, b);
6436 }
6437
6438 // CHECK: test_vqrshlq_u8
6439 // CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u8(uint8x16_t a,int8x16_t b)6440 uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) {
6441 return vqrshlq_u8(a, b);
6442 }
6443
6444 // CHECK: test_vqrshlq_u16
6445 // CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u16(uint16x8_t a,int16x8_t b)6446 uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) {
6447 return vqrshlq_u16(a, b);
6448 }
6449
6450 // CHECK: test_vqrshlq_u32
6451 // CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u32(uint32x4_t a,int32x4_t b)6452 uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) {
6453 return vqrshlq_u32(a, b);
6454 }
6455
6456 // CHECK: test_vqrshlq_u64
6457 // CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u64(uint64x2_t a,int64x2_t b)6458 uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) {
6459 return vqrshlq_u64(a, b);
6460 }
6461
6462
6463 // CHECK: test_vqrshrn_n_s16
6464 // CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s16(int16x8_t a)6465 int8x8_t test_vqrshrn_n_s16(int16x8_t a) {
6466 return vqrshrn_n_s16(a, 1);
6467 }
6468
6469 // CHECK: test_vqrshrn_n_s32
6470 // CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s32(int32x4_t a)6471 int16x4_t test_vqrshrn_n_s32(int32x4_t a) {
6472 return vqrshrn_n_s32(a, 1);
6473 }
6474
6475 // CHECK: test_vqrshrn_n_s64
6476 // CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s64(int64x2_t a)6477 int32x2_t test_vqrshrn_n_s64(int64x2_t a) {
6478 return vqrshrn_n_s64(a, 1);
6479 }
6480
6481 // CHECK: test_vqrshrn_n_u16
6482 // CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u16(uint16x8_t a)6483 uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) {
6484 return vqrshrn_n_u16(a, 1);
6485 }
6486
6487 // CHECK: test_vqrshrn_n_u32
6488 // CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u32(uint32x4_t a)6489 uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) {
6490 return vqrshrn_n_u32(a, 1);
6491 }
6492
6493 // CHECK: test_vqrshrn_n_u64
6494 // CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u64(uint64x2_t a)6495 uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) {
6496 return vqrshrn_n_u64(a, 1);
6497 }
6498
6499
6500 // CHECK: test_vqrshrun_n_s16
6501 // CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s16(int16x8_t a)6502 uint8x8_t test_vqrshrun_n_s16(int16x8_t a) {
6503 return vqrshrun_n_s16(a, 1);
6504 }
6505
6506 // CHECK: test_vqrshrun_n_s32
6507 // CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s32(int32x4_t a)6508 uint16x4_t test_vqrshrun_n_s32(int32x4_t a) {
6509 return vqrshrun_n_s32(a, 1);
6510 }
6511
6512 // CHECK: test_vqrshrun_n_s64
6513 // CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s64(int64x2_t a)6514 uint32x2_t test_vqrshrun_n_s64(int64x2_t a) {
6515 return vqrshrun_n_s64(a, 1);
6516 }
6517
6518
6519 // CHECK: test_vqshl_s8
6520 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s8(int8x8_t a,int8x8_t b)6521 int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) {
6522 return vqshl_s8(a, b);
6523 }
6524
6525 // CHECK: test_vqshl_s16
6526 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s16(int16x4_t a,int16x4_t b)6527 int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) {
6528 return vqshl_s16(a, b);
6529 }
6530
6531 // CHECK: test_vqshl_s32
6532 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s32(int32x2_t a,int32x2_t b)6533 int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) {
6534 return vqshl_s32(a, b);
6535 }
6536
6537 // CHECK: test_vqshl_s64
6538 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s64(int64x1_t a,int64x1_t b)6539 int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) {
6540 return vqshl_s64(a, b);
6541 }
6542
6543 // CHECK: test_vqshl_u8
6544 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u8(uint8x8_t a,int8x8_t b)6545 uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) {
6546 return vqshl_u8(a, b);
6547 }
6548
6549 // CHECK: test_vqshl_u16
6550 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u16(uint16x4_t a,int16x4_t b)6551 uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) {
6552 return vqshl_u16(a, b);
6553 }
6554
6555 // CHECK: test_vqshl_u32
6556 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u32(uint32x2_t a,int32x2_t b)6557 uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) {
6558 return vqshl_u32(a, b);
6559 }
6560
6561 // CHECK: test_vqshl_u64
6562 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u64(uint64x1_t a,int64x1_t b)6563 uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) {
6564 return vqshl_u64(a, b);
6565 }
6566
6567 // CHECK: test_vqshlq_s8
6568 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s8(int8x16_t a,int8x16_t b)6569 int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) {
6570 return vqshlq_s8(a, b);
6571 }
6572
6573 // CHECK: test_vqshlq_s16
6574 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s16(int16x8_t a,int16x8_t b)6575 int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) {
6576 return vqshlq_s16(a, b);
6577 }
6578
6579 // CHECK: test_vqshlq_s32
6580 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s32(int32x4_t a,int32x4_t b)6581 int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) {
6582 return vqshlq_s32(a, b);
6583 }
6584
6585 // CHECK: test_vqshlq_s64
6586 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s64(int64x2_t a,int64x2_t b)6587 int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) {
6588 return vqshlq_s64(a, b);
6589 }
6590
6591 // CHECK: test_vqshlq_u8
6592 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u8(uint8x16_t a,int8x16_t b)6593 uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) {
6594 return vqshlq_u8(a, b);
6595 }
6596
6597 // CHECK: test_vqshlq_u16
6598 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u16(uint16x8_t a,int16x8_t b)6599 uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) {
6600 return vqshlq_u16(a, b);
6601 }
6602
6603 // CHECK: test_vqshlq_u32
6604 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u32(uint32x4_t a,int32x4_t b)6605 uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) {
6606 return vqshlq_u32(a, b);
6607 }
6608
6609 // CHECK: test_vqshlq_u64
6610 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u64(uint64x2_t a,int64x2_t b)6611 uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) {
6612 return vqshlq_u64(a, b);
6613 }
6614
6615
6616 // CHECK: test_vqshlu_n_s8
6617 // CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s8(int8x8_t a)6618 uint8x8_t test_vqshlu_n_s8(int8x8_t a) {
6619 return vqshlu_n_s8(a, 1);
6620 }
6621
6622 // CHECK: test_vqshlu_n_s16
6623 // CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s16(int16x4_t a)6624 uint16x4_t test_vqshlu_n_s16(int16x4_t a) {
6625 return vqshlu_n_s16(a, 1);
6626 }
6627
6628 // CHECK: test_vqshlu_n_s32
6629 // CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s32(int32x2_t a)6630 uint32x2_t test_vqshlu_n_s32(int32x2_t a) {
6631 return vqshlu_n_s32(a, 1);
6632 }
6633
6634 // CHECK: test_vqshlu_n_s64
6635 // CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s64(int64x1_t a)6636 uint64x1_t test_vqshlu_n_s64(int64x1_t a) {
6637 return vqshlu_n_s64(a, 1);
6638 }
6639
6640 // CHECK: test_vqshluq_n_s8
6641 // CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s8(int8x16_t a)6642 uint8x16_t test_vqshluq_n_s8(int8x16_t a) {
6643 return vqshluq_n_s8(a, 1);
6644 }
6645
6646 // CHECK: test_vqshluq_n_s16
6647 // CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s16(int16x8_t a)6648 uint16x8_t test_vqshluq_n_s16(int16x8_t a) {
6649 return vqshluq_n_s16(a, 1);
6650 }
6651
6652 // CHECK: test_vqshluq_n_s32
6653 // CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s32(int32x4_t a)6654 uint32x4_t test_vqshluq_n_s32(int32x4_t a) {
6655 return vqshluq_n_s32(a, 1);
6656 }
6657
6658 // CHECK: test_vqshluq_n_s64
6659 // CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s64(int64x2_t a)6660 uint64x2_t test_vqshluq_n_s64(int64x2_t a) {
6661 return vqshluq_n_s64(a, 1);
6662 }
6663
6664
6665 // CHECK: test_vqshl_n_s8
6666 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s8(int8x8_t a)6667 int8x8_t test_vqshl_n_s8(int8x8_t a) {
6668 return vqshl_n_s8(a, 1);
6669 }
6670
6671 // CHECK: test_vqshl_n_s16
6672 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s16(int16x4_t a)6673 int16x4_t test_vqshl_n_s16(int16x4_t a) {
6674 return vqshl_n_s16(a, 1);
6675 }
6676
6677 // CHECK: test_vqshl_n_s32
6678 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s32(int32x2_t a)6679 int32x2_t test_vqshl_n_s32(int32x2_t a) {
6680 return vqshl_n_s32(a, 1);
6681 }
6682
6683 // CHECK: test_vqshl_n_s64
6684 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s64(int64x1_t a)6685 int64x1_t test_vqshl_n_s64(int64x1_t a) {
6686 return vqshl_n_s64(a, 1);
6687 }
6688
6689 // CHECK: test_vqshl_n_u8
6690 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u8(uint8x8_t a)6691 uint8x8_t test_vqshl_n_u8(uint8x8_t a) {
6692 return vqshl_n_u8(a, 1);
6693 }
6694
6695 // CHECK: test_vqshl_n_u16
6696 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u16(uint16x4_t a)6697 uint16x4_t test_vqshl_n_u16(uint16x4_t a) {
6698 return vqshl_n_u16(a, 1);
6699 }
6700
6701 // CHECK: test_vqshl_n_u32
6702 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u32(uint32x2_t a)6703 uint32x2_t test_vqshl_n_u32(uint32x2_t a) {
6704 return vqshl_n_u32(a, 1);
6705 }
6706
6707 // CHECK: test_vqshl_n_u64
6708 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u64(uint64x1_t a)6709 uint64x1_t test_vqshl_n_u64(uint64x1_t a) {
6710 return vqshl_n_u64(a, 1);
6711 }
6712
6713 // CHECK: test_vqshlq_n_s8
6714 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s8(int8x16_t a)6715 int8x16_t test_vqshlq_n_s8(int8x16_t a) {
6716 return vqshlq_n_s8(a, 1);
6717 }
6718
6719 // CHECK: test_vqshlq_n_s16
6720 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s16(int16x8_t a)6721 int16x8_t test_vqshlq_n_s16(int16x8_t a) {
6722 return vqshlq_n_s16(a, 1);
6723 }
6724
6725 // CHECK: test_vqshlq_n_s32
6726 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s32(int32x4_t a)6727 int32x4_t test_vqshlq_n_s32(int32x4_t a) {
6728 return vqshlq_n_s32(a, 1);
6729 }
6730
6731 // CHECK: test_vqshlq_n_s64
6732 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s64(int64x2_t a)6733 int64x2_t test_vqshlq_n_s64(int64x2_t a) {
6734 return vqshlq_n_s64(a, 1);
6735 }
6736
6737 // CHECK: test_vqshlq_n_u8
6738 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u8(uint8x16_t a)6739 uint8x16_t test_vqshlq_n_u8(uint8x16_t a) {
6740 return vqshlq_n_u8(a, 1);
6741 }
6742
6743 // CHECK: test_vqshlq_n_u16
6744 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u16(uint16x8_t a)6745 uint16x8_t test_vqshlq_n_u16(uint16x8_t a) {
6746 return vqshlq_n_u16(a, 1);
6747 }
6748
6749 // CHECK: test_vqshlq_n_u32
6750 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u32(uint32x4_t a)6751 uint32x4_t test_vqshlq_n_u32(uint32x4_t a) {
6752 return vqshlq_n_u32(a, 1);
6753 }
6754
6755 // CHECK: test_vqshlq_n_u64
6756 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u64(uint64x2_t a)6757 uint64x2_t test_vqshlq_n_u64(uint64x2_t a) {
6758 return vqshlq_n_u64(a, 1);
6759 }
6760
6761
6762 // CHECK: test_vqshrn_n_s16
6763 // CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s16(int16x8_t a)6764 int8x8_t test_vqshrn_n_s16(int16x8_t a) {
6765 return vqshrn_n_s16(a, 1);
6766 }
6767
6768 // CHECK: test_vqshrn_n_s32
6769 // CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s32(int32x4_t a)6770 int16x4_t test_vqshrn_n_s32(int32x4_t a) {
6771 return vqshrn_n_s32(a, 1);
6772 }
6773
6774 // CHECK: test_vqshrn_n_s64
6775 // CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s64(int64x2_t a)6776 int32x2_t test_vqshrn_n_s64(int64x2_t a) {
6777 return vqshrn_n_s64(a, 1);
6778 }
6779
6780 // CHECK: test_vqshrn_n_u16
6781 // CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u16(uint16x8_t a)6782 uint8x8_t test_vqshrn_n_u16(uint16x8_t a) {
6783 return vqshrn_n_u16(a, 1);
6784 }
6785
6786 // CHECK: test_vqshrn_n_u32
6787 // CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u32(uint32x4_t a)6788 uint16x4_t test_vqshrn_n_u32(uint32x4_t a) {
6789 return vqshrn_n_u32(a, 1);
6790 }
6791
6792 // CHECK: test_vqshrn_n_u64
6793 // CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u64(uint64x2_t a)6794 uint32x2_t test_vqshrn_n_u64(uint64x2_t a) {
6795 return vqshrn_n_u64(a, 1);
6796 }
6797
6798
6799 // CHECK: test_vqshrun_n_s16
6800 // CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s16(int16x8_t a)6801 uint8x8_t test_vqshrun_n_s16(int16x8_t a) {
6802 return vqshrun_n_s16(a, 1);
6803 }
6804
6805 // CHECK: test_vqshrun_n_s32
6806 // CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s32(int32x4_t a)6807 uint16x4_t test_vqshrun_n_s32(int32x4_t a) {
6808 return vqshrun_n_s32(a, 1);
6809 }
6810
6811 // CHECK: test_vqshrun_n_s64
6812 // CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s64(int64x2_t a)6813 uint32x2_t test_vqshrun_n_s64(int64x2_t a) {
6814 return vqshrun_n_s64(a, 1);
6815 }
6816
6817
6818 // CHECK: test_vqsub_s8
6819 // CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s8(int8x8_t a,int8x8_t b)6820 int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) {
6821 return vqsub_s8(a, b);
6822 }
6823
6824 // CHECK: test_vqsub_s16
6825 // CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s16(int16x4_t a,int16x4_t b)6826 int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) {
6827 return vqsub_s16(a, b);
6828 }
6829
6830 // CHECK: test_vqsub_s32
6831 // CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s32(int32x2_t a,int32x2_t b)6832 int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) {
6833 return vqsub_s32(a, b);
6834 }
6835
6836 // CHECK: test_vqsub_s64
6837 // CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s64(int64x1_t a,int64x1_t b)6838 int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) {
6839 return vqsub_s64(a, b);
6840 }
6841
6842 // CHECK: test_vqsub_u8
6843 // CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u8(uint8x8_t a,uint8x8_t b)6844 uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) {
6845 return vqsub_u8(a, b);
6846 }
6847
6848 // CHECK: test_vqsub_u16
6849 // CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u16(uint16x4_t a,uint16x4_t b)6850 uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) {
6851 return vqsub_u16(a, b);
6852 }
6853
6854 // CHECK: test_vqsub_u32
6855 // CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u32(uint32x2_t a,uint32x2_t b)6856 uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) {
6857 return vqsub_u32(a, b);
6858 }
6859
6860 // CHECK: test_vqsub_u64
6861 // CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u64(uint64x1_t a,uint64x1_t b)6862 uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) {
6863 return vqsub_u64(a, b);
6864 }
6865
6866 // CHECK: test_vqsubq_s8
6867 // CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s8(int8x16_t a,int8x16_t b)6868 int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) {
6869 return vqsubq_s8(a, b);
6870 }
6871
6872 // CHECK: test_vqsubq_s16
6873 // CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s16(int16x8_t a,int16x8_t b)6874 int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) {
6875 return vqsubq_s16(a, b);
6876 }
6877
6878 // CHECK: test_vqsubq_s32
6879 // CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s32(int32x4_t a,int32x4_t b)6880 int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) {
6881 return vqsubq_s32(a, b);
6882 }
6883
6884 // CHECK: test_vqsubq_s64
6885 // CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s64(int64x2_t a,int64x2_t b)6886 int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) {
6887 return vqsubq_s64(a, b);
6888 }
6889
6890 // CHECK: test_vqsubq_u8
6891 // CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u8(uint8x16_t a,uint8x16_t b)6892 uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) {
6893 return vqsubq_u8(a, b);
6894 }
6895
6896 // CHECK: test_vqsubq_u16
6897 // CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u16(uint16x8_t a,uint16x8_t b)6898 uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) {
6899 return vqsubq_u16(a, b);
6900 }
6901
6902 // CHECK: test_vqsubq_u32
6903 // CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u32(uint32x4_t a,uint32x4_t b)6904 uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) {
6905 return vqsubq_u32(a, b);
6906 }
6907
6908 // CHECK: test_vqsubq_u64
6909 // CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u64(uint64x2_t a,uint64x2_t b)6910 uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) {
6911 return vqsubq_u64(a, b);
6912 }
6913
6914
6915 // CHECK: test_vraddhn_s16
6916 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s16(int16x8_t a,int16x8_t b)6917 int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) {
6918 return vraddhn_s16(a, b);
6919 }
6920
6921 // CHECK: test_vraddhn_s32
6922 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s32(int32x4_t a,int32x4_t b)6923 int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) {
6924 return vraddhn_s32(a, b);
6925 }
6926
6927 // CHECK: test_vraddhn_s64
6928 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s64(int64x2_t a,int64x2_t b)6929 int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) {
6930 return vraddhn_s64(a, b);
6931 }
6932
6933 // CHECK: test_vraddhn_u16
6934 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u16(uint16x8_t a,uint16x8_t b)6935 uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) {
6936 return vraddhn_u16(a, b);
6937 }
6938
6939 // CHECK: test_vraddhn_u32
6940 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u32(uint32x4_t a,uint32x4_t b)6941 uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) {
6942 return vraddhn_u32(a, b);
6943 }
6944
6945 // CHECK: test_vraddhn_u64
6946 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u64(uint64x2_t a,uint64x2_t b)6947 uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) {
6948 return vraddhn_u64(a, b);
6949 }
6950
6951
6952 // CHECK: test_vrecpe_f32
6953 // CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_f32(float32x2_t a)6954 float32x2_t test_vrecpe_f32(float32x2_t a) {
6955 return vrecpe_f32(a);
6956 }
6957
6958 // CHECK: test_vrecpe_u32
6959 // CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_u32(uint32x2_t a)6960 uint32x2_t test_vrecpe_u32(uint32x2_t a) {
6961 return vrecpe_u32(a);
6962 }
6963
6964 // CHECK: test_vrecpeq_f32
6965 // CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_f32(float32x4_t a)6966 float32x4_t test_vrecpeq_f32(float32x4_t a) {
6967 return vrecpeq_f32(a);
6968 }
6969
6970 // CHECK: test_vrecpeq_u32
6971 // CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_u32(uint32x4_t a)6972 uint32x4_t test_vrecpeq_u32(uint32x4_t a) {
6973 return vrecpeq_u32(a);
6974 }
6975
6976
6977 // CHECK: test_vrecps_f32
6978 // CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrecps_f32(float32x2_t a,float32x2_t b)6979 float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) {
6980 return vrecps_f32(a, b);
6981 }
6982
6983 // CHECK: test_vrecpsq_f32
6984 // CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpsq_f32(float32x4_t a,float32x4_t b)6985 float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) {
6986 return vrecpsq_f32(a, b);
6987 }
6988
6989
6990 // CHECK: test_vreinterpret_s8_s16
test_vreinterpret_s8_s16(int16x4_t a)6991 int8x8_t test_vreinterpret_s8_s16(int16x4_t a) {
6992 return vreinterpret_s8_s16(a);
6993 }
6994
6995 // CHECK: test_vreinterpret_s8_s32
test_vreinterpret_s8_s32(int32x2_t a)6996 int8x8_t test_vreinterpret_s8_s32(int32x2_t a) {
6997 return vreinterpret_s8_s32(a);
6998 }
6999
7000 // CHECK: test_vreinterpret_s8_s64
test_vreinterpret_s8_s64(int64x1_t a)7001 int8x8_t test_vreinterpret_s8_s64(int64x1_t a) {
7002 return vreinterpret_s8_s64(a);
7003 }
7004
7005 // CHECK: test_vreinterpret_s8_u8
test_vreinterpret_s8_u8(uint8x8_t a)7006 int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) {
7007 return vreinterpret_s8_u8(a);
7008 }
7009
7010 // CHECK: test_vreinterpret_s8_u16
test_vreinterpret_s8_u16(uint16x4_t a)7011 int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) {
7012 return vreinterpret_s8_u16(a);
7013 }
7014
7015 // CHECK: test_vreinterpret_s8_u32
test_vreinterpret_s8_u32(uint32x2_t a)7016 int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) {
7017 return vreinterpret_s8_u32(a);
7018 }
7019
7020 // CHECK: test_vreinterpret_s8_u64
test_vreinterpret_s8_u64(uint64x1_t a)7021 int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) {
7022 return vreinterpret_s8_u64(a);
7023 }
7024
7025 // CHECK: test_vreinterpret_s8_f16
test_vreinterpret_s8_f16(float16x4_t a)7026 int8x8_t test_vreinterpret_s8_f16(float16x4_t a) {
7027 return vreinterpret_s8_f16(a);
7028 }
7029
7030 // CHECK: test_vreinterpret_s8_f32
test_vreinterpret_s8_f32(float32x2_t a)7031 int8x8_t test_vreinterpret_s8_f32(float32x2_t a) {
7032 return vreinterpret_s8_f32(a);
7033 }
7034
7035 // CHECK: test_vreinterpret_s8_p8
test_vreinterpret_s8_p8(poly8x8_t a)7036 int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) {
7037 return vreinterpret_s8_p8(a);
7038 }
7039
7040 // CHECK: test_vreinterpret_s8_p16
test_vreinterpret_s8_p16(poly16x4_t a)7041 int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) {
7042 return vreinterpret_s8_p16(a);
7043 }
7044
7045 // CHECK: test_vreinterpret_s16_s8
test_vreinterpret_s16_s8(int8x8_t a)7046 int16x4_t test_vreinterpret_s16_s8(int8x8_t a) {
7047 return vreinterpret_s16_s8(a);
7048 }
7049
7050 // CHECK: test_vreinterpret_s16_s32
test_vreinterpret_s16_s32(int32x2_t a)7051 int16x4_t test_vreinterpret_s16_s32(int32x2_t a) {
7052 return vreinterpret_s16_s32(a);
7053 }
7054
7055 // CHECK: test_vreinterpret_s16_s64
test_vreinterpret_s16_s64(int64x1_t a)7056 int16x4_t test_vreinterpret_s16_s64(int64x1_t a) {
7057 return vreinterpret_s16_s64(a);
7058 }
7059
7060 // CHECK: test_vreinterpret_s16_u8
test_vreinterpret_s16_u8(uint8x8_t a)7061 int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) {
7062 return vreinterpret_s16_u8(a);
7063 }
7064
7065 // CHECK: test_vreinterpret_s16_u16
test_vreinterpret_s16_u16(uint16x4_t a)7066 int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) {
7067 return vreinterpret_s16_u16(a);
7068 }
7069
7070 // CHECK: test_vreinterpret_s16_u32
test_vreinterpret_s16_u32(uint32x2_t a)7071 int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) {
7072 return vreinterpret_s16_u32(a);
7073 }
7074
7075 // CHECK: test_vreinterpret_s16_u64
test_vreinterpret_s16_u64(uint64x1_t a)7076 int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) {
7077 return vreinterpret_s16_u64(a);
7078 }
7079
7080 // CHECK: test_vreinterpret_s16_f16
test_vreinterpret_s16_f16(float16x4_t a)7081 int16x4_t test_vreinterpret_s16_f16(float16x4_t a) {
7082 return vreinterpret_s16_f16(a);
7083 }
7084
7085 // CHECK: test_vreinterpret_s16_f32
test_vreinterpret_s16_f32(float32x2_t a)7086 int16x4_t test_vreinterpret_s16_f32(float32x2_t a) {
7087 return vreinterpret_s16_f32(a);
7088 }
7089
7090 // CHECK: test_vreinterpret_s16_p8
test_vreinterpret_s16_p8(poly8x8_t a)7091 int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) {
7092 return vreinterpret_s16_p8(a);
7093 }
7094
7095 // CHECK: test_vreinterpret_s16_p16
test_vreinterpret_s16_p16(poly16x4_t a)7096 int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) {
7097 return vreinterpret_s16_p16(a);
7098 }
7099
7100 // CHECK: test_vreinterpret_s32_s8
test_vreinterpret_s32_s8(int8x8_t a)7101 int32x2_t test_vreinterpret_s32_s8(int8x8_t a) {
7102 return vreinterpret_s32_s8(a);
7103 }
7104
7105 // CHECK: test_vreinterpret_s32_s16
test_vreinterpret_s32_s16(int16x4_t a)7106 int32x2_t test_vreinterpret_s32_s16(int16x4_t a) {
7107 return vreinterpret_s32_s16(a);
7108 }
7109
7110 // CHECK: test_vreinterpret_s32_s64
test_vreinterpret_s32_s64(int64x1_t a)7111 int32x2_t test_vreinterpret_s32_s64(int64x1_t a) {
7112 return vreinterpret_s32_s64(a);
7113 }
7114
7115 // CHECK: test_vreinterpret_s32_u8
test_vreinterpret_s32_u8(uint8x8_t a)7116 int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) {
7117 return vreinterpret_s32_u8(a);
7118 }
7119
7120 // CHECK: test_vreinterpret_s32_u16
test_vreinterpret_s32_u16(uint16x4_t a)7121 int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) {
7122 return vreinterpret_s32_u16(a);
7123 }
7124
7125 // CHECK: test_vreinterpret_s32_u32
test_vreinterpret_s32_u32(uint32x2_t a)7126 int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) {
7127 return vreinterpret_s32_u32(a);
7128 }
7129
7130 // CHECK: test_vreinterpret_s32_u64
test_vreinterpret_s32_u64(uint64x1_t a)7131 int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) {
7132 return vreinterpret_s32_u64(a);
7133 }
7134
7135 // CHECK: test_vreinterpret_s32_f16
test_vreinterpret_s32_f16(float16x4_t a)7136 int32x2_t test_vreinterpret_s32_f16(float16x4_t a) {
7137 return vreinterpret_s32_f16(a);
7138 }
7139
7140 // CHECK: test_vreinterpret_s32_f32
test_vreinterpret_s32_f32(float32x2_t a)7141 int32x2_t test_vreinterpret_s32_f32(float32x2_t a) {
7142 return vreinterpret_s32_f32(a);
7143 }
7144
7145 // CHECK: test_vreinterpret_s32_p8
test_vreinterpret_s32_p8(poly8x8_t a)7146 int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) {
7147 return vreinterpret_s32_p8(a);
7148 }
7149
7150 // CHECK: test_vreinterpret_s32_p16
test_vreinterpret_s32_p16(poly16x4_t a)7151 int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) {
7152 return vreinterpret_s32_p16(a);
7153 }
7154
7155 // CHECK: test_vreinterpret_s64_s8
test_vreinterpret_s64_s8(int8x8_t a)7156 int64x1_t test_vreinterpret_s64_s8(int8x8_t a) {
7157 return vreinterpret_s64_s8(a);
7158 }
7159
7160 // CHECK: test_vreinterpret_s64_s16
test_vreinterpret_s64_s16(int16x4_t a)7161 int64x1_t test_vreinterpret_s64_s16(int16x4_t a) {
7162 return vreinterpret_s64_s16(a);
7163 }
7164
7165 // CHECK: test_vreinterpret_s64_s32
test_vreinterpret_s64_s32(int32x2_t a)7166 int64x1_t test_vreinterpret_s64_s32(int32x2_t a) {
7167 return vreinterpret_s64_s32(a);
7168 }
7169
7170 // CHECK: test_vreinterpret_s64_u8
test_vreinterpret_s64_u8(uint8x8_t a)7171 int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) {
7172 return vreinterpret_s64_u8(a);
7173 }
7174
7175 // CHECK: test_vreinterpret_s64_u16
test_vreinterpret_s64_u16(uint16x4_t a)7176 int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) {
7177 return vreinterpret_s64_u16(a);
7178 }
7179
7180 // CHECK: test_vreinterpret_s64_u32
test_vreinterpret_s64_u32(uint32x2_t a)7181 int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) {
7182 return vreinterpret_s64_u32(a);
7183 }
7184
7185 // CHECK: test_vreinterpret_s64_u64
test_vreinterpret_s64_u64(uint64x1_t a)7186 int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) {
7187 return vreinterpret_s64_u64(a);
7188 }
7189
7190 // CHECK: test_vreinterpret_s64_f16
test_vreinterpret_s64_f16(float16x4_t a)7191 int64x1_t test_vreinterpret_s64_f16(float16x4_t a) {
7192 return vreinterpret_s64_f16(a);
7193 }
7194
7195 // CHECK: test_vreinterpret_s64_f32
test_vreinterpret_s64_f32(float32x2_t a)7196 int64x1_t test_vreinterpret_s64_f32(float32x2_t a) {
7197 return vreinterpret_s64_f32(a);
7198 }
7199
7200 // CHECK: test_vreinterpret_s64_p8
test_vreinterpret_s64_p8(poly8x8_t a)7201 int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) {
7202 return vreinterpret_s64_p8(a);
7203 }
7204
7205 // CHECK: test_vreinterpret_s64_p16
test_vreinterpret_s64_p16(poly16x4_t a)7206 int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) {
7207 return vreinterpret_s64_p16(a);
7208 }
7209
7210 // CHECK: test_vreinterpret_u8_s8
test_vreinterpret_u8_s8(int8x8_t a)7211 uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) {
7212 return vreinterpret_u8_s8(a);
7213 }
7214
7215 // CHECK: test_vreinterpret_u8_s16
test_vreinterpret_u8_s16(int16x4_t a)7216 uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) {
7217 return vreinterpret_u8_s16(a);
7218 }
7219
7220 // CHECK: test_vreinterpret_u8_s32
test_vreinterpret_u8_s32(int32x2_t a)7221 uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) {
7222 return vreinterpret_u8_s32(a);
7223 }
7224
7225 // CHECK: test_vreinterpret_u8_s64
test_vreinterpret_u8_s64(int64x1_t a)7226 uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) {
7227 return vreinterpret_u8_s64(a);
7228 }
7229
7230 // CHECK: test_vreinterpret_u8_u16
test_vreinterpret_u8_u16(uint16x4_t a)7231 uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) {
7232 return vreinterpret_u8_u16(a);
7233 }
7234
7235 // CHECK: test_vreinterpret_u8_u32
test_vreinterpret_u8_u32(uint32x2_t a)7236 uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) {
7237 return vreinterpret_u8_u32(a);
7238 }
7239
7240 // CHECK: test_vreinterpret_u8_u64
test_vreinterpret_u8_u64(uint64x1_t a)7241 uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) {
7242 return vreinterpret_u8_u64(a);
7243 }
7244
7245 // CHECK: test_vreinterpret_u8_f16
test_vreinterpret_u8_f16(float16x4_t a)7246 uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) {
7247 return vreinterpret_u8_f16(a);
7248 }
7249
7250 // CHECK: test_vreinterpret_u8_f32
test_vreinterpret_u8_f32(float32x2_t a)7251 uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) {
7252 return vreinterpret_u8_f32(a);
7253 }
7254
7255 // CHECK: test_vreinterpret_u8_p8
test_vreinterpret_u8_p8(poly8x8_t a)7256 uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) {
7257 return vreinterpret_u8_p8(a);
7258 }
7259
7260 // CHECK: test_vreinterpret_u8_p16
test_vreinterpret_u8_p16(poly16x4_t a)7261 uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) {
7262 return vreinterpret_u8_p16(a);
7263 }
7264
7265 // CHECK: test_vreinterpret_u16_s8
test_vreinterpret_u16_s8(int8x8_t a)7266 uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) {
7267 return vreinterpret_u16_s8(a);
7268 }
7269
7270 // CHECK: test_vreinterpret_u16_s16
test_vreinterpret_u16_s16(int16x4_t a)7271 uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) {
7272 return vreinterpret_u16_s16(a);
7273 }
7274
7275 // CHECK: test_vreinterpret_u16_s32
test_vreinterpret_u16_s32(int32x2_t a)7276 uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) {
7277 return vreinterpret_u16_s32(a);
7278 }
7279
7280 // CHECK: test_vreinterpret_u16_s64
test_vreinterpret_u16_s64(int64x1_t a)7281 uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) {
7282 return vreinterpret_u16_s64(a);
7283 }
7284
7285 // CHECK: test_vreinterpret_u16_u8
test_vreinterpret_u16_u8(uint8x8_t a)7286 uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) {
7287 return vreinterpret_u16_u8(a);
7288 }
7289
7290 // CHECK: test_vreinterpret_u16_u32
test_vreinterpret_u16_u32(uint32x2_t a)7291 uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) {
7292 return vreinterpret_u16_u32(a);
7293 }
7294
7295 // CHECK: test_vreinterpret_u16_u64
test_vreinterpret_u16_u64(uint64x1_t a)7296 uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) {
7297 return vreinterpret_u16_u64(a);
7298 }
7299
7300 // CHECK: test_vreinterpret_u16_f16
test_vreinterpret_u16_f16(float16x4_t a)7301 uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) {
7302 return vreinterpret_u16_f16(a);
7303 }
7304
7305 // CHECK: test_vreinterpret_u16_f32
test_vreinterpret_u16_f32(float32x2_t a)7306 uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) {
7307 return vreinterpret_u16_f32(a);
7308 }
7309
7310 // CHECK: test_vreinterpret_u16_p8
test_vreinterpret_u16_p8(poly8x8_t a)7311 uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) {
7312 return vreinterpret_u16_p8(a);
7313 }
7314
7315 // CHECK: test_vreinterpret_u16_p16
test_vreinterpret_u16_p16(poly16x4_t a)7316 uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) {
7317 return vreinterpret_u16_p16(a);
7318 }
7319
7320 // CHECK: test_vreinterpret_u32_s8
test_vreinterpret_u32_s8(int8x8_t a)7321 uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) {
7322 return vreinterpret_u32_s8(a);
7323 }
7324
7325 // CHECK: test_vreinterpret_u32_s16
test_vreinterpret_u32_s16(int16x4_t a)7326 uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) {
7327 return vreinterpret_u32_s16(a);
7328 }
7329
7330 // CHECK: test_vreinterpret_u32_s32
test_vreinterpret_u32_s32(int32x2_t a)7331 uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) {
7332 return vreinterpret_u32_s32(a);
7333 }
7334
7335 // CHECK: test_vreinterpret_u32_s64
test_vreinterpret_u32_s64(int64x1_t a)7336 uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) {
7337 return vreinterpret_u32_s64(a);
7338 }
7339
7340 // CHECK: test_vreinterpret_u32_u8
test_vreinterpret_u32_u8(uint8x8_t a)7341 uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) {
7342 return vreinterpret_u32_u8(a);
7343 }
7344
7345 // CHECK: test_vreinterpret_u32_u16
test_vreinterpret_u32_u16(uint16x4_t a)7346 uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) {
7347 return vreinterpret_u32_u16(a);
7348 }
7349
7350 // CHECK: test_vreinterpret_u32_u64
test_vreinterpret_u32_u64(uint64x1_t a)7351 uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) {
7352 return vreinterpret_u32_u64(a);
7353 }
7354
7355 // CHECK: test_vreinterpret_u32_f16
test_vreinterpret_u32_f16(float16x4_t a)7356 uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) {
7357 return vreinterpret_u32_f16(a);
7358 }
7359
7360 // CHECK: test_vreinterpret_u32_f32
test_vreinterpret_u32_f32(float32x2_t a)7361 uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) {
7362 return vreinterpret_u32_f32(a);
7363 }
7364
7365 // CHECK: test_vreinterpret_u32_p8
test_vreinterpret_u32_p8(poly8x8_t a)7366 uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) {
7367 return vreinterpret_u32_p8(a);
7368 }
7369
7370 // CHECK: test_vreinterpret_u32_p16
test_vreinterpret_u32_p16(poly16x4_t a)7371 uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) {
7372 return vreinterpret_u32_p16(a);
7373 }
7374
7375 // CHECK: test_vreinterpret_u64_s8
test_vreinterpret_u64_s8(int8x8_t a)7376 uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) {
7377 return vreinterpret_u64_s8(a);
7378 }
7379
7380 // CHECK: test_vreinterpret_u64_s16
test_vreinterpret_u64_s16(int16x4_t a)7381 uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) {
7382 return vreinterpret_u64_s16(a);
7383 }
7384
7385 // CHECK: test_vreinterpret_u64_s32
test_vreinterpret_u64_s32(int32x2_t a)7386 uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) {
7387 return vreinterpret_u64_s32(a);
7388 }
7389
7390 // CHECK: test_vreinterpret_u64_s64
test_vreinterpret_u64_s64(int64x1_t a)7391 uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) {
7392 return vreinterpret_u64_s64(a);
7393 }
7394
7395 // CHECK: test_vreinterpret_u64_u8
test_vreinterpret_u64_u8(uint8x8_t a)7396 uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) {
7397 return vreinterpret_u64_u8(a);
7398 }
7399
7400 // CHECK: test_vreinterpret_u64_u16
test_vreinterpret_u64_u16(uint16x4_t a)7401 uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) {
7402 return vreinterpret_u64_u16(a);
7403 }
7404
7405 // CHECK: test_vreinterpret_u64_u32
test_vreinterpret_u64_u32(uint32x2_t a)7406 uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) {
7407 return vreinterpret_u64_u32(a);
7408 }
7409
7410 // CHECK: test_vreinterpret_u64_f16
test_vreinterpret_u64_f16(float16x4_t a)7411 uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) {
7412 return vreinterpret_u64_f16(a);
7413 }
7414
7415 // CHECK: test_vreinterpret_u64_f32
test_vreinterpret_u64_f32(float32x2_t a)7416 uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) {
7417 return vreinterpret_u64_f32(a);
7418 }
7419
7420 // CHECK: test_vreinterpret_u64_p8
test_vreinterpret_u64_p8(poly8x8_t a)7421 uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) {
7422 return vreinterpret_u64_p8(a);
7423 }
7424
7425 // CHECK: test_vreinterpret_u64_p16
test_vreinterpret_u64_p16(poly16x4_t a)7426 uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) {
7427 return vreinterpret_u64_p16(a);
7428 }
7429
7430 // CHECK: test_vreinterpret_f16_s8
test_vreinterpret_f16_s8(int8x8_t a)7431 float16x4_t test_vreinterpret_f16_s8(int8x8_t a) {
7432 return vreinterpret_f16_s8(a);
7433 }
7434
7435 // CHECK: test_vreinterpret_f16_s16
test_vreinterpret_f16_s16(int16x4_t a)7436 float16x4_t test_vreinterpret_f16_s16(int16x4_t a) {
7437 return vreinterpret_f16_s16(a);
7438 }
7439
7440 // CHECK: test_vreinterpret_f16_s32
test_vreinterpret_f16_s32(int32x2_t a)7441 float16x4_t test_vreinterpret_f16_s32(int32x2_t a) {
7442 return vreinterpret_f16_s32(a);
7443 }
7444
7445 // CHECK: test_vreinterpret_f16_s64
test_vreinterpret_f16_s64(int64x1_t a)7446 float16x4_t test_vreinterpret_f16_s64(int64x1_t a) {
7447 return vreinterpret_f16_s64(a);
7448 }
7449
7450 // CHECK: test_vreinterpret_f16_u8
test_vreinterpret_f16_u8(uint8x8_t a)7451 float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) {
7452 return vreinterpret_f16_u8(a);
7453 }
7454
7455 // CHECK: test_vreinterpret_f16_u16
test_vreinterpret_f16_u16(uint16x4_t a)7456 float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) {
7457 return vreinterpret_f16_u16(a);
7458 }
7459
7460 // CHECK: test_vreinterpret_f16_u32
test_vreinterpret_f16_u32(uint32x2_t a)7461 float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) {
7462 return vreinterpret_f16_u32(a);
7463 }
7464
7465 // CHECK: test_vreinterpret_f16_u64
test_vreinterpret_f16_u64(uint64x1_t a)7466 float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) {
7467 return vreinterpret_f16_u64(a);
7468 }
7469
7470 // CHECK: test_vreinterpret_f16_f32
test_vreinterpret_f16_f32(float32x2_t a)7471 float16x4_t test_vreinterpret_f16_f32(float32x2_t a) {
7472 return vreinterpret_f16_f32(a);
7473 }
7474
7475 // CHECK: test_vreinterpret_f16_p8
test_vreinterpret_f16_p8(poly8x8_t a)7476 float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) {
7477 return vreinterpret_f16_p8(a);
7478 }
7479
7480 // CHECK: test_vreinterpret_f16_p16
test_vreinterpret_f16_p16(poly16x4_t a)7481 float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) {
7482 return vreinterpret_f16_p16(a);
7483 }
7484
7485 // CHECK: test_vreinterpret_f32_s8
test_vreinterpret_f32_s8(int8x8_t a)7486 float32x2_t test_vreinterpret_f32_s8(int8x8_t a) {
7487 return vreinterpret_f32_s8(a);
7488 }
7489
7490 // CHECK: test_vreinterpret_f32_s16
test_vreinterpret_f32_s16(int16x4_t a)7491 float32x2_t test_vreinterpret_f32_s16(int16x4_t a) {
7492 return vreinterpret_f32_s16(a);
7493 }
7494
7495 // CHECK: test_vreinterpret_f32_s32
test_vreinterpret_f32_s32(int32x2_t a)7496 float32x2_t test_vreinterpret_f32_s32(int32x2_t a) {
7497 return vreinterpret_f32_s32(a);
7498 }
7499
7500 // CHECK: test_vreinterpret_f32_s64
test_vreinterpret_f32_s64(int64x1_t a)7501 float32x2_t test_vreinterpret_f32_s64(int64x1_t a) {
7502 return vreinterpret_f32_s64(a);
7503 }
7504
7505 // CHECK: test_vreinterpret_f32_u8
test_vreinterpret_f32_u8(uint8x8_t a)7506 float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) {
7507 return vreinterpret_f32_u8(a);
7508 }
7509
7510 // CHECK: test_vreinterpret_f32_u16
test_vreinterpret_f32_u16(uint16x4_t a)7511 float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) {
7512 return vreinterpret_f32_u16(a);
7513 }
7514
7515 // CHECK: test_vreinterpret_f32_u32
test_vreinterpret_f32_u32(uint32x2_t a)7516 float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) {
7517 return vreinterpret_f32_u32(a);
7518 }
7519
7520 // CHECK: test_vreinterpret_f32_u64
test_vreinterpret_f32_u64(uint64x1_t a)7521 float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) {
7522 return vreinterpret_f32_u64(a);
7523 }
7524
7525 // CHECK: test_vreinterpret_f32_f16
test_vreinterpret_f32_f16(float16x4_t a)7526 float32x2_t test_vreinterpret_f32_f16(float16x4_t a) {
7527 return vreinterpret_f32_f16(a);
7528 }
7529
7530 // CHECK: test_vreinterpret_f32_p8
test_vreinterpret_f32_p8(poly8x8_t a)7531 float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) {
7532 return vreinterpret_f32_p8(a);
7533 }
7534
7535 // CHECK: test_vreinterpret_f32_p16
test_vreinterpret_f32_p16(poly16x4_t a)7536 float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) {
7537 return vreinterpret_f32_p16(a);
7538 }
7539
7540 // CHECK: test_vreinterpret_p8_s8
test_vreinterpret_p8_s8(int8x8_t a)7541 poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) {
7542 return vreinterpret_p8_s8(a);
7543 }
7544
7545 // CHECK: test_vreinterpret_p8_s16
test_vreinterpret_p8_s16(int16x4_t a)7546 poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) {
7547 return vreinterpret_p8_s16(a);
7548 }
7549
7550 // CHECK: test_vreinterpret_p8_s32
test_vreinterpret_p8_s32(int32x2_t a)7551 poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) {
7552 return vreinterpret_p8_s32(a);
7553 }
7554
7555 // CHECK: test_vreinterpret_p8_s64
test_vreinterpret_p8_s64(int64x1_t a)7556 poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) {
7557 return vreinterpret_p8_s64(a);
7558 }
7559
7560 // CHECK: test_vreinterpret_p8_u8
test_vreinterpret_p8_u8(uint8x8_t a)7561 poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) {
7562 return vreinterpret_p8_u8(a);
7563 }
7564
7565 // CHECK: test_vreinterpret_p8_u16
test_vreinterpret_p8_u16(uint16x4_t a)7566 poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) {
7567 return vreinterpret_p8_u16(a);
7568 }
7569
7570 // CHECK: test_vreinterpret_p8_u32
test_vreinterpret_p8_u32(uint32x2_t a)7571 poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) {
7572 return vreinterpret_p8_u32(a);
7573 }
7574
7575 // CHECK: test_vreinterpret_p8_u64
test_vreinterpret_p8_u64(uint64x1_t a)7576 poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) {
7577 return vreinterpret_p8_u64(a);
7578 }
7579
7580 // CHECK: test_vreinterpret_p8_f16
test_vreinterpret_p8_f16(float16x4_t a)7581 poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) {
7582 return vreinterpret_p8_f16(a);
7583 }
7584
7585 // CHECK: test_vreinterpret_p8_f32
test_vreinterpret_p8_f32(float32x2_t a)7586 poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) {
7587 return vreinterpret_p8_f32(a);
7588 }
7589
7590 // CHECK: test_vreinterpret_p8_p16
test_vreinterpret_p8_p16(poly16x4_t a)7591 poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) {
7592 return vreinterpret_p8_p16(a);
7593 }
7594
7595 // CHECK: test_vreinterpret_p16_s8
test_vreinterpret_p16_s8(int8x8_t a)7596 poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) {
7597 return vreinterpret_p16_s8(a);
7598 }
7599
7600 // CHECK: test_vreinterpret_p16_s16
test_vreinterpret_p16_s16(int16x4_t a)7601 poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) {
7602 return vreinterpret_p16_s16(a);
7603 }
7604
7605 // CHECK: test_vreinterpret_p16_s32
test_vreinterpret_p16_s32(int32x2_t a)7606 poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) {
7607 return vreinterpret_p16_s32(a);
7608 }
7609
7610 // CHECK: test_vreinterpret_p16_s64
test_vreinterpret_p16_s64(int64x1_t a)7611 poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) {
7612 return vreinterpret_p16_s64(a);
7613 }
7614
7615 // CHECK: test_vreinterpret_p16_u8
test_vreinterpret_p16_u8(uint8x8_t a)7616 poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) {
7617 return vreinterpret_p16_u8(a);
7618 }
7619
7620 // CHECK: test_vreinterpret_p16_u16
test_vreinterpret_p16_u16(uint16x4_t a)7621 poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) {
7622 return vreinterpret_p16_u16(a);
7623 }
7624
7625 // CHECK: test_vreinterpret_p16_u32
test_vreinterpret_p16_u32(uint32x2_t a)7626 poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) {
7627 return vreinterpret_p16_u32(a);
7628 }
7629
7630 // CHECK: test_vreinterpret_p16_u64
test_vreinterpret_p16_u64(uint64x1_t a)7631 poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) {
7632 return vreinterpret_p16_u64(a);
7633 }
7634
7635 // CHECK: test_vreinterpret_p16_f16
test_vreinterpret_p16_f16(float16x4_t a)7636 poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) {
7637 return vreinterpret_p16_f16(a);
7638 }
7639
7640 // CHECK: test_vreinterpret_p16_f32
test_vreinterpret_p16_f32(float32x2_t a)7641 poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) {
7642 return vreinterpret_p16_f32(a);
7643 }
7644
7645 // CHECK: test_vreinterpret_p16_p8
test_vreinterpret_p16_p8(poly8x8_t a)7646 poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) {
7647 return vreinterpret_p16_p8(a);
7648 }
7649
7650 // CHECK: test_vreinterpretq_s8_s16
test_vreinterpretq_s8_s16(int16x8_t a)7651 int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) {
7652 return vreinterpretq_s8_s16(a);
7653 }
7654
7655 // CHECK: test_vreinterpretq_s8_s32
test_vreinterpretq_s8_s32(int32x4_t a)7656 int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) {
7657 return vreinterpretq_s8_s32(a);
7658 }
7659
7660 // CHECK: test_vreinterpretq_s8_s64
test_vreinterpretq_s8_s64(int64x2_t a)7661 int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) {
7662 return vreinterpretq_s8_s64(a);
7663 }
7664
7665 // CHECK: test_vreinterpretq_s8_u8
test_vreinterpretq_s8_u8(uint8x16_t a)7666 int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) {
7667 return vreinterpretq_s8_u8(a);
7668 }
7669
7670 // CHECK: test_vreinterpretq_s8_u16
test_vreinterpretq_s8_u16(uint16x8_t a)7671 int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) {
7672 return vreinterpretq_s8_u16(a);
7673 }
7674
7675 // CHECK: test_vreinterpretq_s8_u32
test_vreinterpretq_s8_u32(uint32x4_t a)7676 int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) {
7677 return vreinterpretq_s8_u32(a);
7678 }
7679
7680 // CHECK: test_vreinterpretq_s8_u64
test_vreinterpretq_s8_u64(uint64x2_t a)7681 int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) {
7682 return vreinterpretq_s8_u64(a);
7683 }
7684
7685 // CHECK: test_vreinterpretq_s8_f16
test_vreinterpretq_s8_f16(float16x8_t a)7686 int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) {
7687 return vreinterpretq_s8_f16(a);
7688 }
7689
7690 // CHECK: test_vreinterpretq_s8_f32
test_vreinterpretq_s8_f32(float32x4_t a)7691 int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) {
7692 return vreinterpretq_s8_f32(a);
7693 }
7694
7695 // CHECK: test_vreinterpretq_s8_p8
test_vreinterpretq_s8_p8(poly8x16_t a)7696 int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) {
7697 return vreinterpretq_s8_p8(a);
7698 }
7699
7700 // CHECK: test_vreinterpretq_s8_p16
test_vreinterpretq_s8_p16(poly16x8_t a)7701 int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) {
7702 return vreinterpretq_s8_p16(a);
7703 }
7704
7705 // CHECK: test_vreinterpretq_s16_s8
test_vreinterpretq_s16_s8(int8x16_t a)7706 int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) {
7707 return vreinterpretq_s16_s8(a);
7708 }
7709
7710 // CHECK: test_vreinterpretq_s16_s32
test_vreinterpretq_s16_s32(int32x4_t a)7711 int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) {
7712 return vreinterpretq_s16_s32(a);
7713 }
7714
7715 // CHECK: test_vreinterpretq_s16_s64
test_vreinterpretq_s16_s64(int64x2_t a)7716 int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) {
7717 return vreinterpretq_s16_s64(a);
7718 }
7719
7720 // CHECK: test_vreinterpretq_s16_u8
test_vreinterpretq_s16_u8(uint8x16_t a)7721 int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) {
7722 return vreinterpretq_s16_u8(a);
7723 }
7724
7725 // CHECK: test_vreinterpretq_s16_u16
test_vreinterpretq_s16_u16(uint16x8_t a)7726 int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) {
7727 return vreinterpretq_s16_u16(a);
7728 }
7729
7730 // CHECK: test_vreinterpretq_s16_u32
test_vreinterpretq_s16_u32(uint32x4_t a)7731 int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) {
7732 return vreinterpretq_s16_u32(a);
7733 }
7734
7735 // CHECK: test_vreinterpretq_s16_u64
test_vreinterpretq_s16_u64(uint64x2_t a)7736 int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) {
7737 return vreinterpretq_s16_u64(a);
7738 }
7739
7740 // CHECK: test_vreinterpretq_s16_f16
test_vreinterpretq_s16_f16(float16x8_t a)7741 int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) {
7742 return vreinterpretq_s16_f16(a);
7743 }
7744
7745 // CHECK: test_vreinterpretq_s16_f32
test_vreinterpretq_s16_f32(float32x4_t a)7746 int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) {
7747 return vreinterpretq_s16_f32(a);
7748 }
7749
7750 // CHECK: test_vreinterpretq_s16_p8
test_vreinterpretq_s16_p8(poly8x16_t a)7751 int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) {
7752 return vreinterpretq_s16_p8(a);
7753 }
7754
7755 // CHECK: test_vreinterpretq_s16_p16
test_vreinterpretq_s16_p16(poly16x8_t a)7756 int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) {
7757 return vreinterpretq_s16_p16(a);
7758 }
7759
7760 // CHECK: test_vreinterpretq_s32_s8
test_vreinterpretq_s32_s8(int8x16_t a)7761 int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) {
7762 return vreinterpretq_s32_s8(a);
7763 }
7764
7765 // CHECK: test_vreinterpretq_s32_s16
test_vreinterpretq_s32_s16(int16x8_t a)7766 int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) {
7767 return vreinterpretq_s32_s16(a);
7768 }
7769
7770 // CHECK: test_vreinterpretq_s32_s64
test_vreinterpretq_s32_s64(int64x2_t a)7771 int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) {
7772 return vreinterpretq_s32_s64(a);
7773 }
7774
7775 // CHECK: test_vreinterpretq_s32_u8
test_vreinterpretq_s32_u8(uint8x16_t a)7776 int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) {
7777 return vreinterpretq_s32_u8(a);
7778 }
7779
7780 // CHECK: test_vreinterpretq_s32_u16
test_vreinterpretq_s32_u16(uint16x8_t a)7781 int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) {
7782 return vreinterpretq_s32_u16(a);
7783 }
7784
7785 // CHECK: test_vreinterpretq_s32_u32
test_vreinterpretq_s32_u32(uint32x4_t a)7786 int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) {
7787 return vreinterpretq_s32_u32(a);
7788 }
7789
7790 // CHECK: test_vreinterpretq_s32_u64
test_vreinterpretq_s32_u64(uint64x2_t a)7791 int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) {
7792 return vreinterpretq_s32_u64(a);
7793 }
7794
7795 // CHECK: test_vreinterpretq_s32_f16
test_vreinterpretq_s32_f16(float16x8_t a)7796 int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) {
7797 return vreinterpretq_s32_f16(a);
7798 }
7799
7800 // CHECK: test_vreinterpretq_s32_f32
test_vreinterpretq_s32_f32(float32x4_t a)7801 int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) {
7802 return vreinterpretq_s32_f32(a);
7803 }
7804
7805 // CHECK: test_vreinterpretq_s32_p8
test_vreinterpretq_s32_p8(poly8x16_t a)7806 int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) {
7807 return vreinterpretq_s32_p8(a);
7808 }
7809
7810 // CHECK: test_vreinterpretq_s32_p16
test_vreinterpretq_s32_p16(poly16x8_t a)7811 int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) {
7812 return vreinterpretq_s32_p16(a);
7813 }
7814
7815 // CHECK: test_vreinterpretq_s64_s8
test_vreinterpretq_s64_s8(int8x16_t a)7816 int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) {
7817 return vreinterpretq_s64_s8(a);
7818 }
7819
7820 // CHECK: test_vreinterpretq_s64_s16
test_vreinterpretq_s64_s16(int16x8_t a)7821 int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) {
7822 return vreinterpretq_s64_s16(a);
7823 }
7824
7825 // CHECK: test_vreinterpretq_s64_s32
test_vreinterpretq_s64_s32(int32x4_t a)7826 int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) {
7827 return vreinterpretq_s64_s32(a);
7828 }
7829
7830 // CHECK: test_vreinterpretq_s64_u8
test_vreinterpretq_s64_u8(uint8x16_t a)7831 int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) {
7832 return vreinterpretq_s64_u8(a);
7833 }
7834
7835 // CHECK: test_vreinterpretq_s64_u16
test_vreinterpretq_s64_u16(uint16x8_t a)7836 int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) {
7837 return vreinterpretq_s64_u16(a);
7838 }
7839
7840 // CHECK: test_vreinterpretq_s64_u32
test_vreinterpretq_s64_u32(uint32x4_t a)7841 int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) {
7842 return vreinterpretq_s64_u32(a);
7843 }
7844
7845 // CHECK: test_vreinterpretq_s64_u64
test_vreinterpretq_s64_u64(uint64x2_t a)7846 int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) {
7847 return vreinterpretq_s64_u64(a);
7848 }
7849
7850 // CHECK: test_vreinterpretq_s64_f16
test_vreinterpretq_s64_f16(float16x8_t a)7851 int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) {
7852 return vreinterpretq_s64_f16(a);
7853 }
7854
7855 // CHECK: test_vreinterpretq_s64_f32
test_vreinterpretq_s64_f32(float32x4_t a)7856 int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) {
7857 return vreinterpretq_s64_f32(a);
7858 }
7859
7860 // CHECK: test_vreinterpretq_s64_p8
test_vreinterpretq_s64_p8(poly8x16_t a)7861 int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) {
7862 return vreinterpretq_s64_p8(a);
7863 }
7864
7865 // CHECK: test_vreinterpretq_s64_p16
test_vreinterpretq_s64_p16(poly16x8_t a)7866 int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) {
7867 return vreinterpretq_s64_p16(a);
7868 }
7869
7870 // CHECK: test_vreinterpretq_u8_s8
test_vreinterpretq_u8_s8(int8x16_t a)7871 uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) {
7872 return vreinterpretq_u8_s8(a);
7873 }
7874
7875 // CHECK: test_vreinterpretq_u8_s16
test_vreinterpretq_u8_s16(int16x8_t a)7876 uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) {
7877 return vreinterpretq_u8_s16(a);
7878 }
7879
7880 // CHECK: test_vreinterpretq_u8_s32
test_vreinterpretq_u8_s32(int32x4_t a)7881 uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) {
7882 return vreinterpretq_u8_s32(a);
7883 }
7884
7885 // CHECK: test_vreinterpretq_u8_s64
test_vreinterpretq_u8_s64(int64x2_t a)7886 uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) {
7887 return vreinterpretq_u8_s64(a);
7888 }
7889
7890 // CHECK: test_vreinterpretq_u8_u16
test_vreinterpretq_u8_u16(uint16x8_t a)7891 uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) {
7892 return vreinterpretq_u8_u16(a);
7893 }
7894
7895 // CHECK: test_vreinterpretq_u8_u32
test_vreinterpretq_u8_u32(uint32x4_t a)7896 uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) {
7897 return vreinterpretq_u8_u32(a);
7898 }
7899
7900 // CHECK: test_vreinterpretq_u8_u64
test_vreinterpretq_u8_u64(uint64x2_t a)7901 uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) {
7902 return vreinterpretq_u8_u64(a);
7903 }
7904
7905 // CHECK: test_vreinterpretq_u8_f16
test_vreinterpretq_u8_f16(float16x8_t a)7906 uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) {
7907 return vreinterpretq_u8_f16(a);
7908 }
7909
7910 // CHECK: test_vreinterpretq_u8_f32
test_vreinterpretq_u8_f32(float32x4_t a)7911 uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) {
7912 return vreinterpretq_u8_f32(a);
7913 }
7914
7915 // CHECK: test_vreinterpretq_u8_p8
test_vreinterpretq_u8_p8(poly8x16_t a)7916 uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) {
7917 return vreinterpretq_u8_p8(a);
7918 }
7919
7920 // CHECK: test_vreinterpretq_u8_p16
test_vreinterpretq_u8_p16(poly16x8_t a)7921 uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) {
7922 return vreinterpretq_u8_p16(a);
7923 }
7924
7925 // CHECK: test_vreinterpretq_u16_s8
test_vreinterpretq_u16_s8(int8x16_t a)7926 uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) {
7927 return vreinterpretq_u16_s8(a);
7928 }
7929
7930 // CHECK: test_vreinterpretq_u16_s16
test_vreinterpretq_u16_s16(int16x8_t a)7931 uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) {
7932 return vreinterpretq_u16_s16(a);
7933 }
7934
7935 // CHECK: test_vreinterpretq_u16_s32
test_vreinterpretq_u16_s32(int32x4_t a)7936 uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) {
7937 return vreinterpretq_u16_s32(a);
7938 }
7939
7940 // CHECK: test_vreinterpretq_u16_s64
test_vreinterpretq_u16_s64(int64x2_t a)7941 uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) {
7942 return vreinterpretq_u16_s64(a);
7943 }
7944
7945 // CHECK: test_vreinterpretq_u16_u8
test_vreinterpretq_u16_u8(uint8x16_t a)7946 uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) {
7947 return vreinterpretq_u16_u8(a);
7948 }
7949
7950 // CHECK: test_vreinterpretq_u16_u32
test_vreinterpretq_u16_u32(uint32x4_t a)7951 uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) {
7952 return vreinterpretq_u16_u32(a);
7953 }
7954
7955 // CHECK: test_vreinterpretq_u16_u64
test_vreinterpretq_u16_u64(uint64x2_t a)7956 uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) {
7957 return vreinterpretq_u16_u64(a);
7958 }
7959
7960 // CHECK: test_vreinterpretq_u16_f16
test_vreinterpretq_u16_f16(float16x8_t a)7961 uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) {
7962 return vreinterpretq_u16_f16(a);
7963 }
7964
7965 // CHECK: test_vreinterpretq_u16_f32
test_vreinterpretq_u16_f32(float32x4_t a)7966 uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) {
7967 return vreinterpretq_u16_f32(a);
7968 }
7969
7970 // CHECK: test_vreinterpretq_u16_p8
test_vreinterpretq_u16_p8(poly8x16_t a)7971 uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) {
7972 return vreinterpretq_u16_p8(a);
7973 }
7974
7975 // CHECK: test_vreinterpretq_u16_p16
test_vreinterpretq_u16_p16(poly16x8_t a)7976 uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) {
7977 return vreinterpretq_u16_p16(a);
7978 }
7979
7980 // CHECK: test_vreinterpretq_u32_s8
test_vreinterpretq_u32_s8(int8x16_t a)7981 uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) {
7982 return vreinterpretq_u32_s8(a);
7983 }
7984
7985 // CHECK: test_vreinterpretq_u32_s16
test_vreinterpretq_u32_s16(int16x8_t a)7986 uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) {
7987 return vreinterpretq_u32_s16(a);
7988 }
7989
7990 // CHECK: test_vreinterpretq_u32_s32
test_vreinterpretq_u32_s32(int32x4_t a)7991 uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) {
7992 return vreinterpretq_u32_s32(a);
7993 }
7994
7995 // CHECK: test_vreinterpretq_u32_s64
test_vreinterpretq_u32_s64(int64x2_t a)7996 uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) {
7997 return vreinterpretq_u32_s64(a);
7998 }
7999
8000 // CHECK: test_vreinterpretq_u32_u8
test_vreinterpretq_u32_u8(uint8x16_t a)8001 uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) {
8002 return vreinterpretq_u32_u8(a);
8003 }
8004
8005 // CHECK: test_vreinterpretq_u32_u16
test_vreinterpretq_u32_u16(uint16x8_t a)8006 uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) {
8007 return vreinterpretq_u32_u16(a);
8008 }
8009
8010 // CHECK: test_vreinterpretq_u32_u64
test_vreinterpretq_u32_u64(uint64x2_t a)8011 uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) {
8012 return vreinterpretq_u32_u64(a);
8013 }
8014
8015 // CHECK: test_vreinterpretq_u32_f16
test_vreinterpretq_u32_f16(float16x8_t a)8016 uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) {
8017 return vreinterpretq_u32_f16(a);
8018 }
8019
8020 // CHECK: test_vreinterpretq_u32_f32
test_vreinterpretq_u32_f32(float32x4_t a)8021 uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) {
8022 return vreinterpretq_u32_f32(a);
8023 }
8024
8025 // CHECK: test_vreinterpretq_u32_p8
test_vreinterpretq_u32_p8(poly8x16_t a)8026 uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) {
8027 return vreinterpretq_u32_p8(a);
8028 }
8029
8030 // CHECK: test_vreinterpretq_u32_p16
test_vreinterpretq_u32_p16(poly16x8_t a)8031 uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) {
8032 return vreinterpretq_u32_p16(a);
8033 }
8034
8035 // CHECK: test_vreinterpretq_u64_s8
test_vreinterpretq_u64_s8(int8x16_t a)8036 uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) {
8037 return vreinterpretq_u64_s8(a);
8038 }
8039
8040 // CHECK: test_vreinterpretq_u64_s16
test_vreinterpretq_u64_s16(int16x8_t a)8041 uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) {
8042 return vreinterpretq_u64_s16(a);
8043 }
8044
8045 // CHECK: test_vreinterpretq_u64_s32
test_vreinterpretq_u64_s32(int32x4_t a)8046 uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) {
8047 return vreinterpretq_u64_s32(a);
8048 }
8049
8050 // CHECK: test_vreinterpretq_u64_s64
test_vreinterpretq_u64_s64(int64x2_t a)8051 uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) {
8052 return vreinterpretq_u64_s64(a);
8053 }
8054
8055 // CHECK: test_vreinterpretq_u64_u8
test_vreinterpretq_u64_u8(uint8x16_t a)8056 uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) {
8057 return vreinterpretq_u64_u8(a);
8058 }
8059
8060 // CHECK: test_vreinterpretq_u64_u16
test_vreinterpretq_u64_u16(uint16x8_t a)8061 uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) {
8062 return vreinterpretq_u64_u16(a);
8063 }
8064
8065 // CHECK: test_vreinterpretq_u64_u32
test_vreinterpretq_u64_u32(uint32x4_t a)8066 uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) {
8067 return vreinterpretq_u64_u32(a);
8068 }
8069
8070 // CHECK: test_vreinterpretq_u64_f16
test_vreinterpretq_u64_f16(float16x8_t a)8071 uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) {
8072 return vreinterpretq_u64_f16(a);
8073 }
8074
8075 // CHECK: test_vreinterpretq_u64_f32
test_vreinterpretq_u64_f32(float32x4_t a)8076 uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) {
8077 return vreinterpretq_u64_f32(a);
8078 }
8079
8080 // CHECK: test_vreinterpretq_u64_p8
test_vreinterpretq_u64_p8(poly8x16_t a)8081 uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) {
8082 return vreinterpretq_u64_p8(a);
8083 }
8084
8085 // CHECK: test_vreinterpretq_u64_p16
test_vreinterpretq_u64_p16(poly16x8_t a)8086 uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) {
8087 return vreinterpretq_u64_p16(a);
8088 }
8089
8090 // CHECK: test_vreinterpretq_f16_s8
test_vreinterpretq_f16_s8(int8x16_t a)8091 float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) {
8092 return vreinterpretq_f16_s8(a);
8093 }
8094
8095 // CHECK: test_vreinterpretq_f16_s16
test_vreinterpretq_f16_s16(int16x8_t a)8096 float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) {
8097 return vreinterpretq_f16_s16(a);
8098 }
8099
8100 // CHECK: test_vreinterpretq_f16_s32
test_vreinterpretq_f16_s32(int32x4_t a)8101 float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) {
8102 return vreinterpretq_f16_s32(a);
8103 }
8104
8105 // CHECK: test_vreinterpretq_f16_s64
test_vreinterpretq_f16_s64(int64x2_t a)8106 float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) {
8107 return vreinterpretq_f16_s64(a);
8108 }
8109
8110 // CHECK: test_vreinterpretq_f16_u8
test_vreinterpretq_f16_u8(uint8x16_t a)8111 float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) {
8112 return vreinterpretq_f16_u8(a);
8113 }
8114
8115 // CHECK: test_vreinterpretq_f16_u16
test_vreinterpretq_f16_u16(uint16x8_t a)8116 float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) {
8117 return vreinterpretq_f16_u16(a);
8118 }
8119
8120 // CHECK: test_vreinterpretq_f16_u32
test_vreinterpretq_f16_u32(uint32x4_t a)8121 float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) {
8122 return vreinterpretq_f16_u32(a);
8123 }
8124
8125 // CHECK: test_vreinterpretq_f16_u64
test_vreinterpretq_f16_u64(uint64x2_t a)8126 float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) {
8127 return vreinterpretq_f16_u64(a);
8128 }
8129
8130 // CHECK: test_vreinterpretq_f16_f32
test_vreinterpretq_f16_f32(float32x4_t a)8131 float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) {
8132 return vreinterpretq_f16_f32(a);
8133 }
8134
8135 // CHECK: test_vreinterpretq_f16_p8
test_vreinterpretq_f16_p8(poly8x16_t a)8136 float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) {
8137 return vreinterpretq_f16_p8(a);
8138 }
8139
8140 // CHECK: test_vreinterpretq_f16_p16
test_vreinterpretq_f16_p16(poly16x8_t a)8141 float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) {
8142 return vreinterpretq_f16_p16(a);
8143 }
8144
8145 // CHECK: test_vreinterpretq_f32_s8
test_vreinterpretq_f32_s8(int8x16_t a)8146 float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) {
8147 return vreinterpretq_f32_s8(a);
8148 }
8149
8150 // CHECK: test_vreinterpretq_f32_s16
test_vreinterpretq_f32_s16(int16x8_t a)8151 float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) {
8152 return vreinterpretq_f32_s16(a);
8153 }
8154
8155 // CHECK: test_vreinterpretq_f32_s32
test_vreinterpretq_f32_s32(int32x4_t a)8156 float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) {
8157 return vreinterpretq_f32_s32(a);
8158 }
8159
8160 // CHECK: test_vreinterpretq_f32_s64
test_vreinterpretq_f32_s64(int64x2_t a)8161 float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) {
8162 return vreinterpretq_f32_s64(a);
8163 }
8164
8165 // CHECK: test_vreinterpretq_f32_u8
test_vreinterpretq_f32_u8(uint8x16_t a)8166 float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) {
8167 return vreinterpretq_f32_u8(a);
8168 }
8169
8170 // CHECK: test_vreinterpretq_f32_u16
test_vreinterpretq_f32_u16(uint16x8_t a)8171 float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) {
8172 return vreinterpretq_f32_u16(a);
8173 }
8174
8175 // CHECK: test_vreinterpretq_f32_u32
test_vreinterpretq_f32_u32(uint32x4_t a)8176 float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) {
8177 return vreinterpretq_f32_u32(a);
8178 }
8179
8180 // CHECK: test_vreinterpretq_f32_u64
test_vreinterpretq_f32_u64(uint64x2_t a)8181 float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) {
8182 return vreinterpretq_f32_u64(a);
8183 }
8184
8185 // CHECK: test_vreinterpretq_f32_f16
test_vreinterpretq_f32_f16(float16x8_t a)8186 float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) {
8187 return vreinterpretq_f32_f16(a);
8188 }
8189
8190 // CHECK: test_vreinterpretq_f32_p8
test_vreinterpretq_f32_p8(poly8x16_t a)8191 float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) {
8192 return vreinterpretq_f32_p8(a);
8193 }
8194
8195 // CHECK: test_vreinterpretq_f32_p16
test_vreinterpretq_f32_p16(poly16x8_t a)8196 float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) {
8197 return vreinterpretq_f32_p16(a);
8198 }
8199
8200 // CHECK: test_vreinterpretq_p8_s8
test_vreinterpretq_p8_s8(int8x16_t a)8201 poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) {
8202 return vreinterpretq_p8_s8(a);
8203 }
8204
8205 // CHECK: test_vreinterpretq_p8_s16
test_vreinterpretq_p8_s16(int16x8_t a)8206 poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) {
8207 return vreinterpretq_p8_s16(a);
8208 }
8209
8210 // CHECK: test_vreinterpretq_p8_s32
test_vreinterpretq_p8_s32(int32x4_t a)8211 poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) {
8212 return vreinterpretq_p8_s32(a);
8213 }
8214
8215 // CHECK: test_vreinterpretq_p8_s64
test_vreinterpretq_p8_s64(int64x2_t a)8216 poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) {
8217 return vreinterpretq_p8_s64(a);
8218 }
8219
8220 // CHECK: test_vreinterpretq_p8_u8
test_vreinterpretq_p8_u8(uint8x16_t a)8221 poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) {
8222 return vreinterpretq_p8_u8(a);
8223 }
8224
8225 // CHECK: test_vreinterpretq_p8_u16
test_vreinterpretq_p8_u16(uint16x8_t a)8226 poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) {
8227 return vreinterpretq_p8_u16(a);
8228 }
8229
8230 // CHECK: test_vreinterpretq_p8_u32
test_vreinterpretq_p8_u32(uint32x4_t a)8231 poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) {
8232 return vreinterpretq_p8_u32(a);
8233 }
8234
8235 // CHECK: test_vreinterpretq_p8_u64
test_vreinterpretq_p8_u64(uint64x2_t a)8236 poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) {
8237 return vreinterpretq_p8_u64(a);
8238 }
8239
8240 // CHECK: test_vreinterpretq_p8_f16
test_vreinterpretq_p8_f16(float16x8_t a)8241 poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) {
8242 return vreinterpretq_p8_f16(a);
8243 }
8244
8245 // CHECK: test_vreinterpretq_p8_f32
test_vreinterpretq_p8_f32(float32x4_t a)8246 poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) {
8247 return vreinterpretq_p8_f32(a);
8248 }
8249
8250 // CHECK: test_vreinterpretq_p8_p16
test_vreinterpretq_p8_p16(poly16x8_t a)8251 poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) {
8252 return vreinterpretq_p8_p16(a);
8253 }
8254
8255 // CHECK: test_vreinterpretq_p16_s8
test_vreinterpretq_p16_s8(int8x16_t a)8256 poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) {
8257 return vreinterpretq_p16_s8(a);
8258 }
8259
8260 // CHECK: test_vreinterpretq_p16_s16
test_vreinterpretq_p16_s16(int16x8_t a)8261 poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) {
8262 return vreinterpretq_p16_s16(a);
8263 }
8264
8265 // CHECK: test_vreinterpretq_p16_s32
test_vreinterpretq_p16_s32(int32x4_t a)8266 poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) {
8267 return vreinterpretq_p16_s32(a);
8268 }
8269
8270 // CHECK: test_vreinterpretq_p16_s64
test_vreinterpretq_p16_s64(int64x2_t a)8271 poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) {
8272 return vreinterpretq_p16_s64(a);
8273 }
8274
8275 // CHECK: test_vreinterpretq_p16_u8
test_vreinterpretq_p16_u8(uint8x16_t a)8276 poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) {
8277 return vreinterpretq_p16_u8(a);
8278 }
8279
8280 // CHECK: test_vreinterpretq_p16_u16
test_vreinterpretq_p16_u16(uint16x8_t a)8281 poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) {
8282 return vreinterpretq_p16_u16(a);
8283 }
8284
8285 // CHECK: test_vreinterpretq_p16_u32
test_vreinterpretq_p16_u32(uint32x4_t a)8286 poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) {
8287 return vreinterpretq_p16_u32(a);
8288 }
8289
8290 // CHECK: test_vreinterpretq_p16_u64
test_vreinterpretq_p16_u64(uint64x2_t a)8291 poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) {
8292 return vreinterpretq_p16_u64(a);
8293 }
8294
8295 // CHECK: test_vreinterpretq_p16_f16
test_vreinterpretq_p16_f16(float16x8_t a)8296 poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) {
8297 return vreinterpretq_p16_f16(a);
8298 }
8299
8300 // CHECK: test_vreinterpretq_p16_f32
test_vreinterpretq_p16_f32(float32x4_t a)8301 poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) {
8302 return vreinterpretq_p16_f32(a);
8303 }
8304
8305 // CHECK: test_vreinterpretq_p16_p8
test_vreinterpretq_p16_p8(poly8x16_t a)8306 poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) {
8307 return vreinterpretq_p16_p8(a);
8308 }
8309
8310
8311 // CHECK: test_vrev16_s8
8312 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_s8(int8x8_t a)8313 int8x8_t test_vrev16_s8(int8x8_t a) {
8314 return vrev16_s8(a);
8315 }
8316
8317 // CHECK: test_vrev16_u8
8318 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_u8(uint8x8_t a)8319 uint8x8_t test_vrev16_u8(uint8x8_t a) {
8320 return vrev16_u8(a);
8321 }
8322
8323 // CHECK: test_vrev16_p8
8324 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_p8(poly8x8_t a)8325 poly8x8_t test_vrev16_p8(poly8x8_t a) {
8326 return vrev16_p8(a);
8327 }
8328
8329 // CHECK: test_vrev16q_s8
8330 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_s8(int8x16_t a)8331 int8x16_t test_vrev16q_s8(int8x16_t a) {
8332 return vrev16q_s8(a);
8333 }
8334
8335 // CHECK: test_vrev16q_u8
8336 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_u8(uint8x16_t a)8337 uint8x16_t test_vrev16q_u8(uint8x16_t a) {
8338 return vrev16q_u8(a);
8339 }
8340
8341 // CHECK: test_vrev16q_p8
8342 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_p8(poly8x16_t a)8343 poly8x16_t test_vrev16q_p8(poly8x16_t a) {
8344 return vrev16q_p8(a);
8345 }
8346
8347
8348 // CHECK: test_vrev32_s8
8349 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s8(int8x8_t a)8350 int8x8_t test_vrev32_s8(int8x8_t a) {
8351 return vrev32_s8(a);
8352 }
8353
8354 // CHECK: test_vrev32_s16
8355 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s16(int16x4_t a)8356 int16x4_t test_vrev32_s16(int16x4_t a) {
8357 return vrev32_s16(a);
8358 }
8359
8360 // CHECK: test_vrev32_u8
8361 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u8(uint8x8_t a)8362 uint8x8_t test_vrev32_u8(uint8x8_t a) {
8363 return vrev32_u8(a);
8364 }
8365
8366 // CHECK: test_vrev32_u16
8367 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u16(uint16x4_t a)8368 uint16x4_t test_vrev32_u16(uint16x4_t a) {
8369 return vrev32_u16(a);
8370 }
8371
8372 // CHECK: test_vrev32_p8
8373 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p8(poly8x8_t a)8374 poly8x8_t test_vrev32_p8(poly8x8_t a) {
8375 return vrev32_p8(a);
8376 }
8377
8378 // CHECK: test_vrev32_p16
8379 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p16(poly16x4_t a)8380 poly16x4_t test_vrev32_p16(poly16x4_t a) {
8381 return vrev32_p16(a);
8382 }
8383
8384 // CHECK: test_vrev32q_s8
8385 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s8(int8x16_t a)8386 int8x16_t test_vrev32q_s8(int8x16_t a) {
8387 return vrev32q_s8(a);
8388 }
8389
8390 // CHECK: test_vrev32q_s16
8391 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s16(int16x8_t a)8392 int16x8_t test_vrev32q_s16(int16x8_t a) {
8393 return vrev32q_s16(a);
8394 }
8395
8396 // CHECK: test_vrev32q_u8
8397 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u8(uint8x16_t a)8398 uint8x16_t test_vrev32q_u8(uint8x16_t a) {
8399 return vrev32q_u8(a);
8400 }
8401
8402 // CHECK: test_vrev32q_u16
8403 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u16(uint16x8_t a)8404 uint16x8_t test_vrev32q_u16(uint16x8_t a) {
8405 return vrev32q_u16(a);
8406 }
8407
8408 // CHECK: test_vrev32q_p8
8409 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p8(poly8x16_t a)8410 poly8x16_t test_vrev32q_p8(poly8x16_t a) {
8411 return vrev32q_p8(a);
8412 }
8413
8414 // CHECK: test_vrev32q_p16
8415 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p16(poly16x8_t a)8416 poly16x8_t test_vrev32q_p16(poly16x8_t a) {
8417 return vrev32q_p16(a);
8418 }
8419
8420
8421 // CHECK: test_vrev64_s8
8422 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s8(int8x8_t a)8423 int8x8_t test_vrev64_s8(int8x8_t a) {
8424 return vrev64_s8(a);
8425 }
8426
8427 // CHECK: test_vrev64_s16
8428 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s16(int16x4_t a)8429 int16x4_t test_vrev64_s16(int16x4_t a) {
8430 return vrev64_s16(a);
8431 }
8432
8433 // CHECK: test_vrev64_s32
8434 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s32(int32x2_t a)8435 int32x2_t test_vrev64_s32(int32x2_t a) {
8436 return vrev64_s32(a);
8437 }
8438
8439 // CHECK: test_vrev64_u8
8440 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u8(uint8x8_t a)8441 uint8x8_t test_vrev64_u8(uint8x8_t a) {
8442 return vrev64_u8(a);
8443 }
8444
8445 // CHECK: test_vrev64_u16
8446 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u16(uint16x4_t a)8447 uint16x4_t test_vrev64_u16(uint16x4_t a) {
8448 return vrev64_u16(a);
8449 }
8450
8451 // CHECK: test_vrev64_u32
8452 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u32(uint32x2_t a)8453 uint32x2_t test_vrev64_u32(uint32x2_t a) {
8454 return vrev64_u32(a);
8455 }
8456
8457 // CHECK: test_vrev64_p8
8458 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p8(poly8x8_t a)8459 poly8x8_t test_vrev64_p8(poly8x8_t a) {
8460 return vrev64_p8(a);
8461 }
8462
8463 // CHECK: test_vrev64_p16
8464 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p16(poly16x4_t a)8465 poly16x4_t test_vrev64_p16(poly16x4_t a) {
8466 return vrev64_p16(a);
8467 }
8468
8469 // CHECK: test_vrev64_f32
8470 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_f32(float32x2_t a)8471 float32x2_t test_vrev64_f32(float32x2_t a) {
8472 return vrev64_f32(a);
8473 }
8474
8475 // CHECK: test_vrev64q_s8
8476 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s8(int8x16_t a)8477 int8x16_t test_vrev64q_s8(int8x16_t a) {
8478 return vrev64q_s8(a);
8479 }
8480
8481 // CHECK: test_vrev64q_s16
8482 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s16(int16x8_t a)8483 int16x8_t test_vrev64q_s16(int16x8_t a) {
8484 return vrev64q_s16(a);
8485 }
8486
8487 // CHECK: test_vrev64q_s32
8488 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s32(int32x4_t a)8489 int32x4_t test_vrev64q_s32(int32x4_t a) {
8490 return vrev64q_s32(a);
8491 }
8492
8493 // CHECK: test_vrev64q_u8
8494 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u8(uint8x16_t a)8495 uint8x16_t test_vrev64q_u8(uint8x16_t a) {
8496 return vrev64q_u8(a);
8497 }
8498
8499 // CHECK: test_vrev64q_u16
8500 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u16(uint16x8_t a)8501 uint16x8_t test_vrev64q_u16(uint16x8_t a) {
8502 return vrev64q_u16(a);
8503 }
8504
8505 // CHECK: test_vrev64q_u32
8506 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u32(uint32x4_t a)8507 uint32x4_t test_vrev64q_u32(uint32x4_t a) {
8508 return vrev64q_u32(a);
8509 }
8510
8511 // CHECK: test_vrev64q_p8
8512 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p8(poly8x16_t a)8513 poly8x16_t test_vrev64q_p8(poly8x16_t a) {
8514 return vrev64q_p8(a);
8515 }
8516
8517 // CHECK: test_vrev64q_p16
8518 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p16(poly16x8_t a)8519 poly16x8_t test_vrev64q_p16(poly16x8_t a) {
8520 return vrev64q_p16(a);
8521 }
8522
8523 // CHECK: test_vrev64q_f32
8524 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_f32(float32x4_t a)8525 float32x4_t test_vrev64q_f32(float32x4_t a) {
8526 return vrev64q_f32(a);
8527 }
8528
8529
8530 // CHECK: test_vrhadd_s8
8531 // CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s8(int8x8_t a,int8x8_t b)8532 int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) {
8533 return vrhadd_s8(a, b);
8534 }
8535
8536 // CHECK: test_vrhadd_s16
8537 // CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s16(int16x4_t a,int16x4_t b)8538 int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) {
8539 return vrhadd_s16(a, b);
8540 }
8541
8542 // CHECK: test_vrhadd_s32
8543 // CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s32(int32x2_t a,int32x2_t b)8544 int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) {
8545 return vrhadd_s32(a, b);
8546 }
8547
8548 // CHECK: test_vrhadd_u8
8549 // CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u8(uint8x8_t a,uint8x8_t b)8550 uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) {
8551 return vrhadd_u8(a, b);
8552 }
8553
8554 // CHECK: test_vrhadd_u16
8555 // CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u16(uint16x4_t a,uint16x4_t b)8556 uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) {
8557 return vrhadd_u16(a, b);
8558 }
8559
8560 // CHECK: test_vrhadd_u32
8561 // CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u32(uint32x2_t a,uint32x2_t b)8562 uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) {
8563 return vrhadd_u32(a, b);
8564 }
8565
8566 // CHECK: test_vrhaddq_s8
8567 // CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s8(int8x16_t a,int8x16_t b)8568 int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) {
8569 return vrhaddq_s8(a, b);
8570 }
8571
8572 // CHECK: test_vrhaddq_s16
8573 // CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s16(int16x8_t a,int16x8_t b)8574 int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) {
8575 return vrhaddq_s16(a, b);
8576 }
8577
8578 // CHECK: test_vrhaddq_s32
8579 // CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s32(int32x4_t a,int32x4_t b)8580 int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) {
8581 return vrhaddq_s32(a, b);
8582 }
8583
8584 // CHECK: test_vrhaddq_u8
8585 // CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u8(uint8x16_t a,uint8x16_t b)8586 uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) {
8587 return vrhaddq_u8(a, b);
8588 }
8589
8590 // CHECK: test_vrhaddq_u16
8591 // CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u16(uint16x8_t a,uint16x8_t b)8592 uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) {
8593 return vrhaddq_u16(a, b);
8594 }
8595
8596 // CHECK: test_vrhaddq_u32
8597 // CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u32(uint32x4_t a,uint32x4_t b)8598 uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) {
8599 return vrhaddq_u32(a, b);
8600 }
8601
8602
8603 // CHECK: test_vrshl_s8
8604 // CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s8(int8x8_t a,int8x8_t b)8605 int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) {
8606 return vrshl_s8(a, b);
8607 }
8608
8609 // CHECK: test_vrshl_s16
8610 // CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s16(int16x4_t a,int16x4_t b)8611 int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) {
8612 return vrshl_s16(a, b);
8613 }
8614
8615 // CHECK: test_vrshl_s32
8616 // CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s32(int32x2_t a,int32x2_t b)8617 int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) {
8618 return vrshl_s32(a, b);
8619 }
8620
8621 // CHECK: test_vrshl_s64
8622 // CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s64(int64x1_t a,int64x1_t b)8623 int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) {
8624 return vrshl_s64(a, b);
8625 }
8626
8627 // CHECK: test_vrshl_u8
8628 // CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u8(uint8x8_t a,int8x8_t b)8629 uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) {
8630 return vrshl_u8(a, b);
8631 }
8632
8633 // CHECK: test_vrshl_u16
8634 // CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u16(uint16x4_t a,int16x4_t b)8635 uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) {
8636 return vrshl_u16(a, b);
8637 }
8638
8639 // CHECK: test_vrshl_u32
8640 // CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u32(uint32x2_t a,int32x2_t b)8641 uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) {
8642 return vrshl_u32(a, b);
8643 }
8644
8645 // CHECK: test_vrshl_u64
8646 // CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u64(uint64x1_t a,int64x1_t b)8647 uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) {
8648 return vrshl_u64(a, b);
8649 }
8650
8651 // CHECK: test_vrshlq_s8
8652 // CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s8(int8x16_t a,int8x16_t b)8653 int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) {
8654 return vrshlq_s8(a, b);
8655 }
8656
8657 // CHECK: test_vrshlq_s16
8658 // CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s16(int16x8_t a,int16x8_t b)8659 int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) {
8660 return vrshlq_s16(a, b);
8661 }
8662
8663 // CHECK: test_vrshlq_s32
8664 // CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s32(int32x4_t a,int32x4_t b)8665 int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) {
8666 return vrshlq_s32(a, b);
8667 }
8668
8669 // CHECK: test_vrshlq_s64
8670 // CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s64(int64x2_t a,int64x2_t b)8671 int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) {
8672 return vrshlq_s64(a, b);
8673 }
8674
8675 // CHECK: test_vrshlq_u8
8676 // CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u8(uint8x16_t a,int8x16_t b)8677 uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) {
8678 return vrshlq_u8(a, b);
8679 }
8680
8681 // CHECK: test_vrshlq_u16
8682 // CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u16(uint16x8_t a,int16x8_t b)8683 uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) {
8684 return vrshlq_u16(a, b);
8685 }
8686
8687 // CHECK: test_vrshlq_u32
8688 // CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u32(uint32x4_t a,int32x4_t b)8689 uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) {
8690 return vrshlq_u32(a, b);
8691 }
8692
8693 // CHECK: test_vrshlq_u64
8694 // CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u64(uint64x2_t a,int64x2_t b)8695 uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) {
8696 return vrshlq_u64(a, b);
8697 }
8698
8699
8700 // CHECK: test_vrshrn_n_s16
8701 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s16(int16x8_t a)8702 int8x8_t test_vrshrn_n_s16(int16x8_t a) {
8703 return vrshrn_n_s16(a, 1);
8704 }
8705
8706 // CHECK: test_vrshrn_n_s32
8707 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s32(int32x4_t a)8708 int16x4_t test_vrshrn_n_s32(int32x4_t a) {
8709 return vrshrn_n_s32(a, 1);
8710 }
8711
8712 // CHECK: test_vrshrn_n_s64
8713 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s64(int64x2_t a)8714 int32x2_t test_vrshrn_n_s64(int64x2_t a) {
8715 return vrshrn_n_s64(a, 1);
8716 }
8717
8718 // CHECK: test_vrshrn_n_u16
8719 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u16(uint16x8_t a)8720 uint8x8_t test_vrshrn_n_u16(uint16x8_t a) {
8721 return vrshrn_n_u16(a, 1);
8722 }
8723
8724 // CHECK: test_vrshrn_n_u32
8725 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u32(uint32x4_t a)8726 uint16x4_t test_vrshrn_n_u32(uint32x4_t a) {
8727 return vrshrn_n_u32(a, 1);
8728 }
8729
8730 // CHECK: test_vrshrn_n_u64
8731 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u64(uint64x2_t a)8732 uint32x2_t test_vrshrn_n_u64(uint64x2_t a) {
8733 return vrshrn_n_u64(a, 1);
8734 }
8735
8736
8737 // CHECK: test_vrshr_n_s8
8738 // CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s8(int8x8_t a)8739 int8x8_t test_vrshr_n_s8(int8x8_t a) {
8740 return vrshr_n_s8(a, 1);
8741 }
8742
8743 // CHECK: test_vrshr_n_s16
8744 // CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s16(int16x4_t a)8745 int16x4_t test_vrshr_n_s16(int16x4_t a) {
8746 return vrshr_n_s16(a, 1);
8747 }
8748
8749 // CHECK: test_vrshr_n_s32
8750 // CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s32(int32x2_t a)8751 int32x2_t test_vrshr_n_s32(int32x2_t a) {
8752 return vrshr_n_s32(a, 1);
8753 }
8754
8755 // CHECK: test_vrshr_n_s64
8756 // CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s64(int64x1_t a)8757 int64x1_t test_vrshr_n_s64(int64x1_t a) {
8758 return vrshr_n_s64(a, 1);
8759 }
8760
8761 // CHECK: test_vrshr_n_u8
8762 // CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u8(uint8x8_t a)8763 uint8x8_t test_vrshr_n_u8(uint8x8_t a) {
8764 return vrshr_n_u8(a, 1);
8765 }
8766
8767 // CHECK: test_vrshr_n_u16
8768 // CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u16(uint16x4_t a)8769 uint16x4_t test_vrshr_n_u16(uint16x4_t a) {
8770 return vrshr_n_u16(a, 1);
8771 }
8772
8773 // CHECK: test_vrshr_n_u32
8774 // CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u32(uint32x2_t a)8775 uint32x2_t test_vrshr_n_u32(uint32x2_t a) {
8776 return vrshr_n_u32(a, 1);
8777 }
8778
8779 // CHECK: test_vrshr_n_u64
8780 // CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u64(uint64x1_t a)8781 uint64x1_t test_vrshr_n_u64(uint64x1_t a) {
8782 return vrshr_n_u64(a, 1);
8783 }
8784
8785 // CHECK: test_vrshrq_n_s8
8786 // CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s8(int8x16_t a)8787 int8x16_t test_vrshrq_n_s8(int8x16_t a) {
8788 return vrshrq_n_s8(a, 1);
8789 }
8790
8791 // CHECK: test_vrshrq_n_s16
8792 // CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s16(int16x8_t a)8793 int16x8_t test_vrshrq_n_s16(int16x8_t a) {
8794 return vrshrq_n_s16(a, 1);
8795 }
8796
8797 // CHECK: test_vrshrq_n_s32
8798 // CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s32(int32x4_t a)8799 int32x4_t test_vrshrq_n_s32(int32x4_t a) {
8800 return vrshrq_n_s32(a, 1);
8801 }
8802
8803 // CHECK: test_vrshrq_n_s64
8804 // CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s64(int64x2_t a)8805 int64x2_t test_vrshrq_n_s64(int64x2_t a) {
8806 return vrshrq_n_s64(a, 1);
8807 }
8808
8809 // CHECK: test_vrshrq_n_u8
8810 // CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u8(uint8x16_t a)8811 uint8x16_t test_vrshrq_n_u8(uint8x16_t a) {
8812 return vrshrq_n_u8(a, 1);
8813 }
8814
8815 // CHECK: test_vrshrq_n_u16
8816 // CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u16(uint16x8_t a)8817 uint16x8_t test_vrshrq_n_u16(uint16x8_t a) {
8818 return vrshrq_n_u16(a, 1);
8819 }
8820
8821 // CHECK: test_vrshrq_n_u32
8822 // CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u32(uint32x4_t a)8823 uint32x4_t test_vrshrq_n_u32(uint32x4_t a) {
8824 return vrshrq_n_u32(a, 1);
8825 }
8826
8827 // CHECK: test_vrshrq_n_u64
8828 // CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u64(uint64x2_t a)8829 uint64x2_t test_vrshrq_n_u64(uint64x2_t a) {
8830 return vrshrq_n_u64(a, 1);
8831 }
8832
8833
8834 // CHECK: test_vrsqrte_f32
8835 // CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_f32(float32x2_t a)8836 float32x2_t test_vrsqrte_f32(float32x2_t a) {
8837 return vrsqrte_f32(a);
8838 }
8839
8840 // CHECK: test_vrsqrte_u32
8841 // CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_u32(uint32x2_t a)8842 uint32x2_t test_vrsqrte_u32(uint32x2_t a) {
8843 return vrsqrte_u32(a);
8844 }
8845
8846 // CHECK: test_vrsqrteq_f32
8847 // CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_f32(float32x4_t a)8848 float32x4_t test_vrsqrteq_f32(float32x4_t a) {
8849 return vrsqrteq_f32(a);
8850 }
8851
8852 // CHECK: test_vrsqrteq_u32
8853 // CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_u32(uint32x4_t a)8854 uint32x4_t test_vrsqrteq_u32(uint32x4_t a) {
8855 return vrsqrteq_u32(a);
8856 }
8857
8858
8859 // CHECK: test_vrsqrts_f32
8860 // CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrts_f32(float32x2_t a,float32x2_t b)8861 float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) {
8862 return vrsqrts_f32(a, b);
8863 }
8864
8865 // CHECK: test_vrsqrtsq_f32
8866 // CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrtsq_f32(float32x4_t a,float32x4_t b)8867 float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) {
8868 return vrsqrtsq_f32(a, b);
8869 }
8870
8871
8872 // CHECK: test_vrsra_n_s8
8873 // CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s8(int8x8_t a,int8x8_t b)8874 int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) {
8875 return vrsra_n_s8(a, b, 1);
8876 }
8877
8878 // CHECK: test_vrsra_n_s16
8879 // CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s16(int16x4_t a,int16x4_t b)8880 int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) {
8881 return vrsra_n_s16(a, b, 1);
8882 }
8883
8884 // CHECK: test_vrsra_n_s32
8885 // CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s32(int32x2_t a,int32x2_t b)8886 int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) {
8887 return vrsra_n_s32(a, b, 1);
8888 }
8889
8890 // CHECK: test_vrsra_n_s64
8891 // CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s64(int64x1_t a,int64x1_t b)8892 int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) {
8893 return vrsra_n_s64(a, b, 1);
8894 }
8895
8896 // CHECK: test_vrsra_n_u8
8897 // CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u8(uint8x8_t a,uint8x8_t b)8898 uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) {
8899 return vrsra_n_u8(a, b, 1);
8900 }
8901
8902 // CHECK: test_vrsra_n_u16
8903 // CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u16(uint16x4_t a,uint16x4_t b)8904 uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) {
8905 return vrsra_n_u16(a, b, 1);
8906 }
8907
8908 // CHECK: test_vrsra_n_u32
8909 // CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u32(uint32x2_t a,uint32x2_t b)8910 uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) {
8911 return vrsra_n_u32(a, b, 1);
8912 }
8913
8914 // CHECK: test_vrsra_n_u64
8915 // CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u64(uint64x1_t a,uint64x1_t b)8916 uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) {
8917 return vrsra_n_u64(a, b, 1);
8918 }
8919
8920 // CHECK: test_vrsraq_n_s8
8921 // CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s8(int8x16_t a,int8x16_t b)8922 int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) {
8923 return vrsraq_n_s8(a, b, 1);
8924 }
8925
8926 // CHECK: test_vrsraq_n_s16
8927 // CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s16(int16x8_t a,int16x8_t b)8928 int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) {
8929 return vrsraq_n_s16(a, b, 1);
8930 }
8931
8932 // CHECK: test_vrsraq_n_s32
8933 // CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s32(int32x4_t a,int32x4_t b)8934 int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) {
8935 return vrsraq_n_s32(a, b, 1);
8936 }
8937
8938 // CHECK: test_vrsraq_n_s64
8939 // CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s64(int64x2_t a,int64x2_t b)8940 int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) {
8941 return vrsraq_n_s64(a, b, 1);
8942 }
8943
8944 // CHECK: test_vrsraq_n_u8
8945 // CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u8(uint8x16_t a,uint8x16_t b)8946 uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) {
8947 return vrsraq_n_u8(a, b, 1);
8948 }
8949
8950 // CHECK: test_vrsraq_n_u16
8951 // CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u16(uint16x8_t a,uint16x8_t b)8952 uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) {
8953 return vrsraq_n_u16(a, b, 1);
8954 }
8955
8956 // CHECK: test_vrsraq_n_u32
8957 // CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u32(uint32x4_t a,uint32x4_t b)8958 uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) {
8959 return vrsraq_n_u32(a, b, 1);
8960 }
8961
8962 // CHECK: test_vrsraq_n_u64
8963 // CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u64(uint64x2_t a,uint64x2_t b)8964 uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) {
8965 return vrsraq_n_u64(a, b, 1);
8966 }
8967
8968
8969 // CHECK: test_vrsubhn_s16
8970 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s16(int16x8_t a,int16x8_t b)8971 int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) {
8972 return vrsubhn_s16(a, b);
8973 }
8974
8975 // CHECK: test_vrsubhn_s32
8976 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s32(int32x4_t a,int32x4_t b)8977 int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) {
8978 return vrsubhn_s32(a, b);
8979 }
8980
8981 // CHECK: test_vrsubhn_s64
8982 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s64(int64x2_t a,int64x2_t b)8983 int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) {
8984 return vrsubhn_s64(a, b);
8985 }
8986
8987 // CHECK: test_vrsubhn_u16
8988 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u16(uint16x8_t a,uint16x8_t b)8989 uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) {
8990 return vrsubhn_u16(a, b);
8991 }
8992
8993 // CHECK: test_vrsubhn_u32
8994 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u32(uint32x4_t a,uint32x4_t b)8995 uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) {
8996 return vrsubhn_u32(a, b);
8997 }
8998
8999 // CHECK: test_vrsubhn_u64
9000 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u64(uint64x2_t a,uint64x2_t b)9001 uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) {
9002 return vrsubhn_u64(a, b);
9003 }
9004
9005
9006 // CHECK: test_vset_lane_u8
9007 // CHECK: vmov
test_vset_lane_u8(uint8_t a,uint8x8_t b)9008 uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
9009 return vset_lane_u8(a, b, 7);
9010 }
9011
9012 // CHECK: test_vset_lane_u16
9013 // CHECK: vmov
test_vset_lane_u16(uint16_t a,uint16x4_t b)9014 uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
9015 return vset_lane_u16(a, b, 3);
9016 }
9017
9018 // CHECK: test_vset_lane_u32
9019 // CHECK: vmov
test_vset_lane_u32(uint32_t a,uint32x2_t b)9020 uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
9021 return vset_lane_u32(a, b, 1);
9022 }
9023
9024 // CHECK: test_vset_lane_s8
9025 // CHECK: vmov
test_vset_lane_s8(int8_t a,int8x8_t b)9026 int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) {
9027 return vset_lane_s8(a, b, 7);
9028 }
9029
9030 // CHECK: test_vset_lane_s16
9031 // CHECK: vmov
test_vset_lane_s16(int16_t a,int16x4_t b)9032 int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) {
9033 return vset_lane_s16(a, b, 3);
9034 }
9035
9036 // CHECK: test_vset_lane_s32
9037 // CHECK: vmov
test_vset_lane_s32(int32_t a,int32x2_t b)9038 int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) {
9039 return vset_lane_s32(a, b, 1);
9040 }
9041
9042 // CHECK: test_vset_lane_p8
9043 // CHECK: vmov
test_vset_lane_p8(poly8_t a,poly8x8_t b)9044 poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) {
9045 return vset_lane_p8(a, b, 7);
9046 }
9047
9048 // CHECK: test_vset_lane_p16
9049 // CHECK: vmov
test_vset_lane_p16(poly16_t a,poly16x4_t b)9050 poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) {
9051 return vset_lane_p16(a, b, 3);
9052 }
9053
9054 // CHECK: test_vset_lane_f32
9055 // CHECK: vmov
test_vset_lane_f32(float32_t a,float32x2_t b)9056 float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
9057 return vset_lane_f32(a, b, 1);
9058 }
9059
9060 // CHECK: test_vsetq_lane_u8
9061 // CHECK: vmov
test_vsetq_lane_u8(uint8_t a,uint8x16_t b)9062 uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
9063 return vsetq_lane_u8(a, b, 15);
9064 }
9065
9066 // CHECK: test_vsetq_lane_u16
9067 // CHECK: vmov
test_vsetq_lane_u16(uint16_t a,uint16x8_t b)9068 uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
9069 return vsetq_lane_u16(a, b, 7);
9070 }
9071
9072 // CHECK: test_vsetq_lane_u32
9073 // CHECK: vmov
test_vsetq_lane_u32(uint32_t a,uint32x4_t b)9074 uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
9075 return vsetq_lane_u32(a, b, 3);
9076 }
9077
9078 // CHECK: test_vsetq_lane_s8
9079 // CHECK: vmov
test_vsetq_lane_s8(int8_t a,int8x16_t b)9080 int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) {
9081 return vsetq_lane_s8(a, b, 15);
9082 }
9083
9084 // CHECK: test_vsetq_lane_s16
9085 // CHECK: vmov
test_vsetq_lane_s16(int16_t a,int16x8_t b)9086 int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) {
9087 return vsetq_lane_s16(a, b, 7);
9088 }
9089
9090 // CHECK: test_vsetq_lane_s32
9091 // CHECK: vmov
test_vsetq_lane_s32(int32_t a,int32x4_t b)9092 int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) {
9093 return vsetq_lane_s32(a, b, 3);
9094 }
9095
9096 // CHECK: test_vsetq_lane_p8
9097 // CHECK: vmov
test_vsetq_lane_p8(poly8_t a,poly8x16_t b)9098 poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) {
9099 return vsetq_lane_p8(a, b, 15);
9100 }
9101
9102 // CHECK: test_vsetq_lane_p16
9103 // CHECK: vmov
test_vsetq_lane_p16(poly16_t a,poly16x8_t b)9104 poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) {
9105 return vsetq_lane_p16(a, b, 7);
9106 }
9107
9108 // CHECK: test_vsetq_lane_f32
9109 // CHECK: vmov
test_vsetq_lane_f32(float32_t a,float32x4_t b)9110 float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
9111 return vsetq_lane_f32(a, b, 3);
9112 }
9113
9114 // CHECK: test_vset_lane_s64
9115 // CHECK: vmov
test_vset_lane_s64(int64_t a,int64x1_t b)9116 int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) {
9117 return vset_lane_s64(a, b, 0);
9118 }
9119
9120 // CHECK: test_vset_lane_u64
9121 // CHECK: vmov
test_vset_lane_u64(uint64_t a,uint64x1_t b)9122 uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) {
9123 return vset_lane_u64(a, b, 0);
9124 }
9125
9126 // CHECK: test_vsetq_lane_s64
9127 // CHECK: vmov
test_vsetq_lane_s64(int64_t a,int64x2_t b)9128 int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
9129 return vsetq_lane_s64(a, b, 1);
9130 }
9131
9132 // CHECK: test_vsetq_lane_u64
9133 // CHECK: vmov
test_vsetq_lane_u64(uint64_t a,uint64x2_t b)9134 uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) {
9135 return vsetq_lane_u64(a, b, 1);
9136 }
9137
9138
9139 // CHECK: test_vshl_s8
9140 // CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s8(int8x8_t a,int8x8_t b)9141 int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) {
9142 return vshl_s8(a, b);
9143 }
9144
9145 // CHECK: test_vshl_s16
9146 // CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s16(int16x4_t a,int16x4_t b)9147 int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) {
9148 return vshl_s16(a, b);
9149 }
9150
9151 // CHECK: test_vshl_s32
9152 // CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s32(int32x2_t a,int32x2_t b)9153 int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) {
9154 return vshl_s32(a, b);
9155 }
9156
9157 // CHECK: test_vshl_s64
9158 // CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s64(int64x1_t a,int64x1_t b)9159 int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) {
9160 return vshl_s64(a, b);
9161 }
9162
9163 // CHECK: test_vshl_u8
9164 // CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u8(uint8x8_t a,int8x8_t b)9165 uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) {
9166 return vshl_u8(a, b);
9167 }
9168
9169 // CHECK: test_vshl_u16
9170 // CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u16(uint16x4_t a,int16x4_t b)9171 uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) {
9172 return vshl_u16(a, b);
9173 }
9174
9175 // CHECK: test_vshl_u32
9176 // CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u32(uint32x2_t a,int32x2_t b)9177 uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) {
9178 return vshl_u32(a, b);
9179 }
9180
9181 // CHECK: test_vshl_u64
9182 // CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u64(uint64x1_t a,int64x1_t b)9183 uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) {
9184 return vshl_u64(a, b);
9185 }
9186
9187 // CHECK: test_vshlq_s8
9188 // CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s8(int8x16_t a,int8x16_t b)9189 int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) {
9190 return vshlq_s8(a, b);
9191 }
9192
9193 // CHECK: test_vshlq_s16
9194 // CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s16(int16x8_t a,int16x8_t b)9195 int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) {
9196 return vshlq_s16(a, b);
9197 }
9198
9199 // CHECK: test_vshlq_s32
9200 // CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s32(int32x4_t a,int32x4_t b)9201 int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) {
9202 return vshlq_s32(a, b);
9203 }
9204
9205 // CHECK: test_vshlq_s64
9206 // CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s64(int64x2_t a,int64x2_t b)9207 int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) {
9208 return vshlq_s64(a, b);
9209 }
9210
9211 // CHECK: test_vshlq_u8
9212 // CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u8(uint8x16_t a,int8x16_t b)9213 uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) {
9214 return vshlq_u8(a, b);
9215 }
9216
9217 // CHECK: test_vshlq_u16
9218 // CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u16(uint16x8_t a,int16x8_t b)9219 uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) {
9220 return vshlq_u16(a, b);
9221 }
9222
9223 // CHECK: test_vshlq_u32
9224 // CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u32(uint32x4_t a,int32x4_t b)9225 uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) {
9226 return vshlq_u32(a, b);
9227 }
9228
9229 // CHECK: test_vshlq_u64
9230 // CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u64(uint64x2_t a,int64x2_t b)9231 uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) {
9232 return vshlq_u64(a, b);
9233 }
9234
9235
9236 // CHECK: test_vshll_n_s8
9237 // CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s8(int8x8_t a)9238 int16x8_t test_vshll_n_s8(int8x8_t a) {
9239 return vshll_n_s8(a, 1);
9240 }
9241
9242 // CHECK: test_vshll_n_s16
9243 // CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s16(int16x4_t a)9244 int32x4_t test_vshll_n_s16(int16x4_t a) {
9245 return vshll_n_s16(a, 1);
9246 }
9247
9248 // CHECK: test_vshll_n_s32
9249 // CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s32(int32x2_t a)9250 int64x2_t test_vshll_n_s32(int32x2_t a) {
9251 return vshll_n_s32(a, 1);
9252 }
9253
9254 // CHECK: test_vshll_n_u8
9255 // CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u8(uint8x8_t a)9256 uint16x8_t test_vshll_n_u8(uint8x8_t a) {
9257 return vshll_n_u8(a, 1);
9258 }
9259
9260 // CHECK: test_vshll_n_u16
9261 // CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u16(uint16x4_t a)9262 uint32x4_t test_vshll_n_u16(uint16x4_t a) {
9263 return vshll_n_u16(a, 1);
9264 }
9265
9266 // CHECK: test_vshll_n_u32
9267 // CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u32(uint32x2_t a)9268 uint64x2_t test_vshll_n_u32(uint32x2_t a) {
9269 return vshll_n_u32(a, 1);
9270 }
9271
9272
9273 // CHECK: test_vshl_n_s8
9274 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s8(int8x8_t a)9275 int8x8_t test_vshl_n_s8(int8x8_t a) {
9276 return vshl_n_s8(a, 1);
9277 }
9278
9279 // CHECK: test_vshl_n_s16
9280 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s16(int16x4_t a)9281 int16x4_t test_vshl_n_s16(int16x4_t a) {
9282 return vshl_n_s16(a, 1);
9283 }
9284
9285 // CHECK: test_vshl_n_s32
9286 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s32(int32x2_t a)9287 int32x2_t test_vshl_n_s32(int32x2_t a) {
9288 return vshl_n_s32(a, 1);
9289 }
9290
9291 // CHECK: test_vshl_n_s64
9292 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s64(int64x1_t a)9293 int64x1_t test_vshl_n_s64(int64x1_t a) {
9294 return vshl_n_s64(a, 1);
9295 }
9296
9297 // CHECK: test_vshl_n_u8
9298 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u8(uint8x8_t a)9299 uint8x8_t test_vshl_n_u8(uint8x8_t a) {
9300 return vshl_n_u8(a, 1);
9301 }
9302
9303 // CHECK: test_vshl_n_u16
9304 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u16(uint16x4_t a)9305 uint16x4_t test_vshl_n_u16(uint16x4_t a) {
9306 return vshl_n_u16(a, 1);
9307 }
9308
9309 // CHECK: test_vshl_n_u32
9310 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u32(uint32x2_t a)9311 uint32x2_t test_vshl_n_u32(uint32x2_t a) {
9312 return vshl_n_u32(a, 1);
9313 }
9314
9315 // CHECK: test_vshl_n_u64
9316 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u64(uint64x1_t a)9317 uint64x1_t test_vshl_n_u64(uint64x1_t a) {
9318 return vshl_n_u64(a, 1);
9319 }
9320
9321 // CHECK: test_vshlq_n_s8
9322 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s8(int8x16_t a)9323 int8x16_t test_vshlq_n_s8(int8x16_t a) {
9324 return vshlq_n_s8(a, 1);
9325 }
9326
9327 // CHECK: test_vshlq_n_s16
9328 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s16(int16x8_t a)9329 int16x8_t test_vshlq_n_s16(int16x8_t a) {
9330 return vshlq_n_s16(a, 1);
9331 }
9332
9333 // CHECK: test_vshlq_n_s32
9334 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s32(int32x4_t a)9335 int32x4_t test_vshlq_n_s32(int32x4_t a) {
9336 return vshlq_n_s32(a, 1);
9337 }
9338
9339 // CHECK: test_vshlq_n_s64
9340 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s64(int64x2_t a)9341 int64x2_t test_vshlq_n_s64(int64x2_t a) {
9342 return vshlq_n_s64(a, 1);
9343 }
9344
9345 // CHECK: test_vshlq_n_u8
9346 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u8(uint8x16_t a)9347 uint8x16_t test_vshlq_n_u8(uint8x16_t a) {
9348 return vshlq_n_u8(a, 1);
9349 }
9350
9351 // CHECK: test_vshlq_n_u16
9352 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u16(uint16x8_t a)9353 uint16x8_t test_vshlq_n_u16(uint16x8_t a) {
9354 return vshlq_n_u16(a, 1);
9355 }
9356
9357 // CHECK: test_vshlq_n_u32
9358 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u32(uint32x4_t a)9359 uint32x4_t test_vshlq_n_u32(uint32x4_t a) {
9360 return vshlq_n_u32(a, 1);
9361 }
9362
9363 // CHECK: test_vshlq_n_u64
9364 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u64(uint64x2_t a)9365 uint64x2_t test_vshlq_n_u64(uint64x2_t a) {
9366 return vshlq_n_u64(a, 1);
9367 }
9368
9369
9370 // CHECK: test_vshrn_n_s16
9371 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s16(int16x8_t a)9372 int8x8_t test_vshrn_n_s16(int16x8_t a) {
9373 return vshrn_n_s16(a, 1);
9374 }
9375
9376 // CHECK: test_vshrn_n_s32
9377 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s32(int32x4_t a)9378 int16x4_t test_vshrn_n_s32(int32x4_t a) {
9379 return vshrn_n_s32(a, 1);
9380 }
9381
9382 // CHECK: test_vshrn_n_s64
9383 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s64(int64x2_t a)9384 int32x2_t test_vshrn_n_s64(int64x2_t a) {
9385 return vshrn_n_s64(a, 1);
9386 }
9387
9388 // CHECK: test_vshrn_n_u16
9389 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u16(uint16x8_t a)9390 uint8x8_t test_vshrn_n_u16(uint16x8_t a) {
9391 return vshrn_n_u16(a, 1);
9392 }
9393
9394 // CHECK: test_vshrn_n_u32
9395 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u32(uint32x4_t a)9396 uint16x4_t test_vshrn_n_u32(uint32x4_t a) {
9397 return vshrn_n_u32(a, 1);
9398 }
9399
9400 // CHECK: test_vshrn_n_u64
9401 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u64(uint64x2_t a)9402 uint32x2_t test_vshrn_n_u64(uint64x2_t a) {
9403 return vshrn_n_u64(a, 1);
9404 }
9405
9406
9407 // CHECK: test_vshr_n_s8
9408 // CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s8(int8x8_t a)9409 int8x8_t test_vshr_n_s8(int8x8_t a) {
9410 return vshr_n_s8(a, 1);
9411 }
9412
9413 // CHECK: test_vshr_n_s16
9414 // CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s16(int16x4_t a)9415 int16x4_t test_vshr_n_s16(int16x4_t a) {
9416 return vshr_n_s16(a, 1);
9417 }
9418
9419 // CHECK: test_vshr_n_s32
9420 // CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s32(int32x2_t a)9421 int32x2_t test_vshr_n_s32(int32x2_t a) {
9422 return vshr_n_s32(a, 1);
9423 }
9424
9425 // CHECK: test_vshr_n_s64
9426 // CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s64(int64x1_t a)9427 int64x1_t test_vshr_n_s64(int64x1_t a) {
9428 return vshr_n_s64(a, 1);
9429 }
9430
9431 // CHECK: test_vshr_n_u8
9432 // CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u8(uint8x8_t a)9433 uint8x8_t test_vshr_n_u8(uint8x8_t a) {
9434 return vshr_n_u8(a, 1);
9435 }
9436
9437 // CHECK: test_vshr_n_u16
9438 // CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u16(uint16x4_t a)9439 uint16x4_t test_vshr_n_u16(uint16x4_t a) {
9440 return vshr_n_u16(a, 1);
9441 }
9442
9443 // CHECK: test_vshr_n_u32
9444 // CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u32(uint32x2_t a)9445 uint32x2_t test_vshr_n_u32(uint32x2_t a) {
9446 return vshr_n_u32(a, 1);
9447 }
9448
9449 // CHECK: test_vshr_n_u64
9450 // CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u64(uint64x1_t a)9451 uint64x1_t test_vshr_n_u64(uint64x1_t a) {
9452 return vshr_n_u64(a, 1);
9453 }
9454
9455 // CHECK: test_vshrq_n_s8
9456 // CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s8(int8x16_t a)9457 int8x16_t test_vshrq_n_s8(int8x16_t a) {
9458 return vshrq_n_s8(a, 1);
9459 }
9460
9461 // CHECK: test_vshrq_n_s16
9462 // CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s16(int16x8_t a)9463 int16x8_t test_vshrq_n_s16(int16x8_t a) {
9464 return vshrq_n_s16(a, 1);
9465 }
9466
9467 // CHECK: test_vshrq_n_s32
9468 // CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s32(int32x4_t a)9469 int32x4_t test_vshrq_n_s32(int32x4_t a) {
9470 return vshrq_n_s32(a, 1);
9471 }
9472
9473 // CHECK: test_vshrq_n_s64
9474 // CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s64(int64x2_t a)9475 int64x2_t test_vshrq_n_s64(int64x2_t a) {
9476 return vshrq_n_s64(a, 1);
9477 }
9478
9479 // CHECK: test_vshrq_n_u8
9480 // CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u8(uint8x16_t a)9481 uint8x16_t test_vshrq_n_u8(uint8x16_t a) {
9482 return vshrq_n_u8(a, 1);
9483 }
9484
9485 // CHECK: test_vshrq_n_u16
9486 // CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u16(uint16x8_t a)9487 uint16x8_t test_vshrq_n_u16(uint16x8_t a) {
9488 return vshrq_n_u16(a, 1);
9489 }
9490
9491 // CHECK: test_vshrq_n_u32
9492 // CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u32(uint32x4_t a)9493 uint32x4_t test_vshrq_n_u32(uint32x4_t a) {
9494 return vshrq_n_u32(a, 1);
9495 }
9496
9497 // CHECK: test_vshrq_n_u64
9498 // CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u64(uint64x2_t a)9499 uint64x2_t test_vshrq_n_u64(uint64x2_t a) {
9500 return vshrq_n_u64(a, 1);
9501 }
9502
9503
9504 // CHECK: test_vsli_n_s8
9505 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s8(int8x8_t a,int8x8_t b)9506 int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) {
9507 return vsli_n_s8(a, b, 1);
9508 }
9509
9510 // CHECK: test_vsli_n_s16
9511 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s16(int16x4_t a,int16x4_t b)9512 int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) {
9513 return vsli_n_s16(a, b, 1);
9514 }
9515
9516 // CHECK: test_vsli_n_s32
9517 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s32(int32x2_t a,int32x2_t b)9518 int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) {
9519 return vsli_n_s32(a, b, 1);
9520 }
9521
9522 // CHECK: test_vsli_n_s64
9523 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s64(int64x1_t a,int64x1_t b)9524 int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) {
9525 return vsli_n_s64(a, b, 1);
9526 }
9527
9528 // CHECK: test_vsli_n_u8
9529 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u8(uint8x8_t a,uint8x8_t b)9530 uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) {
9531 return vsli_n_u8(a, b, 1);
9532 }
9533
9534 // CHECK: test_vsli_n_u16
9535 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u16(uint16x4_t a,uint16x4_t b)9536 uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) {
9537 return vsli_n_u16(a, b, 1);
9538 }
9539
9540 // CHECK: test_vsli_n_u32
9541 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u32(uint32x2_t a,uint32x2_t b)9542 uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) {
9543 return vsli_n_u32(a, b, 1);
9544 }
9545
9546 // CHECK: test_vsli_n_u64
9547 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u64(uint64x1_t a,uint64x1_t b)9548 uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) {
9549 return vsli_n_u64(a, b, 1);
9550 }
9551
9552 // CHECK: test_vsli_n_p8
9553 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p8(poly8x8_t a,poly8x8_t b)9554 poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) {
9555 return vsli_n_p8(a, b, 1);
9556 }
9557
9558 // CHECK: test_vsli_n_p16
9559 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p16(poly16x4_t a,poly16x4_t b)9560 poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) {
9561 return vsli_n_p16(a, b, 1);
9562 }
9563
9564 // CHECK: test_vsliq_n_s8
9565 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s8(int8x16_t a,int8x16_t b)9566 int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) {
9567 return vsliq_n_s8(a, b, 1);
9568 }
9569
9570 // CHECK: test_vsliq_n_s16
9571 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s16(int16x8_t a,int16x8_t b)9572 int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) {
9573 return vsliq_n_s16(a, b, 1);
9574 }
9575
9576 // CHECK: test_vsliq_n_s32
9577 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s32(int32x4_t a,int32x4_t b)9578 int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) {
9579 return vsliq_n_s32(a, b, 1);
9580 }
9581
9582 // CHECK: test_vsliq_n_s64
9583 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s64(int64x2_t a,int64x2_t b)9584 int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) {
9585 return vsliq_n_s64(a, b, 1);
9586 }
9587
9588 // CHECK: test_vsliq_n_u8
9589 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u8(uint8x16_t a,uint8x16_t b)9590 uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) {
9591 return vsliq_n_u8(a, b, 1);
9592 }
9593
9594 // CHECK: test_vsliq_n_u16
9595 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u16(uint16x8_t a,uint16x8_t b)9596 uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) {
9597 return vsliq_n_u16(a, b, 1);
9598 }
9599
9600 // CHECK: test_vsliq_n_u32
9601 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u32(uint32x4_t a,uint32x4_t b)9602 uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) {
9603 return vsliq_n_u32(a, b, 1);
9604 }
9605
9606 // CHECK: test_vsliq_n_u64
9607 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u64(uint64x2_t a,uint64x2_t b)9608 uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) {
9609 return vsliq_n_u64(a, b, 1);
9610 }
9611
9612 // CHECK: test_vsliq_n_p8
9613 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p8(poly8x16_t a,poly8x16_t b)9614 poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) {
9615 return vsliq_n_p8(a, b, 1);
9616 }
9617
9618 // CHECK: test_vsliq_n_p16
9619 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p16(poly16x8_t a,poly16x8_t b)9620 poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) {
9621 return vsliq_n_p16(a, b, 1);
9622 }
9623
9624
9625 // CHECK: test_vsra_n_s8
9626 // CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s8(int8x8_t a,int8x8_t b)9627 int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) {
9628 return vsra_n_s8(a, b, 1);
9629 }
9630
9631 // CHECK: test_vsra_n_s16
9632 // CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s16(int16x4_t a,int16x4_t b)9633 int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) {
9634 return vsra_n_s16(a, b, 1);
9635 }
9636
9637 // CHECK: test_vsra_n_s32
9638 // CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s32(int32x2_t a,int32x2_t b)9639 int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) {
9640 return vsra_n_s32(a, b, 1);
9641 }
9642
9643 // CHECK: test_vsra_n_s64
9644 // CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s64(int64x1_t a,int64x1_t b)9645 int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) {
9646 return vsra_n_s64(a, b, 1);
9647 }
9648
9649 // CHECK: test_vsra_n_u8
9650 // CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u8(uint8x8_t a,uint8x8_t b)9651 uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) {
9652 return vsra_n_u8(a, b, 1);
9653 }
9654
9655 // CHECK: test_vsra_n_u16
9656 // CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u16(uint16x4_t a,uint16x4_t b)9657 uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) {
9658 return vsra_n_u16(a, b, 1);
9659 }
9660
9661 // CHECK: test_vsra_n_u32
9662 // CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u32(uint32x2_t a,uint32x2_t b)9663 uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) {
9664 return vsra_n_u32(a, b, 1);
9665 }
9666
9667 // CHECK: test_vsra_n_u64
9668 // CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u64(uint64x1_t a,uint64x1_t b)9669 uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) {
9670 return vsra_n_u64(a, b, 1);
9671 }
9672
9673 // CHECK: test_vsraq_n_s8
9674 // CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s8(int8x16_t a,int8x16_t b)9675 int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) {
9676 return vsraq_n_s8(a, b, 1);
9677 }
9678
9679 // CHECK: test_vsraq_n_s16
9680 // CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s16(int16x8_t a,int16x8_t b)9681 int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) {
9682 return vsraq_n_s16(a, b, 1);
9683 }
9684
9685 // CHECK: test_vsraq_n_s32
9686 // CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s32(int32x4_t a,int32x4_t b)9687 int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) {
9688 return vsraq_n_s32(a, b, 1);
9689 }
9690
9691 // CHECK: test_vsraq_n_s64
9692 // CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s64(int64x2_t a,int64x2_t b)9693 int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) {
9694 return vsraq_n_s64(a, b, 1);
9695 }
9696
9697 // CHECK: test_vsraq_n_u8
9698 // CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u8(uint8x16_t a,uint8x16_t b)9699 uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9700 return vsraq_n_u8(a, b, 1);
9701 }
9702
9703 // CHECK: test_vsraq_n_u16
9704 // CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u16(uint16x8_t a,uint16x8_t b)9705 uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9706 return vsraq_n_u16(a, b, 1);
9707 }
9708
9709 // CHECK: test_vsraq_n_u32
9710 // CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u32(uint32x4_t a,uint32x4_t b)9711 uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9712 return vsraq_n_u32(a, b, 1);
9713 }
9714
9715 // CHECK: test_vsraq_n_u64
9716 // CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u64(uint64x2_t a,uint64x2_t b)9717 uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9718 return vsraq_n_u64(a, b, 1);
9719 }
9720
9721
9722 // CHECK: test_vsri_n_s8
9723 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s8(int8x8_t a,int8x8_t b)9724 int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) {
9725 return vsri_n_s8(a, b, 1);
9726 }
9727
9728 // CHECK: test_vsri_n_s16
9729 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s16(int16x4_t a,int16x4_t b)9730 int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) {
9731 return vsri_n_s16(a, b, 1);
9732 }
9733
9734 // CHECK: test_vsri_n_s32
9735 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s32(int32x2_t a,int32x2_t b)9736 int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) {
9737 return vsri_n_s32(a, b, 1);
9738 }
9739
9740 // CHECK: test_vsri_n_s64
9741 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s64(int64x1_t a,int64x1_t b)9742 int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) {
9743 return vsri_n_s64(a, b, 1);
9744 }
9745
9746 // CHECK: test_vsri_n_u8
9747 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u8(uint8x8_t a,uint8x8_t b)9748 uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) {
9749 return vsri_n_u8(a, b, 1);
9750 }
9751
9752 // CHECK: test_vsri_n_u16
9753 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u16(uint16x4_t a,uint16x4_t b)9754 uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) {
9755 return vsri_n_u16(a, b, 1);
9756 }
9757
9758 // CHECK: test_vsri_n_u32
9759 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u32(uint32x2_t a,uint32x2_t b)9760 uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) {
9761 return vsri_n_u32(a, b, 1);
9762 }
9763
9764 // CHECK: test_vsri_n_u64
9765 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u64(uint64x1_t a,uint64x1_t b)9766 uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) {
9767 return vsri_n_u64(a, b, 1);
9768 }
9769
9770 // CHECK: test_vsri_n_p8
9771 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p8(poly8x8_t a,poly8x8_t b)9772 poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) {
9773 return vsri_n_p8(a, b, 1);
9774 }
9775
9776 // CHECK: test_vsri_n_p16
9777 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p16(poly16x4_t a,poly16x4_t b)9778 poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) {
9779 return vsri_n_p16(a, b, 1);
9780 }
9781
9782 // CHECK: test_vsriq_n_s8
9783 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s8(int8x16_t a,int8x16_t b)9784 int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) {
9785 return vsriq_n_s8(a, b, 1);
9786 }
9787
9788 // CHECK: test_vsriq_n_s16
9789 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s16(int16x8_t a,int16x8_t b)9790 int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) {
9791 return vsriq_n_s16(a, b, 1);
9792 }
9793
9794 // CHECK: test_vsriq_n_s32
9795 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s32(int32x4_t a,int32x4_t b)9796 int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) {
9797 return vsriq_n_s32(a, b, 1);
9798 }
9799
9800 // CHECK: test_vsriq_n_s64
9801 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s64(int64x2_t a,int64x2_t b)9802 int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) {
9803 return vsriq_n_s64(a, b, 1);
9804 }
9805
9806 // CHECK: test_vsriq_n_u8
9807 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u8(uint8x16_t a,uint8x16_t b)9808 uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) {
9809 return vsriq_n_u8(a, b, 1);
9810 }
9811
9812 // CHECK: test_vsriq_n_u16
9813 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u16(uint16x8_t a,uint16x8_t b)9814 uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) {
9815 return vsriq_n_u16(a, b, 1);
9816 }
9817
9818 // CHECK: test_vsriq_n_u32
9819 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u32(uint32x4_t a,uint32x4_t b)9820 uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) {
9821 return vsriq_n_u32(a, b, 1);
9822 }
9823
9824 // CHECK: test_vsriq_n_u64
9825 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u64(uint64x2_t a,uint64x2_t b)9826 uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) {
9827 return vsriq_n_u64(a, b, 1);
9828 }
9829
9830 // CHECK: test_vsriq_n_p8
9831 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p8(poly8x16_t a,poly8x16_t b)9832 poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) {
9833 return vsriq_n_p8(a, b, 1);
9834 }
9835
9836 // CHECK: test_vsriq_n_p16
9837 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p16(poly16x8_t a,poly16x8_t b)9838 poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) {
9839 return vsriq_n_p16(a, b, 1);
9840 }
9841
9842
9843 // CHECK: test_vst1q_u8
9844 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u8(uint8_t * a,uint8x16_t b)9845 void test_vst1q_u8(uint8_t * a, uint8x16_t b) {
9846 vst1q_u8(a, b);
9847 }
9848
9849 // CHECK: test_vst1q_u16
9850 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u16(uint16_t * a,uint16x8_t b)9851 void test_vst1q_u16(uint16_t * a, uint16x8_t b) {
9852 vst1q_u16(a, b);
9853 }
9854
9855 // CHECK: test_vst1q_u32
9856 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u32(uint32_t * a,uint32x4_t b)9857 void test_vst1q_u32(uint32_t * a, uint32x4_t b) {
9858 vst1q_u32(a, b);
9859 }
9860
9861 // CHECK: test_vst1q_u64
9862 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u64(uint64_t * a,uint64x2_t b)9863 void test_vst1q_u64(uint64_t * a, uint64x2_t b) {
9864 vst1q_u64(a, b);
9865 }
9866
9867 // CHECK: test_vst1q_s8
9868 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s8(int8_t * a,int8x16_t b)9869 void test_vst1q_s8(int8_t * a, int8x16_t b) {
9870 vst1q_s8(a, b);
9871 }
9872
9873 // CHECK: test_vst1q_s16
9874 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s16(int16_t * a,int16x8_t b)9875 void test_vst1q_s16(int16_t * a, int16x8_t b) {
9876 vst1q_s16(a, b);
9877 }
9878
9879 // CHECK: test_vst1q_s32
9880 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s32(int32_t * a,int32x4_t b)9881 void test_vst1q_s32(int32_t * a, int32x4_t b) {
9882 vst1q_s32(a, b);
9883 }
9884
9885 // CHECK: test_vst1q_s64
9886 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s64(int64_t * a,int64x2_t b)9887 void test_vst1q_s64(int64_t * a, int64x2_t b) {
9888 vst1q_s64(a, b);
9889 }
9890
9891 // CHECK: test_vst1q_f16
9892 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f16(float16_t * a,float16x8_t b)9893 void test_vst1q_f16(float16_t * a, float16x8_t b) {
9894 vst1q_f16(a, b);
9895 }
9896
9897 // CHECK: test_vst1q_f32
9898 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f32(float32_t * a,float32x4_t b)9899 void test_vst1q_f32(float32_t * a, float32x4_t b) {
9900 vst1q_f32(a, b);
9901 }
9902
9903 // CHECK: test_vst1q_p8
9904 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p8(poly8_t * a,poly8x16_t b)9905 void test_vst1q_p8(poly8_t * a, poly8x16_t b) {
9906 vst1q_p8(a, b);
9907 }
9908
9909 // CHECK: test_vst1q_p16
9910 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p16(poly16_t * a,poly16x8_t b)9911 void test_vst1q_p16(poly16_t * a, poly16x8_t b) {
9912 vst1q_p16(a, b);
9913 }
9914
9915 // CHECK: test_vst1_u8
9916 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u8(uint8_t * a,uint8x8_t b)9917 void test_vst1_u8(uint8_t * a, uint8x8_t b) {
9918 vst1_u8(a, b);
9919 }
9920
9921 // CHECK: test_vst1_u16
9922 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u16(uint16_t * a,uint16x4_t b)9923 void test_vst1_u16(uint16_t * a, uint16x4_t b) {
9924 vst1_u16(a, b);
9925 }
9926
9927 // CHECK: test_vst1_u32
9928 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u32(uint32_t * a,uint32x2_t b)9929 void test_vst1_u32(uint32_t * a, uint32x2_t b) {
9930 vst1_u32(a, b);
9931 }
9932
9933 // CHECK: test_vst1_u64
9934 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u64(uint64_t * a,uint64x1_t b)9935 void test_vst1_u64(uint64_t * a, uint64x1_t b) {
9936 vst1_u64(a, b);
9937 }
9938
9939 // CHECK: test_vst1_s8
9940 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s8(int8_t * a,int8x8_t b)9941 void test_vst1_s8(int8_t * a, int8x8_t b) {
9942 vst1_s8(a, b);
9943 }
9944
9945 // CHECK: test_vst1_s16
9946 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s16(int16_t * a,int16x4_t b)9947 void test_vst1_s16(int16_t * a, int16x4_t b) {
9948 vst1_s16(a, b);
9949 }
9950
9951 // CHECK: test_vst1_s32
9952 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s32(int32_t * a,int32x2_t b)9953 void test_vst1_s32(int32_t * a, int32x2_t b) {
9954 vst1_s32(a, b);
9955 }
9956
9957 // CHECK: test_vst1_s64
9958 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s64(int64_t * a,int64x1_t b)9959 void test_vst1_s64(int64_t * a, int64x1_t b) {
9960 vst1_s64(a, b);
9961 }
9962
9963 // CHECK: test_vst1_f16
9964 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f16(float16_t * a,float16x4_t b)9965 void test_vst1_f16(float16_t * a, float16x4_t b) {
9966 vst1_f16(a, b);
9967 }
9968
9969 // CHECK: test_vst1_f32
9970 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f32(float32_t * a,float32x2_t b)9971 void test_vst1_f32(float32_t * a, float32x2_t b) {
9972 vst1_f32(a, b);
9973 }
9974
9975 // CHECK: test_vst1_p8
9976 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p8(poly8_t * a,poly8x8_t b)9977 void test_vst1_p8(poly8_t * a, poly8x8_t b) {
9978 vst1_p8(a, b);
9979 }
9980
9981 // CHECK: test_vst1_p16
9982 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p16(poly16_t * a,poly16x4_t b)9983 void test_vst1_p16(poly16_t * a, poly16x4_t b) {
9984 vst1_p16(a, b);
9985 }
9986
9987
9988 // CHECK: test_vst1q_lane_u8
9989 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_u8(uint8_t * a,uint8x16_t b)9990 void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) {
9991 vst1q_lane_u8(a, b, 15);
9992 }
9993
9994 // CHECK: test_vst1q_lane_u16
9995 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_u16(uint16_t * a,uint16x8_t b)9996 void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) {
9997 vst1q_lane_u16(a, b, 7);
9998 }
9999
10000 // CHECK: test_vst1q_lane_u32
10001 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_u32(uint32_t * a,uint32x4_t b)10002 void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) {
10003 vst1q_lane_u32(a, b, 3);
10004 }
10005
10006 // CHECK: test_vst1q_lane_u64
10007 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_u64(uint64_t * a,uint64x2_t b)10008 void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) {
10009 vst1q_lane_u64(a, b, 1);
10010 }
10011
10012 // CHECK: test_vst1q_lane_s8
10013 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_s8(int8_t * a,int8x16_t b)10014 void test_vst1q_lane_s8(int8_t * a, int8x16_t b) {
10015 vst1q_lane_s8(a, b, 15);
10016 }
10017
10018 // CHECK: test_vst1q_lane_s16
10019 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_s16(int16_t * a,int16x8_t b)10020 void test_vst1q_lane_s16(int16_t * a, int16x8_t b) {
10021 vst1q_lane_s16(a, b, 7);
10022 }
10023
10024 // CHECK: test_vst1q_lane_s32
10025 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_s32(int32_t * a,int32x4_t b)10026 void test_vst1q_lane_s32(int32_t * a, int32x4_t b) {
10027 vst1q_lane_s32(a, b, 3);
10028 }
10029
10030 // CHECK: test_vst1q_lane_s64
10031 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_s64(int64_t * a,int64x2_t b)10032 void test_vst1q_lane_s64(int64_t * a, int64x2_t b) {
10033 vst1q_lane_s64(a, b, 1);
10034 }
10035
10036 // CHECK: test_vst1q_lane_f16
10037 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_f16(float16_t * a,float16x8_t b)10038 void test_vst1q_lane_f16(float16_t * a, float16x8_t b) {
10039 vst1q_lane_f16(a, b, 7);
10040 }
10041
10042 // CHECK: test_vst1q_lane_f32
10043 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_f32(float32_t * a,float32x4_t b)10044 void test_vst1q_lane_f32(float32_t * a, float32x4_t b) {
10045 vst1q_lane_f32(a, b, 3);
10046 }
10047
10048 // CHECK: test_vst1q_lane_p8
10049 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_p8(poly8_t * a,poly8x16_t b)10050 void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) {
10051 vst1q_lane_p8(a, b, 15);
10052 }
10053
10054 // CHECK: test_vst1q_lane_p16
10055 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_p16(poly16_t * a,poly16x8_t b)10056 void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) {
10057 vst1q_lane_p16(a, b, 7);
10058 }
10059
10060 // CHECK: test_vst1_lane_u8
10061 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_u8(uint8_t * a,uint8x8_t b)10062 void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) {
10063 vst1_lane_u8(a, b, 7);
10064 }
10065
10066 // CHECK: test_vst1_lane_u16
10067 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_u16(uint16_t * a,uint16x4_t b)10068 void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) {
10069 vst1_lane_u16(a, b, 3);
10070 }
10071
10072 // CHECK: test_vst1_lane_u32
10073 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_u32(uint32_t * a,uint32x2_t b)10074 void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) {
10075 vst1_lane_u32(a, b, 1);
10076 }
10077
10078 // CHECK: test_vst1_lane_u64
10079 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_u64(uint64_t * a,uint64x1_t b)10080 void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) {
10081 vst1_lane_u64(a, b, 0);
10082 }
10083
10084 // CHECK: test_vst1_lane_s8
10085 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_s8(int8_t * a,int8x8_t b)10086 void test_vst1_lane_s8(int8_t * a, int8x8_t b) {
10087 vst1_lane_s8(a, b, 7);
10088 }
10089
10090 // CHECK: test_vst1_lane_s16
10091 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_s16(int16_t * a,int16x4_t b)10092 void test_vst1_lane_s16(int16_t * a, int16x4_t b) {
10093 vst1_lane_s16(a, b, 3);
10094 }
10095
10096 // CHECK: test_vst1_lane_s32
10097 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_s32(int32_t * a,int32x2_t b)10098 void test_vst1_lane_s32(int32_t * a, int32x2_t b) {
10099 vst1_lane_s32(a, b, 1);
10100 }
10101
10102 // CHECK: test_vst1_lane_s64
10103 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_s64(int64_t * a,int64x1_t b)10104 void test_vst1_lane_s64(int64_t * a, int64x1_t b) {
10105 vst1_lane_s64(a, b, 0);
10106 }
10107
10108 // CHECK: test_vst1_lane_f16
10109 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_f16(float16_t * a,float16x4_t b)10110 void test_vst1_lane_f16(float16_t * a, float16x4_t b) {
10111 vst1_lane_f16(a, b, 3);
10112 }
10113
10114 // CHECK: test_vst1_lane_f32
10115 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_f32(float32_t * a,float32x2_t b)10116 void test_vst1_lane_f32(float32_t * a, float32x2_t b) {
10117 vst1_lane_f32(a, b, 1);
10118 }
10119
10120 // CHECK: test_vst1_lane_p8
10121 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_p8(poly8_t * a,poly8x8_t b)10122 void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) {
10123 vst1_lane_p8(a, b, 7);
10124 }
10125
10126 // CHECK: test_vst1_lane_p16
10127 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_p16(poly16_t * a,poly16x4_t b)10128 void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) {
10129 vst1_lane_p16(a, b, 3);
10130 }
10131
10132
10133 // CHECK: test_vst2q_u8
10134 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u8(uint8_t * a,uint8x16x2_t b)10135 void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) {
10136 vst2q_u8(a, b);
10137 }
10138
10139 // CHECK: test_vst2q_u16
10140 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u16(uint16_t * a,uint16x8x2_t b)10141 void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) {
10142 vst2q_u16(a, b);
10143 }
10144
10145 // CHECK: test_vst2q_u32
10146 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u32(uint32_t * a,uint32x4x2_t b)10147 void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) {
10148 vst2q_u32(a, b);
10149 }
10150
10151 // CHECK: test_vst2q_s8
10152 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s8(int8_t * a,int8x16x2_t b)10153 void test_vst2q_s8(int8_t * a, int8x16x2_t b) {
10154 vst2q_s8(a, b);
10155 }
10156
10157 // CHECK: test_vst2q_s16
10158 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s16(int16_t * a,int16x8x2_t b)10159 void test_vst2q_s16(int16_t * a, int16x8x2_t b) {
10160 vst2q_s16(a, b);
10161 }
10162
10163 // CHECK: test_vst2q_s32
10164 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s32(int32_t * a,int32x4x2_t b)10165 void test_vst2q_s32(int32_t * a, int32x4x2_t b) {
10166 vst2q_s32(a, b);
10167 }
10168
10169 // CHECK: test_vst2q_f16
10170 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_f16(float16_t * a,float16x8x2_t b)10171 void test_vst2q_f16(float16_t * a, float16x8x2_t b) {
10172 vst2q_f16(a, b);
10173 }
10174
10175 // CHECK: test_vst2q_f32
10176 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_f32(float32_t * a,float32x4x2_t b)10177 void test_vst2q_f32(float32_t * a, float32x4x2_t b) {
10178 vst2q_f32(a, b);
10179 }
10180
10181 // CHECK: test_vst2q_p8
10182 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_p8(poly8_t * a,poly8x16x2_t b)10183 void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) {
10184 vst2q_p8(a, b);
10185 }
10186
10187 // CHECK: test_vst2q_p16
10188 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_p16(poly16_t * a,poly16x8x2_t b)10189 void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) {
10190 vst2q_p16(a, b);
10191 }
10192
10193 // CHECK: test_vst2_u8
10194 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u8(uint8_t * a,uint8x8x2_t b)10195 void test_vst2_u8(uint8_t * a, uint8x8x2_t b) {
10196 vst2_u8(a, b);
10197 }
10198
10199 // CHECK: test_vst2_u16
10200 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u16(uint16_t * a,uint16x4x2_t b)10201 void test_vst2_u16(uint16_t * a, uint16x4x2_t b) {
10202 vst2_u16(a, b);
10203 }
10204
10205 // CHECK: test_vst2_u32
10206 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u32(uint32_t * a,uint32x2x2_t b)10207 void test_vst2_u32(uint32_t * a, uint32x2x2_t b) {
10208 vst2_u32(a, b);
10209 }
10210
10211 // CHECK: test_vst2_u64
10212 // CHECK: vst1.64
test_vst2_u64(uint64_t * a,uint64x1x2_t b)10213 void test_vst2_u64(uint64_t * a, uint64x1x2_t b) {
10214 vst2_u64(a, b);
10215 }
10216
10217 // CHECK: test_vst2_s8
10218 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s8(int8_t * a,int8x8x2_t b)10219 void test_vst2_s8(int8_t * a, int8x8x2_t b) {
10220 vst2_s8(a, b);
10221 }
10222
10223 // CHECK: test_vst2_s16
10224 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s16(int16_t * a,int16x4x2_t b)10225 void test_vst2_s16(int16_t * a, int16x4x2_t b) {
10226 vst2_s16(a, b);
10227 }
10228
10229 // CHECK: test_vst2_s32
10230 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s32(int32_t * a,int32x2x2_t b)10231 void test_vst2_s32(int32_t * a, int32x2x2_t b) {
10232 vst2_s32(a, b);
10233 }
10234
10235 // CHECK: test_vst2_s64
10236 // CHECK: vst1.64
test_vst2_s64(int64_t * a,int64x1x2_t b)10237 void test_vst2_s64(int64_t * a, int64x1x2_t b) {
10238 vst2_s64(a, b);
10239 }
10240
10241 // CHECK: test_vst2_f16
10242 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f16(float16_t * a,float16x4x2_t b)10243 void test_vst2_f16(float16_t * a, float16x4x2_t b) {
10244 vst2_f16(a, b);
10245 }
10246
10247 // CHECK: test_vst2_f32
10248 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f32(float32_t * a,float32x2x2_t b)10249 void test_vst2_f32(float32_t * a, float32x2x2_t b) {
10250 vst2_f32(a, b);
10251 }
10252
10253 // CHECK: test_vst2_p8
10254 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p8(poly8_t * a,poly8x8x2_t b)10255 void test_vst2_p8(poly8_t * a, poly8x8x2_t b) {
10256 vst2_p8(a, b);
10257 }
10258
10259 // CHECK: test_vst2_p16
10260 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p16(poly16_t * a,poly16x4x2_t b)10261 void test_vst2_p16(poly16_t * a, poly16x4x2_t b) {
10262 vst2_p16(a, b);
10263 }
10264
10265
10266 // CHECK: test_vst2q_lane_u16
10267 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_u16(uint16_t * a,uint16x8x2_t b)10268 void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) {
10269 vst2q_lane_u16(a, b, 7);
10270 }
10271
10272 // CHECK: test_vst2q_lane_u32
10273 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_u32(uint32_t * a,uint32x4x2_t b)10274 void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) {
10275 vst2q_lane_u32(a, b, 3);
10276 }
10277
10278 // CHECK: test_vst2q_lane_s16
10279 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_s16(int16_t * a,int16x8x2_t b)10280 void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) {
10281 vst2q_lane_s16(a, b, 7);
10282 }
10283
10284 // CHECK: test_vst2q_lane_s32
10285 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_s32(int32_t * a,int32x4x2_t b)10286 void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) {
10287 vst2q_lane_s32(a, b, 3);
10288 }
10289
10290 // CHECK: test_vst2q_lane_f16
10291 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_f16(float16_t * a,float16x8x2_t b)10292 void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) {
10293 vst2q_lane_f16(a, b, 7);
10294 }
10295
10296 // CHECK: test_vst2q_lane_f32
10297 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_f32(float32_t * a,float32x4x2_t b)10298 void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) {
10299 vst2q_lane_f32(a, b, 3);
10300 }
10301
10302 // CHECK: test_vst2q_lane_p16
10303 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_p16(poly16_t * a,poly16x8x2_t b)10304 void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) {
10305 vst2q_lane_p16(a, b, 7);
10306 }
10307
10308 // CHECK: test_vst2_lane_u8
10309 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u8(uint8_t * a,uint8x8x2_t b)10310 void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) {
10311 vst2_lane_u8(a, b, 7);
10312 }
10313
10314 // CHECK: test_vst2_lane_u16
10315 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u16(uint16_t * a,uint16x4x2_t b)10316 void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) {
10317 vst2_lane_u16(a, b, 3);
10318 }
10319
10320 // CHECK: test_vst2_lane_u32
10321 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u32(uint32_t * a,uint32x2x2_t b)10322 void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) {
10323 vst2_lane_u32(a, b, 1);
10324 }
10325
10326 // CHECK: test_vst2_lane_s8
10327 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s8(int8_t * a,int8x8x2_t b)10328 void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) {
10329 vst2_lane_s8(a, b, 7);
10330 }
10331
10332 // CHECK: test_vst2_lane_s16
10333 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s16(int16_t * a,int16x4x2_t b)10334 void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) {
10335 vst2_lane_s16(a, b, 3);
10336 }
10337
10338 // CHECK: test_vst2_lane_s32
10339 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s32(int32_t * a,int32x2x2_t b)10340 void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) {
10341 vst2_lane_s32(a, b, 1);
10342 }
10343
10344 // CHECK: test_vst2_lane_f16
10345 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_f16(float16_t * a,float16x4x2_t b)10346 void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) {
10347 vst2_lane_f16(a, b, 3);
10348 }
10349
10350 // CHECK: test_vst2_lane_f32
10351 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_f32(float32_t * a,float32x2x2_t b)10352 void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) {
10353 vst2_lane_f32(a, b, 1);
10354 }
10355
10356 // CHECK: test_vst2_lane_p8
10357 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_p8(poly8_t * a,poly8x8x2_t b)10358 void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) {
10359 vst2_lane_p8(a, b, 7);
10360 }
10361
10362 // CHECK: test_vst2_lane_p16
10363 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_p16(poly16_t * a,poly16x4x2_t b)10364 void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) {
10365 vst2_lane_p16(a, b, 3);
10366 }
10367
10368
10369 // CHECK: test_vst3q_u8
10370 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u8(uint8_t * a,uint8x16x3_t b)10371 void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) {
10372 vst3q_u8(a, b);
10373 }
10374
10375 // CHECK: test_vst3q_u16
10376 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u16(uint16_t * a,uint16x8x3_t b)10377 void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) {
10378 vst3q_u16(a, b);
10379 }
10380
10381 // CHECK: test_vst3q_u32
10382 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u32(uint32_t * a,uint32x4x3_t b)10383 void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) {
10384 vst3q_u32(a, b);
10385 }
10386
10387 // CHECK: test_vst3q_s8
10388 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s8(int8_t * a,int8x16x3_t b)10389 void test_vst3q_s8(int8_t * a, int8x16x3_t b) {
10390 vst3q_s8(a, b);
10391 }
10392
10393 // CHECK: test_vst3q_s16
10394 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s16(int16_t * a,int16x8x3_t b)10395 void test_vst3q_s16(int16_t * a, int16x8x3_t b) {
10396 vst3q_s16(a, b);
10397 }
10398
10399 // CHECK: test_vst3q_s32
10400 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s32(int32_t * a,int32x4x3_t b)10401 void test_vst3q_s32(int32_t * a, int32x4x3_t b) {
10402 vst3q_s32(a, b);
10403 }
10404
10405 // CHECK: test_vst3q_f16
10406 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f16(float16_t * a,float16x8x3_t b)10407 void test_vst3q_f16(float16_t * a, float16x8x3_t b) {
10408 vst3q_f16(a, b);
10409 }
10410
10411 // CHECK: test_vst3q_f32
10412 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f32(float32_t * a,float32x4x3_t b)10413 void test_vst3q_f32(float32_t * a, float32x4x3_t b) {
10414 vst3q_f32(a, b);
10415 }
10416
10417 // CHECK: test_vst3q_p8
10418 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p8(poly8_t * a,poly8x16x3_t b)10419 void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) {
10420 vst3q_p8(a, b);
10421 }
10422
10423 // CHECK: test_vst3q_p16
10424 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p16(poly16_t * a,poly16x8x3_t b)10425 void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) {
10426 vst3q_p16(a, b);
10427 }
10428
10429 // CHECK: test_vst3_u8
10430 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u8(uint8_t * a,uint8x8x3_t b)10431 void test_vst3_u8(uint8_t * a, uint8x8x3_t b) {
10432 vst3_u8(a, b);
10433 }
10434
10435 // CHECK: test_vst3_u16
10436 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u16(uint16_t * a,uint16x4x3_t b)10437 void test_vst3_u16(uint16_t * a, uint16x4x3_t b) {
10438 vst3_u16(a, b);
10439 }
10440
10441 // CHECK: test_vst3_u32
10442 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u32(uint32_t * a,uint32x2x3_t b)10443 void test_vst3_u32(uint32_t * a, uint32x2x3_t b) {
10444 vst3_u32(a, b);
10445 }
10446
10447 // CHECK: test_vst3_u64
10448 // CHECK: vst1.64
test_vst3_u64(uint64_t * a,uint64x1x3_t b)10449 void test_vst3_u64(uint64_t * a, uint64x1x3_t b) {
10450 vst3_u64(a, b);
10451 }
10452
10453 // CHECK: test_vst3_s8
10454 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s8(int8_t * a,int8x8x3_t b)10455 void test_vst3_s8(int8_t * a, int8x8x3_t b) {
10456 vst3_s8(a, b);
10457 }
10458
10459 // CHECK: test_vst3_s16
10460 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s16(int16_t * a,int16x4x3_t b)10461 void test_vst3_s16(int16_t * a, int16x4x3_t b) {
10462 vst3_s16(a, b);
10463 }
10464
10465 // CHECK: test_vst3_s32
10466 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s32(int32_t * a,int32x2x3_t b)10467 void test_vst3_s32(int32_t * a, int32x2x3_t b) {
10468 vst3_s32(a, b);
10469 }
10470
10471 // CHECK: test_vst3_s64
10472 // CHECK: vst1.64
test_vst3_s64(int64_t * a,int64x1x3_t b)10473 void test_vst3_s64(int64_t * a, int64x1x3_t b) {
10474 vst3_s64(a, b);
10475 }
10476
10477 // CHECK: test_vst3_f16
10478 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f16(float16_t * a,float16x4x3_t b)10479 void test_vst3_f16(float16_t * a, float16x4x3_t b) {
10480 vst3_f16(a, b);
10481 }
10482
10483 // CHECK: test_vst3_f32
10484 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f32(float32_t * a,float32x2x3_t b)10485 void test_vst3_f32(float32_t * a, float32x2x3_t b) {
10486 vst3_f32(a, b);
10487 }
10488
10489 // CHECK: test_vst3_p8
10490 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p8(poly8_t * a,poly8x8x3_t b)10491 void test_vst3_p8(poly8_t * a, poly8x8x3_t b) {
10492 vst3_p8(a, b);
10493 }
10494
10495 // CHECK: test_vst3_p16
10496 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p16(poly16_t * a,poly16x4x3_t b)10497 void test_vst3_p16(poly16_t * a, poly16x4x3_t b) {
10498 vst3_p16(a, b);
10499 }
10500
10501
10502 // CHECK: test_vst3q_lane_u16
10503 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_u16(uint16_t * a,uint16x8x3_t b)10504 void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) {
10505 vst3q_lane_u16(a, b, 7);
10506 }
10507
10508 // CHECK: test_vst3q_lane_u32
10509 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_u32(uint32_t * a,uint32x4x3_t b)10510 void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) {
10511 vst3q_lane_u32(a, b, 3);
10512 }
10513
10514 // CHECK: test_vst3q_lane_s16
10515 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_s16(int16_t * a,int16x8x3_t b)10516 void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) {
10517 vst3q_lane_s16(a, b, 7);
10518 }
10519
10520 // CHECK: test_vst3q_lane_s32
10521 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_s32(int32_t * a,int32x4x3_t b)10522 void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) {
10523 vst3q_lane_s32(a, b, 3);
10524 }
10525
10526 // CHECK: test_vst3q_lane_f16
10527 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_f16(float16_t * a,float16x8x3_t b)10528 void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) {
10529 vst3q_lane_f16(a, b, 7);
10530 }
10531
10532 // CHECK: test_vst3q_lane_f32
10533 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_f32(float32_t * a,float32x4x3_t b)10534 void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) {
10535 vst3q_lane_f32(a, b, 3);
10536 }
10537
10538 // CHECK: test_vst3q_lane_p16
10539 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_p16(poly16_t * a,poly16x8x3_t b)10540 void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) {
10541 vst3q_lane_p16(a, b, 7);
10542 }
10543
10544 // CHECK: test_vst3_lane_u8
10545 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u8(uint8_t * a,uint8x8x3_t b)10546 void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) {
10547 vst3_lane_u8(a, b, 7);
10548 }
10549
10550 // CHECK: test_vst3_lane_u16
10551 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u16(uint16_t * a,uint16x4x3_t b)10552 void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) {
10553 vst3_lane_u16(a, b, 3);
10554 }
10555
10556 // CHECK: test_vst3_lane_u32
10557 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u32(uint32_t * a,uint32x2x3_t b)10558 void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) {
10559 vst3_lane_u32(a, b, 1);
10560 }
10561
10562 // CHECK: test_vst3_lane_s8
10563 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s8(int8_t * a,int8x8x3_t b)10564 void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) {
10565 vst3_lane_s8(a, b, 7);
10566 }
10567
10568 // CHECK: test_vst3_lane_s16
10569 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s16(int16_t * a,int16x4x3_t b)10570 void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) {
10571 vst3_lane_s16(a, b, 3);
10572 }
10573
10574 // CHECK: test_vst3_lane_s32
10575 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s32(int32_t * a,int32x2x3_t b)10576 void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) {
10577 vst3_lane_s32(a, b, 1);
10578 }
10579
10580 // CHECK: test_vst3_lane_f16
10581 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_f16(float16_t * a,float16x4x3_t b)10582 void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) {
10583 vst3_lane_f16(a, b, 3);
10584 }
10585
10586 // CHECK: test_vst3_lane_f32
10587 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_f32(float32_t * a,float32x2x3_t b)10588 void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) {
10589 vst3_lane_f32(a, b, 1);
10590 }
10591
10592 // CHECK: test_vst3_lane_p8
10593 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_p8(poly8_t * a,poly8x8x3_t b)10594 void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) {
10595 vst3_lane_p8(a, b, 7);
10596 }
10597
10598 // CHECK: test_vst3_lane_p16
10599 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_p16(poly16_t * a,poly16x4x3_t b)10600 void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) {
10601 vst3_lane_p16(a, b, 3);
10602 }
10603
10604
10605 // CHECK: test_vst4q_u8
10606 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u8(uint8_t * a,uint8x16x4_t b)10607 void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) {
10608 vst4q_u8(a, b);
10609 }
10610
10611 // CHECK: test_vst4q_u16
10612 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u16(uint16_t * a,uint16x8x4_t b)10613 void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) {
10614 vst4q_u16(a, b);
10615 }
10616
10617 // CHECK: test_vst4q_u32
10618 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u32(uint32_t * a,uint32x4x4_t b)10619 void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) {
10620 vst4q_u32(a, b);
10621 }
10622
10623 // CHECK: test_vst4q_s8
10624 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s8(int8_t * a,int8x16x4_t b)10625 void test_vst4q_s8(int8_t * a, int8x16x4_t b) {
10626 vst4q_s8(a, b);
10627 }
10628
10629 // CHECK: test_vst4q_s16
10630 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s16(int16_t * a,int16x8x4_t b)10631 void test_vst4q_s16(int16_t * a, int16x8x4_t b) {
10632 vst4q_s16(a, b);
10633 }
10634
10635 // CHECK: test_vst4q_s32
10636 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s32(int32_t * a,int32x4x4_t b)10637 void test_vst4q_s32(int32_t * a, int32x4x4_t b) {
10638 vst4q_s32(a, b);
10639 }
10640
10641 // CHECK: test_vst4q_f16
10642 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f16(float16_t * a,float16x8x4_t b)10643 void test_vst4q_f16(float16_t * a, float16x8x4_t b) {
10644 vst4q_f16(a, b);
10645 }
10646
10647 // CHECK: test_vst4q_f32
10648 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f32(float32_t * a,float32x4x4_t b)10649 void test_vst4q_f32(float32_t * a, float32x4x4_t b) {
10650 vst4q_f32(a, b);
10651 }
10652
10653 // CHECK: test_vst4q_p8
10654 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p8(poly8_t * a,poly8x16x4_t b)10655 void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) {
10656 vst4q_p8(a, b);
10657 }
10658
10659 // CHECK: test_vst4q_p16
10660 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p16(poly16_t * a,poly16x8x4_t b)10661 void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) {
10662 vst4q_p16(a, b);
10663 }
10664
10665 // CHECK: test_vst4_u8
10666 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u8(uint8_t * a,uint8x8x4_t b)10667 void test_vst4_u8(uint8_t * a, uint8x8x4_t b) {
10668 vst4_u8(a, b);
10669 }
10670
10671 // CHECK: test_vst4_u16
10672 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u16(uint16_t * a,uint16x4x4_t b)10673 void test_vst4_u16(uint16_t * a, uint16x4x4_t b) {
10674 vst4_u16(a, b);
10675 }
10676
10677 // CHECK: test_vst4_u32
10678 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u32(uint32_t * a,uint32x2x4_t b)10679 void test_vst4_u32(uint32_t * a, uint32x2x4_t b) {
10680 vst4_u32(a, b);
10681 }
10682
10683 // CHECK: test_vst4_u64
10684 // CHECK: vst1.64
test_vst4_u64(uint64_t * a,uint64x1x4_t b)10685 void test_vst4_u64(uint64_t * a, uint64x1x4_t b) {
10686 vst4_u64(a, b);
10687 }
10688
10689 // CHECK: test_vst4_s8
10690 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s8(int8_t * a,int8x8x4_t b)10691 void test_vst4_s8(int8_t * a, int8x8x4_t b) {
10692 vst4_s8(a, b);
10693 }
10694
10695 // CHECK: test_vst4_s16
10696 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s16(int16_t * a,int16x4x4_t b)10697 void test_vst4_s16(int16_t * a, int16x4x4_t b) {
10698 vst4_s16(a, b);
10699 }
10700
10701 // CHECK: test_vst4_s32
10702 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s32(int32_t * a,int32x2x4_t b)10703 void test_vst4_s32(int32_t * a, int32x2x4_t b) {
10704 vst4_s32(a, b);
10705 }
10706
10707 // CHECK: test_vst4_s64
10708 // CHECK: vst1.64
test_vst4_s64(int64_t * a,int64x1x4_t b)10709 void test_vst4_s64(int64_t * a, int64x1x4_t b) {
10710 vst4_s64(a, b);
10711 }
10712
10713 // CHECK: test_vst4_f16
10714 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_f16(float16_t * a,float16x4x4_t b)10715 void test_vst4_f16(float16_t * a, float16x4x4_t b) {
10716 vst4_f16(a, b);
10717 }
10718
10719 // CHECK: test_vst4_f32
10720 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_f32(float32_t * a,float32x2x4_t b)10721 void test_vst4_f32(float32_t * a, float32x2x4_t b) {
10722 vst4_f32(a, b);
10723 }
10724
10725 // CHECK: test_vst4_p8
10726 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_p8(poly8_t * a,poly8x8x4_t b)10727 void test_vst4_p8(poly8_t * a, poly8x8x4_t b) {
10728 vst4_p8(a, b);
10729 }
10730
10731 // CHECK: test_vst4_p16
10732 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_p16(poly16_t * a,poly16x4x4_t b)10733 void test_vst4_p16(poly16_t * a, poly16x4x4_t b) {
10734 vst4_p16(a, b);
10735 }
10736
10737
10738 // CHECK: test_vst4q_lane_u16
10739 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_u16(uint16_t * a,uint16x8x4_t b)10740 void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) {
10741 vst4q_lane_u16(a, b, 7);
10742 }
10743
10744 // CHECK: test_vst4q_lane_u32
10745 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_u32(uint32_t * a,uint32x4x4_t b)10746 void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) {
10747 vst4q_lane_u32(a, b, 3);
10748 }
10749
10750 // CHECK: test_vst4q_lane_s16
10751 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_s16(int16_t * a,int16x8x4_t b)10752 void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) {
10753 vst4q_lane_s16(a, b, 7);
10754 }
10755
10756 // CHECK: test_vst4q_lane_s32
10757 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_s32(int32_t * a,int32x4x4_t b)10758 void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) {
10759 vst4q_lane_s32(a, b, 3);
10760 }
10761
10762 // CHECK: test_vst4q_lane_f16
10763 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_f16(float16_t * a,float16x8x4_t b)10764 void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) {
10765 vst4q_lane_f16(a, b, 7);
10766 }
10767
10768 // CHECK: test_vst4q_lane_f32
10769 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_f32(float32_t * a,float32x4x4_t b)10770 void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) {
10771 vst4q_lane_f32(a, b, 3);
10772 }
10773
10774 // CHECK: test_vst4q_lane_p16
10775 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_p16(poly16_t * a,poly16x8x4_t b)10776 void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) {
10777 vst4q_lane_p16(a, b, 7);
10778 }
10779
10780 // CHECK: test_vst4_lane_u8
10781 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u8(uint8_t * a,uint8x8x4_t b)10782 void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) {
10783 vst4_lane_u8(a, b, 7);
10784 }
10785
10786 // CHECK: test_vst4_lane_u16
10787 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u16(uint16_t * a,uint16x4x4_t b)10788 void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) {
10789 vst4_lane_u16(a, b, 3);
10790 }
10791
10792 // CHECK: test_vst4_lane_u32
10793 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u32(uint32_t * a,uint32x2x4_t b)10794 void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) {
10795 vst4_lane_u32(a, b, 1);
10796 }
10797
10798 // CHECK: test_vst4_lane_s8
10799 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s8(int8_t * a,int8x8x4_t b)10800 void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) {
10801 vst4_lane_s8(a, b, 7);
10802 }
10803
10804 // CHECK: test_vst4_lane_s16
10805 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s16(int16_t * a,int16x4x4_t b)10806 void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) {
10807 vst4_lane_s16(a, b, 3);
10808 }
10809
10810 // CHECK: test_vst4_lane_s32
10811 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s32(int32_t * a,int32x2x4_t b)10812 void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) {
10813 vst4_lane_s32(a, b, 1);
10814 }
10815
10816 // CHECK: test_vst4_lane_f16
10817 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_f16(float16_t * a,float16x4x4_t b)10818 void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) {
10819 vst4_lane_f16(a, b, 3);
10820 }
10821
10822 // CHECK: test_vst4_lane_f32
10823 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_f32(float32_t * a,float32x2x4_t b)10824 void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) {
10825 vst4_lane_f32(a, b, 1);
10826 }
10827
10828 // CHECK: test_vst4_lane_p8
10829 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_p8(poly8_t * a,poly8x8x4_t b)10830 void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) {
10831 vst4_lane_p8(a, b, 7);
10832 }
10833
10834 // CHECK: test_vst4_lane_p16
10835 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_p16(poly16_t * a,poly16x4x4_t b)10836 void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) {
10837 vst4_lane_p16(a, b, 3);
10838 }
10839
10840
10841 // CHECK: test_vsub_s8
10842 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s8(int8x8_t a,int8x8_t b)10843 int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) {
10844 return vsub_s8(a, b);
10845 }
10846
10847 // CHECK: test_vsub_s16
10848 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s16(int16x4_t a,int16x4_t b)10849 int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) {
10850 return vsub_s16(a, b);
10851 }
10852
10853 // CHECK: test_vsub_s32
10854 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s32(int32x2_t a,int32x2_t b)10855 int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) {
10856 return vsub_s32(a, b);
10857 }
10858
10859 // CHECK: test_vsub_s64
10860 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s64(int64x1_t a,int64x1_t b)10861 int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) {
10862 return vsub_s64(a, b);
10863 }
10864
10865 // CHECK: test_vsub_f32
10866 // CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_f32(float32x2_t a,float32x2_t b)10867 float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) {
10868 return vsub_f32(a, b);
10869 }
10870
10871 // CHECK: test_vsub_u8
10872 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u8(uint8x8_t a,uint8x8_t b)10873 uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) {
10874 return vsub_u8(a, b);
10875 }
10876
10877 // CHECK: test_vsub_u16
10878 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u16(uint16x4_t a,uint16x4_t b)10879 uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) {
10880 return vsub_u16(a, b);
10881 }
10882
10883 // CHECK: test_vsub_u32
10884 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u32(uint32x2_t a,uint32x2_t b)10885 uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) {
10886 return vsub_u32(a, b);
10887 }
10888
10889 // CHECK: test_vsub_u64
10890 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u64(uint64x1_t a,uint64x1_t b)10891 uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) {
10892 return vsub_u64(a, b);
10893 }
10894
10895 // CHECK: test_vsubq_s8
10896 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s8(int8x16_t a,int8x16_t b)10897 int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) {
10898 return vsubq_s8(a, b);
10899 }
10900
10901 // CHECK: test_vsubq_s16
10902 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s16(int16x8_t a,int16x8_t b)10903 int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) {
10904 return vsubq_s16(a, b);
10905 }
10906
10907 // CHECK: test_vsubq_s32
10908 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s32(int32x4_t a,int32x4_t b)10909 int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) {
10910 return vsubq_s32(a, b);
10911 }
10912
10913 // CHECK: test_vsubq_s64
10914 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s64(int64x2_t a,int64x2_t b)10915 int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) {
10916 return vsubq_s64(a, b);
10917 }
10918
10919 // CHECK: test_vsubq_f32
10920 // CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_f32(float32x4_t a,float32x4_t b)10921 float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) {
10922 return vsubq_f32(a, b);
10923 }
10924
10925 // CHECK: test_vsubq_u8
10926 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u8(uint8x16_t a,uint8x16_t b)10927 uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) {
10928 return vsubq_u8(a, b);
10929 }
10930
10931 // CHECK: test_vsubq_u16
10932 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u16(uint16x8_t a,uint16x8_t b)10933 uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) {
10934 return vsubq_u16(a, b);
10935 }
10936
10937 // CHECK: test_vsubq_u32
10938 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u32(uint32x4_t a,uint32x4_t b)10939 uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) {
10940 return vsubq_u32(a, b);
10941 }
10942
10943 // CHECK: test_vsubq_u64
10944 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u64(uint64x2_t a,uint64x2_t b)10945 uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) {
10946 return vsubq_u64(a, b);
10947 }
10948
10949
10950 // CHECK: test_vsubhn_s16
10951 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s16(int16x8_t a,int16x8_t b)10952 int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) {
10953 return vsubhn_s16(a, b);
10954 }
10955
10956 // CHECK: test_vsubhn_s32
10957 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s32(int32x4_t a,int32x4_t b)10958 int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) {
10959 return vsubhn_s32(a, b);
10960 }
10961
10962 // CHECK: test_vsubhn_s64
10963 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s64(int64x2_t a,int64x2_t b)10964 int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) {
10965 return vsubhn_s64(a, b);
10966 }
10967
10968 // CHECK: test_vsubhn_u16
10969 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u16(uint16x8_t a,uint16x8_t b)10970 uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) {
10971 return vsubhn_u16(a, b);
10972 }
10973
10974 // CHECK: test_vsubhn_u32
10975 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u32(uint32x4_t a,uint32x4_t b)10976 uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) {
10977 return vsubhn_u32(a, b);
10978 }
10979
10980 // CHECK: test_vsubhn_u64
10981 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u64(uint64x2_t a,uint64x2_t b)10982 uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) {
10983 return vsubhn_u64(a, b);
10984 }
10985
10986
10987 // CHECK: test_vsubl_s8
10988 // CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s8(int8x8_t a,int8x8_t b)10989 int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) {
10990 return vsubl_s8(a, b);
10991 }
10992
10993 // CHECK: test_vsubl_s16
10994 // CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s16(int16x4_t a,int16x4_t b)10995 int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) {
10996 return vsubl_s16(a, b);
10997 }
10998
10999 // CHECK: test_vsubl_s32
11000 // CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s32(int32x2_t a,int32x2_t b)11001 int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) {
11002 return vsubl_s32(a, b);
11003 }
11004
11005 // CHECK: test_vsubl_u8
11006 // CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u8(uint8x8_t a,uint8x8_t b)11007 uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) {
11008 return vsubl_u8(a, b);
11009 }
11010
11011 // CHECK: test_vsubl_u16
11012 // CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u16(uint16x4_t a,uint16x4_t b)11013 uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) {
11014 return vsubl_u16(a, b);
11015 }
11016
11017 // CHECK: test_vsubl_u32
11018 // CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u32(uint32x2_t a,uint32x2_t b)11019 uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) {
11020 return vsubl_u32(a, b);
11021 }
11022
11023
11024 // CHECK: test_vsubw_s8
11025 // CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s8(int16x8_t a,int8x8_t b)11026 int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) {
11027 return vsubw_s8(a, b);
11028 }
11029
11030 // CHECK: test_vsubw_s16
11031 // CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s16(int32x4_t a,int16x4_t b)11032 int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) {
11033 return vsubw_s16(a, b);
11034 }
11035
11036 // CHECK: test_vsubw_s32
11037 // CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s32(int64x2_t a,int32x2_t b)11038 int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) {
11039 return vsubw_s32(a, b);
11040 }
11041
11042 // CHECK: test_vsubw_u8
11043 // CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u8(uint16x8_t a,uint8x8_t b)11044 uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) {
11045 return vsubw_u8(a, b);
11046 }
11047
11048 // CHECK: test_vsubw_u16
11049 // CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u16(uint32x4_t a,uint16x4_t b)11050 uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) {
11051 return vsubw_u16(a, b);
11052 }
11053
11054 // CHECK: test_vsubw_u32
11055 // CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u32(uint64x2_t a,uint32x2_t b)11056 uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) {
11057 return vsubw_u32(a, b);
11058 }
11059
11060
11061 // CHECK: test_vtbl1_u8
11062 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_u8(uint8x8_t a,uint8x8_t b)11063 uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) {
11064 return vtbl1_u8(a, b);
11065 }
11066
11067 // CHECK: test_vtbl1_s8
11068 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_s8(int8x8_t a,int8x8_t b)11069 int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) {
11070 return vtbl1_s8(a, b);
11071 }
11072
11073 // CHECK: test_vtbl1_p8
11074 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_p8(poly8x8_t a,uint8x8_t b)11075 poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) {
11076 return vtbl1_p8(a, b);
11077 }
11078
11079
11080 // CHECK: test_vtbl2_u8
11081 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_u8(uint8x8x2_t a,uint8x8_t b)11082 uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) {
11083 return vtbl2_u8(a, b);
11084 }
11085
11086 // CHECK: test_vtbl2_s8
11087 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_s8(int8x8x2_t a,int8x8_t b)11088 int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) {
11089 return vtbl2_s8(a, b);
11090 }
11091
11092 // CHECK: test_vtbl2_p8
11093 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_p8(poly8x8x2_t a,uint8x8_t b)11094 poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) {
11095 return vtbl2_p8(a, b);
11096 }
11097
11098
11099 // CHECK: test_vtbl3_u8
11100 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_u8(uint8x8x3_t a,uint8x8_t b)11101 uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) {
11102 return vtbl3_u8(a, b);
11103 }
11104
11105 // CHECK: test_vtbl3_s8
11106 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_s8(int8x8x3_t a,int8x8_t b)11107 int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) {
11108 return vtbl3_s8(a, b);
11109 }
11110
11111 // CHECK: test_vtbl3_p8
11112 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_p8(poly8x8x3_t a,uint8x8_t b)11113 poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) {
11114 return vtbl3_p8(a, b);
11115 }
11116
11117
11118 // CHECK: test_vtbl4_u8
11119 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_u8(uint8x8x4_t a,uint8x8_t b)11120 uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) {
11121 return vtbl4_u8(a, b);
11122 }
11123
11124 // CHECK: test_vtbl4_s8
11125 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_s8(int8x8x4_t a,int8x8_t b)11126 int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) {
11127 return vtbl4_s8(a, b);
11128 }
11129
11130 // CHECK: test_vtbl4_p8
11131 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_p8(poly8x8x4_t a,uint8x8_t b)11132 poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) {
11133 return vtbl4_p8(a, b);
11134 }
11135
11136
11137 // CHECK: test_vtbx1_u8
11138 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)11139 uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
11140 return vtbx1_u8(a, b, c);
11141 }
11142
11143 // CHECK: test_vtbx1_s8
11144 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_s8(int8x8_t a,int8x8_t b,int8x8_t c)11145 int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
11146 return vtbx1_s8(a, b, c);
11147 }
11148
11149 // CHECK: test_vtbx1_p8
11150 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_p8(poly8x8_t a,poly8x8_t b,uint8x8_t c)11151 poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) {
11152 return vtbx1_p8(a, b, c);
11153 }
11154
11155
11156 // CHECK: test_vtbx2_u8
11157 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_u8(uint8x8_t a,uint8x8x2_t b,uint8x8_t c)11158 uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) {
11159 return vtbx2_u8(a, b, c);
11160 }
11161
11162 // CHECK: test_vtbx2_s8
11163 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_s8(int8x8_t a,int8x8x2_t b,int8x8_t c)11164 int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) {
11165 return vtbx2_s8(a, b, c);
11166 }
11167
11168 // CHECK: test_vtbx2_p8
11169 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_p8(poly8x8_t a,poly8x8x2_t b,uint8x8_t c)11170 poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) {
11171 return vtbx2_p8(a, b, c);
11172 }
11173
11174
11175 // CHECK: test_vtbx3_u8
11176 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_u8(uint8x8_t a,uint8x8x3_t b,uint8x8_t c)11177 uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) {
11178 return vtbx3_u8(a, b, c);
11179 }
11180
11181 // CHECK: test_vtbx3_s8
11182 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_s8(int8x8_t a,int8x8x3_t b,int8x8_t c)11183 int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) {
11184 return vtbx3_s8(a, b, c);
11185 }
11186
11187 // CHECK: test_vtbx3_p8
11188 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_p8(poly8x8_t a,poly8x8x3_t b,uint8x8_t c)11189 poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) {
11190 return vtbx3_p8(a, b, c);
11191 }
11192
11193
11194 // CHECK: test_vtbx4_u8
11195 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_u8(uint8x8_t a,uint8x8x4_t b,uint8x8_t c)11196 uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) {
11197 return vtbx4_u8(a, b, c);
11198 }
11199
11200 // CHECK: test_vtbx4_s8
11201 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_s8(int8x8_t a,int8x8x4_t b,int8x8_t c)11202 int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) {
11203 return vtbx4_s8(a, b, c);
11204 }
11205
11206 // CHECK: test_vtbx4_p8
11207 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_p8(poly8x8_t a,poly8x8x4_t b,uint8x8_t c)11208 poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) {
11209 return vtbx4_p8(a, b, c);
11210 }
11211
11212
11213 // CHECK: test_vtrn_s8
11214 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s8(int8x8_t a,int8x8_t b)11215 int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) {
11216 return vtrn_s8(a, b);
11217 }
11218
11219 // CHECK: test_vtrn_s16
11220 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s16(int16x4_t a,int16x4_t b)11221 int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) {
11222 return vtrn_s16(a, b);
11223 }
11224
11225 // CHECK: test_vtrn_s32
11226 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s32(int32x2_t a,int32x2_t b)11227 int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
11228 return vtrn_s32(a, b);
11229 }
11230
11231 // CHECK: test_vtrn_u8
11232 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u8(uint8x8_t a,uint8x8_t b)11233 uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
11234 return vtrn_u8(a, b);
11235 }
11236
11237 // CHECK: test_vtrn_u16
11238 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u16(uint16x4_t a,uint16x4_t b)11239 uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
11240 return vtrn_u16(a, b);
11241 }
11242
11243 // CHECK: test_vtrn_u32
11244 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u32(uint32x2_t a,uint32x2_t b)11245 uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) {
11246 return vtrn_u32(a, b);
11247 }
11248
11249 // CHECK: test_vtrn_f32
11250 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_f32(float32x2_t a,float32x2_t b)11251 float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) {
11252 return vtrn_f32(a, b);
11253 }
11254
11255 // CHECK: test_vtrn_p8
11256 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p8(poly8x8_t a,poly8x8_t b)11257 poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) {
11258 return vtrn_p8(a, b);
11259 }
11260
11261 // CHECK: test_vtrn_p16
11262 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p16(poly16x4_t a,poly16x4_t b)11263 poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) {
11264 return vtrn_p16(a, b);
11265 }
11266
11267 // CHECK: test_vtrnq_s8
11268 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s8(int8x16_t a,int8x16_t b)11269 int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) {
11270 return vtrnq_s8(a, b);
11271 }
11272
11273 // CHECK: test_vtrnq_s16
11274 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s16(int16x8_t a,int16x8_t b)11275 int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
11276 return vtrnq_s16(a, b);
11277 }
11278
11279 // CHECK: test_vtrnq_s32
11280 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s32(int32x4_t a,int32x4_t b)11281 int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) {
11282 return vtrnq_s32(a, b);
11283 }
11284
11285 // CHECK: test_vtrnq_u8
11286 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u8(uint8x16_t a,uint8x16_t b)11287 uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
11288 return vtrnq_u8(a, b);
11289 }
11290
11291 // CHECK: test_vtrnq_u16
11292 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u16(uint16x8_t a,uint16x8_t b)11293 uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) {
11294 return vtrnq_u16(a, b);
11295 }
11296
11297 // CHECK: test_vtrnq_u32
11298 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u32(uint32x4_t a,uint32x4_t b)11299 uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
11300 return vtrnq_u32(a, b);
11301 }
11302
11303 // CHECK: test_vtrnq_f32
11304 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_f32(float32x4_t a,float32x4_t b)11305 float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) {
11306 return vtrnq_f32(a, b);
11307 }
11308
11309 // CHECK: test_vtrnq_p8
11310 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p8(poly8x16_t a,poly8x16_t b)11311 poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) {
11312 return vtrnq_p8(a, b);
11313 }
11314
11315 // CHECK: test_vtrnq_p16
11316 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p16(poly16x8_t a,poly16x8_t b)11317 poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) {
11318 return vtrnq_p16(a, b);
11319 }
11320
11321
11322 // CHECK: test_vtst_s8
11323 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s8(int8x8_t a,int8x8_t b)11324 uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) {
11325 return vtst_s8(a, b);
11326 }
11327
11328 // CHECK: test_vtst_s16
11329 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s16(int16x4_t a,int16x4_t b)11330 uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) {
11331 return vtst_s16(a, b);
11332 }
11333
11334 // CHECK: test_vtst_s32
11335 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s32(int32x2_t a,int32x2_t b)11336 uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) {
11337 return vtst_s32(a, b);
11338 }
11339
11340 // CHECK: test_vtst_u8
11341 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u8(uint8x8_t a,uint8x8_t b)11342 uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) {
11343 return vtst_u8(a, b);
11344 }
11345
11346 // CHECK: test_vtst_u16
11347 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u16(uint16x4_t a,uint16x4_t b)11348 uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) {
11349 return vtst_u16(a, b);
11350 }
11351
11352 // CHECK: test_vtst_u32
11353 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u32(uint32x2_t a,uint32x2_t b)11354 uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) {
11355 return vtst_u32(a, b);
11356 }
11357
11358 // CHECK: test_vtst_p8
11359 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p8(poly8x8_t a,poly8x8_t b)11360 uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) {
11361 return vtst_p8(a, b);
11362 }
11363
11364 // CHECK: test_vtstq_s8
11365 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s8(int8x16_t a,int8x16_t b)11366 uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) {
11367 return vtstq_s8(a, b);
11368 }
11369
11370 // CHECK: test_vtstq_s16
11371 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s16(int16x8_t a,int16x8_t b)11372 uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) {
11373 return vtstq_s16(a, b);
11374 }
11375
11376 // CHECK: test_vtstq_s32
11377 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s32(int32x4_t a,int32x4_t b)11378 uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) {
11379 return vtstq_s32(a, b);
11380 }
11381
11382 // CHECK: test_vtstq_u8
11383 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u8(uint8x16_t a,uint8x16_t b)11384 uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) {
11385 return vtstq_u8(a, b);
11386 }
11387
11388 // CHECK: test_vtstq_u16
11389 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u16(uint16x8_t a,uint16x8_t b)11390 uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) {
11391 return vtstq_u16(a, b);
11392 }
11393
11394 // CHECK: test_vtstq_u32
11395 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u32(uint32x4_t a,uint32x4_t b)11396 uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) {
11397 return vtstq_u32(a, b);
11398 }
11399
11400 // CHECK: test_vtstq_p8
11401 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p8(poly8x16_t a,poly8x16_t b)11402 uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) {
11403 return vtstq_p8(a, b);
11404 }
11405
11406
11407 // CHECK: test_vuzp_s8
11408 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s8(int8x8_t a,int8x8_t b)11409 int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) {
11410 return vuzp_s8(a, b);
11411 }
11412
11413 // CHECK: test_vuzp_s16
11414 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s16(int16x4_t a,int16x4_t b)11415 int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) {
11416 return vuzp_s16(a, b);
11417 }
11418
11419 // CHECK: test_vuzp_s32
11420 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s32(int32x2_t a,int32x2_t b)11421 int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) {
11422 return vuzp_s32(a, b);
11423 }
11424
11425 // CHECK: test_vuzp_u8
11426 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u8(uint8x8_t a,uint8x8_t b)11427 uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) {
11428 return vuzp_u8(a, b);
11429 }
11430
11431 // CHECK: test_vuzp_u16
11432 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u16(uint16x4_t a,uint16x4_t b)11433 uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) {
11434 return vuzp_u16(a, b);
11435 }
11436
11437 // CHECK: test_vuzp_u32
11438 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u32(uint32x2_t a,uint32x2_t b)11439 uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) {
11440 return vuzp_u32(a, b);
11441 }
11442
11443 // CHECK: test_vuzp_f32
11444 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_f32(float32x2_t a,float32x2_t b)11445 float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) {
11446 return vuzp_f32(a, b);
11447 }
11448
11449 // CHECK: test_vuzp_p8
11450 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p8(poly8x8_t a,poly8x8_t b)11451 poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) {
11452 return vuzp_p8(a, b);
11453 }
11454
11455 // CHECK: test_vuzp_p16
11456 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p16(poly16x4_t a,poly16x4_t b)11457 poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) {
11458 return vuzp_p16(a, b);
11459 }
11460
11461 // CHECK: test_vuzpq_s8
11462 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s8(int8x16_t a,int8x16_t b)11463 int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) {
11464 return vuzpq_s8(a, b);
11465 }
11466
11467 // CHECK: test_vuzpq_s16
11468 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s16(int16x8_t a,int16x8_t b)11469 int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) {
11470 return vuzpq_s16(a, b);
11471 }
11472
11473 // CHECK: test_vuzpq_s32
11474 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s32(int32x4_t a,int32x4_t b)11475 int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) {
11476 return vuzpq_s32(a, b);
11477 }
11478
11479 // CHECK: test_vuzpq_u8
11480 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u8(uint8x16_t a,uint8x16_t b)11481 uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) {
11482 return vuzpq_u8(a, b);
11483 }
11484
11485 // CHECK: test_vuzpq_u16
11486 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u16(uint16x8_t a,uint16x8_t b)11487 uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) {
11488 return vuzpq_u16(a, b);
11489 }
11490
11491 // CHECK: test_vuzpq_u32
11492 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u32(uint32x4_t a,uint32x4_t b)11493 uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) {
11494 return vuzpq_u32(a, b);
11495 }
11496
11497 // CHECK: test_vuzpq_f32
11498 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_f32(float32x4_t a,float32x4_t b)11499 float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) {
11500 return vuzpq_f32(a, b);
11501 }
11502
11503 // CHECK: test_vuzpq_p8
11504 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p8(poly8x16_t a,poly8x16_t b)11505 poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) {
11506 return vuzpq_p8(a, b);
11507 }
11508
11509 // CHECK: test_vuzpq_p16
11510 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p16(poly16x8_t a,poly16x8_t b)11511 poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) {
11512 return vuzpq_p16(a, b);
11513 }
11514
11515
11516 // CHECK: test_vzip_s8
11517 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s8(int8x8_t a,int8x8_t b)11518 int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) {
11519 return vzip_s8(a, b);
11520 }
11521
11522 // CHECK: test_vzip_s16
11523 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s16(int16x4_t a,int16x4_t b)11524 int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) {
11525 return vzip_s16(a, b);
11526 }
11527
11528 // CHECK: test_vzip_s32
11529 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s32(int32x2_t a,int32x2_t b)11530 int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) {
11531 return vzip_s32(a, b);
11532 }
11533
11534 // CHECK: test_vzip_u8
11535 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u8(uint8x8_t a,uint8x8_t b)11536 uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) {
11537 return vzip_u8(a, b);
11538 }
11539
11540 // CHECK: test_vzip_u16
11541 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u16(uint16x4_t a,uint16x4_t b)11542 uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) {
11543 return vzip_u16(a, b);
11544 }
11545
11546 // CHECK: test_vzip_u32
11547 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u32(uint32x2_t a,uint32x2_t b)11548 uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) {
11549 return vzip_u32(a, b);
11550 }
11551
11552 // CHECK: test_vzip_f32
11553 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_f32(float32x2_t a,float32x2_t b)11554 float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) {
11555 return vzip_f32(a, b);
11556 }
11557
11558 // CHECK: test_vzip_p8
11559 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p8(poly8x8_t a,poly8x8_t b)11560 poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) {
11561 return vzip_p8(a, b);
11562 }
11563
11564 // CHECK: test_vzip_p16
11565 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p16(poly16x4_t a,poly16x4_t b)11566 poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) {
11567 return vzip_p16(a, b);
11568 }
11569
11570 // CHECK: test_vzipq_s8
11571 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s8(int8x16_t a,int8x16_t b)11572 int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) {
11573 return vzipq_s8(a, b);
11574 }
11575
11576 // CHECK: test_vzipq_s16
11577 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s16(int16x8_t a,int16x8_t b)11578 int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) {
11579 return vzipq_s16(a, b);
11580 }
11581
11582 // CHECK: test_vzipq_s32
11583 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s32(int32x4_t a,int32x4_t b)11584 int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) {
11585 return vzipq_s32(a, b);
11586 }
11587
11588 // CHECK: test_vzipq_u8
11589 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u8(uint8x16_t a,uint8x16_t b)11590 uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) {
11591 return vzipq_u8(a, b);
11592 }
11593
11594 // CHECK: test_vzipq_u16
11595 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u16(uint16x8_t a,uint16x8_t b)11596 uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) {
11597 return vzipq_u16(a, b);
11598 }
11599
11600 // CHECK: test_vzipq_u32
11601 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u32(uint32x4_t a,uint32x4_t b)11602 uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) {
11603 return vzipq_u32(a, b);
11604 }
11605
11606 // CHECK: test_vzipq_f32
11607 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_f32(float32x4_t a,float32x4_t b)11608 float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) {
11609 return vzipq_f32(a, b);
11610 }
11611
11612 // CHECK: test_vzipq_p8
11613 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p8(poly8x16_t a,poly8x16_t b)11614 poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) {
11615 return vzipq_p8(a, b);
11616 }
11617
11618 // CHECK: test_vzipq_p16
11619 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p16(poly16x8_t a,poly16x8_t b)11620 poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) {
11621 return vzipq_p16(a, b);
11622 }
11623
11624
11625