• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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