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 --check-prefix=CHECK --check-prefix=CHECK-SWIFT
4 // RUN: %clang_cc1 -triple armv8-linux-gnu \
5 // RUN:  -target-cpu cortex-a57 -mfloat-abi soft -ffreestanding -Os -S -o - %s\
6 // RUN:  | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-A57
7 
8 // REQUIRES: long_tests
9 
10 #include <arm_neon.h>
11 
12 // CHECK-LABEL: test_vaba_s8
13 // CHECK: vaba.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s8(int8x8_t a,int8x8_t b,int8x8_t c)14 int8x8_t test_vaba_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
15   return vaba_s8(a, b, c);
16 }
17 
18 // CHECK-LABEL: test_vaba_s16
19 // CHECK: vaba.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s16(int16x4_t a,int16x4_t b,int16x4_t c)20 int16x4_t test_vaba_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
21   return vaba_s16(a, b, c);
22 }
23 
24 // CHECK-LABEL: test_vaba_s32
25 // CHECK: vaba.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s32(int32x2_t a,int32x2_t b,int32x2_t c)26 int32x2_t test_vaba_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
27   return vaba_s32(a, b, c);
28 }
29 
30 // CHECK-LABEL: test_vaba_u8
31 // CHECK: vaba.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)32 uint8x8_t test_vaba_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
33   return vaba_u8(a, b, c);
34 }
35 
36 // CHECK-LABEL: test_vaba_u16
37 // CHECK: vaba.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)38 uint16x4_t test_vaba_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
39   return vaba_u16(a, b, c);
40 }
41 
42 // CHECK-LABEL: test_vaba_u32
43 // CHECK: vaba.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)44 uint32x2_t test_vaba_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
45   return vaba_u32(a, b, c);
46 }
47 
48 // CHECK-LABEL: test_vabaq_s8
49 // CHECK: vaba.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)50 int8x16_t test_vabaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
51   return vabaq_s8(a, b, c);
52 }
53 
54 // CHECK-LABEL: test_vabaq_s16
55 // CHECK: vaba.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)56 int16x8_t test_vabaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
57   return vabaq_s16(a, b, c);
58 }
59 
60 // CHECK-LABEL: test_vabaq_s32
61 // CHECK: vaba.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)62 int32x4_t test_vabaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
63   return vabaq_s32(a, b, c);
64 }
65 
66 // CHECK-LABEL: test_vabaq_u8
67 // CHECK: vaba.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)68 uint8x16_t test_vabaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
69   return vabaq_u8(a, b, c);
70 }
71 
72 // CHECK-LABEL: test_vabaq_u16
73 // CHECK: vaba.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)74 uint16x8_t test_vabaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
75   return vabaq_u16(a, b, c);
76 }
77 
78 // CHECK-LABEL: test_vabaq_u32
79 // CHECK: vaba.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)80 uint32x4_t test_vabaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
81   return vabaq_u32(a, b, c);
82 }
83 
84 
85 // CHECK-LABEL: test_vabal_s8
86 // CHECK: vabal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s8(int16x8_t a,int8x8_t b,int8x8_t c)87 int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
88   return vabal_s8(a, b, c);
89 }
90 
91 // CHECK-LABEL: test_vabal_s16
92 // CHECK: vabal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s16(int32x4_t a,int16x4_t b,int16x4_t c)93 int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
94   return vabal_s16(a, b, c);
95 }
96 
97 // CHECK-LABEL: test_vabal_s32
98 // CHECK: vabal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s32(int64x2_t a,int32x2_t b,int32x2_t c)99 int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
100   return vabal_s32(a, b, c);
101 }
102 
103 // CHECK-LABEL: test_vabal_u8
104 // CHECK: vabal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)105 uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
106   return vabal_u8(a, b, c);
107 }
108 
109 // CHECK-LABEL: test_vabal_u16
110 // CHECK: vabal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)111 uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
112   return vabal_u16(a, b, c);
113 }
114 
115 // CHECK-LABEL: test_vabal_u32
116 // CHECK: vabal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)117 uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
118   return vabal_u32(a, b, c);
119 }
120 
121 
122 // CHECK-LABEL: test_vabd_s8
123 // CHECK: vabd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s8(int8x8_t a,int8x8_t b)124 int8x8_t test_vabd_s8(int8x8_t a, int8x8_t b) {
125   return vabd_s8(a, b);
126 }
127 
128 // CHECK-LABEL: test_vabd_s16
129 // CHECK: vabd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s16(int16x4_t a,int16x4_t b)130 int16x4_t test_vabd_s16(int16x4_t a, int16x4_t b) {
131   return vabd_s16(a, b);
132 }
133 
134 // CHECK-LABEL: test_vabd_s32
135 // CHECK: vabd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s32(int32x2_t a,int32x2_t b)136 int32x2_t test_vabd_s32(int32x2_t a, int32x2_t b) {
137   return vabd_s32(a, b);
138 }
139 
140 // CHECK-LABEL: test_vabd_u8
141 // CHECK: vabd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u8(uint8x8_t a,uint8x8_t b)142 uint8x8_t test_vabd_u8(uint8x8_t a, uint8x8_t b) {
143   return vabd_u8(a, b);
144 }
145 
146 // CHECK-LABEL: test_vabd_u16
147 // CHECK: vabd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u16(uint16x4_t a,uint16x4_t b)148 uint16x4_t test_vabd_u16(uint16x4_t a, uint16x4_t b) {
149   return vabd_u16(a, b);
150 }
151 
152 // CHECK-LABEL: test_vabd_u32
153 // CHECK: vabd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u32(uint32x2_t a,uint32x2_t b)154 uint32x2_t test_vabd_u32(uint32x2_t a, uint32x2_t b) {
155   return vabd_u32(a, b);
156 }
157 
158 // CHECK-LABEL: test_vabd_f32
159 // CHECK: vabd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_f32(float32x2_t a,float32x2_t b)160 float32x2_t test_vabd_f32(float32x2_t a, float32x2_t b) {
161   return vabd_f32(a, b);
162 }
163 
164 // CHECK-LABEL: test_vabdq_s8
165 // CHECK: vabd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s8(int8x16_t a,int8x16_t b)166 int8x16_t test_vabdq_s8(int8x16_t a, int8x16_t b) {
167   return vabdq_s8(a, b);
168 }
169 
170 // CHECK-LABEL: test_vabdq_s16
171 // CHECK: vabd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s16(int16x8_t a,int16x8_t b)172 int16x8_t test_vabdq_s16(int16x8_t a, int16x8_t b) {
173   return vabdq_s16(a, b);
174 }
175 
176 // CHECK-LABEL: test_vabdq_s32
177 // CHECK: vabd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s32(int32x4_t a,int32x4_t b)178 int32x4_t test_vabdq_s32(int32x4_t a, int32x4_t b) {
179   return vabdq_s32(a, b);
180 }
181 
182 // CHECK-LABEL: test_vabdq_u8
183 // CHECK: vabd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u8(uint8x16_t a,uint8x16_t b)184 uint8x16_t test_vabdq_u8(uint8x16_t a, uint8x16_t b) {
185   return vabdq_u8(a, b);
186 }
187 
188 // CHECK-LABEL: test_vabdq_u16
189 // CHECK: vabd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u16(uint16x8_t a,uint16x8_t b)190 uint16x8_t test_vabdq_u16(uint16x8_t a, uint16x8_t b) {
191   return vabdq_u16(a, b);
192 }
193 
194 // CHECK-LABEL: test_vabdq_u32
195 // CHECK: vabd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u32(uint32x4_t a,uint32x4_t b)196 uint32x4_t test_vabdq_u32(uint32x4_t a, uint32x4_t b) {
197   return vabdq_u32(a, b);
198 }
199 
200 // CHECK-LABEL: test_vabdq_f32
201 // CHECK: vabd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_f32(float32x4_t a,float32x4_t b)202 float32x4_t test_vabdq_f32(float32x4_t a, float32x4_t b) {
203   return vabdq_f32(a, b);
204 }
205 
206 
207 // CHECK-LABEL: test_vabdl_s8
208 // CHECK: vabdl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s8(int8x8_t a,int8x8_t b)209 int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) {
210   return vabdl_s8(a, b);
211 }
212 
213 // CHECK-LABEL: test_vabdl_s16
214 // CHECK: vabdl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s16(int16x4_t a,int16x4_t b)215 int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) {
216   return vabdl_s16(a, b);
217 }
218 
219 // CHECK-LABEL: test_vabdl_s32
220 // CHECK: vabdl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s32(int32x2_t a,int32x2_t b)221 int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) {
222   return vabdl_s32(a, b);
223 }
224 
225 // CHECK-LABEL: test_vabdl_u8
226 // CHECK: vabdl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u8(uint8x8_t a,uint8x8_t b)227 uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) {
228   return vabdl_u8(a, b);
229 }
230 
231 // CHECK-LABEL: test_vabdl_u16
232 // CHECK: vabdl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u16(uint16x4_t a,uint16x4_t b)233 uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) {
234   return vabdl_u16(a, b);
235 }
236 
237 // CHECK-LABEL: test_vabdl_u32
238 // CHECK: vabdl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u32(uint32x2_t a,uint32x2_t b)239 uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) {
240   return vabdl_u32(a, b);
241 }
242 
243 
244 // CHECK-LABEL: test_vabs_s8
245 // CHECK: vabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s8(int8x8_t a)246 int8x8_t test_vabs_s8(int8x8_t a) {
247   return vabs_s8(a);
248 }
249 
250 // CHECK-LABEL: test_vabs_s16
251 // CHECK: vabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s16(int16x4_t a)252 int16x4_t test_vabs_s16(int16x4_t a) {
253   return vabs_s16(a);
254 }
255 
256 // CHECK-LABEL: test_vabs_s32
257 // CHECK: vabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s32(int32x2_t a)258 int32x2_t test_vabs_s32(int32x2_t a) {
259   return vabs_s32(a);
260 }
261 
262 // CHECK-LABEL: test_vabs_f32
263 // CHECK: vabs.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_f32(float32x2_t a)264 float32x2_t test_vabs_f32(float32x2_t a) {
265   return vabs_f32(a);
266 }
267 
268 // CHECK-LABEL: test_vabsq_s8
269 // CHECK: vabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s8(int8x16_t a)270 int8x16_t test_vabsq_s8(int8x16_t a) {
271   return vabsq_s8(a);
272 }
273 
274 // CHECK-LABEL: test_vabsq_s16
275 // CHECK: vabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s16(int16x8_t a)276 int16x8_t test_vabsq_s16(int16x8_t a) {
277   return vabsq_s16(a);
278 }
279 
280 // CHECK-LABEL: test_vabsq_s32
281 // CHECK: vabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s32(int32x4_t a)282 int32x4_t test_vabsq_s32(int32x4_t a) {
283   return vabsq_s32(a);
284 }
285 
286 // CHECK-LABEL: test_vabsq_f32
287 // CHECK: vabs.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_f32(float32x4_t a)288 float32x4_t test_vabsq_f32(float32x4_t a) {
289   return vabsq_f32(a);
290 }
291 
292 
293 // CHECK-LABEL: test_vadd_s8
294 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s8(int8x8_t a,int8x8_t b)295 int8x8_t test_vadd_s8(int8x8_t a, int8x8_t b) {
296   return vadd_s8(a, b);
297 }
298 
299 // CHECK-LABEL: test_vadd_s16
300 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s16(int16x4_t a,int16x4_t b)301 int16x4_t test_vadd_s16(int16x4_t a, int16x4_t b) {
302   return vadd_s16(a, b);
303 }
304 
305 // CHECK-LABEL: test_vadd_s32
306 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s32(int32x2_t a,int32x2_t b)307 int32x2_t test_vadd_s32(int32x2_t a, int32x2_t b) {
308   return vadd_s32(a, b);
309 }
310 
311 // CHECK-LABEL: test_vadd_s64
312 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s64(int64x1_t a,int64x1_t b)313 int64x1_t test_vadd_s64(int64x1_t a, int64x1_t b) {
314   return vadd_s64(a, b);
315 }
316 
317 // CHECK-LABEL: test_vadd_f32
318 // CHECK: vadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_f32(float32x2_t a,float32x2_t b)319 float32x2_t test_vadd_f32(float32x2_t a, float32x2_t b) {
320   return vadd_f32(a, b);
321 }
322 
323 // CHECK-LABEL: test_vadd_u8
324 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u8(uint8x8_t a,uint8x8_t b)325 uint8x8_t test_vadd_u8(uint8x8_t a, uint8x8_t b) {
326   return vadd_u8(a, b);
327 }
328 
329 // CHECK-LABEL: test_vadd_u16
330 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u16(uint16x4_t a,uint16x4_t b)331 uint16x4_t test_vadd_u16(uint16x4_t a, uint16x4_t b) {
332   return vadd_u16(a, b);
333 }
334 
335 // CHECK-LABEL: test_vadd_u32
336 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u32(uint32x2_t a,uint32x2_t b)337 uint32x2_t test_vadd_u32(uint32x2_t a, uint32x2_t b) {
338   return vadd_u32(a, b);
339 }
340 
341 // CHECK-LABEL: test_vadd_u64
342 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u64(uint64x1_t a,uint64x1_t b)343 uint64x1_t test_vadd_u64(uint64x1_t a, uint64x1_t b) {
344   return vadd_u64(a, b);
345 }
346 
347 // CHECK-LABEL: test_vaddq_s8
348 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s8(int8x16_t a,int8x16_t b)349 int8x16_t test_vaddq_s8(int8x16_t a, int8x16_t b) {
350   return vaddq_s8(a, b);
351 }
352 
353 // CHECK-LABEL: test_vaddq_s16
354 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s16(int16x8_t a,int16x8_t b)355 int16x8_t test_vaddq_s16(int16x8_t a, int16x8_t b) {
356   return vaddq_s16(a, b);
357 }
358 
359 // CHECK-LABEL: test_vaddq_s32
360 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s32(int32x4_t a,int32x4_t b)361 int32x4_t test_vaddq_s32(int32x4_t a, int32x4_t b) {
362   return vaddq_s32(a, b);
363 }
364 
365 // CHECK-LABEL: test_vaddq_s64
366 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s64(int64x2_t a,int64x2_t b)367 int64x2_t test_vaddq_s64(int64x2_t a, int64x2_t b) {
368   return vaddq_s64(a, b);
369 }
370 
371 // CHECK-LABEL: test_vaddq_f32
372 // CHECK: vadd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_f32(float32x4_t a,float32x4_t b)373 float32x4_t test_vaddq_f32(float32x4_t a, float32x4_t b) {
374   return vaddq_f32(a, b);
375 }
376 
377 // CHECK-LABEL: test_vaddq_u8
378 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u8(uint8x16_t a,uint8x16_t b)379 uint8x16_t test_vaddq_u8(uint8x16_t a, uint8x16_t b) {
380   return vaddq_u8(a, b);
381 }
382 
383 // CHECK-LABEL: test_vaddq_u16
384 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u16(uint16x8_t a,uint16x8_t b)385 uint16x8_t test_vaddq_u16(uint16x8_t a, uint16x8_t b) {
386   return vaddq_u16(a, b);
387 }
388 
389 // CHECK-LABEL: test_vaddq_u32
390 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u32(uint32x4_t a,uint32x4_t b)391 uint32x4_t test_vaddq_u32(uint32x4_t a, uint32x4_t b) {
392   return vaddq_u32(a, b);
393 }
394 
395 // CHECK-LABEL: test_vaddq_u64
396 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u64(uint64x2_t a,uint64x2_t b)397 uint64x2_t test_vaddq_u64(uint64x2_t a, uint64x2_t b) {
398   return vaddq_u64(a, b);
399 }
400 
401 
402 // CHECK-LABEL: test_vaddhn_s16
403 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s16(int16x8_t a,int16x8_t b)404 int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) {
405   return vaddhn_s16(a, b);
406 }
407 
408 // CHECK-LABEL: test_vaddhn_s32
409 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s32(int32x4_t a,int32x4_t b)410 int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) {
411   return vaddhn_s32(a, b);
412 }
413 
414 // CHECK-LABEL: test_vaddhn_s64
415 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s64(int64x2_t a,int64x2_t b)416 int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) {
417   return vaddhn_s64(a, b);
418 }
419 
420 // CHECK-LABEL: test_vaddhn_u16
421 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u16(uint16x8_t a,uint16x8_t b)422 uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) {
423   return vaddhn_u16(a, b);
424 }
425 
426 // CHECK-LABEL: test_vaddhn_u32
427 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u32(uint32x4_t a,uint32x4_t b)428 uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) {
429   return vaddhn_u32(a, b);
430 }
431 
432 // CHECK-LABEL: test_vaddhn_u64
433 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u64(uint64x2_t a,uint64x2_t b)434 uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) {
435   return vaddhn_u64(a, b);
436 }
437 
438 
439 // CHECK-LABEL: test_vaddl_s8
440 // CHECK: vaddl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s8(int8x8_t a,int8x8_t b)441 int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) {
442   return vaddl_s8(a, b);
443 }
444 
445 // CHECK-LABEL: test_vaddl_s16
446 // CHECK: vaddl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s16(int16x4_t a,int16x4_t b)447 int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) {
448   return vaddl_s16(a, b);
449 }
450 
451 // CHECK-LABEL: test_vaddl_s32
452 // CHECK: vaddl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s32(int32x2_t a,int32x2_t b)453 int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) {
454   return vaddl_s32(a, b);
455 }
456 
457 // CHECK-LABEL: test_vaddl_u8
458 // CHECK: vaddl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u8(uint8x8_t a,uint8x8_t b)459 uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) {
460   return vaddl_u8(a, b);
461 }
462 
463 // CHECK-LABEL: test_vaddl_u16
464 // CHECK: vaddl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u16(uint16x4_t a,uint16x4_t b)465 uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) {
466   return vaddl_u16(a, b);
467 }
468 
469 // CHECK-LABEL: test_vaddl_u32
470 // CHECK: vaddl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u32(uint32x2_t a,uint32x2_t b)471 uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) {
472   return vaddl_u32(a, b);
473 }
474 
475 
476 // CHECK-LABEL: test_vaddw_s8
477 // CHECK: vaddw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s8(int16x8_t a,int8x8_t b)478 int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) {
479   return vaddw_s8(a, b);
480 }
481 
482 // CHECK-LABEL: test_vaddw_s16
483 // CHECK: vaddw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s16(int32x4_t a,int16x4_t b)484 int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) {
485   return vaddw_s16(a, b);
486 }
487 
488 // CHECK-LABEL: test_vaddw_s32
489 // CHECK: vaddw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s32(int64x2_t a,int32x2_t b)490 int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) {
491   return vaddw_s32(a, b);
492 }
493 
494 // CHECK-LABEL: test_vaddw_u8
495 // CHECK: vaddw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u8(uint16x8_t a,uint8x8_t b)496 uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) {
497   return vaddw_u8(a, b);
498 }
499 
500 // CHECK-LABEL: test_vaddw_u16
501 // CHECK: vaddw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u16(uint32x4_t a,uint16x4_t b)502 uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) {
503   return vaddw_u16(a, b);
504 }
505 
506 // CHECK-LABEL: test_vaddw_u32
507 // CHECK: vaddw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u32(uint64x2_t a,uint32x2_t b)508 uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) {
509   return vaddw_u32(a, b);
510 }
511 
512 
513 // CHECK-LABEL: test_vand_s8
514 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s8(int8x8_t a,int8x8_t b)515 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
516   return vand_s8(a, b);
517 }
518 
519 // CHECK-LABEL: test_vand_s16
520 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s16(int16x4_t a,int16x4_t b)521 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
522   return vand_s16(a, b);
523 }
524 
525 // CHECK-LABEL: test_vand_s32
526 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s32(int32x2_t a,int32x2_t b)527 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
528   return vand_s32(a, b);
529 }
530 
531 // CHECK-LABEL: test_vand_s64
532 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s64(int64x1_t a,int64x1_t b)533 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
534   return vand_s64(a, b);
535 }
536 
537 // CHECK-LABEL: test_vand_u8
538 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u8(uint8x8_t a,uint8x8_t b)539 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
540   return vand_u8(a, b);
541 }
542 
543 // CHECK-LABEL: test_vand_u16
544 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u16(uint16x4_t a,uint16x4_t b)545 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
546   return vand_u16(a, b);
547 }
548 
549 // CHECK-LABEL: test_vand_u32
550 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u32(uint32x2_t a,uint32x2_t b)551 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
552   return vand_u32(a, b);
553 }
554 
555 // CHECK-LABEL: test_vand_u64
556 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u64(uint64x1_t a,uint64x1_t b)557 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
558   return vand_u64(a, b);
559 }
560 
561 // CHECK-LABEL: test_vandq_s8
562 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s8(int8x16_t a,int8x16_t b)563 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
564   return vandq_s8(a, b);
565 }
566 
567 // CHECK-LABEL: test_vandq_s16
568 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s16(int16x8_t a,int16x8_t b)569 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
570   return vandq_s16(a, b);
571 }
572 
573 // CHECK-LABEL: test_vandq_s32
574 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s32(int32x4_t a,int32x4_t b)575 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
576   return vandq_s32(a, b);
577 }
578 
579 // CHECK-LABEL: test_vandq_s64
580 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s64(int64x2_t a,int64x2_t b)581 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
582   return vandq_s64(a, b);
583 }
584 
585 // CHECK-LABEL: test_vandq_u8
586 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u8(uint8x16_t a,uint8x16_t b)587 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
588   return vandq_u8(a, b);
589 }
590 
591 // CHECK-LABEL: test_vandq_u16
592 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u16(uint16x8_t a,uint16x8_t b)593 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
594   return vandq_u16(a, b);
595 }
596 
597 // CHECK-LABEL: test_vandq_u32
598 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u32(uint32x4_t a,uint32x4_t b)599 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
600   return vandq_u32(a, b);
601 }
602 
603 // CHECK-LABEL: test_vandq_u64
604 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u64(uint64x2_t a,uint64x2_t b)605 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
606   return vandq_u64(a, b);
607 }
608 
609 
610 // CHECK-LABEL: test_vbic_s8
611 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s8(int8x8_t a,int8x8_t b)612 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
613   return vbic_s8(a, b);
614 }
615 
616 // CHECK-LABEL: test_vbic_s16
617 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s16(int16x4_t a,int16x4_t b)618 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
619   return vbic_s16(a, b);
620 }
621 
622 // CHECK-LABEL: test_vbic_s32
623 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s32(int32x2_t a,int32x2_t b)624 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
625   return vbic_s32(a, b);
626 }
627 
628 // CHECK-LABEL: test_vbic_s64
629 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s64(int64x1_t a,int64x1_t b)630 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
631   return vbic_s64(a, b);
632 }
633 
634 // CHECK-LABEL: test_vbic_u8
635 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u8(uint8x8_t a,uint8x8_t b)636 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
637   return vbic_u8(a, b);
638 }
639 
640 // CHECK-LABEL: test_vbic_u16
641 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u16(uint16x4_t a,uint16x4_t b)642 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
643   return vbic_u16(a, b);
644 }
645 
646 // CHECK-LABEL: test_vbic_u32
647 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u32(uint32x2_t a,uint32x2_t b)648 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
649   return vbic_u32(a, b);
650 }
651 
652 // CHECK-LABEL: test_vbic_u64
653 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u64(uint64x1_t a,uint64x1_t b)654 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
655   return vbic_u64(a, b);
656 }
657 
658 // CHECK-LABEL: test_vbicq_s8
659 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s8(int8x16_t a,int8x16_t b)660 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
661   return vbicq_s8(a, b);
662 }
663 
664 // CHECK-LABEL: test_vbicq_s16
665 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s16(int16x8_t a,int16x8_t b)666 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
667   return vbicq_s16(a, b);
668 }
669 
670 // CHECK-LABEL: test_vbicq_s32
671 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s32(int32x4_t a,int32x4_t b)672 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
673   return vbicq_s32(a, b);
674 }
675 
676 // CHECK-LABEL: test_vbicq_s64
677 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s64(int64x2_t a,int64x2_t b)678 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
679   return vbicq_s64(a, b);
680 }
681 
682 // CHECK-LABEL: test_vbicq_u8
683 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u8(uint8x16_t a,uint8x16_t b)684 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
685   return vbicq_u8(a, b);
686 }
687 
688 // CHECK-LABEL: test_vbicq_u16
689 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u16(uint16x8_t a,uint16x8_t b)690 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
691   return vbicq_u16(a, b);
692 }
693 
694 // CHECK-LABEL: test_vbicq_u32
695 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u32(uint32x4_t a,uint32x4_t b)696 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
697   return vbicq_u32(a, b);
698 }
699 
700 // CHECK-LABEL: test_vbicq_u64
701 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u64(uint64x2_t a,uint64x2_t b)702 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
703   return vbicq_u64(a, b);
704 }
705 
706 
707 // CHECK-LABEL: test_vbsl_s8
708 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s8(uint8x8_t a,int8x8_t b,int8x8_t c)709 int8x8_t test_vbsl_s8(uint8x8_t a, int8x8_t b, int8x8_t c) {
710   return vbsl_s8(a, b, c);
711 }
712 
713 // CHECK-LABEL: test_vbsl_s16
714 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s16(uint16x4_t a,int16x4_t b,int16x4_t c)715 int16x4_t test_vbsl_s16(uint16x4_t a, int16x4_t b, int16x4_t c) {
716   return vbsl_s16(a, b, c);
717 }
718 
719 // CHECK-LABEL: test_vbsl_s32
720 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s32(uint32x2_t a,int32x2_t b,int32x2_t c)721 int32x2_t test_vbsl_s32(uint32x2_t a, int32x2_t b, int32x2_t c) {
722   return vbsl_s32(a, b, c);
723 }
724 
725 // CHECK-LABEL: test_vbsl_s64
726 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s64(uint64x1_t a,int64x1_t b,int64x1_t c)727 int64x1_t test_vbsl_s64(uint64x1_t a, int64x1_t b, int64x1_t c) {
728   return vbsl_s64(a, b, c);
729 }
730 
731 // CHECK-LABEL: test_vbsl_u8
732 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)733 uint8x8_t test_vbsl_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
734   return vbsl_u8(a, b, c);
735 }
736 
737 // CHECK-LABEL: test_vbsl_u16
738 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)739 uint16x4_t test_vbsl_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
740   return vbsl_u16(a, b, c);
741 }
742 
743 // CHECK-LABEL: test_vbsl_u32
744 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)745 uint32x2_t test_vbsl_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
746   return vbsl_u32(a, b, c);
747 }
748 
749 // CHECK-LABEL: test_vbsl_u64
750 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u64(uint64x1_t a,uint64x1_t b,uint64x1_t c)751 uint64x1_t test_vbsl_u64(uint64x1_t a, uint64x1_t b, uint64x1_t c) {
752   return vbsl_u64(a, b, c);
753 }
754 
755 // CHECK-LABEL: test_vbsl_f32
756 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_f32(uint32x2_t a,float32x2_t b,float32x2_t c)757 float32x2_t test_vbsl_f32(uint32x2_t a, float32x2_t b, float32x2_t c) {
758   return vbsl_f32(a, b, c);
759 }
760 
761 // CHECK-LABEL: test_vbsl_p8
762 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p8(uint8x8_t a,poly8x8_t b,poly8x8_t c)763 poly8x8_t test_vbsl_p8(uint8x8_t a, poly8x8_t b, poly8x8_t c) {
764   return vbsl_p8(a, b, c);
765 }
766 
767 // CHECK-LABEL: test_vbsl_p16
768 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p16(uint16x4_t a,poly16x4_t b,poly16x4_t c)769 poly16x4_t test_vbsl_p16(uint16x4_t a, poly16x4_t b, poly16x4_t c) {
770   return vbsl_p16(a, b, c);
771 }
772 
773 // CHECK-LABEL: test_vbslq_s8
774 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s8(uint8x16_t a,int8x16_t b,int8x16_t c)775 int8x16_t test_vbslq_s8(uint8x16_t a, int8x16_t b, int8x16_t c) {
776   return vbslq_s8(a, b, c);
777 }
778 
779 // CHECK-LABEL: test_vbslq_s16
780 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s16(uint16x8_t a,int16x8_t b,int16x8_t c)781 int16x8_t test_vbslq_s16(uint16x8_t a, int16x8_t b, int16x8_t c) {
782   return vbslq_s16(a, b, c);
783 }
784 
785 // CHECK-LABEL: test_vbslq_s32
786 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s32(uint32x4_t a,int32x4_t b,int32x4_t c)787 int32x4_t test_vbslq_s32(uint32x4_t a, int32x4_t b, int32x4_t c) {
788   return vbslq_s32(a, b, c);
789 }
790 
791 // CHECK-LABEL: test_vbslq_s64
792 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s64(uint64x2_t a,int64x2_t b,int64x2_t c)793 int64x2_t test_vbslq_s64(uint64x2_t a, int64x2_t b, int64x2_t c) {
794   return vbslq_s64(a, b, c);
795 }
796 
797 // CHECK-LABEL: test_vbslq_u8
798 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)799 uint8x16_t test_vbslq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
800   return vbslq_u8(a, b, c);
801 }
802 
803 // CHECK-LABEL: test_vbslq_u16
804 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)805 uint16x8_t test_vbslq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
806   return vbslq_u16(a, b, c);
807 }
808 
809 // CHECK-LABEL: test_vbslq_u32
810 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)811 uint32x4_t test_vbslq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
812   return vbslq_u32(a, b, c);
813 }
814 
815 // CHECK-LABEL: test_vbslq_u64
816 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u64(uint64x2_t a,uint64x2_t b,uint64x2_t c)817 uint64x2_t test_vbslq_u64(uint64x2_t a, uint64x2_t b, uint64x2_t c) {
818   return vbslq_u64(a, b, c);
819 }
820 
821 // CHECK-LABEL: test_vbslq_f32
822 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_f32(uint32x4_t a,float32x4_t b,float32x4_t c)823 float32x4_t test_vbslq_f32(uint32x4_t a, float32x4_t b, float32x4_t c) {
824   return vbslq_f32(a, b, c);
825 }
826 
827 // CHECK-LABEL: test_vbslq_p8
828 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p8(uint8x16_t a,poly8x16_t b,poly8x16_t c)829 poly8x16_t test_vbslq_p8(uint8x16_t a, poly8x16_t b, poly8x16_t c) {
830   return vbslq_p8(a, b, c);
831 }
832 
833 // CHECK-LABEL: test_vbslq_p16
834 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p16(uint16x8_t a,poly16x8_t b,poly16x8_t c)835 poly16x8_t test_vbslq_p16(uint16x8_t a, poly16x8_t b, poly16x8_t c) {
836   return vbslq_p16(a, b, c);
837 }
838 
839 
840 // CHECK-LABEL: test_vcage_f32
841 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcage_f32(float32x2_t a,float32x2_t b)842 uint32x2_t test_vcage_f32(float32x2_t a, float32x2_t b) {
843   return vcage_f32(a, b);
844 }
845 
846 // CHECK-LABEL: test_vcageq_f32
847 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcageq_f32(float32x4_t a,float32x4_t b)848 uint32x4_t test_vcageq_f32(float32x4_t a, float32x4_t b) {
849   return vcageq_f32(a, b);
850 }
851 
852 
853 // CHECK-LABEL: test_vcagt_f32
854 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcagt_f32(float32x2_t a,float32x2_t b)855 uint32x2_t test_vcagt_f32(float32x2_t a, float32x2_t b) {
856   return vcagt_f32(a, b);
857 }
858 
859 // CHECK-LABEL: test_vcagtq_f32
860 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcagtq_f32(float32x4_t a,float32x4_t b)861 uint32x4_t test_vcagtq_f32(float32x4_t a, float32x4_t b) {
862   return vcagtq_f32(a, b);
863 }
864 
865 
866 // CHECK-LABEL: test_vcale_f32
867 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcale_f32(float32x2_t a,float32x2_t b)868 uint32x2_t test_vcale_f32(float32x2_t a, float32x2_t b) {
869   return vcale_f32(a, b);
870 }
871 
872 // CHECK-LABEL: test_vcaleq_f32
873 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaleq_f32(float32x4_t a,float32x4_t b)874 uint32x4_t test_vcaleq_f32(float32x4_t a, float32x4_t b) {
875   return vcaleq_f32(a, b);
876 }
877 
878 
879 // CHECK-LABEL: test_vcalt_f32
880 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcalt_f32(float32x2_t a,float32x2_t b)881 uint32x2_t test_vcalt_f32(float32x2_t a, float32x2_t b) {
882   return vcalt_f32(a, b);
883 }
884 
885 // CHECK-LABEL: test_vcaltq_f32
886 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaltq_f32(float32x4_t a,float32x4_t b)887 uint32x4_t test_vcaltq_f32(float32x4_t a, float32x4_t b) {
888   return vcaltq_f32(a, b);
889 }
890 
891 
892 // CHECK-LABEL: test_vceq_s8
893 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s8(int8x8_t a,int8x8_t b)894 uint8x8_t test_vceq_s8(int8x8_t a, int8x8_t b) {
895   return vceq_s8(a, b);
896 }
897 
898 // CHECK-LABEL: test_vceq_s16
899 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s16(int16x4_t a,int16x4_t b)900 uint16x4_t test_vceq_s16(int16x4_t a, int16x4_t b) {
901   return vceq_s16(a, b);
902 }
903 
904 // CHECK-LABEL: test_vceq_s32
905 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s32(int32x2_t a,int32x2_t b)906 uint32x2_t test_vceq_s32(int32x2_t a, int32x2_t b) {
907   return vceq_s32(a, b);
908 }
909 
910 // CHECK-LABEL: test_vceq_f32
911 // CHECK: vceq.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_f32(float32x2_t a,float32x2_t b)912 uint32x2_t test_vceq_f32(float32x2_t a, float32x2_t b) {
913   return vceq_f32(a, b);
914 }
915 
916 // CHECK-LABEL: test_vceq_u8
917 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u8(uint8x8_t a,uint8x8_t b)918 uint8x8_t test_vceq_u8(uint8x8_t a, uint8x8_t b) {
919   return vceq_u8(a, b);
920 }
921 
922 // CHECK-LABEL: test_vceq_u16
923 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u16(uint16x4_t a,uint16x4_t b)924 uint16x4_t test_vceq_u16(uint16x4_t a, uint16x4_t b) {
925   return vceq_u16(a, b);
926 }
927 
928 // CHECK-LABEL: test_vceq_u32
929 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u32(uint32x2_t a,uint32x2_t b)930 uint32x2_t test_vceq_u32(uint32x2_t a, uint32x2_t b) {
931   return vceq_u32(a, b);
932 }
933 
934 // CHECK-LABEL: test_vceq_p8
935 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_p8(poly8x8_t a,poly8x8_t b)936 uint8x8_t test_vceq_p8(poly8x8_t a, poly8x8_t b) {
937   return vceq_p8(a, b);
938 }
939 
940 // CHECK-LABEL: test_vceqq_s8
941 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s8(int8x16_t a,int8x16_t b)942 uint8x16_t test_vceqq_s8(int8x16_t a, int8x16_t b) {
943   return vceqq_s8(a, b);
944 }
945 
946 // CHECK-LABEL: test_vceqq_s16
947 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s16(int16x8_t a,int16x8_t b)948 uint16x8_t test_vceqq_s16(int16x8_t a, int16x8_t b) {
949   return vceqq_s16(a, b);
950 }
951 
952 // CHECK-LABEL: test_vceqq_s32
953 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s32(int32x4_t a,int32x4_t b)954 uint32x4_t test_vceqq_s32(int32x4_t a, int32x4_t b) {
955   return vceqq_s32(a, b);
956 }
957 
958 // CHECK-LABEL: test_vceqq_f32
959 // CHECK: vceq.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_f32(float32x4_t a,float32x4_t b)960 uint32x4_t test_vceqq_f32(float32x4_t a, float32x4_t b) {
961   return vceqq_f32(a, b);
962 }
963 
964 // CHECK-LABEL: test_vceqq_u8
965 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u8(uint8x16_t a,uint8x16_t b)966 uint8x16_t test_vceqq_u8(uint8x16_t a, uint8x16_t b) {
967   return vceqq_u8(a, b);
968 }
969 
970 // CHECK-LABEL: test_vceqq_u16
971 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u16(uint16x8_t a,uint16x8_t b)972 uint16x8_t test_vceqq_u16(uint16x8_t a, uint16x8_t b) {
973   return vceqq_u16(a, b);
974 }
975 
976 // CHECK-LABEL: test_vceqq_u32
977 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u32(uint32x4_t a,uint32x4_t b)978 uint32x4_t test_vceqq_u32(uint32x4_t a, uint32x4_t b) {
979   return vceqq_u32(a, b);
980 }
981 
982 // CHECK-LABEL: test_vceqq_p8
983 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_p8(poly8x16_t a,poly8x16_t b)984 uint8x16_t test_vceqq_p8(poly8x16_t a, poly8x16_t b) {
985   return vceqq_p8(a, b);
986 }
987 
988 
989 // CHECK-LABEL: test_vcge_s8
990 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s8(int8x8_t a,int8x8_t b)991 uint8x8_t test_vcge_s8(int8x8_t a, int8x8_t b) {
992   return vcge_s8(a, b);
993 }
994 
995 // CHECK-LABEL: test_vcge_s16
996 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s16(int16x4_t a,int16x4_t b)997 uint16x4_t test_vcge_s16(int16x4_t a, int16x4_t b) {
998   return vcge_s16(a, b);
999 }
1000 
1001 // CHECK-LABEL: test_vcge_s32
1002 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s32(int32x2_t a,int32x2_t b)1003 uint32x2_t test_vcge_s32(int32x2_t a, int32x2_t b) {
1004   return vcge_s32(a, b);
1005 }
1006 
1007 // CHECK-LABEL: test_vcge_f32
1008 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_f32(float32x2_t a,float32x2_t b)1009 uint32x2_t test_vcge_f32(float32x2_t a, float32x2_t b) {
1010   return vcge_f32(a, b);
1011 }
1012 
1013 // CHECK-LABEL: test_vcge_u8
1014 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u8(uint8x8_t a,uint8x8_t b)1015 uint8x8_t test_vcge_u8(uint8x8_t a, uint8x8_t b) {
1016   return vcge_u8(a, b);
1017 }
1018 
1019 // CHECK-LABEL: test_vcge_u16
1020 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u16(uint16x4_t a,uint16x4_t b)1021 uint16x4_t test_vcge_u16(uint16x4_t a, uint16x4_t b) {
1022   return vcge_u16(a, b);
1023 }
1024 
1025 // CHECK-LABEL: test_vcge_u32
1026 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u32(uint32x2_t a,uint32x2_t b)1027 uint32x2_t test_vcge_u32(uint32x2_t a, uint32x2_t b) {
1028   return vcge_u32(a, b);
1029 }
1030 
1031 // CHECK-LABEL: test_vcgeq_s8
1032 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s8(int8x16_t a,int8x16_t b)1033 uint8x16_t test_vcgeq_s8(int8x16_t a, int8x16_t b) {
1034   return vcgeq_s8(a, b);
1035 }
1036 
1037 // CHECK-LABEL: test_vcgeq_s16
1038 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s16(int16x8_t a,int16x8_t b)1039 uint16x8_t test_vcgeq_s16(int16x8_t a, int16x8_t b) {
1040   return vcgeq_s16(a, b);
1041 }
1042 
1043 // CHECK-LABEL: test_vcgeq_s32
1044 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s32(int32x4_t a,int32x4_t b)1045 uint32x4_t test_vcgeq_s32(int32x4_t a, int32x4_t b) {
1046   return vcgeq_s32(a, b);
1047 }
1048 
1049 // CHECK-LABEL: test_vcgeq_f32
1050 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_f32(float32x4_t a,float32x4_t b)1051 uint32x4_t test_vcgeq_f32(float32x4_t a, float32x4_t b) {
1052   return vcgeq_f32(a, b);
1053 }
1054 
1055 // CHECK-LABEL: test_vcgeq_u8
1056 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u8(uint8x16_t a,uint8x16_t b)1057 uint8x16_t test_vcgeq_u8(uint8x16_t a, uint8x16_t b) {
1058   return vcgeq_u8(a, b);
1059 }
1060 
1061 // CHECK-LABEL: test_vcgeq_u16
1062 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u16(uint16x8_t a,uint16x8_t b)1063 uint16x8_t test_vcgeq_u16(uint16x8_t a, uint16x8_t b) {
1064   return vcgeq_u16(a, b);
1065 }
1066 
1067 // CHECK-LABEL: test_vcgeq_u32
1068 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u32(uint32x4_t a,uint32x4_t b)1069 uint32x4_t test_vcgeq_u32(uint32x4_t a, uint32x4_t b) {
1070   return vcgeq_u32(a, b);
1071 }
1072 
1073 
1074 // CHECK-LABEL: test_vcgt_s8
1075 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s8(int8x8_t a,int8x8_t b)1076 uint8x8_t test_vcgt_s8(int8x8_t a, int8x8_t b) {
1077   return vcgt_s8(a, b);
1078 }
1079 
1080 // CHECK-LABEL: test_vcgt_s16
1081 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s16(int16x4_t a,int16x4_t b)1082 uint16x4_t test_vcgt_s16(int16x4_t a, int16x4_t b) {
1083   return vcgt_s16(a, b);
1084 }
1085 
1086 // CHECK-LABEL: test_vcgt_s32
1087 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s32(int32x2_t a,int32x2_t b)1088 uint32x2_t test_vcgt_s32(int32x2_t a, int32x2_t b) {
1089   return vcgt_s32(a, b);
1090 }
1091 
1092 // CHECK-LABEL: test_vcgt_f32
1093 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_f32(float32x2_t a,float32x2_t b)1094 uint32x2_t test_vcgt_f32(float32x2_t a, float32x2_t b) {
1095   return vcgt_f32(a, b);
1096 }
1097 
1098 // CHECK-LABEL: test_vcgt_u8
1099 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u8(uint8x8_t a,uint8x8_t b)1100 uint8x8_t test_vcgt_u8(uint8x8_t a, uint8x8_t b) {
1101   return vcgt_u8(a, b);
1102 }
1103 
1104 // CHECK-LABEL: test_vcgt_u16
1105 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u16(uint16x4_t a,uint16x4_t b)1106 uint16x4_t test_vcgt_u16(uint16x4_t a, uint16x4_t b) {
1107   return vcgt_u16(a, b);
1108 }
1109 
1110 // CHECK-LABEL: test_vcgt_u32
1111 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u32(uint32x2_t a,uint32x2_t b)1112 uint32x2_t test_vcgt_u32(uint32x2_t a, uint32x2_t b) {
1113   return vcgt_u32(a, b);
1114 }
1115 
1116 // CHECK-LABEL: test_vcgtq_s8
1117 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s8(int8x16_t a,int8x16_t b)1118 uint8x16_t test_vcgtq_s8(int8x16_t a, int8x16_t b) {
1119   return vcgtq_s8(a, b);
1120 }
1121 
1122 // CHECK-LABEL: test_vcgtq_s16
1123 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s16(int16x8_t a,int16x8_t b)1124 uint16x8_t test_vcgtq_s16(int16x8_t a, int16x8_t b) {
1125   return vcgtq_s16(a, b);
1126 }
1127 
1128 // CHECK-LABEL: test_vcgtq_s32
1129 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s32(int32x4_t a,int32x4_t b)1130 uint32x4_t test_vcgtq_s32(int32x4_t a, int32x4_t b) {
1131   return vcgtq_s32(a, b);
1132 }
1133 
1134 // CHECK-LABEL: test_vcgtq_f32
1135 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_f32(float32x4_t a,float32x4_t b)1136 uint32x4_t test_vcgtq_f32(float32x4_t a, float32x4_t b) {
1137   return vcgtq_f32(a, b);
1138 }
1139 
1140 // CHECK-LABEL: test_vcgtq_u8
1141 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u8(uint8x16_t a,uint8x16_t b)1142 uint8x16_t test_vcgtq_u8(uint8x16_t a, uint8x16_t b) {
1143   return vcgtq_u8(a, b);
1144 }
1145 
1146 // CHECK-LABEL: test_vcgtq_u16
1147 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u16(uint16x8_t a,uint16x8_t b)1148 uint16x8_t test_vcgtq_u16(uint16x8_t a, uint16x8_t b) {
1149   return vcgtq_u16(a, b);
1150 }
1151 
1152 // CHECK-LABEL: test_vcgtq_u32
1153 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u32(uint32x4_t a,uint32x4_t b)1154 uint32x4_t test_vcgtq_u32(uint32x4_t a, uint32x4_t b) {
1155   return vcgtq_u32(a, b);
1156 }
1157 
1158 
1159 // CHECK-LABEL: test_vcle_s8
1160 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s8(int8x8_t a,int8x8_t b)1161 uint8x8_t test_vcle_s8(int8x8_t a, int8x8_t b) {
1162   return vcle_s8(a, b);
1163 }
1164 
1165 // CHECK-LABEL: test_vcle_s16
1166 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s16(int16x4_t a,int16x4_t b)1167 uint16x4_t test_vcle_s16(int16x4_t a, int16x4_t b) {
1168   return vcle_s16(a, b);
1169 }
1170 
1171 // CHECK-LABEL: test_vcle_s32
1172 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s32(int32x2_t a,int32x2_t b)1173 uint32x2_t test_vcle_s32(int32x2_t a, int32x2_t b) {
1174   return vcle_s32(a, b);
1175 }
1176 
1177 // CHECK-LABEL: test_vcle_f32
1178 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_f32(float32x2_t a,float32x2_t b)1179 uint32x2_t test_vcle_f32(float32x2_t a, float32x2_t b) {
1180   return vcle_f32(a, b);
1181 }
1182 
1183 // CHECK-LABEL: test_vcle_u8
1184 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u8(uint8x8_t a,uint8x8_t b)1185 uint8x8_t test_vcle_u8(uint8x8_t a, uint8x8_t b) {
1186   return vcle_u8(a, b);
1187 }
1188 
1189 // CHECK-LABEL: test_vcle_u16
1190 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u16(uint16x4_t a,uint16x4_t b)1191 uint16x4_t test_vcle_u16(uint16x4_t a, uint16x4_t b) {
1192   return vcle_u16(a, b);
1193 }
1194 
1195 // CHECK-LABEL: test_vcle_u32
1196 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u32(uint32x2_t a,uint32x2_t b)1197 uint32x2_t test_vcle_u32(uint32x2_t a, uint32x2_t b) {
1198   return vcle_u32(a, b);
1199 }
1200 
1201 // CHECK-LABEL: test_vcleq_s8
1202 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s8(int8x16_t a,int8x16_t b)1203 uint8x16_t test_vcleq_s8(int8x16_t a, int8x16_t b) {
1204   return vcleq_s8(a, b);
1205 }
1206 
1207 // CHECK-LABEL: test_vcleq_s16
1208 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s16(int16x8_t a,int16x8_t b)1209 uint16x8_t test_vcleq_s16(int16x8_t a, int16x8_t b) {
1210   return vcleq_s16(a, b);
1211 }
1212 
1213 // CHECK-LABEL: test_vcleq_s32
1214 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s32(int32x4_t a,int32x4_t b)1215 uint32x4_t test_vcleq_s32(int32x4_t a, int32x4_t b) {
1216   return vcleq_s32(a, b);
1217 }
1218 
1219 // CHECK-LABEL: test_vcleq_f32
1220 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_f32(float32x4_t a,float32x4_t b)1221 uint32x4_t test_vcleq_f32(float32x4_t a, float32x4_t b) {
1222   return vcleq_f32(a, b);
1223 }
1224 
1225 // CHECK-LABEL: test_vcleq_u8
1226 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u8(uint8x16_t a,uint8x16_t b)1227 uint8x16_t test_vcleq_u8(uint8x16_t a, uint8x16_t b) {
1228   return vcleq_u8(a, b);
1229 }
1230 
1231 // CHECK-LABEL: test_vcleq_u16
1232 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u16(uint16x8_t a,uint16x8_t b)1233 uint16x8_t test_vcleq_u16(uint16x8_t a, uint16x8_t b) {
1234   return vcleq_u16(a, b);
1235 }
1236 
1237 // CHECK-LABEL: test_vcleq_u32
1238 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u32(uint32x4_t a,uint32x4_t b)1239 uint32x4_t test_vcleq_u32(uint32x4_t a, uint32x4_t b) {
1240   return vcleq_u32(a, b);
1241 }
1242 
1243 
1244 // CHECK-LABEL: test_vcls_s8
1245 // CHECK: vcls.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s8(int8x8_t a)1246 int8x8_t test_vcls_s8(int8x8_t a) {
1247   return vcls_s8(a);
1248 }
1249 
1250 // CHECK-LABEL: test_vcls_s16
1251 // CHECK: vcls.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s16(int16x4_t a)1252 int16x4_t test_vcls_s16(int16x4_t a) {
1253   return vcls_s16(a);
1254 }
1255 
1256 // CHECK-LABEL: test_vcls_s32
1257 // CHECK: vcls.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s32(int32x2_t a)1258 int32x2_t test_vcls_s32(int32x2_t a) {
1259   return vcls_s32(a);
1260 }
1261 
1262 // CHECK-LABEL: test_vclsq_s8
1263 // CHECK: vcls.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s8(int8x16_t a)1264 int8x16_t test_vclsq_s8(int8x16_t a) {
1265   return vclsq_s8(a);
1266 }
1267 
1268 // CHECK-LABEL: test_vclsq_s16
1269 // CHECK: vcls.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s16(int16x8_t a)1270 int16x8_t test_vclsq_s16(int16x8_t a) {
1271   return vclsq_s16(a);
1272 }
1273 
1274 // CHECK-LABEL: test_vclsq_s32
1275 // CHECK: vcls.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s32(int32x4_t a)1276 int32x4_t test_vclsq_s32(int32x4_t a) {
1277   return vclsq_s32(a);
1278 }
1279 
1280 
1281 // CHECK-LABEL: test_vclt_s8
1282 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s8(int8x8_t a,int8x8_t b)1283 uint8x8_t test_vclt_s8(int8x8_t a, int8x8_t b) {
1284   return vclt_s8(a, b);
1285 }
1286 
1287 // CHECK-LABEL: test_vclt_s16
1288 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s16(int16x4_t a,int16x4_t b)1289 uint16x4_t test_vclt_s16(int16x4_t a, int16x4_t b) {
1290   return vclt_s16(a, b);
1291 }
1292 
1293 // CHECK-LABEL: test_vclt_s32
1294 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s32(int32x2_t a,int32x2_t b)1295 uint32x2_t test_vclt_s32(int32x2_t a, int32x2_t b) {
1296   return vclt_s32(a, b);
1297 }
1298 
1299 // CHECK-LABEL: test_vclt_f32
1300 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_f32(float32x2_t a,float32x2_t b)1301 uint32x2_t test_vclt_f32(float32x2_t a, float32x2_t b) {
1302   return vclt_f32(a, b);
1303 }
1304 
1305 // CHECK-LABEL: test_vclt_u8
1306 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u8(uint8x8_t a,uint8x8_t b)1307 uint8x8_t test_vclt_u8(uint8x8_t a, uint8x8_t b) {
1308   return vclt_u8(a, b);
1309 }
1310 
1311 // CHECK-LABEL: test_vclt_u16
1312 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u16(uint16x4_t a,uint16x4_t b)1313 uint16x4_t test_vclt_u16(uint16x4_t a, uint16x4_t b) {
1314   return vclt_u16(a, b);
1315 }
1316 
1317 // CHECK-LABEL: test_vclt_u32
1318 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u32(uint32x2_t a,uint32x2_t b)1319 uint32x2_t test_vclt_u32(uint32x2_t a, uint32x2_t b) {
1320   return vclt_u32(a, b);
1321 }
1322 
1323 // CHECK-LABEL: test_vcltq_s8
1324 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s8(int8x16_t a,int8x16_t b)1325 uint8x16_t test_vcltq_s8(int8x16_t a, int8x16_t b) {
1326   return vcltq_s8(a, b);
1327 }
1328 
1329 // CHECK-LABEL: test_vcltq_s16
1330 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s16(int16x8_t a,int16x8_t b)1331 uint16x8_t test_vcltq_s16(int16x8_t a, int16x8_t b) {
1332   return vcltq_s16(a, b);
1333 }
1334 
1335 // CHECK-LABEL: test_vcltq_s32
1336 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s32(int32x4_t a,int32x4_t b)1337 uint32x4_t test_vcltq_s32(int32x4_t a, int32x4_t b) {
1338   return vcltq_s32(a, b);
1339 }
1340 
1341 // CHECK-LABEL: test_vcltq_f32
1342 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_f32(float32x4_t a,float32x4_t b)1343 uint32x4_t test_vcltq_f32(float32x4_t a, float32x4_t b) {
1344   return vcltq_f32(a, b);
1345 }
1346 
1347 // CHECK-LABEL: test_vcltq_u8
1348 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u8(uint8x16_t a,uint8x16_t b)1349 uint8x16_t test_vcltq_u8(uint8x16_t a, uint8x16_t b) {
1350   return vcltq_u8(a, b);
1351 }
1352 
1353 // CHECK-LABEL: test_vcltq_u16
1354 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u16(uint16x8_t a,uint16x8_t b)1355 uint16x8_t test_vcltq_u16(uint16x8_t a, uint16x8_t b) {
1356   return vcltq_u16(a, b);
1357 }
1358 
1359 // CHECK-LABEL: test_vcltq_u32
1360 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u32(uint32x4_t a,uint32x4_t b)1361 uint32x4_t test_vcltq_u32(uint32x4_t a, uint32x4_t b) {
1362   return vcltq_u32(a, b);
1363 }
1364 
1365 
1366 // CHECK-LABEL: test_vclz_s8
1367 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s8(int8x8_t a)1368 int8x8_t test_vclz_s8(int8x8_t a) {
1369   return vclz_s8(a);
1370 }
1371 
1372 // CHECK-LABEL: test_vclz_s16
1373 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s16(int16x4_t a)1374 int16x4_t test_vclz_s16(int16x4_t a) {
1375   return vclz_s16(a);
1376 }
1377 
1378 // CHECK-LABEL: test_vclz_s32
1379 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s32(int32x2_t a)1380 int32x2_t test_vclz_s32(int32x2_t a) {
1381   return vclz_s32(a);
1382 }
1383 
1384 // CHECK-LABEL: test_vclz_u8
1385 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u8(uint8x8_t a)1386 uint8x8_t test_vclz_u8(uint8x8_t a) {
1387   return vclz_u8(a);
1388 }
1389 
1390 // CHECK-LABEL: test_vclz_u16
1391 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u16(uint16x4_t a)1392 uint16x4_t test_vclz_u16(uint16x4_t a) {
1393   return vclz_u16(a);
1394 }
1395 
1396 // CHECK-LABEL: test_vclz_u32
1397 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u32(uint32x2_t a)1398 uint32x2_t test_vclz_u32(uint32x2_t a) {
1399   return vclz_u32(a);
1400 }
1401 
1402 // CHECK-LABEL: test_vclzq_s8
1403 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s8(int8x16_t a)1404 int8x16_t test_vclzq_s8(int8x16_t a) {
1405   return vclzq_s8(a);
1406 }
1407 
1408 // CHECK-LABEL: test_vclzq_s16
1409 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s16(int16x8_t a)1410 int16x8_t test_vclzq_s16(int16x8_t a) {
1411   return vclzq_s16(a);
1412 }
1413 
1414 // CHECK-LABEL: test_vclzq_s32
1415 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s32(int32x4_t a)1416 int32x4_t test_vclzq_s32(int32x4_t a) {
1417   return vclzq_s32(a);
1418 }
1419 
1420 // CHECK-LABEL: test_vclzq_u8
1421 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u8(uint8x16_t a)1422 uint8x16_t test_vclzq_u8(uint8x16_t a) {
1423   return vclzq_u8(a);
1424 }
1425 
1426 // CHECK-LABEL: test_vclzq_u16
1427 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u16(uint16x8_t a)1428 uint16x8_t test_vclzq_u16(uint16x8_t a) {
1429   return vclzq_u16(a);
1430 }
1431 
1432 // CHECK-LABEL: test_vclzq_u32
1433 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u32(uint32x4_t a)1434 uint32x4_t test_vclzq_u32(uint32x4_t a) {
1435   return vclzq_u32(a);
1436 }
1437 
1438 
1439 // CHECK-LABEL: test_vcnt_u8
1440 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_u8(uint8x8_t a)1441 uint8x8_t test_vcnt_u8(uint8x8_t a) {
1442   return vcnt_u8(a);
1443 }
1444 
1445 // CHECK-LABEL: test_vcnt_s8
1446 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_s8(int8x8_t a)1447 int8x8_t test_vcnt_s8(int8x8_t a) {
1448   return vcnt_s8(a);
1449 }
1450 
1451 // CHECK-LABEL: test_vcnt_p8
1452 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_p8(poly8x8_t a)1453 poly8x8_t test_vcnt_p8(poly8x8_t a) {
1454   return vcnt_p8(a);
1455 }
1456 
1457 // CHECK-LABEL: test_vcntq_u8
1458 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_u8(uint8x16_t a)1459 uint8x16_t test_vcntq_u8(uint8x16_t a) {
1460   return vcntq_u8(a);
1461 }
1462 
1463 // CHECK-LABEL: test_vcntq_s8
1464 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_s8(int8x16_t a)1465 int8x16_t test_vcntq_s8(int8x16_t a) {
1466   return vcntq_s8(a);
1467 }
1468 
1469 // CHECK-LABEL: test_vcntq_p8
1470 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_p8(poly8x16_t a)1471 poly8x16_t test_vcntq_p8(poly8x16_t a) {
1472   return vcntq_p8(a);
1473 }
1474 
1475 
1476 // CHECK-LABEL: test_vcombine_s8
1477 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1478 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s8(int8x8_t a,int8x8_t b)1479 int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) {
1480   return vcombine_s8(a, b);
1481 }
1482 
1483 // CHECK-LABEL: test_vcombine_s16
1484 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1485 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s16(int16x4_t a,int16x4_t b)1486 int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) {
1487   return vcombine_s16(a, b);
1488 }
1489 
1490 // CHECK-LABEL: test_vcombine_s32
1491 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1492 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s32(int32x2_t a,int32x2_t b)1493 int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) {
1494   return vcombine_s32(a, b);
1495 }
1496 
1497 // CHECK-LABEL: test_vcombine_s64
1498 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1499 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s64(int64x1_t a,int64x1_t b)1500 int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) {
1501   return vcombine_s64(a, b);
1502 }
1503 
1504 // CHECK-LABEL: test_vcombine_f16
1505 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1506 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_f16(float16x4_t a,float16x4_t b)1507 float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) {
1508   return vcombine_f16(a, b);
1509 }
1510 
1511 // CHECK-LABEL: test_vcombine_f32
1512 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1513 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_f32(float32x2_t a,float32x2_t b)1514 float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) {
1515   return vcombine_f32(a, b);
1516 }
1517 
1518 // CHECK-LABEL: test_vcombine_u8
1519 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1520 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u8(uint8x8_t a,uint8x8_t b)1521 uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) {
1522   return vcombine_u8(a, b);
1523 }
1524 
1525 // CHECK-LABEL: test_vcombine_u16
1526 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1527 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u16(uint16x4_t a,uint16x4_t b)1528 uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) {
1529   return vcombine_u16(a, b);
1530 }
1531 
1532 // CHECK-LABEL: test_vcombine_u32
1533 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1534 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u32(uint32x2_t a,uint32x2_t b)1535 uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) {
1536   return vcombine_u32(a, b);
1537 }
1538 
1539 // CHECK-LABEL: test_vcombine_u64
1540 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1541 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u64(uint64x1_t a,uint64x1_t b)1542 uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) {
1543   return vcombine_u64(a, b);
1544 }
1545 
1546 // CHECK-LABEL: test_vcombine_p8
1547 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1548 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_p8(poly8x8_t a,poly8x8_t b)1549 poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) {
1550   return vcombine_p8(a, b);
1551 }
1552 
1553 // CHECK-LABEL: test_vcombine_p16
1554 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1555 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_p16(poly16x4_t a,poly16x4_t b)1556 poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) {
1557   return vcombine_p16(a, b);
1558 }
1559 
1560 
1561 // CHECK-LABEL: test_vcreate_s8
1562 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1563 // CHECK: vclz.i8 d{{[0-9]+}}, [[REG]]
test_vcreate_s8(uint64_t a)1564 int8x8_t test_vcreate_s8(uint64_t a) {
1565   return vclz_s8(vcreate_s8(a));
1566 }
1567 
1568 // CHECK-LABEL: test_vcreate_s16
1569 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1570 // CHECK: vclz.i16 d{{[0-9]+}}, [[REG]]
test_vcreate_s16(uint64_t a)1571 int16x4_t test_vcreate_s16(uint64_t a) {
1572   return vclz_s16(vcreate_s16(a));
1573 }
1574 
1575 // CHECK-LABEL: test_vcreate_s32
1576 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1577 // CHECK: vclz.i32 d{{[0-9]+}}, [[REG]]
test_vcreate_s32(uint64_t a)1578 int32x2_t test_vcreate_s32(uint64_t a) {
1579   return vclz_s32(vcreate_s32(a));
1580 }
1581 
1582 // CHECK-LABEL: test_vcreate_f16
test_vcreate_f16(uint64_t a)1583 float16x4_t test_vcreate_f16(uint64_t a) {
1584   return vcreate_f16(a);
1585 }
1586 
1587 // CHECK-LABEL: test_vcreate_f32
test_vcreate_f32(uint64_t a)1588 float32x2_t test_vcreate_f32(uint64_t a) {
1589   return vcreate_f32(a);
1590 }
1591 
1592 // CHECK-LABEL: test_vcreate_u8
1593 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1594 // CHECK: vclz.i8 d{{[0-9]+}}, [[REG]]
test_vcreate_u8(uint64_t a)1595 uint8x8_t test_vcreate_u8(uint64_t a) {
1596   return vclz_s8(vcreate_u8(a));
1597 }
1598 
1599 // CHECK-LABEL: test_vcreate_u16
1600 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1601 // CHECK: vclz.i16 d{{[0-9]+}}, [[REG]]
test_vcreate_u16(uint64_t a)1602 uint16x4_t test_vcreate_u16(uint64_t a) {
1603   return vclz_s16(vcreate_u16(a));
1604 }
1605 
1606 // CHECK-LABEL: test_vcreate_u32
1607 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1608 // CHECK: vclz.i32 d{{[0-9]+}}, [[REG]]
test_vcreate_u32(uint64_t a)1609 uint32x2_t test_vcreate_u32(uint64_t a) {
1610   return vclz_s32(vcreate_u32(a));
1611 }
1612 
1613 
1614 // We have two ways of lowering that.  Either with one 'vmov d, r, r' or
1615 // with two 'vmov d[],r'.  LLVM does the latter. We may want to be less
1616 // strict about the matching pattern if it starts causing problem.
1617 // CHECK-LABEL: test_vcreate_u64
1618 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
1619 // CHECK: vmov.32 [[REG]][1], r1
test_vcreate_u64(uint64_t a)1620 uint64x1_t test_vcreate_u64(uint64_t a) {
1621   uint64x1_t tmp = vcreate_u64(a);
1622   return vadd_u64(tmp, tmp);
1623 
1624 }
1625 
1626 // CHECK-LABEL: test_vcreate_p8
1627 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1628 // CHECK: vcnt.8 d{{[0-9]+}}, [[REG]]
test_vcreate_p8(uint64_t a)1629 poly8x8_t test_vcreate_p8(uint64_t a) {
1630   return vcnt_p8(vcreate_p8(a));
1631 }
1632 
1633 // CHECK-LABEL: test_vcreate_p16
1634 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
test_vcreate_p16(uint64_t a)1635 poly16x4_t test_vcreate_p16(uint64_t a) {
1636   poly16x4_t tmp = vcreate_p16(a);
1637   return vbsl_p16(tmp, tmp, tmp);
1638 }
1639 
1640 // CHECK-LABEL: test_vcreate_s64
1641 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
1642 // CHECK: vmov.32 [[REG]][1], r1
test_vcreate_s64(uint64_t a)1643 int64x1_t test_vcreate_s64(uint64_t a) {
1644   int64x1_t tmp = vcreate_s64(a);
1645   return vadd_s64(tmp, tmp);
1646 }
1647 
1648 
1649 // CHECK-LABEL: test_vcvt_f16_f32
1650 // CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}}
test_vcvt_f16_f32(float32x4_t a)1651 float16x4_t test_vcvt_f16_f32(float32x4_t a) {
1652   return vcvt_f16_f32(a);
1653 }
1654 
1655 
1656 // CHECK-LABEL: test_vcvt_f32_s32
1657 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_s32(int32x2_t a)1658 float32x2_t test_vcvt_f32_s32(int32x2_t a) {
1659   return vcvt_f32_s32(a);
1660 }
1661 
1662 // CHECK-LABEL: test_vcvt_f32_u32
1663 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_u32(uint32x2_t a)1664 float32x2_t test_vcvt_f32_u32(uint32x2_t a) {
1665   return vcvt_f32_u32(a);
1666 }
1667 
1668 // CHECK-LABEL: test_vcvtq_f32_s32
1669 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_s32(int32x4_t a)1670 float32x4_t test_vcvtq_f32_s32(int32x4_t a) {
1671   return vcvtq_f32_s32(a);
1672 }
1673 
1674 // CHECK-LABEL: test_vcvtq_f32_u32
1675 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_u32(uint32x4_t a)1676 float32x4_t test_vcvtq_f32_u32(uint32x4_t a) {
1677   return vcvtq_f32_u32(a);
1678 }
1679 
1680 
1681 // CHECK-LABEL: test_vcvt_f32_f16
1682 // CHECK: vcvt.f32.f16
test_vcvt_f32_f16(float16x4_t a)1683 float32x4_t test_vcvt_f32_f16(float16x4_t a) {
1684   return vcvt_f32_f16(a);
1685 }
1686 
1687 
1688 // CHECK-LABEL: test_vcvt_n_f32_s32
1689 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_s32(int32x2_t a)1690 float32x2_t test_vcvt_n_f32_s32(int32x2_t a) {
1691   return vcvt_n_f32_s32(a, 1);
1692 }
1693 
1694 // CHECK-LABEL: test_vcvt_n_f32_u32
1695 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_u32(uint32x2_t a)1696 float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) {
1697   return vcvt_n_f32_u32(a, 1);
1698 }
1699 
1700 // CHECK-LABEL: test_vcvtq_n_f32_s32
1701 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_s32(int32x4_t a)1702 float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) {
1703   return vcvtq_n_f32_s32(a, 3);
1704 }
1705 
1706 // CHECK-LABEL: test_vcvtq_n_f32_u32
1707 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_u32(uint32x4_t a)1708 float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) {
1709   return vcvtq_n_f32_u32(a, 3);
1710 }
1711 
1712 
1713 // CHECK-LABEL: test_vcvt_n_s32_f32
1714 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_s32_f32(float32x2_t a)1715 int32x2_t test_vcvt_n_s32_f32(float32x2_t a) {
1716   return vcvt_n_s32_f32(a, 1);
1717 }
1718 
1719 // CHECK-LABEL: test_vcvtq_n_s32_f32
1720 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_s32_f32(float32x4_t a)1721 int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) {
1722   return vcvtq_n_s32_f32(a, 3);
1723 }
1724 
1725 
1726 // CHECK-LABEL: test_vcvt_n_u32_f32
1727 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_u32_f32(float32x2_t a)1728 uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) {
1729   return vcvt_n_u32_f32(a, 1);
1730 }
1731 
1732 // CHECK-LABEL: test_vcvtq_n_u32_f32
1733 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_u32_f32(float32x4_t a)1734 uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) {
1735   return vcvtq_n_u32_f32(a, 3);
1736 }
1737 
1738 
1739 // CHECK-LABEL: test_vcvt_s32_f32
1740 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_s32_f32(float32x2_t a)1741 int32x2_t test_vcvt_s32_f32(float32x2_t a) {
1742   return vcvt_s32_f32(a);
1743 }
1744 
1745 // CHECK-LABEL: test_vcvtq_s32_f32
1746 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_s32_f32(float32x4_t a)1747 int32x4_t test_vcvtq_s32_f32(float32x4_t a) {
1748   return vcvtq_s32_f32(a);
1749 }
1750 
1751 
1752 // CHECK-LABEL: test_vcvt_u32_f32
1753 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_u32_f32(float32x2_t a)1754 uint32x2_t test_vcvt_u32_f32(float32x2_t a) {
1755   return vcvt_u32_f32(a);
1756 }
1757 
1758 // CHECK-LABEL: test_vcvtq_u32_f32
1759 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_u32_f32(float32x4_t a)1760 uint32x4_t test_vcvtq_u32_f32(float32x4_t a) {
1761   return vcvtq_u32_f32(a);
1762 }
1763 
1764 
1765 // CHECK-LABEL: test_vdup_lane_u8
1766 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u8(uint8x8_t a)1767 uint8x8_t test_vdup_lane_u8(uint8x8_t a) {
1768   return vdup_lane_u8(a, 7);
1769 }
1770 
1771 // CHECK-LABEL: test_vdup_lane_u16
1772 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u16(uint16x4_t a)1773 uint16x4_t test_vdup_lane_u16(uint16x4_t a) {
1774   return vdup_lane_u16(a, 3);
1775 }
1776 
1777 // CHECK-LABEL: test_vdup_lane_u32
1778 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u32(uint32x2_t a)1779 uint32x2_t test_vdup_lane_u32(uint32x2_t a) {
1780   return vdup_lane_u32(a, 1);
1781 }
1782 
1783 // CHECK-LABEL: test_vdup_lane_s8
1784 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s8(int8x8_t a)1785 int8x8_t test_vdup_lane_s8(int8x8_t a) {
1786   return vdup_lane_s8(a, 7);
1787 }
1788 
1789 // CHECK-LABEL: test_vdup_lane_s16
1790 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s16(int16x4_t a)1791 int16x4_t test_vdup_lane_s16(int16x4_t a) {
1792   return vdup_lane_s16(a, 3);
1793 }
1794 
1795 // CHECK-LABEL: test_vdup_lane_s32
1796 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s32(int32x2_t a)1797 int32x2_t test_vdup_lane_s32(int32x2_t a) {
1798   return vdup_lane_s32(a, 1);
1799 }
1800 
1801 // CHECK-LABEL: test_vdup_lane_p8
1802 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p8(poly8x8_t a)1803 poly8x8_t test_vdup_lane_p8(poly8x8_t a) {
1804   return vdup_lane_p8(a, 7);
1805 }
1806 
1807 // CHECK-LABEL: test_vdup_lane_p16
1808 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p16(poly16x4_t a)1809 poly16x4_t test_vdup_lane_p16(poly16x4_t a) {
1810   return vdup_lane_p16(a, 3);
1811 }
1812 
1813 // CHECK-LABEL: test_vdup_lane_f32
1814 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_f32(float32x2_t a)1815 float32x2_t test_vdup_lane_f32(float32x2_t a) {
1816   return vdup_lane_f32(a, 1);
1817 }
1818 
1819 // CHECK-LABEL: test_vdupq_lane_u8
1820 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u8(uint8x8_t a)1821 uint8x16_t test_vdupq_lane_u8(uint8x8_t a) {
1822   return vdupq_lane_u8(a, 7);
1823 }
1824 
1825 // CHECK-LABEL: test_vdupq_lane_u16
1826 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u16(uint16x4_t a)1827 uint16x8_t test_vdupq_lane_u16(uint16x4_t a) {
1828   return vdupq_lane_u16(a, 3);
1829 }
1830 
1831 // CHECK-LABEL: test_vdupq_lane_u32
1832 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u32(uint32x2_t a)1833 uint32x4_t test_vdupq_lane_u32(uint32x2_t a) {
1834   return vdupq_lane_u32(a, 1);
1835 }
1836 
1837 // CHECK-LABEL: test_vdupq_lane_s8
1838 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s8(int8x8_t a)1839 int8x16_t test_vdupq_lane_s8(int8x8_t a) {
1840   return vdupq_lane_s8(a, 7);
1841 }
1842 
1843 // CHECK-LABEL: test_vdupq_lane_s16
1844 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s16(int16x4_t a)1845 int16x8_t test_vdupq_lane_s16(int16x4_t a) {
1846   return vdupq_lane_s16(a, 3);
1847 }
1848 
1849 // CHECK-LABEL: test_vdupq_lane_s32
1850 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s32(int32x2_t a)1851 int32x4_t test_vdupq_lane_s32(int32x2_t a) {
1852   return vdupq_lane_s32(a, 1);
1853 }
1854 
1855 // CHECK-LABEL: test_vdupq_lane_p8
1856 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p8(poly8x8_t a)1857 poly8x16_t test_vdupq_lane_p8(poly8x8_t a) {
1858   return vdupq_lane_p8(a, 7);
1859 }
1860 
1861 // CHECK-LABEL: test_vdupq_lane_p16
1862 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p16(poly16x4_t a)1863 poly16x8_t test_vdupq_lane_p16(poly16x4_t a) {
1864   return vdupq_lane_p16(a, 3);
1865 }
1866 
1867 // CHECK-LABEL: test_vdupq_lane_f32
1868 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_f32(float32x2_t a)1869 float32x4_t test_vdupq_lane_f32(float32x2_t a) {
1870   return vdupq_lane_f32(a, 1);
1871 }
1872 
1873 // CHECK-LABEL: test_vdup_lane_s64
test_vdup_lane_s64(int64x1_t a)1874 int64x1_t test_vdup_lane_s64(int64x1_t a) {
1875   return vdup_lane_s64(a, 0);
1876 }
1877 
1878 // CHECK-LABEL: test_vdup_lane_u64
test_vdup_lane_u64(uint64x1_t a)1879 uint64x1_t test_vdup_lane_u64(uint64x1_t a) {
1880   return vdup_lane_u64(a, 0);
1881 }
1882 
1883 // CHECK-LABEL: test_vdupq_lane_s64
1884 // CHECK: {{vmov|vdup}}
test_vdupq_lane_s64(int64x1_t a)1885 int64x2_t test_vdupq_lane_s64(int64x1_t a) {
1886   return vdupq_lane_s64(a, 0);
1887 }
1888 
1889 // CHECK-LABEL: test_vdupq_lane_u64
1890 // CHECK: {{vmov|vdup}}
test_vdupq_lane_u64(uint64x1_t a)1891 uint64x2_t test_vdupq_lane_u64(uint64x1_t a) {
1892   return vdupq_lane_u64(a, 0);
1893 }
1894 
1895 
1896 // CHECK-LABEL: test_vdup_n_u8
1897 // CHECK: vmov
test_vdup_n_u8(uint8_t a)1898 uint8x8_t test_vdup_n_u8(uint8_t a) {
1899   return vdup_n_u8(a);
1900 }
1901 
1902 // CHECK-LABEL: test_vdup_n_u16
1903 // CHECK: vmov
test_vdup_n_u16(uint16_t a)1904 uint16x4_t test_vdup_n_u16(uint16_t a) {
1905   return vdup_n_u16(a);
1906 }
1907 
1908 // CHECK-LABEL: test_vdup_n_u32
1909 // CHECK: mov
test_vdup_n_u32(uint32_t a)1910 uint32x2_t test_vdup_n_u32(uint32_t a) {
1911   return vdup_n_u32(a);
1912 }
1913 
1914 // CHECK-LABEL: test_vdup_n_s8
1915 // CHECK: vmov
test_vdup_n_s8(int8_t a)1916 int8x8_t test_vdup_n_s8(int8_t a) {
1917   return vdup_n_s8(a);
1918 }
1919 
1920 // CHECK-LABEL: test_vdup_n_s16
1921 // CHECK: vmov
test_vdup_n_s16(int16_t a)1922 int16x4_t test_vdup_n_s16(int16_t a) {
1923   return vdup_n_s16(a);
1924 }
1925 
1926 // CHECK-LABEL: test_vdup_n_s32
1927 // CHECK: mov
test_vdup_n_s32(int32_t a)1928 int32x2_t test_vdup_n_s32(int32_t a) {
1929   return vdup_n_s32(a);
1930 }
1931 
1932 // CHECK-LABEL: test_vdup_n_p8
1933 // CHECK: vmov
test_vdup_n_p8(poly8_t a)1934 poly8x8_t test_vdup_n_p8(poly8_t a) {
1935   return vdup_n_p8(a);
1936 }
1937 
1938 // CHECK-LABEL: test_vdup_n_p16
1939 // CHECK: vmov
test_vdup_n_p16(poly16_t a)1940 poly16x4_t test_vdup_n_p16(poly16_t a) {
1941   return vdup_n_p16(a);
1942 }
1943 
1944 // CHECK-LABEL: test_vdup_n_f16
1945 // CHECK: vld1.16 {{{d[0-9]+\[\]}}}
test_vdup_n_f16(float16_t * a)1946 float16x4_t test_vdup_n_f16(float16_t *a) {
1947   return vdup_n_f16(*a);
1948 }
1949 
1950 // CHECK-LABEL: test_vdup_n_f32
1951 // CHECK: mov
test_vdup_n_f32(float32_t a)1952 float32x2_t test_vdup_n_f32(float32_t a) {
1953   return vdup_n_f32(a);
1954 }
1955 
1956 // CHECK-LABEL: test_vdupq_n_u8
1957 // CHECK: vmov
test_vdupq_n_u8(uint8_t a)1958 uint8x16_t test_vdupq_n_u8(uint8_t a) {
1959   return vdupq_n_u8(a);
1960 }
1961 
1962 // CHECK-LABEL: test_vdupq_n_u16
1963 // CHECK: vmov
test_vdupq_n_u16(uint16_t a)1964 uint16x8_t test_vdupq_n_u16(uint16_t a) {
1965   return vdupq_n_u16(a);
1966 }
1967 
1968 // CHECK-LABEL: test_vdupq_n_u32
1969 // CHECK: vmov
test_vdupq_n_u32(uint32_t a)1970 uint32x4_t test_vdupq_n_u32(uint32_t a) {
1971   return vdupq_n_u32(a);
1972 }
1973 
1974 // CHECK-LABEL: test_vdupq_n_s8
1975 // CHECK: vmov
test_vdupq_n_s8(int8_t a)1976 int8x16_t test_vdupq_n_s8(int8_t a) {
1977   return vdupq_n_s8(a);
1978 }
1979 
1980 // CHECK-LABEL: test_vdupq_n_s16
1981 // CHECK: vmov
test_vdupq_n_s16(int16_t a)1982 int16x8_t test_vdupq_n_s16(int16_t a) {
1983   return vdupq_n_s16(a);
1984 }
1985 
1986 // CHECK-LABEL: test_vdupq_n_s32
1987 // CHECK: vmov
test_vdupq_n_s32(int32_t a)1988 int32x4_t test_vdupq_n_s32(int32_t a) {
1989   return vdupq_n_s32(a);
1990 }
1991 
1992 // CHECK-LABEL: test_vdupq_n_p8
1993 // CHECK: vmov
test_vdupq_n_p8(poly8_t a)1994 poly8x16_t test_vdupq_n_p8(poly8_t a) {
1995   return vdupq_n_p8(a);
1996 }
1997 
1998 // CHECK-LABEL: test_vdupq_n_p16
1999 // CHECK: vmov
test_vdupq_n_p16(poly16_t a)2000 poly16x8_t test_vdupq_n_p16(poly16_t a) {
2001   return vdupq_n_p16(a);
2002 }
2003 
2004 // CHECK-LABEL: test_vdupq_n_f16
2005 // CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}}
test_vdupq_n_f16(float16_t * a)2006 float16x8_t test_vdupq_n_f16(float16_t *a) {
2007   return vdupq_n_f16(*a);
2008 }
2009 
2010 // CHECK-LABEL: test_vdupq_n_f32
2011 // CHECK: vmov
test_vdupq_n_f32(float32_t a)2012 float32x4_t test_vdupq_n_f32(float32_t a) {
2013   return vdupq_n_f32(a);
2014 }
2015 
2016 // CHECK-LABEL: test_vdup_n_s64
2017 // CHECK: vmov
test_vdup_n_s64(int64_t a)2018 int64x1_t test_vdup_n_s64(int64_t a) {
2019   int64x1_t tmp = vdup_n_s64(a);
2020   return vadd_s64(tmp, tmp);
2021 }
2022 
2023 // CHECK-LABEL: test_vdup_n_u64
2024 // CHECK: vmov
test_vdup_n_u64(uint64_t a)2025 uint64x1_t test_vdup_n_u64(uint64_t a) {
2026   int64x1_t tmp = vdup_n_u64(a);
2027   return vadd_s64(tmp, tmp);
2028 
2029 }
2030 
2031 // CHECK-LABEL: test_vdupq_n_s64
2032 // CHECK: vmov
test_vdupq_n_s64(int64_t a)2033 int64x2_t test_vdupq_n_s64(int64_t a) {
2034   int64x2_t tmp = vdupq_n_s64(a);
2035   return vaddq_s64(tmp, tmp);
2036 }
2037 
2038 // CHECK-LABEL: test_vdupq_n_u64
2039 // CHECK: vmov
test_vdupq_n_u64(uint64_t a)2040 uint64x2_t test_vdupq_n_u64(uint64_t a) {
2041   int64x2_t tmp = vdupq_n_u64(a);
2042   return vaddq_u64(tmp, tmp);
2043 }
2044 
2045 
2046 // CHECK-LABEL: test_veor_s8
2047 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s8(int8x8_t a,int8x8_t b)2048 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
2049   return veor_s8(a, b);
2050 }
2051 
2052 // CHECK-LABEL: test_veor_s16
2053 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s16(int16x4_t a,int16x4_t b)2054 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
2055   return veor_s16(a, b);
2056 }
2057 
2058 // CHECK-LABEL: test_veor_s32
2059 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s32(int32x2_t a,int32x2_t b)2060 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
2061   return veor_s32(a, b);
2062 }
2063 
2064 // CHECK-LABEL: test_veor_s64
2065 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s64(int64x1_t a,int64x1_t b)2066 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
2067   return veor_s64(a, b);
2068 }
2069 
2070 // CHECK-LABEL: test_veor_u8
2071 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u8(uint8x8_t a,uint8x8_t b)2072 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
2073   return veor_u8(a, b);
2074 }
2075 
2076 // CHECK-LABEL: test_veor_u16
2077 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u16(uint16x4_t a,uint16x4_t b)2078 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
2079   return veor_u16(a, b);
2080 }
2081 
2082 // CHECK-LABEL: test_veor_u32
2083 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u32(uint32x2_t a,uint32x2_t b)2084 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
2085   return veor_u32(a, b);
2086 }
2087 
2088 // CHECK-LABEL: test_veor_u64
2089 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u64(uint64x1_t a,uint64x1_t b)2090 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
2091   return veor_u64(a, b);
2092 }
2093 
2094 // CHECK-LABEL: test_veorq_s8
2095 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s8(int8x16_t a,int8x16_t b)2096 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
2097   return veorq_s8(a, b);
2098 }
2099 
2100 // CHECK-LABEL: test_veorq_s16
2101 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s16(int16x8_t a,int16x8_t b)2102 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
2103   return veorq_s16(a, b);
2104 }
2105 
2106 // CHECK-LABEL: test_veorq_s32
2107 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s32(int32x4_t a,int32x4_t b)2108 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
2109   return veorq_s32(a, b);
2110 }
2111 
2112 // CHECK-LABEL: test_veorq_s64
2113 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s64(int64x2_t a,int64x2_t b)2114 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
2115   return veorq_s64(a, b);
2116 }
2117 
2118 // CHECK-LABEL: test_veorq_u8
2119 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u8(uint8x16_t a,uint8x16_t b)2120 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
2121   return veorq_u8(a, b);
2122 }
2123 
2124 // CHECK-LABEL: test_veorq_u16
2125 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u16(uint16x8_t a,uint16x8_t b)2126 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
2127   return veorq_u16(a, b);
2128 }
2129 
2130 // CHECK-LABEL: test_veorq_u32
2131 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u32(uint32x4_t a,uint32x4_t b)2132 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
2133   return veorq_u32(a, b);
2134 }
2135 
2136 // CHECK-LABEL: test_veorq_u64
2137 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u64(uint64x2_t a,uint64x2_t b)2138 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
2139   return veorq_u64(a, b);
2140 }
2141 
2142 
2143 // CHECK-LABEL: test_vext_s8
2144 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s8(int8x8_t a,int8x8_t b)2145 int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) {
2146   return vext_s8(a, b, 7);
2147 }
2148 
2149 // CHECK-LABEL: test_vext_u8
2150 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u8(uint8x8_t a,uint8x8_t b)2151 uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) {
2152   return vext_u8(a, b, 7);
2153 }
2154 
2155 // CHECK-LABEL: test_vext_p8
2156 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p8(poly8x8_t a,poly8x8_t b)2157 poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) {
2158   return vext_p8(a, b, 7);
2159 }
2160 
2161 // CHECK-LABEL: test_vext_s16
2162 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s16(int16x4_t a,int16x4_t b)2163 int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) {
2164   return vext_s16(a, b, 3);
2165 }
2166 
2167 // CHECK-LABEL: test_vext_u16
2168 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u16(uint16x4_t a,uint16x4_t b)2169 uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) {
2170   return vext_u16(a, b, 3);
2171 }
2172 
2173 // CHECK-LABEL: test_vext_p16
2174 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p16(poly16x4_t a,poly16x4_t b)2175 poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) {
2176   return vext_p16(a, b, 3);
2177 }
2178 
2179 // CHECK-LABEL: test_vext_s32
2180 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s32(int32x2_t a,int32x2_t b)2181 int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) {
2182   return vext_s32(a, b, 1);
2183 }
2184 
2185 // CHECK-LABEL: test_vext_u32
2186 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u32(uint32x2_t a,uint32x2_t b)2187 uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) {
2188   return vext_u32(a, b, 1);
2189 }
2190 
2191 // CHECK-LABEL: test_vext_s64
test_vext_s64(int64x1_t a,int64x1_t b)2192 int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) {
2193   return vext_s64(a, b, 0);
2194 }
2195 
2196 // CHECK-LABEL: test_vext_u64
test_vext_u64(uint64x1_t a,uint64x1_t b)2197 uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) {
2198   return vext_u64(a, b, 0);
2199 }
2200 
2201 // CHECK-LABEL: test_vext_f32
2202 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_f32(float32x2_t a,float32x2_t b)2203 float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) {
2204   return vext_f32(a, b, 1);
2205 }
2206 
2207 // CHECK-LABEL: test_vextq_s8
2208 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s8(int8x16_t a,int8x16_t b)2209 int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) {
2210   return vextq_s8(a, b, 15);
2211 }
2212 
2213 // CHECK-LABEL: test_vextq_u8
2214 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u8(uint8x16_t a,uint8x16_t b)2215 uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) {
2216   return vextq_u8(a, b, 15);
2217 }
2218 
2219 // CHECK-LABEL: test_vextq_p8
2220 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p8(poly8x16_t a,poly8x16_t b)2221 poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
2222   return vextq_p8(a, b, 15);
2223 }
2224 
2225 // CHECK-LABEL: test_vextq_s16
2226 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s16(int16x8_t a,int16x8_t b)2227 int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) {
2228   return vextq_s16(a, b, 7);
2229 }
2230 
2231 // CHECK-LABEL: test_vextq_u16
2232 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u16(uint16x8_t a,uint16x8_t b)2233 uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) {
2234   return vextq_u16(a, b, 7);
2235 }
2236 
2237 // CHECK-LABEL: test_vextq_p16
2238 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p16(poly16x8_t a,poly16x8_t b)2239 poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) {
2240   return vextq_p16(a, b, 7);
2241 }
2242 
2243 // CHECK-LABEL: test_vextq_s32
2244 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s32(int32x4_t a,int32x4_t b)2245 int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) {
2246   return vextq_s32(a, b, 3);
2247 }
2248 
2249 // CHECK-LABEL: test_vextq_u32
2250 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u32(uint32x4_t a,uint32x4_t b)2251 uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) {
2252   return vextq_u32(a, b, 3);
2253 }
2254 
2255 // CHECK-LABEL: test_vextq_s64
2256 // CHECK: {{vmov|vdup}}
test_vextq_s64(int64x2_t a,int64x2_t b)2257 int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) {
2258   return vextq_s64(a, b, 1);
2259 }
2260 
2261 // CHECK-LABEL: test_vextq_u64
2262 // CHECK: {{vmov|vdup}}
test_vextq_u64(uint64x2_t a,uint64x2_t b)2263 uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) {
2264   return vextq_u64(a, b, 1);
2265 }
2266 
2267 // CHECK-LABEL: test_vextq_f32
2268 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_f32(float32x4_t a,float32x4_t b)2269 float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) {
2270   return vextq_f32(a, b, 3);
2271 }
2272 
2273 
2274 // CHECK-LABEL: test_vfma_f32
2275 // CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vfma_f32(float32x2_t a,float32x2_t b,float32x2_t c)2276 float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
2277   return vfma_f32(a, b, c);
2278 }
2279 
2280 // CHECK-LABEL: test_vfmaq_f32
2281 // CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vfmaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)2282 float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
2283   return vfmaq_f32(a, b, c);
2284 }
2285 
2286 
2287 // CHECK-LABEL: test_vget_high_s8
test_vget_high_s8(int8x16_t a)2288 int8x8_t test_vget_high_s8(int8x16_t a) {
2289   return vget_high_s8(a);
2290 }
2291 
2292 // CHECK-LABEL: test_vget_high_s16
test_vget_high_s16(int16x8_t a)2293 int16x4_t test_vget_high_s16(int16x8_t a) {
2294   return vget_high_s16(a);
2295 }
2296 
2297 // CHECK-LABEL: test_vget_high_s32
test_vget_high_s32(int32x4_t a)2298 int32x2_t test_vget_high_s32(int32x4_t a) {
2299   return vget_high_s32(a);
2300 }
2301 
2302 // CHECK-LABEL: test_vget_high_s64
test_vget_high_s64(int64x2_t a)2303 int64x1_t test_vget_high_s64(int64x2_t a) {
2304   return vget_high_s64(a);
2305 }
2306 
2307 // CHECK-LABEL: test_vget_high_f16
test_vget_high_f16(float16x8_t a)2308 float16x4_t test_vget_high_f16(float16x8_t a) {
2309   return vget_high_f16(a);
2310 }
2311 
2312 // CHECK-LABEL: test_vget_high_f32
test_vget_high_f32(float32x4_t a)2313 float32x2_t test_vget_high_f32(float32x4_t a) {
2314   return vget_high_f32(a);
2315 }
2316 
2317 // CHECK-LABEL: test_vget_high_u8
test_vget_high_u8(uint8x16_t a)2318 uint8x8_t test_vget_high_u8(uint8x16_t a) {
2319   return vget_high_u8(a);
2320 }
2321 
2322 // CHECK-LABEL: test_vget_high_u16
test_vget_high_u16(uint16x8_t a)2323 uint16x4_t test_vget_high_u16(uint16x8_t a) {
2324   return vget_high_u16(a);
2325 }
2326 
2327 // CHECK-LABEL: test_vget_high_u32
test_vget_high_u32(uint32x4_t a)2328 uint32x2_t test_vget_high_u32(uint32x4_t a) {
2329   return vget_high_u32(a);
2330 }
2331 
2332 // CHECK-LABEL: test_vget_high_u64
test_vget_high_u64(uint64x2_t a)2333 uint64x1_t test_vget_high_u64(uint64x2_t a) {
2334   return vget_high_u64(a);
2335 }
2336 
2337 // CHECK-LABEL: test_vget_high_p8
test_vget_high_p8(poly8x16_t a)2338 poly8x8_t test_vget_high_p8(poly8x16_t a) {
2339   return vget_high_p8(a);
2340 }
2341 
2342 // CHECK-LABEL: test_vget_high_p16
test_vget_high_p16(poly16x8_t a)2343 poly16x4_t test_vget_high_p16(poly16x8_t a) {
2344   return vget_high_p16(a);
2345 }
2346 
2347 
2348 // CHECK-LABEL: test_vget_lane_u8
2349 // CHECK: vmov
test_vget_lane_u8(uint8x8_t a)2350 uint8_t test_vget_lane_u8(uint8x8_t a) {
2351   return vget_lane_u8(a, 7);
2352 }
2353 
2354 // CHECK-LABEL: test_vget_lane_u16
2355 // CHECK: vmov
test_vget_lane_u16(uint16x4_t a)2356 uint16_t test_vget_lane_u16(uint16x4_t a) {
2357   return vget_lane_u16(a, 3);
2358 }
2359 
2360 // CHECK-LABEL: test_vget_lane_u32
2361 // CHECK: mov
test_vget_lane_u32(uint32x2_t a)2362 uint32_t test_vget_lane_u32(uint32x2_t a) {
2363   return vget_lane_u32(a, 1);
2364 }
2365 
2366 // CHECK-LABEL: test_vget_lane_s8
2367 // CHECK: vmov
test_vget_lane_s8(int8x8_t a)2368 int8_t test_vget_lane_s8(int8x8_t a) {
2369   return vget_lane_s8(a, 7);
2370 }
2371 
2372 // CHECK-LABEL: test_vget_lane_s16
2373 // CHECK: vmov
test_vget_lane_s16(int16x4_t a)2374 int16_t test_vget_lane_s16(int16x4_t a) {
2375   return vget_lane_s16(a, 3);
2376 }
2377 
2378 // CHECK-LABEL: test_vget_lane_s32
2379 // CHECK: mov
test_vget_lane_s32(int32x2_t a)2380 int32_t test_vget_lane_s32(int32x2_t a) {
2381   return vget_lane_s32(a, 1);
2382 }
2383 
2384 // CHECK-LABEL: test_vget_lane_p8
2385 // CHECK: vmov
test_vget_lane_p8(poly8x8_t a)2386 poly8_t test_vget_lane_p8(poly8x8_t a) {
2387   return vget_lane_p8(a, 7);
2388 }
2389 
2390 // CHECK-LABEL: test_vget_lane_p16
2391 // CHECK: vmov
test_vget_lane_p16(poly16x4_t a)2392 poly16_t test_vget_lane_p16(poly16x4_t a) {
2393   return vget_lane_p16(a, 3);
2394 }
2395 
2396 // CHECK-LABEL: test_vget_lane_f32
2397 // CHECK: vmov
test_vget_lane_f32(float32x2_t a)2398 float32_t test_vget_lane_f32(float32x2_t a) {
2399   return vget_lane_f32(a, 1);
2400 }
2401 
2402 // CHECK-LABEL: test_vget_lane_f16
2403 // CHECK: vmov
test_vget_lane_f16(float16x4_t a)2404 float32_t test_vget_lane_f16(float16x4_t a) {
2405   return vget_lane_f16(a, 1);
2406 }
2407 
2408 // CHECK-LABEL: test_vgetq_lane_u8
2409 // CHECK: vmov
test_vgetq_lane_u8(uint8x16_t a)2410 uint8_t test_vgetq_lane_u8(uint8x16_t a) {
2411   return vgetq_lane_u8(a, 15);
2412 }
2413 
2414 // CHECK-LABEL: test_vgetq_lane_u16
2415 // CHECK: vmov
test_vgetq_lane_u16(uint16x8_t a)2416 uint16_t test_vgetq_lane_u16(uint16x8_t a) {
2417   return vgetq_lane_u16(a, 7);
2418 }
2419 
2420 // CHECK-LABEL: test_vgetq_lane_u32
2421 // CHECK: vmov
test_vgetq_lane_u32(uint32x4_t a)2422 uint32_t test_vgetq_lane_u32(uint32x4_t a) {
2423   return vgetq_lane_u32(a, 3);
2424 }
2425 
2426 // CHECK-LABEL: test_vgetq_lane_s8
2427 // CHECK: vmov
test_vgetq_lane_s8(int8x16_t a)2428 int8_t test_vgetq_lane_s8(int8x16_t a) {
2429   return vgetq_lane_s8(a, 15);
2430 }
2431 
2432 // CHECK-LABEL: test_vgetq_lane_s16
2433 // CHECK: vmov
test_vgetq_lane_s16(int16x8_t a)2434 int16_t test_vgetq_lane_s16(int16x8_t a) {
2435   return vgetq_lane_s16(a, 7);
2436 }
2437 
2438 // CHECK-LABEL: test_vgetq_lane_s32
2439 // CHECK: vmov
test_vgetq_lane_s32(int32x4_t a)2440 int32_t test_vgetq_lane_s32(int32x4_t a) {
2441   return vgetq_lane_s32(a, 3);
2442 }
2443 
2444 // CHECK-LABEL: test_vgetq_lane_p8
2445 // CHECK: vmov
test_vgetq_lane_p8(poly8x16_t a)2446 poly8_t test_vgetq_lane_p8(poly8x16_t a) {
2447   return vgetq_lane_p8(a, 15);
2448 }
2449 
2450 // CHECK-LABEL: test_vgetq_lane_p16
2451 // CHECK: vmov
test_vgetq_lane_p16(poly16x8_t a)2452 poly16_t test_vgetq_lane_p16(poly16x8_t a) {
2453   return vgetq_lane_p16(a, 7);
2454 }
2455 
2456 // CHECK-LABEL: test_vgetq_lane_f32
2457 // CHECK: vmov
test_vgetq_lane_f32(float32x4_t a)2458 float32_t test_vgetq_lane_f32(float32x4_t a) {
2459   return vgetq_lane_f32(a, 3);
2460 }
2461 
2462 // CHECK-LABEL: test_vgetq_lane_f16
2463 // CHECK: vmov
test_vgetq_lane_f16(float16x8_t a)2464 float32_t test_vgetq_lane_f16(float16x8_t a) {
2465   return vgetq_lane_f16(a, 3);
2466 }
2467 
2468 // CHECK-LABEL: test_vget_lane_s64
2469 // The optimizer is able to remove all moves now.
test_vget_lane_s64(int64x1_t a)2470 int64_t test_vget_lane_s64(int64x1_t a) {
2471   return vget_lane_s64(a, 0);
2472 }
2473 
2474 // CHECK-LABEL: test_vget_lane_u64
2475 // The optimizer is able to remove all moves now.
test_vget_lane_u64(uint64x1_t a)2476 uint64_t test_vget_lane_u64(uint64x1_t a) {
2477   return vget_lane_u64(a, 0);
2478 }
2479 
2480 // CHECK-LABEL: test_vgetq_lane_s64
2481 // CHECK: vmov
test_vgetq_lane_s64(int64x2_t a)2482 int64_t test_vgetq_lane_s64(int64x2_t a) {
2483   return vgetq_lane_s64(a, 1);
2484 }
2485 
2486 // CHECK-LABEL: test_vgetq_lane_u64
2487 // CHECK: vmov
test_vgetq_lane_u64(uint64x2_t a)2488 uint64_t test_vgetq_lane_u64(uint64x2_t a) {
2489   return vgetq_lane_u64(a, 1);
2490 }
2491 
2492 
2493 // CHECK-LABEL: test_vget_low_s8
test_vget_low_s8(int8x16_t a)2494 int8x8_t test_vget_low_s8(int8x16_t a) {
2495   return vget_low_s8(a);
2496 }
2497 
2498 // CHECK-LABEL: test_vget_low_s16
test_vget_low_s16(int16x8_t a)2499 int16x4_t test_vget_low_s16(int16x8_t a) {
2500   return vget_low_s16(a);
2501 }
2502 
2503 // CHECK-LABEL: test_vget_low_s32
test_vget_low_s32(int32x4_t a)2504 int32x2_t test_vget_low_s32(int32x4_t a) {
2505   return vget_low_s32(a);
2506 }
2507 
2508 // CHECK-LABEL: test_vget_low_s64
test_vget_low_s64(int64x2_t a)2509 int64x1_t test_vget_low_s64(int64x2_t a) {
2510   return vget_low_s64(a);
2511 }
2512 
2513 // CHECK-LABEL: test_vget_low_f16
test_vget_low_f16(float16x8_t a)2514 float16x4_t test_vget_low_f16(float16x8_t a) {
2515   return vget_low_f16(a);
2516 }
2517 
2518 // CHECK-LABEL: test_vget_low_f32
test_vget_low_f32(float32x4_t a)2519 float32x2_t test_vget_low_f32(float32x4_t a) {
2520   return vget_low_f32(a);
2521 }
2522 
2523 // CHECK-LABEL: test_vget_low_u8
test_vget_low_u8(uint8x16_t a)2524 uint8x8_t test_vget_low_u8(uint8x16_t a) {
2525   return vget_low_u8(a);
2526 }
2527 
2528 // CHECK-LABEL: test_vget_low_u16
test_vget_low_u16(uint16x8_t a)2529 uint16x4_t test_vget_low_u16(uint16x8_t a) {
2530   return vget_low_u16(a);
2531 }
2532 
2533 // CHECK-LABEL: test_vget_low_u32
test_vget_low_u32(uint32x4_t a)2534 uint32x2_t test_vget_low_u32(uint32x4_t a) {
2535   return vget_low_u32(a);
2536 }
2537 
2538 // CHECK-LABEL: test_vget_low_u64
test_vget_low_u64(uint64x2_t a)2539 uint64x1_t test_vget_low_u64(uint64x2_t a) {
2540   return vget_low_u64(a);
2541 }
2542 
2543 // CHECK-LABEL: test_vget_low_p8
test_vget_low_p8(poly8x16_t a)2544 poly8x8_t test_vget_low_p8(poly8x16_t a) {
2545   return vget_low_p8(a);
2546 }
2547 
2548 // CHECK-LABEL: test_vget_low_p16
test_vget_low_p16(poly16x8_t a)2549 poly16x4_t test_vget_low_p16(poly16x8_t a) {
2550   return vget_low_p16(a);
2551 }
2552 
2553 
2554 // CHECK-LABEL: test_vhadd_s8
2555 // CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s8(int8x8_t a,int8x8_t b)2556 int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) {
2557   return vhadd_s8(a, b);
2558 }
2559 
2560 // CHECK-LABEL: test_vhadd_s16
2561 // CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s16(int16x4_t a,int16x4_t b)2562 int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) {
2563   return vhadd_s16(a, b);
2564 }
2565 
2566 // CHECK-LABEL: test_vhadd_s32
2567 // CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s32(int32x2_t a,int32x2_t b)2568 int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) {
2569   return vhadd_s32(a, b);
2570 }
2571 
2572 // CHECK-LABEL: test_vhadd_u8
2573 // CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u8(uint8x8_t a,uint8x8_t b)2574 uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) {
2575   return vhadd_u8(a, b);
2576 }
2577 
2578 // CHECK-LABEL: test_vhadd_u16
2579 // CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u16(uint16x4_t a,uint16x4_t b)2580 uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) {
2581   return vhadd_u16(a, b);
2582 }
2583 
2584 // CHECK-LABEL: test_vhadd_u32
2585 // CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u32(uint32x2_t a,uint32x2_t b)2586 uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) {
2587   return vhadd_u32(a, b);
2588 }
2589 
2590 // CHECK-LABEL: test_vhaddq_s8
2591 // CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s8(int8x16_t a,int8x16_t b)2592 int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) {
2593   return vhaddq_s8(a, b);
2594 }
2595 
2596 // CHECK-LABEL: test_vhaddq_s16
2597 // CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s16(int16x8_t a,int16x8_t b)2598 int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) {
2599   return vhaddq_s16(a, b);
2600 }
2601 
2602 // CHECK-LABEL: test_vhaddq_s32
2603 // CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s32(int32x4_t a,int32x4_t b)2604 int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) {
2605   return vhaddq_s32(a, b);
2606 }
2607 
2608 // CHECK-LABEL: test_vhaddq_u8
2609 // CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u8(uint8x16_t a,uint8x16_t b)2610 uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) {
2611   return vhaddq_u8(a, b);
2612 }
2613 
2614 // CHECK-LABEL: test_vhaddq_u16
2615 // CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u16(uint16x8_t a,uint16x8_t b)2616 uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) {
2617   return vhaddq_u16(a, b);
2618 }
2619 
2620 // CHECK-LABEL: test_vhaddq_u32
2621 // CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u32(uint32x4_t a,uint32x4_t b)2622 uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) {
2623   return vhaddq_u32(a, b);
2624 }
2625 
2626 
2627 // CHECK-LABEL: test_vhsub_s8
2628 // CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s8(int8x8_t a,int8x8_t b)2629 int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) {
2630   return vhsub_s8(a, b);
2631 }
2632 
2633 // CHECK-LABEL: test_vhsub_s16
2634 // CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s16(int16x4_t a,int16x4_t b)2635 int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) {
2636   return vhsub_s16(a, b);
2637 }
2638 
2639 // CHECK-LABEL: test_vhsub_s32
2640 // CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s32(int32x2_t a,int32x2_t b)2641 int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) {
2642   return vhsub_s32(a, b);
2643 }
2644 
2645 // CHECK-LABEL: test_vhsub_u8
2646 // CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u8(uint8x8_t a,uint8x8_t b)2647 uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) {
2648   return vhsub_u8(a, b);
2649 }
2650 
2651 // CHECK-LABEL: test_vhsub_u16
2652 // CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u16(uint16x4_t a,uint16x4_t b)2653 uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) {
2654   return vhsub_u16(a, b);
2655 }
2656 
2657 // CHECK-LABEL: test_vhsub_u32
2658 // CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u32(uint32x2_t a,uint32x2_t b)2659 uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) {
2660   return vhsub_u32(a, b);
2661 }
2662 
2663 // CHECK-LABEL: test_vhsubq_s8
2664 // CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s8(int8x16_t a,int8x16_t b)2665 int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) {
2666   return vhsubq_s8(a, b);
2667 }
2668 
2669 // CHECK-LABEL: test_vhsubq_s16
2670 // CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s16(int16x8_t a,int16x8_t b)2671 int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) {
2672   return vhsubq_s16(a, b);
2673 }
2674 
2675 // CHECK-LABEL: test_vhsubq_s32
2676 // CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s32(int32x4_t a,int32x4_t b)2677 int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) {
2678   return vhsubq_s32(a, b);
2679 }
2680 
2681 // CHECK-LABEL: test_vhsubq_u8
2682 // CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u8(uint8x16_t a,uint8x16_t b)2683 uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) {
2684   return vhsubq_u8(a, b);
2685 }
2686 
2687 // CHECK-LABEL: test_vhsubq_u16
2688 // CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u16(uint16x8_t a,uint16x8_t b)2689 uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) {
2690   return vhsubq_u16(a, b);
2691 }
2692 
2693 // CHECK-LABEL: test_vhsubq_u32
2694 // CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u32(uint32x4_t a,uint32x4_t b)2695 uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) {
2696   return vhsubq_u32(a, b);
2697 }
2698 
2699 
2700 // CHECK-LABEL: test_vld1q_u8
2701 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u8(uint8_t const * a)2702 uint8x16_t test_vld1q_u8(uint8_t const * a) {
2703   return vld1q_u8(a);
2704 }
2705 
2706 // CHECK-LABEL: test_vld1q_u16
2707 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u16(uint16_t const * a)2708 uint16x8_t test_vld1q_u16(uint16_t const * a) {
2709   return vld1q_u16(a);
2710 }
2711 
2712 // CHECK-LABEL: test_vld1q_u32
2713 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u32(uint32_t const * a)2714 uint32x4_t test_vld1q_u32(uint32_t const * a) {
2715   return vld1q_u32(a);
2716 }
2717 
2718 // CHECK-LABEL: test_vld1q_u64
2719 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_u64(uint64_t const * a)2720 uint64x2_t test_vld1q_u64(uint64_t const * a) {
2721   return vld1q_u64(a);
2722 }
2723 
2724 // CHECK-LABEL: test_vld1q_s8
2725 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s8(int8_t const * a)2726 int8x16_t test_vld1q_s8(int8_t const * a) {
2727   return vld1q_s8(a);
2728 }
2729 
2730 // CHECK-LABEL: test_vld1q_s16
2731 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s16(int16_t const * a)2732 int16x8_t test_vld1q_s16(int16_t const * a) {
2733   return vld1q_s16(a);
2734 }
2735 
2736 // CHECK-LABEL: test_vld1q_s32
2737 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s32(int32_t const * a)2738 int32x4_t test_vld1q_s32(int32_t const * a) {
2739   return vld1q_s32(a);
2740 }
2741 
2742 // CHECK-LABEL: test_vld1q_s64
2743 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_s64(int64_t const * a)2744 int64x2_t test_vld1q_s64(int64_t const * a) {
2745   return vld1q_s64(a);
2746 }
2747 
2748 // CHECK-LABEL: test_vld1q_f16
2749 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f16(float16_t const * a)2750 float16x8_t test_vld1q_f16(float16_t const * a) {
2751   return vld1q_f16(a);
2752 }
2753 
2754 // CHECK-LABEL: test_vld1q_f32
2755 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f32(float32_t const * a)2756 float32x4_t test_vld1q_f32(float32_t const * a) {
2757   return vld1q_f32(a);
2758 }
2759 
2760 // CHECK-LABEL: test_vld1q_p8
2761 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p8(poly8_t const * a)2762 poly8x16_t test_vld1q_p8(poly8_t const * a) {
2763   return vld1q_p8(a);
2764 }
2765 
2766 // CHECK-LABEL: test_vld1q_p16
2767 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p16(poly16_t const * a)2768 poly16x8_t test_vld1q_p16(poly16_t const * a) {
2769   return vld1q_p16(a);
2770 }
2771 
2772 // CHECK-LABEL: test_vld1_u8
2773 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u8(uint8_t const * a)2774 uint8x8_t test_vld1_u8(uint8_t const * a) {
2775   return vld1_u8(a);
2776 }
2777 
2778 // CHECK-LABEL: test_vld1_u16
2779 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u16(uint16_t const * a)2780 uint16x4_t test_vld1_u16(uint16_t const * a) {
2781   return vld1_u16(a);
2782 }
2783 
2784 // CHECK-LABEL: test_vld1_u32
2785 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u32(uint32_t const * a)2786 uint32x2_t test_vld1_u32(uint32_t const * a) {
2787   return vld1_u32(a);
2788 }
2789 
2790 // CHECK-LABEL: test_vld1_u64
2791 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_u64(uint64_t const * a)2792 uint64x1_t test_vld1_u64(uint64_t const * a) {
2793   return vld1_u64(a);
2794 }
2795 
2796 // CHECK-LABEL: test_vld1_s8
2797 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s8(int8_t const * a)2798 int8x8_t test_vld1_s8(int8_t const * a) {
2799   return vld1_s8(a);
2800 }
2801 
2802 // CHECK-LABEL: test_vld1_s16
2803 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s16(int16_t const * a)2804 int16x4_t test_vld1_s16(int16_t const * a) {
2805   return vld1_s16(a);
2806 }
2807 
2808 // CHECK-LABEL: test_vld1_s32
2809 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s32(int32_t const * a)2810 int32x2_t test_vld1_s32(int32_t const * a) {
2811   return vld1_s32(a);
2812 }
2813 
2814 // CHECK-LABEL: test_vld1_s64
2815 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_s64(int64_t const * a)2816 int64x1_t test_vld1_s64(int64_t const * a) {
2817   return vld1_s64(a);
2818 }
2819 
2820 // CHECK-LABEL: test_vld1_f16
2821 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f16(float16_t const * a)2822 float16x4_t test_vld1_f16(float16_t const * a) {
2823   return vld1_f16(a);
2824 }
2825 
2826 // CHECK-LABEL: test_vld1_f32
2827 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f32(float32_t const * a)2828 float32x2_t test_vld1_f32(float32_t const * a) {
2829   return vld1_f32(a);
2830 }
2831 
2832 // CHECK-LABEL: test_vld1_p8
2833 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p8(poly8_t const * a)2834 poly8x8_t test_vld1_p8(poly8_t const * a) {
2835   return vld1_p8(a);
2836 }
2837 
2838 // CHECK-LABEL: test_vld1_p16
2839 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p16(poly16_t const * a)2840 poly16x4_t test_vld1_p16(poly16_t const * a) {
2841   return vld1_p16(a);
2842 }
2843 
2844 
2845 // CHECK-LABEL: test_vld1q_dup_u8
2846 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_u8(uint8_t const * a)2847 uint8x16_t test_vld1q_dup_u8(uint8_t const * a) {
2848   return vld1q_dup_u8(a);
2849 }
2850 
2851 // CHECK-LABEL: test_vld1q_dup_u16
2852 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_u16(uint16_t const * a)2853 uint16x8_t test_vld1q_dup_u16(uint16_t const * a) {
2854   return vld1q_dup_u16(a);
2855 }
2856 
2857 // CHECK-LABEL: test_vld1q_dup_u32
2858 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_u32(uint32_t const * a)2859 uint32x4_t test_vld1q_dup_u32(uint32_t const * a) {
2860   return vld1q_dup_u32(a);
2861 }
2862 
2863 // CHECK-LABEL: test_vld1q_dup_u64
2864 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_u64(uint64_t const * a)2865 uint64x2_t test_vld1q_dup_u64(uint64_t const * a) {
2866   return vld1q_dup_u64(a);
2867 }
2868 
2869 // CHECK-LABEL: test_vld1q_dup_s8
2870 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_s8(int8_t const * a)2871 int8x16_t test_vld1q_dup_s8(int8_t const * a) {
2872   return vld1q_dup_s8(a);
2873 }
2874 
2875 // CHECK-LABEL: test_vld1q_dup_s16
2876 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_s16(int16_t const * a)2877 int16x8_t test_vld1q_dup_s16(int16_t const * a) {
2878   return vld1q_dup_s16(a);
2879 }
2880 
2881 // CHECK-LABEL: test_vld1q_dup_s32
2882 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_s32(int32_t const * a)2883 int32x4_t test_vld1q_dup_s32(int32_t const * a) {
2884   return vld1q_dup_s32(a);
2885 }
2886 
2887 // CHECK-LABEL: test_vld1q_dup_s64
2888 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_s64(int64_t const * a)2889 int64x2_t test_vld1q_dup_s64(int64_t const * a) {
2890   return vld1q_dup_s64(a);
2891 }
2892 
2893 // CHECK-LABEL: test_vld1q_dup_f16
2894 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_f16(float16_t const * a)2895 float16x8_t test_vld1q_dup_f16(float16_t const * a) {
2896   return vld1q_dup_f16(a);
2897 }
2898 
2899 // CHECK-LABEL: test_vld1q_dup_f32
2900 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_f32(float32_t const * a)2901 float32x4_t test_vld1q_dup_f32(float32_t const * a) {
2902   return vld1q_dup_f32(a);
2903 }
2904 
2905 // CHECK-LABEL: test_vld1q_dup_p8
2906 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_p8(poly8_t const * a)2907 poly8x16_t test_vld1q_dup_p8(poly8_t const * a) {
2908   return vld1q_dup_p8(a);
2909 }
2910 
2911 // CHECK-LABEL: test_vld1q_dup_p16
2912 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_p16(poly16_t const * a)2913 poly16x8_t test_vld1q_dup_p16(poly16_t const * a) {
2914   return vld1q_dup_p16(a);
2915 }
2916 
2917 // CHECK-LABEL: test_vld1_dup_u8
2918 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_u8(uint8_t const * a)2919 uint8x8_t test_vld1_dup_u8(uint8_t const * a) {
2920   return vld1_dup_u8(a);
2921 }
2922 
2923 // CHECK-LABEL: test_vld1_dup_u16
2924 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_u16(uint16_t const * a)2925 uint16x4_t test_vld1_dup_u16(uint16_t const * a) {
2926   return vld1_dup_u16(a);
2927 }
2928 
2929 // CHECK-LABEL: test_vld1_dup_u32
2930 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_u32(uint32_t const * a)2931 uint32x2_t test_vld1_dup_u32(uint32_t const * a) {
2932   return vld1_dup_u32(a);
2933 }
2934 
2935 // CHECK-LABEL: test_vld1_dup_u64
2936 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_u64(uint64_t const * a)2937 uint64x1_t test_vld1_dup_u64(uint64_t const * a) {
2938   return vld1_dup_u64(a);
2939 }
2940 
2941 // CHECK-LABEL: test_vld1_dup_s8
2942 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_s8(int8_t const * a)2943 int8x8_t test_vld1_dup_s8(int8_t const * a) {
2944   return vld1_dup_s8(a);
2945 }
2946 
2947 // CHECK-LABEL: test_vld1_dup_s16
2948 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_s16(int16_t const * a)2949 int16x4_t test_vld1_dup_s16(int16_t const * a) {
2950   return vld1_dup_s16(a);
2951 }
2952 
2953 // CHECK-LABEL: test_vld1_dup_s32
2954 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_s32(int32_t const * a)2955 int32x2_t test_vld1_dup_s32(int32_t const * a) {
2956   return vld1_dup_s32(a);
2957 }
2958 
2959 // CHECK-LABEL: test_vld1_dup_s64
2960 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_s64(int64_t const * a)2961 int64x1_t test_vld1_dup_s64(int64_t const * a) {
2962   return vld1_dup_s64(a);
2963 }
2964 
2965 // CHECK-LABEL: test_vld1_dup_f16
2966 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_f16(float16_t const * a)2967 float16x4_t test_vld1_dup_f16(float16_t const * a) {
2968   return vld1_dup_f16(a);
2969 }
2970 
2971 // CHECK-LABEL: test_vld1_dup_f32
2972 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_f32(float32_t const * a)2973 float32x2_t test_vld1_dup_f32(float32_t const * a) {
2974   return vld1_dup_f32(a);
2975 }
2976 
2977 // CHECK-LABEL: test_vld1_dup_p8
2978 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_p8(poly8_t const * a)2979 poly8x8_t test_vld1_dup_p8(poly8_t const * a) {
2980   return vld1_dup_p8(a);
2981 }
2982 
2983 // CHECK-LABEL: test_vld1_dup_p16
2984 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_p16(poly16_t const * a)2985 poly16x4_t test_vld1_dup_p16(poly16_t const * a) {
2986   return vld1_dup_p16(a);
2987 }
2988 
2989 
2990 // CHECK-LABEL: test_vld1q_lane_u8
2991 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_u8(uint8_t const * a,uint8x16_t b)2992 uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) {
2993   return vld1q_lane_u8(a, b, 15);
2994 }
2995 
2996 // CHECK-LABEL: test_vld1q_lane_u16
2997 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_u16(uint16_t const * a,uint16x8_t b)2998 uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) {
2999   return vld1q_lane_u16(a, b, 7);
3000 }
3001 
3002 // CHECK-LABEL: test_vld1q_lane_u32
3003 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_u32(uint32_t const * a,uint32x4_t b)3004 uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) {
3005   return vld1q_lane_u32(a, b, 3);
3006 }
3007 
3008 // CHECK-LABEL: test_vld1q_lane_u64
3009 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_u64(uint64_t const * a,uint64x2_t b)3010 uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) {
3011   return vld1q_lane_u64(a, b, 1);
3012 }
3013 
3014 // CHECK-LABEL: test_vld1q_lane_s8
3015 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_s8(int8_t const * a,int8x16_t b)3016 int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) {
3017   return vld1q_lane_s8(a, b, 15);
3018 }
3019 
3020 // CHECK-LABEL: test_vld1q_lane_s16
3021 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_s16(int16_t const * a,int16x8_t b)3022 int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) {
3023   return vld1q_lane_s16(a, b, 7);
3024 }
3025 
3026 // CHECK-LABEL: test_vld1q_lane_s32
3027 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_s32(int32_t const * a,int32x4_t b)3028 int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) {
3029   return vld1q_lane_s32(a, b, 3);
3030 }
3031 
3032 // CHECK-LABEL: test_vld1q_lane_s64
3033 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_s64(int64_t const * a,int64x2_t b)3034 int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) {
3035   return vld1q_lane_s64(a, b, 1);
3036 }
3037 
3038 // CHECK-LABEL: test_vld1q_lane_f16
3039 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_f16(float16_t const * a,float16x8_t b)3040 float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) {
3041   return vld1q_lane_f16(a, b, 7);
3042 }
3043 
3044 // CHECK-LABEL: test_vld1q_lane_f32
3045 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_f32(float32_t const * a,float32x4_t b)3046 float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) {
3047   return vld1q_lane_f32(a, b, 3);
3048 }
3049 
3050 // CHECK-LABEL: test_vld1q_lane_p8
3051 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_p8(poly8_t const * a,poly8x16_t b)3052 poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) {
3053   return vld1q_lane_p8(a, b, 15);
3054 }
3055 
3056 // CHECK-LABEL: test_vld1q_lane_p16
3057 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_p16(poly16_t const * a,poly16x8_t b)3058 poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) {
3059   return vld1q_lane_p16(a, b, 7);
3060 }
3061 
3062 // CHECK-LABEL: test_vld1_lane_u8
3063 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_u8(uint8_t const * a,uint8x8_t b)3064 uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) {
3065   return vld1_lane_u8(a, b, 7);
3066 }
3067 
3068 // CHECK-LABEL: test_vld1_lane_u16
3069 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_u16(uint16_t const * a,uint16x4_t b)3070 uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) {
3071   return vld1_lane_u16(a, b, 3);
3072 }
3073 
3074 // CHECK-LABEL: test_vld1_lane_u32
3075 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_u32(uint32_t const * a,uint32x2_t b)3076 uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) {
3077   return vld1_lane_u32(a, b, 1);
3078 }
3079 
3080 // CHECK-LABEL: test_vld1_lane_u64
3081 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_u64(uint64_t const * a,uint64x1_t b)3082 uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) {
3083   return vld1_lane_u64(a, b, 0);
3084 }
3085 
3086 // CHECK-LABEL: test_vld1_lane_s8
3087 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_s8(int8_t const * a,int8x8_t b)3088 int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) {
3089   return vld1_lane_s8(a, b, 7);
3090 }
3091 
3092 // CHECK-LABEL: test_vld1_lane_s16
3093 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_s16(int16_t const * a,int16x4_t b)3094 int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) {
3095   return vld1_lane_s16(a, b, 3);
3096 }
3097 
3098 // CHECK-LABEL: test_vld1_lane_s32
3099 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_s32(int32_t const * a,int32x2_t b)3100 int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) {
3101   return vld1_lane_s32(a, b, 1);
3102 }
3103 
3104 // CHECK-LABEL: test_vld1_lane_s64
3105 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_s64(int64_t const * a,int64x1_t b)3106 int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) {
3107   return vld1_lane_s64(a, b, 0);
3108 }
3109 
3110 // CHECK-LABEL: test_vld1_lane_f16
3111 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_f16(float16_t const * a,float16x4_t b)3112 float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) {
3113   return vld1_lane_f16(a, b, 3);
3114 }
3115 
3116 // CHECK-LABEL: test_vld1_lane_f32
3117 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_f32(float32_t const * a,float32x2_t b)3118 float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) {
3119   return vld1_lane_f32(a, b, 1);
3120 }
3121 
3122 // CHECK-LABEL: test_vld1_lane_p8
3123 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_p8(poly8_t const * a,poly8x8_t b)3124 poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) {
3125   return vld1_lane_p8(a, b, 7);
3126 }
3127 
3128 // CHECK-LABEL: test_vld1_lane_p16
3129 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_p16(poly16_t const * a,poly16x4_t b)3130 poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) {
3131   return vld1_lane_p16(a, b, 3);
3132 }
3133 
3134 
3135 // CHECK-LABEL: test_vld2q_u8
3136 // 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)3137 uint8x16x2_t test_vld2q_u8(uint8_t const * a) {
3138   return vld2q_u8(a);
3139 }
3140 
3141 // CHECK-LABEL: test_vld2q_u16
3142 // 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)3143 uint16x8x2_t test_vld2q_u16(uint16_t const * a) {
3144   return vld2q_u16(a);
3145 }
3146 
3147 // CHECK-LABEL: test_vld2q_u32
3148 // 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)3149 uint32x4x2_t test_vld2q_u32(uint32_t const * a) {
3150   return vld2q_u32(a);
3151 }
3152 
3153 // CHECK-LABEL: test_vld2q_s8
3154 // 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)3155 int8x16x2_t test_vld2q_s8(int8_t const * a) {
3156   return vld2q_s8(a);
3157 }
3158 
3159 // CHECK-LABEL: test_vld2q_s16
3160 // 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)3161 int16x8x2_t test_vld2q_s16(int16_t const * a) {
3162   return vld2q_s16(a);
3163 }
3164 
3165 // CHECK-LABEL: test_vld2q_s32
3166 // 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)3167 int32x4x2_t test_vld2q_s32(int32_t const * a) {
3168   return vld2q_s32(a);
3169 }
3170 
3171 // CHECK-LABEL: test_vld2q_f16
3172 // 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)3173 float16x8x2_t test_vld2q_f16(float16_t const * a) {
3174   return vld2q_f16(a);
3175 }
3176 
3177 // CHECK-LABEL: test_vld2q_f32
3178 // 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)3179 float32x4x2_t test_vld2q_f32(float32_t const * a) {
3180   return vld2q_f32(a);
3181 }
3182 
3183 // CHECK-LABEL: test_vld2q_p8
3184 // 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)3185 poly8x16x2_t test_vld2q_p8(poly8_t const * a) {
3186   return vld2q_p8(a);
3187 }
3188 
3189 // CHECK-LABEL: test_vld2q_p16
3190 // 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)3191 poly16x8x2_t test_vld2q_p16(poly16_t const * a) {
3192   return vld2q_p16(a);
3193 }
3194 
3195 // CHECK-LABEL: test_vld2_u8
3196 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u8(uint8_t const * a)3197 uint8x8x2_t test_vld2_u8(uint8_t const * a) {
3198   return vld2_u8(a);
3199 }
3200 
3201 // CHECK-LABEL: test_vld2_u16
3202 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u16(uint16_t const * a)3203 uint16x4x2_t test_vld2_u16(uint16_t const * a) {
3204   return vld2_u16(a);
3205 }
3206 
3207 // CHECK-LABEL: test_vld2_u32
3208 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u32(uint32_t const * a)3209 uint32x2x2_t test_vld2_u32(uint32_t const * a) {
3210   return vld2_u32(a);
3211 }
3212 
3213 // CHECK-LABEL: test_vld2_u64
3214 // CHECK: vld1.64
test_vld2_u64(uint64_t const * a)3215 uint64x1x2_t test_vld2_u64(uint64_t const * a) {
3216   return vld2_u64(a);
3217 }
3218 
3219 // CHECK-LABEL: test_vld2_s8
3220 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s8(int8_t const * a)3221 int8x8x2_t test_vld2_s8(int8_t const * a) {
3222   return vld2_s8(a);
3223 }
3224 
3225 // CHECK-LABEL: test_vld2_s16
3226 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s16(int16_t const * a)3227 int16x4x2_t test_vld2_s16(int16_t const * a) {
3228   return vld2_s16(a);
3229 }
3230 
3231 // CHECK-LABEL: test_vld2_s32
3232 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s32(int32_t const * a)3233 int32x2x2_t test_vld2_s32(int32_t const * a) {
3234   return vld2_s32(a);
3235 }
3236 
3237 // CHECK-LABEL: test_vld2_s64
3238 // CHECK: vld1.64
test_vld2_s64(int64_t const * a)3239 int64x1x2_t test_vld2_s64(int64_t const * a) {
3240   return vld2_s64(a);
3241 }
3242 
3243 // CHECK-LABEL: test_vld2_f16
3244 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f16(float16_t const * a)3245 float16x4x2_t test_vld2_f16(float16_t const * a) {
3246   return vld2_f16(a);
3247 }
3248 
3249 // CHECK-LABEL: test_vld2_f32
3250 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f32(float32_t const * a)3251 float32x2x2_t test_vld2_f32(float32_t const * a) {
3252   return vld2_f32(a);
3253 }
3254 
3255 // CHECK-LABEL: test_vld2_p8
3256 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p8(poly8_t const * a)3257 poly8x8x2_t test_vld2_p8(poly8_t const * a) {
3258   return vld2_p8(a);
3259 }
3260 
3261 // CHECK-LABEL: test_vld2_p16
3262 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p16(poly16_t const * a)3263 poly16x4x2_t test_vld2_p16(poly16_t const * a) {
3264   return vld2_p16(a);
3265 }
3266 
3267 
3268 // CHECK-LABEL: test_vld2_dup_u8
3269 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u8(uint8_t const * a)3270 uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) {
3271   return vld2_dup_u8(a);
3272 }
3273 
3274 // CHECK-LABEL: test_vld2_dup_u16
3275 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u16(uint16_t const * a)3276 uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) {
3277   return vld2_dup_u16(a);
3278 }
3279 
3280 // CHECK-LABEL: test_vld2_dup_u32
3281 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u32(uint32_t const * a)3282 uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) {
3283   return vld2_dup_u32(a);
3284 }
3285 
3286 // CHECK-LABEL: test_vld2_dup_u64
3287 // CHECK: vld1.64
test_vld2_dup_u64(uint64_t const * a)3288 uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) {
3289   return vld2_dup_u64(a);
3290 }
3291 
3292 // CHECK-LABEL: test_vld2_dup_s8
3293 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s8(int8_t const * a)3294 int8x8x2_t test_vld2_dup_s8(int8_t const * a) {
3295   return vld2_dup_s8(a);
3296 }
3297 
3298 // CHECK-LABEL: test_vld2_dup_s16
3299 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s16(int16_t const * a)3300 int16x4x2_t test_vld2_dup_s16(int16_t const * a) {
3301   return vld2_dup_s16(a);
3302 }
3303 
3304 // CHECK-LABEL: test_vld2_dup_s32
3305 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s32(int32_t const * a)3306 int32x2x2_t test_vld2_dup_s32(int32_t const * a) {
3307   return vld2_dup_s32(a);
3308 }
3309 
3310 // CHECK-LABEL: test_vld2_dup_s64
3311 // CHECK: vld1.64
test_vld2_dup_s64(int64_t const * a)3312 int64x1x2_t test_vld2_dup_s64(int64_t const * a) {
3313   return vld2_dup_s64(a);
3314 }
3315 
3316 // CHECK-LABEL: test_vld2_dup_f16
3317 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f16(float16_t const * a)3318 float16x4x2_t test_vld2_dup_f16(float16_t const * a) {
3319   return vld2_dup_f16(a);
3320 }
3321 
3322 // CHECK-LABEL: test_vld2_dup_f32
3323 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f32(float32_t const * a)3324 float32x2x2_t test_vld2_dup_f32(float32_t const * a) {
3325   return vld2_dup_f32(a);
3326 }
3327 
3328 // CHECK-LABEL: test_vld2_dup_p8
3329 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p8(poly8_t const * a)3330 poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) {
3331   return vld2_dup_p8(a);
3332 }
3333 
3334 // CHECK-LABEL: test_vld2_dup_p16
3335 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p16(poly16_t const * a)3336 poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) {
3337   return vld2_dup_p16(a);
3338 }
3339 
3340 
3341 // CHECK-LABEL: test_vld2q_lane_u16
3342 // 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)3343 uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) {
3344   return vld2q_lane_u16(a, b, 7);
3345 }
3346 
3347 // CHECK-LABEL: test_vld2q_lane_u32
3348 // 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)3349 uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) {
3350   return vld2q_lane_u32(a, b, 3);
3351 }
3352 
3353 // CHECK-LABEL: test_vld2q_lane_s16
3354 // 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)3355 int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) {
3356   return vld2q_lane_s16(a, b, 7);
3357 }
3358 
3359 // CHECK-LABEL: test_vld2q_lane_s32
3360 // 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)3361 int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) {
3362   return vld2q_lane_s32(a, b, 3);
3363 }
3364 
3365 // CHECK-LABEL: test_vld2q_lane_f16
3366 // 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)3367 float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) {
3368   return vld2q_lane_f16(a, b, 7);
3369 }
3370 
3371 // CHECK-LABEL: test_vld2q_lane_f32
3372 // 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)3373 float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) {
3374   return vld2q_lane_f32(a, b, 3);
3375 }
3376 
3377 // CHECK-LABEL: test_vld2q_lane_p16
3378 // 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)3379 poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) {
3380   return vld2q_lane_p16(a, b, 7);
3381 }
3382 
3383 // CHECK-LABEL: test_vld2_lane_u8
3384 // 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)3385 uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) {
3386   return vld2_lane_u8(a, b, 7);
3387 }
3388 
3389 // CHECK-LABEL: test_vld2_lane_u16
3390 // 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)3391 uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) {
3392   return vld2_lane_u16(a, b, 3);
3393 }
3394 
3395 // CHECK-LABEL: test_vld2_lane_u32
3396 // 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)3397 uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) {
3398   return vld2_lane_u32(a, b, 1);
3399 }
3400 
3401 // CHECK-LABEL: test_vld2_lane_s8
3402 // 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)3403 int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) {
3404   return vld2_lane_s8(a, b, 7);
3405 }
3406 
3407 // CHECK-LABEL: test_vld2_lane_s16
3408 // 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)3409 int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) {
3410   return vld2_lane_s16(a, b, 3);
3411 }
3412 
3413 // CHECK-LABEL: test_vld2_lane_s32
3414 // 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)3415 int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) {
3416   return vld2_lane_s32(a, b, 1);
3417 }
3418 
3419 // CHECK-LABEL: test_vld2_lane_f16
3420 // 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)3421 float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) {
3422   return vld2_lane_f16(a, b, 3);
3423 }
3424 
3425 // CHECK-LABEL: test_vld2_lane_f32
3426 // 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)3427 float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) {
3428   return vld2_lane_f32(a, b, 1);
3429 }
3430 
3431 // CHECK-LABEL: test_vld2_lane_p8
3432 // 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)3433 poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) {
3434   return vld2_lane_p8(a, b, 7);
3435 }
3436 
3437 // CHECK-LABEL: test_vld2_lane_p16
3438 // 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)3439 poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) {
3440   return vld2_lane_p16(a, b, 3);
3441 }
3442 
3443 
3444 // CHECK-LABEL: test_vld3q_u8
3445 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u8(uint8_t const * a)3446 uint8x16x3_t test_vld3q_u8(uint8_t const * a) {
3447   return vld3q_u8(a);
3448 }
3449 
3450 // CHECK-LABEL: test_vld3q_u16
3451 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u16(uint16_t const * a)3452 uint16x8x3_t test_vld3q_u16(uint16_t const * a) {
3453   return vld3q_u16(a);
3454 }
3455 
3456 // CHECK-LABEL: test_vld3q_u32
3457 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u32(uint32_t const * a)3458 uint32x4x3_t test_vld3q_u32(uint32_t const * a) {
3459   return vld3q_u32(a);
3460 }
3461 
3462 // CHECK-LABEL: test_vld3q_s8
3463 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s8(int8_t const * a)3464 int8x16x3_t test_vld3q_s8(int8_t const * a) {
3465   return vld3q_s8(a);
3466 }
3467 
3468 // CHECK-LABEL: test_vld3q_s16
3469 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s16(int16_t const * a)3470 int16x8x3_t test_vld3q_s16(int16_t const * a) {
3471   return vld3q_s16(a);
3472 }
3473 
3474 // CHECK-LABEL: test_vld3q_s32
3475 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s32(int32_t const * a)3476 int32x4x3_t test_vld3q_s32(int32_t const * a) {
3477   return vld3q_s32(a);
3478 }
3479 
3480 // CHECK-LABEL: test_vld3q_f16
3481 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f16(float16_t const * a)3482 float16x8x3_t test_vld3q_f16(float16_t const * a) {
3483   return vld3q_f16(a);
3484 }
3485 
3486 // CHECK-LABEL: test_vld3q_f32
3487 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f32(float32_t const * a)3488 float32x4x3_t test_vld3q_f32(float32_t const * a) {
3489   return vld3q_f32(a);
3490 }
3491 
3492 // CHECK-LABEL: test_vld3q_p8
3493 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p8(poly8_t const * a)3494 poly8x16x3_t test_vld3q_p8(poly8_t const * a) {
3495   return vld3q_p8(a);
3496 }
3497 
3498 // CHECK-LABEL: test_vld3q_p16
3499 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p16(poly16_t const * a)3500 poly16x8x3_t test_vld3q_p16(poly16_t const * a) {
3501   return vld3q_p16(a);
3502 }
3503 
3504 // CHECK-LABEL: test_vld3_u8
3505 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u8(uint8_t const * a)3506 uint8x8x3_t test_vld3_u8(uint8_t const * a) {
3507   return vld3_u8(a);
3508 }
3509 
3510 // CHECK-LABEL: test_vld3_u16
3511 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u16(uint16_t const * a)3512 uint16x4x3_t test_vld3_u16(uint16_t const * a) {
3513   return vld3_u16(a);
3514 }
3515 
3516 // CHECK-LABEL: test_vld3_u32
3517 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u32(uint32_t const * a)3518 uint32x2x3_t test_vld3_u32(uint32_t const * a) {
3519   return vld3_u32(a);
3520 }
3521 
3522 // CHECK-LABEL: test_vld3_u64
3523 // CHECK: vld1.64
test_vld3_u64(uint64_t const * a)3524 uint64x1x3_t test_vld3_u64(uint64_t const * a) {
3525   return vld3_u64(a);
3526 }
3527 
3528 // CHECK-LABEL: test_vld3_s8
3529 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s8(int8_t const * a)3530 int8x8x3_t test_vld3_s8(int8_t const * a) {
3531   return vld3_s8(a);
3532 }
3533 
3534 // CHECK-LABEL: test_vld3_s16
3535 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s16(int16_t const * a)3536 int16x4x3_t test_vld3_s16(int16_t const * a) {
3537   return vld3_s16(a);
3538 }
3539 
3540 // CHECK-LABEL: test_vld3_s32
3541 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s32(int32_t const * a)3542 int32x2x3_t test_vld3_s32(int32_t const * a) {
3543   return vld3_s32(a);
3544 }
3545 
3546 // CHECK-LABEL: test_vld3_s64
3547 // CHECK: vld1.64
test_vld3_s64(int64_t const * a)3548 int64x1x3_t test_vld3_s64(int64_t const * a) {
3549   return vld3_s64(a);
3550 }
3551 
3552 // CHECK-LABEL: test_vld3_f16
3553 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f16(float16_t const * a)3554 float16x4x3_t test_vld3_f16(float16_t const * a) {
3555   return vld3_f16(a);
3556 }
3557 
3558 // CHECK-LABEL: test_vld3_f32
3559 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f32(float32_t const * a)3560 float32x2x3_t test_vld3_f32(float32_t const * a) {
3561   return vld3_f32(a);
3562 }
3563 
3564 // CHECK-LABEL: test_vld3_p8
3565 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p8(poly8_t const * a)3566 poly8x8x3_t test_vld3_p8(poly8_t const * a) {
3567   return vld3_p8(a);
3568 }
3569 
3570 // CHECK-LABEL: test_vld3_p16
3571 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p16(poly16_t const * a)3572 poly16x4x3_t test_vld3_p16(poly16_t const * a) {
3573   return vld3_p16(a);
3574 }
3575 
3576 
3577 // CHECK-LABEL: test_vld3_dup_u8
3578 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u8(uint8_t const * a)3579 uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) {
3580   return vld3_dup_u8(a);
3581 }
3582 
3583 // CHECK-LABEL: test_vld3_dup_u16
3584 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u16(uint16_t const * a)3585 uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) {
3586   return vld3_dup_u16(a);
3587 }
3588 
3589 // CHECK-LABEL: test_vld3_dup_u32
3590 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u32(uint32_t const * a)3591 uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) {
3592   return vld3_dup_u32(a);
3593 }
3594 
3595 // CHECK-LABEL: test_vld3_dup_u64
3596 // CHECK: vld1.64
test_vld3_dup_u64(uint64_t const * a)3597 uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) {
3598   return vld3_dup_u64(a);
3599 }
3600 
3601 // CHECK-LABEL: test_vld3_dup_s8
3602 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s8(int8_t const * a)3603 int8x8x3_t test_vld3_dup_s8(int8_t const * a) {
3604   return vld3_dup_s8(a);
3605 }
3606 
3607 // CHECK-LABEL: test_vld3_dup_s16
3608 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s16(int16_t const * a)3609 int16x4x3_t test_vld3_dup_s16(int16_t const * a) {
3610   return vld3_dup_s16(a);
3611 }
3612 
3613 // CHECK-LABEL: test_vld3_dup_s32
3614 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s32(int32_t const * a)3615 int32x2x3_t test_vld3_dup_s32(int32_t const * a) {
3616   return vld3_dup_s32(a);
3617 }
3618 
3619 // CHECK-LABEL: test_vld3_dup_s64
3620 // CHECK: vld1.64
test_vld3_dup_s64(int64_t const * a)3621 int64x1x3_t test_vld3_dup_s64(int64_t const * a) {
3622   return vld3_dup_s64(a);
3623 }
3624 
3625 // CHECK-LABEL: test_vld3_dup_f16
3626 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f16(float16_t const * a)3627 float16x4x3_t test_vld3_dup_f16(float16_t const * a) {
3628   return vld3_dup_f16(a);
3629 }
3630 
3631 // CHECK-LABEL: test_vld3_dup_f32
3632 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f32(float32_t const * a)3633 float32x2x3_t test_vld3_dup_f32(float32_t const * a) {
3634   return vld3_dup_f32(a);
3635 }
3636 
3637 // CHECK-LABEL: test_vld3_dup_p8
3638 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p8(poly8_t const * a)3639 poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) {
3640   return vld3_dup_p8(a);
3641 }
3642 
3643 // CHECK-LABEL: test_vld3_dup_p16
3644 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p16(poly16_t const * a)3645 poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) {
3646   return vld3_dup_p16(a);
3647 }
3648 
3649 
3650 // CHECK-LABEL: test_vld3q_lane_u16
3651 // 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)3652 uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) {
3653   return vld3q_lane_u16(a, b, 7);
3654 }
3655 
3656 // CHECK-LABEL: test_vld3q_lane_u32
3657 // 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)3658 uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) {
3659   return vld3q_lane_u32(a, b, 3);
3660 }
3661 
3662 // CHECK-LABEL: test_vld3q_lane_s16
3663 // 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)3664 int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) {
3665   return vld3q_lane_s16(a, b, 7);
3666 }
3667 
3668 // CHECK-LABEL: test_vld3q_lane_s32
3669 // 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)3670 int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) {
3671   return vld3q_lane_s32(a, b, 3);
3672 }
3673 
3674 // CHECK-LABEL: test_vld3q_lane_f16
3675 // 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)3676 float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) {
3677   return vld3q_lane_f16(a, b, 7);
3678 }
3679 
3680 // CHECK-LABEL: test_vld3q_lane_f32
3681 // 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)3682 float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) {
3683   return vld3q_lane_f32(a, b, 3);
3684 }
3685 
3686 // CHECK-LABEL: test_vld3q_lane_p16
3687 // 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)3688 poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) {
3689   return vld3q_lane_p16(a, b, 7);
3690 }
3691 
3692 // CHECK-LABEL: test_vld3_lane_u8
3693 // 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)3694 uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) {
3695   return vld3_lane_u8(a, b, 7);
3696 }
3697 
3698 // CHECK-LABEL: test_vld3_lane_u16
3699 // 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)3700 uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) {
3701   return vld3_lane_u16(a, b, 3);
3702 }
3703 
3704 // CHECK-LABEL: test_vld3_lane_u32
3705 // 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)3706 uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) {
3707   return vld3_lane_u32(a, b, 1);
3708 }
3709 
3710 // CHECK-LABEL: test_vld3_lane_s8
3711 // 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)3712 int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) {
3713   return vld3_lane_s8(a, b, 7);
3714 }
3715 
3716 // CHECK-LABEL: test_vld3_lane_s16
3717 // 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)3718 int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) {
3719   return vld3_lane_s16(a, b, 3);
3720 }
3721 
3722 // CHECK-LABEL: test_vld3_lane_s32
3723 // 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)3724 int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) {
3725   return vld3_lane_s32(a, b, 1);
3726 }
3727 
3728 // CHECK-LABEL: test_vld3_lane_f16
3729 // 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)3730 float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) {
3731   return vld3_lane_f16(a, b, 3);
3732 }
3733 
3734 // CHECK-LABEL: test_vld3_lane_f32
3735 // 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)3736 float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) {
3737   return vld3_lane_f32(a, b, 1);
3738 }
3739 
3740 // CHECK-LABEL: test_vld3_lane_p8
3741 // 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)3742 poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) {
3743   return vld3_lane_p8(a, b, 7);
3744 }
3745 
3746 // CHECK-LABEL: test_vld3_lane_p16
3747 // 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)3748 poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) {
3749   return vld3_lane_p16(a, b, 3);
3750 }
3751 
3752 
3753 // CHECK-LABEL: test_vld4q_u8
3754 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u8(uint8_t const * a)3755 uint8x16x4_t test_vld4q_u8(uint8_t const * a) {
3756   return vld4q_u8(a);
3757 }
3758 
3759 // CHECK-LABEL: test_vld4q_u16
3760 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u16(uint16_t const * a)3761 uint16x8x4_t test_vld4q_u16(uint16_t const * a) {
3762   return vld4q_u16(a);
3763 }
3764 
3765 // CHECK-LABEL: test_vld4q_u32
3766 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u32(uint32_t const * a)3767 uint32x4x4_t test_vld4q_u32(uint32_t const * a) {
3768   return vld4q_u32(a);
3769 }
3770 
3771 // CHECK-LABEL: test_vld4q_s8
3772 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s8(int8_t const * a)3773 int8x16x4_t test_vld4q_s8(int8_t const * a) {
3774   return vld4q_s8(a);
3775 }
3776 
3777 // CHECK-LABEL: test_vld4q_s16
3778 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s16(int16_t const * a)3779 int16x8x4_t test_vld4q_s16(int16_t const * a) {
3780   return vld4q_s16(a);
3781 }
3782 
3783 // CHECK-LABEL: test_vld4q_s32
3784 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s32(int32_t const * a)3785 int32x4x4_t test_vld4q_s32(int32_t const * a) {
3786   return vld4q_s32(a);
3787 }
3788 
3789 // CHECK-LABEL: test_vld4q_f16
3790 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f16(float16_t const * a)3791 float16x8x4_t test_vld4q_f16(float16_t const * a) {
3792   return vld4q_f16(a);
3793 }
3794 
3795 // CHECK-LABEL: test_vld4q_f32
3796 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f32(float32_t const * a)3797 float32x4x4_t test_vld4q_f32(float32_t const * a) {
3798   return vld4q_f32(a);
3799 }
3800 
3801 // CHECK-LABEL: test_vld4q_p8
3802 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p8(poly8_t const * a)3803 poly8x16x4_t test_vld4q_p8(poly8_t const * a) {
3804   return vld4q_p8(a);
3805 }
3806 
3807 // CHECK-LABEL: test_vld4q_p16
3808 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p16(poly16_t const * a)3809 poly16x8x4_t test_vld4q_p16(poly16_t const * a) {
3810   return vld4q_p16(a);
3811 }
3812 
3813 // CHECK-LABEL: test_vld4_u8
3814 // 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)3815 uint8x8x4_t test_vld4_u8(uint8_t const * a) {
3816   return vld4_u8(a);
3817 }
3818 
3819 // CHECK-LABEL: test_vld4_u16
3820 // 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)3821 uint16x4x4_t test_vld4_u16(uint16_t const * a) {
3822   return vld4_u16(a);
3823 }
3824 
3825 // CHECK-LABEL: test_vld4_u32
3826 // 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)3827 uint32x2x4_t test_vld4_u32(uint32_t const * a) {
3828   return vld4_u32(a);
3829 }
3830 
3831 // CHECK-LABEL: test_vld4_u64
3832 // CHECK: vld1.64
test_vld4_u64(uint64_t const * a)3833 uint64x1x4_t test_vld4_u64(uint64_t const * a) {
3834   return vld4_u64(a);
3835 }
3836 
3837 // CHECK-LABEL: test_vld4_s8
3838 // 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)3839 int8x8x4_t test_vld4_s8(int8_t const * a) {
3840   return vld4_s8(a);
3841 }
3842 
3843 // CHECK-LABEL: test_vld4_s16
3844 // 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)3845 int16x4x4_t test_vld4_s16(int16_t const * a) {
3846   return vld4_s16(a);
3847 }
3848 
3849 // CHECK-LABEL: test_vld4_s32
3850 // 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)3851 int32x2x4_t test_vld4_s32(int32_t const * a) {
3852   return vld4_s32(a);
3853 }
3854 
3855 // CHECK-LABEL: test_vld4_s64
3856 // CHECK: vld1.64
test_vld4_s64(int64_t const * a)3857 int64x1x4_t test_vld4_s64(int64_t const * a) {
3858   return vld4_s64(a);
3859 }
3860 
3861 // CHECK-LABEL: test_vld4_f16
3862 // 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)3863 float16x4x4_t test_vld4_f16(float16_t const * a) {
3864   return vld4_f16(a);
3865 }
3866 
3867 // CHECK-LABEL: test_vld4_f32
3868 // 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)3869 float32x2x4_t test_vld4_f32(float32_t const * a) {
3870   return vld4_f32(a);
3871 }
3872 
3873 // CHECK-LABEL: test_vld4_p8
3874 // 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)3875 poly8x8x4_t test_vld4_p8(poly8_t const * a) {
3876   return vld4_p8(a);
3877 }
3878 
3879 // CHECK-LABEL: test_vld4_p16
3880 // 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)3881 poly16x4x4_t test_vld4_p16(poly16_t const * a) {
3882   return vld4_p16(a);
3883 }
3884 
3885 
3886 // CHECK-LABEL: test_vld4_dup_u8
3887 // 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)3888 uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) {
3889   return vld4_dup_u8(a);
3890 }
3891 
3892 // CHECK-LABEL: test_vld4_dup_u16
3893 // 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)3894 uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) {
3895   return vld4_dup_u16(a);
3896 }
3897 
3898 // CHECK-LABEL: test_vld4_dup_u32
3899 // 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)3900 uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) {
3901   return vld4_dup_u32(a);
3902 }
3903 
3904 // CHECK-LABEL: test_vld4_dup_u64
3905 // CHECK: vld1.64
test_vld4_dup_u64(uint64_t const * a)3906 uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) {
3907   return vld4_dup_u64(a);
3908 }
3909 
3910 // CHECK-LABEL: test_vld4_dup_s8
3911 // 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)3912 int8x8x4_t test_vld4_dup_s8(int8_t const * a) {
3913   return vld4_dup_s8(a);
3914 }
3915 
3916 // CHECK-LABEL: test_vld4_dup_s16
3917 // 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)3918 int16x4x4_t test_vld4_dup_s16(int16_t const * a) {
3919   return vld4_dup_s16(a);
3920 }
3921 
3922 // CHECK-LABEL: test_vld4_dup_s32
3923 // 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)3924 int32x2x4_t test_vld4_dup_s32(int32_t const * a) {
3925   return vld4_dup_s32(a);
3926 }
3927 
3928 // CHECK-LABEL: test_vld4_dup_s64
3929 // CHECK: vld1.64
test_vld4_dup_s64(int64_t const * a)3930 int64x1x4_t test_vld4_dup_s64(int64_t const * a) {
3931   return vld4_dup_s64(a);
3932 }
3933 
3934 // CHECK-LABEL: test_vld4_dup_f16
3935 // 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)3936 float16x4x4_t test_vld4_dup_f16(float16_t const * a) {
3937   return vld4_dup_f16(a);
3938 }
3939 
3940 // CHECK-LABEL: test_vld4_dup_f32
3941 // 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)3942 float32x2x4_t test_vld4_dup_f32(float32_t const * a) {
3943   return vld4_dup_f32(a);
3944 }
3945 
3946 // CHECK-LABEL: test_vld4_dup_p8
3947 // 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)3948 poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) {
3949   return vld4_dup_p8(a);
3950 }
3951 
3952 // CHECK-LABEL: test_vld4_dup_p16
3953 // 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)3954 poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) {
3955   return vld4_dup_p16(a);
3956 }
3957 
3958 
3959 // CHECK-LABEL: test_vld4q_lane_u16
3960 // 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)3961 uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) {
3962   return vld4q_lane_u16(a, b, 7);
3963 }
3964 
3965 // CHECK-LABEL: test_vld4q_lane_u32
3966 // 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)3967 uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) {
3968   return vld4q_lane_u32(a, b, 3);
3969 }
3970 
3971 // CHECK-LABEL: test_vld4q_lane_s16
3972 // 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)3973 int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) {
3974   return vld4q_lane_s16(a, b, 7);
3975 }
3976 
3977 // CHECK-LABEL: test_vld4q_lane_s32
3978 // 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)3979 int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) {
3980   return vld4q_lane_s32(a, b, 3);
3981 }
3982 
3983 // CHECK-LABEL: test_vld4q_lane_f16
3984 // 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)3985 float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) {
3986   return vld4q_lane_f16(a, b, 7);
3987 }
3988 
3989 // CHECK-LABEL: test_vld4q_lane_f32
3990 // 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)3991 float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) {
3992   return vld4q_lane_f32(a, b, 3);
3993 }
3994 
3995 // CHECK-LABEL: test_vld4q_lane_p16
3996 // 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)3997 poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) {
3998   return vld4q_lane_p16(a, b, 7);
3999 }
4000 
4001 // CHECK-LABEL: test_vld4_lane_u8
4002 // 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)4003 uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) {
4004   return vld4_lane_u8(a, b, 7);
4005 }
4006 
4007 // CHECK-LABEL: test_vld4_lane_u16
4008 // 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)4009 uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) {
4010   return vld4_lane_u16(a, b, 3);
4011 }
4012 
4013 // CHECK-LABEL: test_vld4_lane_u32
4014 // 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)4015 uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) {
4016   return vld4_lane_u32(a, b, 1);
4017 }
4018 
4019 // CHECK-LABEL: test_vld4_lane_s8
4020 // 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)4021 int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) {
4022   return vld4_lane_s8(a, b, 7);
4023 }
4024 
4025 // CHECK-LABEL: test_vld4_lane_s16
4026 // 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)4027 int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) {
4028   return vld4_lane_s16(a, b, 3);
4029 }
4030 
4031 // CHECK-LABEL: test_vld4_lane_s32
4032 // 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)4033 int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) {
4034   return vld4_lane_s32(a, b, 1);
4035 }
4036 
4037 // CHECK-LABEL: test_vld4_lane_f16
4038 // 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)4039 float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) {
4040   return vld4_lane_f16(a, b, 3);
4041 }
4042 
4043 // CHECK-LABEL: test_vld4_lane_f32
4044 // 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)4045 float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) {
4046   return vld4_lane_f32(a, b, 1);
4047 }
4048 
4049 // CHECK-LABEL: test_vld4_lane_p8
4050 // 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)4051 poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) {
4052   return vld4_lane_p8(a, b, 7);
4053 }
4054 
4055 // CHECK-LABEL: test_vld4_lane_p16
4056 // 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)4057 poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) {
4058   return vld4_lane_p16(a, b, 3);
4059 }
4060 
4061 
4062 // CHECK-LABEL: test_vmax_s8
4063 // CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s8(int8x8_t a,int8x8_t b)4064 int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) {
4065   return vmax_s8(a, b);
4066 }
4067 
4068 // CHECK-LABEL: test_vmax_s16
4069 // CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s16(int16x4_t a,int16x4_t b)4070 int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) {
4071   return vmax_s16(a, b);
4072 }
4073 
4074 // CHECK-LABEL: test_vmax_s32
4075 // CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s32(int32x2_t a,int32x2_t b)4076 int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) {
4077   return vmax_s32(a, b);
4078 }
4079 
4080 // CHECK-LABEL: test_vmax_u8
4081 // CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u8(uint8x8_t a,uint8x8_t b)4082 uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) {
4083   return vmax_u8(a, b);
4084 }
4085 
4086 // CHECK-LABEL: test_vmax_u16
4087 // CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u16(uint16x4_t a,uint16x4_t b)4088 uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) {
4089   return vmax_u16(a, b);
4090 }
4091 
4092 // CHECK-LABEL: test_vmax_u32
4093 // CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u32(uint32x2_t a,uint32x2_t b)4094 uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) {
4095   return vmax_u32(a, b);
4096 }
4097 
4098 // CHECK-LABEL: test_vmax_f32
4099 // CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_f32(float32x2_t a,float32x2_t b)4100 float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) {
4101   return vmax_f32(a, b);
4102 }
4103 
4104 // CHECK-LABEL: test_vmaxq_s8
4105 // CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s8(int8x16_t a,int8x16_t b)4106 int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) {
4107   return vmaxq_s8(a, b);
4108 }
4109 
4110 // CHECK-LABEL: test_vmaxq_s16
4111 // CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s16(int16x8_t a,int16x8_t b)4112 int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) {
4113   return vmaxq_s16(a, b);
4114 }
4115 
4116 // CHECK-LABEL: test_vmaxq_s32
4117 // CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s32(int32x4_t a,int32x4_t b)4118 int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) {
4119   return vmaxq_s32(a, b);
4120 }
4121 
4122 // CHECK-LABEL: test_vmaxq_u8
4123 // CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u8(uint8x16_t a,uint8x16_t b)4124 uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) {
4125   return vmaxq_u8(a, b);
4126 }
4127 
4128 // CHECK-LABEL: test_vmaxq_u16
4129 // CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u16(uint16x8_t a,uint16x8_t b)4130 uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) {
4131   return vmaxq_u16(a, b);
4132 }
4133 
4134 // CHECK-LABEL: test_vmaxq_u32
4135 // CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u32(uint32x4_t a,uint32x4_t b)4136 uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) {
4137   return vmaxq_u32(a, b);
4138 }
4139 
4140 // CHECK-LABEL: test_vmaxq_f32
4141 // CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_f32(float32x4_t a,float32x4_t b)4142 float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) {
4143   return vmaxq_f32(a, b);
4144 }
4145 
4146 
4147 // CHECK-LABEL: test_vmin_s8
4148 // CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s8(int8x8_t a,int8x8_t b)4149 int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) {
4150   return vmin_s8(a, b);
4151 }
4152 
4153 // CHECK-LABEL: test_vmin_s16
4154 // CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s16(int16x4_t a,int16x4_t b)4155 int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) {
4156   return vmin_s16(a, b);
4157 }
4158 
4159 // CHECK-LABEL: test_vmin_s32
4160 // CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s32(int32x2_t a,int32x2_t b)4161 int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) {
4162   return vmin_s32(a, b);
4163 }
4164 
4165 // CHECK-LABEL: test_vmin_u8
4166 // CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u8(uint8x8_t a,uint8x8_t b)4167 uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) {
4168   return vmin_u8(a, b);
4169 }
4170 
4171 // CHECK-LABEL: test_vmin_u16
4172 // CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u16(uint16x4_t a,uint16x4_t b)4173 uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) {
4174   return vmin_u16(a, b);
4175 }
4176 
4177 // CHECK-LABEL: test_vmin_u32
4178 // CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u32(uint32x2_t a,uint32x2_t b)4179 uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) {
4180   return vmin_u32(a, b);
4181 }
4182 
4183 // CHECK-LABEL: test_vmin_f32
4184 // CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_f32(float32x2_t a,float32x2_t b)4185 float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) {
4186   return vmin_f32(a, b);
4187 }
4188 
4189 // CHECK-LABEL: test_vminq_s8
4190 // CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s8(int8x16_t a,int8x16_t b)4191 int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) {
4192   return vminq_s8(a, b);
4193 }
4194 
4195 // CHECK-LABEL: test_vminq_s16
4196 // CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s16(int16x8_t a,int16x8_t b)4197 int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) {
4198   return vminq_s16(a, b);
4199 }
4200 
4201 // CHECK-LABEL: test_vminq_s32
4202 // CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s32(int32x4_t a,int32x4_t b)4203 int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) {
4204   return vminq_s32(a, b);
4205 }
4206 
4207 // CHECK-LABEL: test_vminq_u8
4208 // CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u8(uint8x16_t a,uint8x16_t b)4209 uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) {
4210   return vminq_u8(a, b);
4211 }
4212 
4213 // CHECK-LABEL: test_vminq_u16
4214 // CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u16(uint16x8_t a,uint16x8_t b)4215 uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) {
4216   return vminq_u16(a, b);
4217 }
4218 
4219 // CHECK-LABEL: test_vminq_u32
4220 // CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u32(uint32x4_t a,uint32x4_t b)4221 uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) {
4222   return vminq_u32(a, b);
4223 }
4224 
4225 // CHECK-LABEL: test_vminq_f32
4226 // CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_f32(float32x4_t a,float32x4_t b)4227 float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) {
4228   return vminq_f32(a, b);
4229 }
4230 
4231 
4232 // CHECK-LABEL: test_vmla_s8
4233 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)4234 int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4235   return vmla_s8(a, b, c);
4236 }
4237 
4238 // CHECK-LABEL: test_vmla_s16
4239 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)4240 int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4241   return vmla_s16(a, b, c);
4242 }
4243 
4244 // CHECK-LABEL: test_vmla_s32
4245 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)4246 int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4247   return vmla_s32(a, b, c);
4248 }
4249 
4250 // CHECK-LABEL: test_vmla_f32
4251 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4252 // CHECK-SWIFT: vadd.f32
4253 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_f32(float32x2_t a,float32x2_t b,float32x2_t c)4254 float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4255   return vmla_f32(a, b, c);
4256 }
4257 
4258 // CHECK-LABEL: test_vmla_u8
4259 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4260 uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4261   return vmla_u8(a, b, c);
4262 }
4263 
4264 // CHECK-LABEL: test_vmla_u16
4265 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4266 uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4267   return vmla_u16(a, b, c);
4268 }
4269 
4270 // CHECK-LABEL: test_vmla_u32
4271 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4272 uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4273   return vmla_u32(a, b, c);
4274 }
4275 
4276 // CHECK-LABEL: test_vmlaq_s8
4277 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4278 int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4279   return vmlaq_s8(a, b, c);
4280 }
4281 
4282 // CHECK-LABEL: test_vmlaq_s16
4283 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4284 int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4285   return vmlaq_s16(a, b, c);
4286 }
4287 
4288 // CHECK-LABEL: test_vmlaq_s32
4289 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4290 int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4291   return vmlaq_s32(a, b, c);
4292 }
4293 
4294 // CHECK-LABEL: test_vmlaq_f32
4295 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4296 // CHECK-SWIFT: vadd.f32
4297 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4298 float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4299   return vmlaq_f32(a, b, c);
4300 }
4301 
4302 // CHECK-LABEL: test_vmlaq_u8
4303 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4304 uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4305   return vmlaq_u8(a, b, c);
4306 }
4307 
4308 // CHECK-LABEL: test_vmlaq_u16
4309 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4310 uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4311   return vmlaq_u16(a, b, c);
4312 }
4313 
4314 // CHECK-LABEL: test_vmlaq_u32
4315 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4316 uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4317   return vmlaq_u32(a, b, c);
4318 }
4319 
4320 
4321 // CHECK-LABEL: test_vmlal_s8
4322 // CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)4323 int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4324   return vmlal_s8(a, b, c);
4325 }
4326 
4327 // CHECK-LABEL: test_vmlal_s16
4328 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)4329 int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4330   return vmlal_s16(a, b, c);
4331 }
4332 
4333 // CHECK-LABEL: test_vmlal_s32
4334 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)4335 int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4336   return vmlal_s32(a, b, c);
4337 }
4338 
4339 // CHECK-LABEL: test_vmlal_u8
4340 // CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4341 uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4342   return vmlal_u8(a, b, c);
4343 }
4344 
4345 // CHECK-LABEL: test_vmlal_u16
4346 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4347 uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4348   return vmlal_u16(a, b, c);
4349 }
4350 
4351 // CHECK-LABEL: test_vmlal_u32
4352 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4353 uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4354   return vmlal_u32(a, b, c);
4355 }
4356 
4357 
4358 // CHECK-LABEL: test_vmlal_lane_s16
4359 // 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)4360 int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4361   return vmlal_lane_s16(a, b, c, 3);
4362 }
4363 
4364 // CHECK-LABEL: test_vmlal_lane_s32
4365 // 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)4366 int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4367   return vmlal_lane_s32(a, b, c, 1);
4368 }
4369 
4370 // CHECK-LABEL: test_vmlal_lane_u16
4371 // 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)4372 uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4373   return vmlal_lane_u16(a, b, c, 3);
4374 }
4375 
4376 // CHECK-LABEL: test_vmlal_lane_u32
4377 // 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)4378 uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4379   return vmlal_lane_u32(a, b, c, 1);
4380 }
4381 
4382 
4383 // CHECK-LABEL: test_vmlal_n_s16
4384 // 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)4385 int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4386   return vmlal_n_s16(a, b, c);
4387 }
4388 
4389 // CHECK-LABEL: test_vmlal_n_s32
4390 // 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)4391 int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4392   return vmlal_n_s32(a, b, c);
4393 }
4394 
4395 // CHECK-LABEL: test_vmlal_n_u16
4396 // 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)4397 uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4398   return vmlal_n_u16(a, b, c);
4399 }
4400 
4401 // CHECK-LABEL: test_vmlal_n_u32
4402 // 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)4403 uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4404   return vmlal_n_u32(a, b, c);
4405 }
4406 
4407 
4408 // CHECK-LABEL: test_vmla_lane_s16
4409 // 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)4410 int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4411   return vmla_lane_s16(a, b, c, 3);
4412 }
4413 
4414 // CHECK-LABEL: test_vmla_lane_s32
4415 // 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)4416 int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4417   return vmla_lane_s32(a, b, c, 1);
4418 }
4419 
4420 // CHECK-LABEL: test_vmla_lane_u16
4421 // 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)4422 uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4423   return vmla_lane_u16(a, b, c, 3);
4424 }
4425 
4426 // CHECK-LABEL: test_vmla_lane_u32
4427 // 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)4428 uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4429   return vmla_lane_u32(a, b, c, 1);
4430 }
4431 
4432 // CHECK-LABEL: test_vmla_lane_f32
4433 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4434 // CHECK-SWIFT: vadd.f32
4435 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4436 float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4437   return vmla_lane_f32(a, b, c, 1);
4438 }
4439 
4440 // CHECK-LABEL: test_vmlaq_lane_s16
4441 // 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)4442 int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4443   return vmlaq_lane_s16(a, b, c, 3);
4444 }
4445 
4446 // CHECK-LABEL: test_vmlaq_lane_s32
4447 // 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)4448 int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4449   return vmlaq_lane_s32(a, b, c, 1);
4450 }
4451 
4452 // CHECK-LABEL: test_vmlaq_lane_u16
4453 // 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)4454 uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4455   return vmlaq_lane_u16(a, b, c, 3);
4456 }
4457 
4458 // CHECK-LABEL: test_vmlaq_lane_u32
4459 // 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)4460 uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4461   return vmlaq_lane_u32(a, b, c, 1);
4462 }
4463 
4464 // CHECK-LABEL: test_vmlaq_lane_f32
4465 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4466 // CHECK-SWIFT: vadd.f32
4467 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4468 float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4469   return vmlaq_lane_f32(a, b, c, 1);
4470 }
4471 
4472 
4473 // CHECK-LABEL: test_vmla_n_s16
4474 // 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)4475 int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4476   return vmla_n_s16(a, b, c);
4477 }
4478 
4479 // CHECK-LABEL: test_vmla_n_s32
4480 // 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)4481 int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4482   return vmla_n_s32(a, b, c);
4483 }
4484 
4485 // CHECK-LABEL: test_vmla_n_u16
4486 // 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)4487 uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4488   return vmla_n_u16(a, b, c);
4489 }
4490 
4491 // CHECK-LABEL: test_vmla_n_u32
4492 // 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)4493 uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4494   return vmla_n_u32(a, b, c);
4495 }
4496 
4497 // CHECK-LABEL: test_vmla_n_f32
4498 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4499 // CHECK-SWIFT: vadd.f32
4500 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_f32(float32x2_t a,float32x2_t b,float32_t c)4501 float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4502   return vmla_n_f32(a, b, c);
4503 }
4504 
4505 // CHECK-LABEL: test_vmlaq_n_s16
4506 // 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)4507 int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4508   return vmlaq_n_s16(a, b, c);
4509 }
4510 
4511 // CHECK-LABEL: test_vmlaq_n_s32
4512 // 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)4513 int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4514   return vmlaq_n_s32(a, b, c);
4515 }
4516 
4517 // CHECK-LABEL: test_vmlaq_n_u16
4518 // 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)4519 uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4520   return vmlaq_n_u16(a, b, c);
4521 }
4522 
4523 // CHECK-LABEL: test_vmlaq_n_u32
4524 // 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)4525 uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4526   return vmlaq_n_u32(a, b, c);
4527 }
4528 
4529 // CHECK-LABEL: test_vmlaq_n_f32
4530 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4531 // CHECK-SWIFT: vadd.f32
4532 // CHECK-A57: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]},
4533 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4534 float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4535   return vmlaq_n_f32(a, b, c);
4536 }
4537 
4538 
4539 // CHECK-LABEL: test_vmls_s8
4540 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)4541 int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4542   return vmls_s8(a, b, c);
4543 }
4544 
4545 // CHECK-LABEL: test_vmls_s16
4546 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)4547 int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4548   return vmls_s16(a, b, c);
4549 }
4550 
4551 // CHECK-LABEL: test_vmls_s32
4552 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)4553 int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4554   return vmls_s32(a, b, c);
4555 }
4556 
4557 // CHECK-LABEL: test_vmls_f32
4558 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4559 // CHECK-SWIFT: vsub.f32
4560 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_f32(float32x2_t a,float32x2_t b,float32x2_t c)4561 float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4562   return vmls_f32(a, b, c);
4563 }
4564 
4565 // CHECK-LABEL: test_vmls_u8
4566 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4567 uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4568   return vmls_u8(a, b, c);
4569 }
4570 
4571 // CHECK-LABEL: test_vmls_u16
4572 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4573 uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4574   return vmls_u16(a, b, c);
4575 }
4576 
4577 // CHECK-LABEL: test_vmls_u32
4578 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4579 uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4580   return vmls_u32(a, b, c);
4581 }
4582 
4583 // CHECK-LABEL: test_vmlsq_s8
4584 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4585 int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4586   return vmlsq_s8(a, b, c);
4587 }
4588 
4589 // CHECK-LABEL: test_vmlsq_s16
4590 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4591 int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4592   return vmlsq_s16(a, b, c);
4593 }
4594 
4595 // CHECK-LABEL: test_vmlsq_s32
4596 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4597 int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4598   return vmlsq_s32(a, b, c);
4599 }
4600 
4601 // CHECK-LABEL: test_vmlsq_f32
4602 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4603 // CHECK-SWIFT: vsub.f32
4604 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4605 float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4606   return vmlsq_f32(a, b, c);
4607 }
4608 
4609 // CHECK-LABEL: test_vmlsq_u8
4610 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4611 uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4612   return vmlsq_u8(a, b, c);
4613 }
4614 
4615 // CHECK-LABEL: test_vmlsq_u16
4616 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4617 uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4618   return vmlsq_u16(a, b, c);
4619 }
4620 
4621 // CHECK-LABEL: test_vmlsq_u32
4622 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4623 uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4624   return vmlsq_u32(a, b, c);
4625 }
4626 
4627 
4628 // CHECK-LABEL: test_vmlsl_s8
4629 // CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)4630 int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4631   return vmlsl_s8(a, b, c);
4632 }
4633 
4634 // CHECK-LABEL: test_vmlsl_s16
4635 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)4636 int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4637   return vmlsl_s16(a, b, c);
4638 }
4639 
4640 // CHECK-LABEL: test_vmlsl_s32
4641 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)4642 int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4643   return vmlsl_s32(a, b, c);
4644 }
4645 
4646 // CHECK-LABEL: test_vmlsl_u8
4647 // CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4648 uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4649   return vmlsl_u8(a, b, c);
4650 }
4651 
4652 // CHECK-LABEL: test_vmlsl_u16
4653 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4654 uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4655   return vmlsl_u16(a, b, c);
4656 }
4657 
4658 // CHECK-LABEL: test_vmlsl_u32
4659 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4660 uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4661   return vmlsl_u32(a, b, c);
4662 }
4663 
4664 
4665 // CHECK-LABEL: test_vmlsl_lane_s16
4666 // 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)4667 int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4668   return vmlsl_lane_s16(a, b, c, 3);
4669 }
4670 
4671 // CHECK-LABEL: test_vmlsl_lane_s32
4672 // 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)4673 int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4674   return vmlsl_lane_s32(a, b, c, 1);
4675 }
4676 
4677 // CHECK-LABEL: test_vmlsl_lane_u16
4678 // 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)4679 uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4680   return vmlsl_lane_u16(a, b, c, 3);
4681 }
4682 
4683 // CHECK-LABEL: test_vmlsl_lane_u32
4684 // 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)4685 uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4686   return vmlsl_lane_u32(a, b, c, 1);
4687 }
4688 
4689 
4690 // CHECK-LABEL: test_vmlsl_n_s16
4691 // 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)4692 int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4693   return vmlsl_n_s16(a, b, c);
4694 }
4695 
4696 // CHECK-LABEL: test_vmlsl_n_s32
4697 // 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)4698 int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4699   return vmlsl_n_s32(a, b, c);
4700 }
4701 
4702 // CHECK-LABEL: test_vmlsl_n_u16
4703 // 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)4704 uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4705   return vmlsl_n_u16(a, b, c);
4706 }
4707 
4708 // CHECK-LABEL: test_vmlsl_n_u32
4709 // 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)4710 uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4711   return vmlsl_n_u32(a, b, c);
4712 }
4713 
4714 
4715 // CHECK-LABEL: test_vmls_lane_s16
4716 // 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)4717 int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4718   return vmls_lane_s16(a, b, c, 3);
4719 }
4720 
4721 // CHECK-LABEL: test_vmls_lane_s32
4722 // 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)4723 int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4724   return vmls_lane_s32(a, b, c, 1);
4725 }
4726 
4727 // CHECK-LABEL: test_vmls_lane_u16
4728 // 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)4729 uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4730   return vmls_lane_u16(a, b, c, 3);
4731 }
4732 
4733 // CHECK-LABEL: test_vmls_lane_u32
4734 // 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)4735 uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4736   return vmls_lane_u32(a, b, c, 1);
4737 }
4738 
4739 // CHECK-LABEL: test_vmls_lane_f32
4740 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4741 // CHECK-SWIFT: vsub.f32
4742 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4743 float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4744   return vmls_lane_f32(a, b, c, 1);
4745 }
4746 
4747 // CHECK-LABEL: test_vmlsq_lane_s16
4748 // 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)4749 int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4750   return vmlsq_lane_s16(a, b, c, 3);
4751 }
4752 
4753 // CHECK-LABEL: test_vmlsq_lane_s32
4754 // 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)4755 int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4756   return vmlsq_lane_s32(a, b, c, 1);
4757 }
4758 
4759 // CHECK-LABEL: test_vmlsq_lane_u16
4760 // 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)4761 uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4762   return vmlsq_lane_u16(a, b, c, 3);
4763 }
4764 
4765 // CHECK-LABEL: test_vmlsq_lane_u32
4766 // 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)4767 uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4768   return vmlsq_lane_u32(a, b, c, 1);
4769 }
4770 
4771 // CHECK-LABEL: test_vmlsq_lane_f32
4772 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4773 // CHECK-SWIFT: vsub.f32
4774 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4775 float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4776   return vmlsq_lane_f32(a, b, c, 1);
4777 }
4778 
4779 
4780 // CHECK-LABEL: test_vmls_n_s16
4781 // 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)4782 int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4783   return vmls_n_s16(a, b, c);
4784 }
4785 
4786 // CHECK-LABEL: test_vmls_n_s32
4787 // 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)4788 int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4789   return vmls_n_s32(a, b, c);
4790 }
4791 
4792 // CHECK-LABEL: test_vmls_n_u16
4793 // 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)4794 uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4795   return vmls_n_u16(a, b, c);
4796 }
4797 
4798 // CHECK-LABEL: test_vmls_n_u32
4799 // 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)4800 uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4801   return vmls_n_u32(a, b, c);
4802 }
4803 
4804 // CHECK-LABEL: test_vmls_n_f32
4805 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4806 // CHECK-SWIFT: vsub.f32
4807 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_f32(float32x2_t a,float32x2_t b,float32_t c)4808 float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4809   return vmls_n_f32(a, b, c);
4810 }
4811 
4812 // CHECK-LABEL: test_vmlsq_n_s16
4813 // 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)4814 int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4815   return vmlsq_n_s16(a, b, c);
4816 }
4817 
4818 // CHECK-LABEL: test_vmlsq_n_s32
4819 // 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)4820 int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4821   return vmlsq_n_s32(a, b, c);
4822 }
4823 
4824 // CHECK-LABEL: test_vmlsq_n_u16
4825 // 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)4826 uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4827   return vmlsq_n_u16(a, b, c);
4828 }
4829 
4830 // CHECK-LABEL: test_vmlsq_n_u32
4831 // 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)4832 uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4833   return vmlsq_n_u32(a, b, c);
4834 }
4835 
4836 // CHECK-LABEL: test_vmlsq_n_f32
4837 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4838 // CHECK-SWIFT: vsub.f32
4839 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4840 float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4841   return vmlsq_n_f32(a, b, c);
4842 }
4843 
4844 
4845 // CHECK-LABEL: test_vmovl_s8
4846 // CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s8(int8x8_t a)4847 int16x8_t test_vmovl_s8(int8x8_t a) {
4848   return vmovl_s8(a);
4849 }
4850 
4851 // CHECK-LABEL: test_vmovl_s16
4852 // CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s16(int16x4_t a)4853 int32x4_t test_vmovl_s16(int16x4_t a) {
4854   return vmovl_s16(a);
4855 }
4856 
4857 // CHECK-LABEL: test_vmovl_s32
4858 // CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s32(int32x2_t a)4859 int64x2_t test_vmovl_s32(int32x2_t a) {
4860   return vmovl_s32(a);
4861 }
4862 
4863 // CHECK-LABEL: test_vmovl_u8
4864 // CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u8(uint8x8_t a)4865 uint16x8_t test_vmovl_u8(uint8x8_t a) {
4866   return vmovl_u8(a);
4867 }
4868 
4869 // CHECK-LABEL: test_vmovl_u16
4870 // CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u16(uint16x4_t a)4871 uint32x4_t test_vmovl_u16(uint16x4_t a) {
4872   return vmovl_u16(a);
4873 }
4874 
4875 // CHECK-LABEL: test_vmovl_u32
4876 // CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u32(uint32x2_t a)4877 uint64x2_t test_vmovl_u32(uint32x2_t a) {
4878   return vmovl_u32(a);
4879 }
4880 
4881 
4882 // CHECK-LABEL: test_vmovn_s16
4883 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s16(int16x8_t a)4884 int8x8_t test_vmovn_s16(int16x8_t a) {
4885   return vmovn_s16(a);
4886 }
4887 
4888 // CHECK-LABEL: test_vmovn_s32
4889 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s32(int32x4_t a)4890 int16x4_t test_vmovn_s32(int32x4_t a) {
4891   return vmovn_s32(a);
4892 }
4893 
4894 // CHECK-LABEL: test_vmovn_s64
4895 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s64(int64x2_t a)4896 int32x2_t test_vmovn_s64(int64x2_t a) {
4897   return vmovn_s64(a);
4898 }
4899 
4900 // CHECK-LABEL: test_vmovn_u16
4901 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u16(uint16x8_t a)4902 uint8x8_t test_vmovn_u16(uint16x8_t a) {
4903   return vmovn_u16(a);
4904 }
4905 
4906 // CHECK-LABEL: test_vmovn_u32
4907 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u32(uint32x4_t a)4908 uint16x4_t test_vmovn_u32(uint32x4_t a) {
4909   return vmovn_u32(a);
4910 }
4911 
4912 // CHECK-LABEL: test_vmovn_u64
4913 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u64(uint64x2_t a)4914 uint32x2_t test_vmovn_u64(uint64x2_t a) {
4915   return vmovn_u64(a);
4916 }
4917 
4918 
4919 // CHECK-LABEL: test_vmov_n_u8
4920 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u8(uint8_t a)4921 uint8x8_t test_vmov_n_u8(uint8_t a) {
4922   return vmov_n_u8(a);
4923 }
4924 
4925 // CHECK-LABEL: test_vmov_n_u16
4926 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u16(uint16_t a)4927 uint16x4_t test_vmov_n_u16(uint16_t a) {
4928   return vmov_n_u16(a);
4929 }
4930 
4931 // CHECK-LABEL: test_vmov_n_u32
4932 // CHECK: mov {{r[0-9]+}}
test_vmov_n_u32(uint32_t a)4933 uint32x2_t test_vmov_n_u32(uint32_t a) {
4934   return vmov_n_u32(a);
4935 }
4936 
4937 // CHECK-LABEL: test_vmov_n_s8
4938 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s8(int8_t a)4939 int8x8_t test_vmov_n_s8(int8_t a) {
4940   return vmov_n_s8(a);
4941 }
4942 
4943 // CHECK-LABEL: test_vmov_n_s16
4944 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s16(int16_t a)4945 int16x4_t test_vmov_n_s16(int16_t a) {
4946   return vmov_n_s16(a);
4947 }
4948 
4949 // CHECK-LABEL: test_vmov_n_s32
4950 // CHECK: mov {{r[0-9]+}}
test_vmov_n_s32(int32_t a)4951 int32x2_t test_vmov_n_s32(int32_t a) {
4952   return vmov_n_s32(a);
4953 }
4954 
4955 // CHECK-LABEL: test_vmov_n_p8
4956 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p8(poly8_t a)4957 poly8x8_t test_vmov_n_p8(poly8_t a) {
4958   return vmov_n_p8(a);
4959 }
4960 
4961 // CHECK-LABEL: test_vmov_n_p16
4962 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p16(poly16_t a)4963 poly16x4_t test_vmov_n_p16(poly16_t a) {
4964   return vmov_n_p16(a);
4965 }
4966 
4967 // CHECK-LABEL: test_vmov_n_f16
4968 // CHECK: vld1.16 {{{d[0-9]+\[\]}}}
test_vmov_n_f16(float16_t * a)4969 float16x4_t test_vmov_n_f16(float16_t *a) {
4970   return vmov_n_f16(*a);
4971 }
4972 
4973 // CHECK-LABEL: test_vmov_n_f32
4974 // CHECK: mov {{r[0-9]+}}
test_vmov_n_f32(float32_t a)4975 float32x2_t test_vmov_n_f32(float32_t a) {
4976   return vmov_n_f32(a);
4977 }
4978 
4979 // CHECK-LABEL: test_vmovq_n_u8
4980 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u8(uint8_t a)4981 uint8x16_t test_vmovq_n_u8(uint8_t a) {
4982   return vmovq_n_u8(a);
4983 }
4984 
4985 // CHECK-LABEL: test_vmovq_n_u16
4986 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u16(uint16_t a)4987 uint16x8_t test_vmovq_n_u16(uint16_t a) {
4988   return vmovq_n_u16(a);
4989 }
4990 
4991 // CHECK-LABEL: test_vmovq_n_u32
4992 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u32(uint32_t a)4993 uint32x4_t test_vmovq_n_u32(uint32_t a) {
4994   return vmovq_n_u32(a);
4995 }
4996 
4997 // CHECK-LABEL: test_vmovq_n_s8
4998 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s8(int8_t a)4999 int8x16_t test_vmovq_n_s8(int8_t a) {
5000   return vmovq_n_s8(a);
5001 }
5002 
5003 // CHECK-LABEL: test_vmovq_n_s16
5004 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s16(int16_t a)5005 int16x8_t test_vmovq_n_s16(int16_t a) {
5006   return vmovq_n_s16(a);
5007 }
5008 
5009 // CHECK-LABEL: test_vmovq_n_s32
5010 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s32(int32_t a)5011 int32x4_t test_vmovq_n_s32(int32_t a) {
5012   return vmovq_n_s32(a);
5013 }
5014 
5015 // CHECK-LABEL: test_vmovq_n_p8
5016 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p8(poly8_t a)5017 poly8x16_t test_vmovq_n_p8(poly8_t a) {
5018   return vmovq_n_p8(a);
5019 }
5020 
5021 // CHECK-LABEL: test_vmovq_n_p16
5022 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p16(poly16_t a)5023 poly16x8_t test_vmovq_n_p16(poly16_t a) {
5024   return vmovq_n_p16(a);
5025 }
5026 
5027 // CHECK-LABEL: test_vmovq_n_f16
5028 // CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}}
test_vmovq_n_f16(float16_t * a)5029 float16x8_t test_vmovq_n_f16(float16_t *a) {
5030   return vmovq_n_f16(*a);
5031 }
5032 
5033 // CHECK-LABEL: test_vmovq_n_f32
5034 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_f32(float32_t a)5035 float32x4_t test_vmovq_n_f32(float32_t a) {
5036   return vmovq_n_f32(a);
5037 }
5038 
5039 // CHECK-LABEL: test_vmov_n_s64
5040 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5041 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_s64(int64_t a)5042 int64x1_t test_vmov_n_s64(int64_t a) {
5043   int64x1_t tmp = vmov_n_s64(a);
5044   return vadd_s64(tmp, tmp);
5045 }
5046 
5047 // CHECK-LABEL: test_vmov_n_u64
5048 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5049 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_u64(uint64_t a)5050 uint64x1_t test_vmov_n_u64(uint64_t a) {
5051   uint64x1_t tmp = vmov_n_u64(a);
5052   return vadd_u64(tmp, tmp);
5053 }
5054 
5055 // CHECK-LABEL: test_vmovq_n_s64
5056 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s64(int64_t a)5057 int64x2_t test_vmovq_n_s64(int64_t a) {
5058   return vmovq_n_s64(a);
5059 }
5060 
5061 // CHECK-LABEL: test_vmovq_n_u64
5062 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u64(uint64_t a)5063 uint64x2_t test_vmovq_n_u64(uint64_t a) {
5064   return vmovq_n_u64(a);
5065 }
5066 
5067 
5068 // CHECK-LABEL: test_vmul_s8
5069 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s8(int8x8_t a,int8x8_t b)5070 int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) {
5071   return vmul_s8(a, b);
5072 }
5073 
5074 // CHECK-LABEL: test_vmul_s16
5075 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s16(int16x4_t a,int16x4_t b)5076 int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) {
5077   return vmul_s16(a, b);
5078 }
5079 
5080 // CHECK-LABEL: test_vmul_s32
5081 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s32(int32x2_t a,int32x2_t b)5082 int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) {
5083   return vmul_s32(a, b);
5084 }
5085 
5086 // CHECK-LABEL: test_vmul_f32
5087 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_f32(float32x2_t a,float32x2_t b)5088 float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) {
5089   return vmul_f32(a, b);
5090 }
5091 
5092 // CHECK-LABEL: test_vmul_u8
5093 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u8(uint8x8_t a,uint8x8_t b)5094 uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) {
5095   return vmul_u8(a, b);
5096 }
5097 
5098 // CHECK-LABEL: test_vmul_u16
5099 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u16(uint16x4_t a,uint16x4_t b)5100 uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) {
5101   return vmul_u16(a, b);
5102 }
5103 
5104 // CHECK-LABEL: test_vmul_u32
5105 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u32(uint32x2_t a,uint32x2_t b)5106 uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) {
5107   return vmul_u32(a, b);
5108 }
5109 
5110 // CHECK-LABEL: test_vmulq_s8
5111 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s8(int8x16_t a,int8x16_t b)5112 int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) {
5113   return vmulq_s8(a, b);
5114 }
5115 
5116 // CHECK-LABEL: test_vmulq_s16
5117 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s16(int16x8_t a,int16x8_t b)5118 int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) {
5119   return vmulq_s16(a, b);
5120 }
5121 
5122 // CHECK-LABEL: test_vmulq_s32
5123 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s32(int32x4_t a,int32x4_t b)5124 int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) {
5125   return vmulq_s32(a, b);
5126 }
5127 
5128 // CHECK-LABEL: test_vmulq_f32
5129 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_f32(float32x4_t a,float32x4_t b)5130 float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) {
5131   return vmulq_f32(a, b);
5132 }
5133 
5134 // CHECK-LABEL: test_vmulq_u8
5135 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u8(uint8x16_t a,uint8x16_t b)5136 uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) {
5137   return vmulq_u8(a, b);
5138 }
5139 
5140 // CHECK-LABEL: test_vmulq_u16
5141 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u16(uint16x8_t a,uint16x8_t b)5142 uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) {
5143   return vmulq_u16(a, b);
5144 }
5145 
5146 // CHECK-LABEL: test_vmulq_u32
5147 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u32(uint32x4_t a,uint32x4_t b)5148 uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) {
5149   return vmulq_u32(a, b);
5150 }
5151 
5152 
5153 // CHECK-LABEL: test_vmull_s8
5154 // CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s8(int8x8_t a,int8x8_t b)5155 int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) {
5156   return vmull_s8(a, b);
5157 }
5158 
5159 // CHECK-LABEL: test_vmull_s16
5160 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s16(int16x4_t a,int16x4_t b)5161 int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) {
5162   return vmull_s16(a, b);
5163 }
5164 
5165 // CHECK-LABEL: test_vmull_s32
5166 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s32(int32x2_t a,int32x2_t b)5167 int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) {
5168   return vmull_s32(a, b);
5169 }
5170 
5171 // CHECK-LABEL: test_vmull_u8
5172 // CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u8(uint8x8_t a,uint8x8_t b)5173 uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) {
5174   return vmull_u8(a, b);
5175 }
5176 
5177 // CHECK-LABEL: test_vmull_u16
5178 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u16(uint16x4_t a,uint16x4_t b)5179 uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) {
5180   return vmull_u16(a, b);
5181 }
5182 
5183 // CHECK-LABEL: test_vmull_u32
5184 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u32(uint32x2_t a,uint32x2_t b)5185 uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) {
5186   return vmull_u32(a, b);
5187 }
5188 
5189 // CHECK-LABEL: test_vmull_p8
5190 // CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_p8(poly8x8_t a,poly8x8_t b)5191 poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) {
5192   return vmull_p8(a, b);
5193 }
5194 
5195 
5196 // CHECK-LABEL: test_vmull_lane_s16
5197 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s16(int16x4_t a,int16x4_t b)5198 int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) {
5199   return vmull_lane_s16(a, b, 3);
5200 }
5201 
5202 // CHECK-LABEL: test_vmull_lane_s32
5203 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s32(int32x2_t a,int32x2_t b)5204 int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) {
5205   return vmull_lane_s32(a, b, 1);
5206 }
5207 
5208 // CHECK-LABEL: test_vmull_lane_u16
5209 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u16(uint16x4_t a,uint16x4_t b)5210 uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) {
5211   return vmull_lane_u16(a, b, 3);
5212 }
5213 
5214 // CHECK-LABEL: test_vmull_lane_u32
5215 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u32(uint32x2_t a,uint32x2_t b)5216 uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) {
5217   return vmull_lane_u32(a, b, 1);
5218 }
5219 
5220 
5221 // CHECK-LABEL: test_vmull_n_s16
5222 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s16(int16x4_t a,int16_t b)5223 int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
5224   return vmull_n_s16(a, b);
5225 }
5226 
5227 // CHECK-LABEL: test_vmull_n_s32
5228 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s32(int32x2_t a,int32_t b)5229 int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
5230   return vmull_n_s32(a, b);
5231 }
5232 
5233 // CHECK-LABEL: test_vmull_n_u16
5234 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u16(uint16x4_t a,uint16_t b)5235 uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
5236   return vmull_n_u16(a, b);
5237 }
5238 
5239 // CHECK-LABEL: test_vmull_n_u32
5240 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u32(uint32x2_t a,uint32_t b)5241 uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
5242   return vmull_n_u32(a, b);
5243 }
5244 
5245 
5246 // CHECK-LABEL: test_vmul_p8
5247 // CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_p8(poly8x8_t a,poly8x8_t b)5248 poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) {
5249   return vmul_p8(a, b);
5250 }
5251 
5252 // CHECK-LABEL: test_vmulq_p8
5253 // CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_p8(poly8x16_t a,poly8x16_t b)5254 poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) {
5255   return vmulq_p8(a, b);
5256 }
5257 
5258 
5259 // CHECK-LABEL: test_vmul_lane_s16
5260 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s16(int16x4_t a,int16x4_t b)5261 int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) {
5262   return vmul_lane_s16(a, b, 3);
5263 }
5264 
5265 // CHECK-LABEL: test_vmul_lane_s32
5266 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s32(int32x2_t a,int32x2_t b)5267 int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) {
5268   return vmul_lane_s32(a, b, 1);
5269 }
5270 
5271 // CHECK-LABEL: test_vmul_lane_f32
5272 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_f32(float32x2_t a,float32x2_t b)5273 float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) {
5274   return vmul_lane_f32(a, b, 1);
5275 }
5276 
5277 // CHECK-LABEL: test_vmul_lane_u16
5278 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u16(uint16x4_t a,uint16x4_t b)5279 uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) {
5280   return vmul_lane_u16(a, b, 3);
5281 }
5282 
5283 // CHECK-LABEL: test_vmul_lane_u32
5284 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u32(uint32x2_t a,uint32x2_t b)5285 uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) {
5286   return vmul_lane_u32(a, b, 1);
5287 }
5288 
5289 // CHECK-LABEL: test_vmulq_lane_s16
5290 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s16(int16x8_t a,int16x4_t b)5291 int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) {
5292   return vmulq_lane_s16(a, b, 3);
5293 }
5294 
5295 // CHECK-LABEL: test_vmulq_lane_s32
5296 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s32(int32x4_t a,int32x2_t b)5297 int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) {
5298   return vmulq_lane_s32(a, b, 1);
5299 }
5300 
5301 // CHECK-LABEL: test_vmulq_lane_f32
5302 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_f32(float32x4_t a,float32x2_t b)5303 float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) {
5304   return vmulq_lane_f32(a, b, 1);
5305 }
5306 
5307 // CHECK-LABEL: test_vmulq_lane_u16
5308 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u16(uint16x8_t a,uint16x4_t b)5309 uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) {
5310   return vmulq_lane_u16(a, b, 3);
5311 }
5312 
5313 // CHECK-LABEL: test_vmulq_lane_u32
5314 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u32(uint32x4_t a,uint32x2_t b)5315 uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) {
5316   return vmulq_lane_u32(a, b, 1);
5317 }
5318 
5319 
5320 // CHECK-LABEL: test_vmul_n_s16
5321 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s16(int16x4_t a,int16_t b)5322 int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
5323   return vmul_n_s16(a, b);
5324 }
5325 
5326 // CHECK-LABEL: test_vmul_n_s32
5327 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s32(int32x2_t a,int32_t b)5328 int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
5329   return vmul_n_s32(a, b);
5330 }
5331 
5332 // CHECK-LABEL: test_vmul_n_f32
5333 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_f32(float32x2_t a,float32_t b)5334 float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
5335   return vmul_n_f32(a, b);
5336 }
5337 
5338 // CHECK-LABEL: test_vmul_n_u16
5339 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u16(uint16x4_t a,uint16_t b)5340 uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
5341   return vmul_n_u16(a, b);
5342 }
5343 
5344 // CHECK-LABEL: test_vmul_n_u32
5345 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u32(uint32x2_t a,uint32_t b)5346 uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
5347   return vmul_n_u32(a, b);
5348 }
5349 
5350 // CHECK-LABEL: test_vmulq_n_s16
5351 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s16(int16x8_t a,int16_t b)5352 int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
5353   return vmulq_n_s16(a, b);
5354 }
5355 
5356 // CHECK-LABEL: test_vmulq_n_s32
5357 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s32(int32x4_t a,int32_t b)5358 int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
5359   return vmulq_n_s32(a, b);
5360 }
5361 
5362 // CHECK-LABEL: test_vmulq_n_f32
5363 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
test_vmulq_n_f32(float32x4_t a,float32_t b)5364 float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
5365   return vmulq_n_f32(a, b);
5366 }
5367 
5368 // CHECK-LABEL: test_vmulq_n_u16
5369 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u16(uint16x8_t a,uint16_t b)5370 uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
5371   return vmulq_n_u16(a, b);
5372 }
5373 
5374 // CHECK-LABEL: test_vmulq_n_u32
5375 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u32(uint32x4_t a,uint32_t b)5376 uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
5377   return vmulq_n_u32(a, b);
5378 }
5379 
5380 
5381 // CHECK-LABEL: test_vmvn_s8
5382 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s8(int8x8_t a)5383 int8x8_t test_vmvn_s8(int8x8_t a) {
5384   return vmvn_s8(a);
5385 }
5386 
5387 // CHECK-LABEL: test_vmvn_s16
5388 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s16(int16x4_t a)5389 int16x4_t test_vmvn_s16(int16x4_t a) {
5390   return vmvn_s16(a);
5391 }
5392 
5393 // CHECK-LABEL: test_vmvn_s32
5394 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s32(int32x2_t a)5395 int32x2_t test_vmvn_s32(int32x2_t a) {
5396   return vmvn_s32(a);
5397 }
5398 
5399 // CHECK-LABEL: test_vmvn_u8
5400 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u8(uint8x8_t a)5401 uint8x8_t test_vmvn_u8(uint8x8_t a) {
5402   return vmvn_u8(a);
5403 }
5404 
5405 // CHECK-LABEL: test_vmvn_u16
5406 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u16(uint16x4_t a)5407 uint16x4_t test_vmvn_u16(uint16x4_t a) {
5408   return vmvn_u16(a);
5409 }
5410 
5411 // CHECK-LABEL: test_vmvn_u32
5412 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u32(uint32x2_t a)5413 uint32x2_t test_vmvn_u32(uint32x2_t a) {
5414   return vmvn_u32(a);
5415 }
5416 
5417 // CHECK-LABEL: test_vmvn_p8
5418 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_p8(poly8x8_t a)5419 poly8x8_t test_vmvn_p8(poly8x8_t a) {
5420   return vmvn_p8(a);
5421 }
5422 
5423 // CHECK-LABEL: test_vmvnq_s8
5424 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s8(int8x16_t a)5425 int8x16_t test_vmvnq_s8(int8x16_t a) {
5426   return vmvnq_s8(a);
5427 }
5428 
5429 // CHECK-LABEL: test_vmvnq_s16
5430 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s16(int16x8_t a)5431 int16x8_t test_vmvnq_s16(int16x8_t a) {
5432   return vmvnq_s16(a);
5433 }
5434 
5435 // CHECK-LABEL: test_vmvnq_s32
5436 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s32(int32x4_t a)5437 int32x4_t test_vmvnq_s32(int32x4_t a) {
5438   return vmvnq_s32(a);
5439 }
5440 
5441 // CHECK-LABEL: test_vmvnq_u8
5442 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u8(uint8x16_t a)5443 uint8x16_t test_vmvnq_u8(uint8x16_t a) {
5444   return vmvnq_u8(a);
5445 }
5446 
5447 // CHECK-LABEL: test_vmvnq_u16
5448 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u16(uint16x8_t a)5449 uint16x8_t test_vmvnq_u16(uint16x8_t a) {
5450   return vmvnq_u16(a);
5451 }
5452 
5453 // CHECK-LABEL: test_vmvnq_u32
5454 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u32(uint32x4_t a)5455 uint32x4_t test_vmvnq_u32(uint32x4_t a) {
5456   return vmvnq_u32(a);
5457 }
5458 
5459 // CHECK-LABEL: test_vmvnq_p8
5460 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_p8(poly8x16_t a)5461 poly8x16_t test_vmvnq_p8(poly8x16_t a) {
5462   return vmvnq_p8(a);
5463 }
5464 
5465 
5466 // CHECK-LABEL: test_vneg_s8
5467 // CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s8(int8x8_t a)5468 int8x8_t test_vneg_s8(int8x8_t a) {
5469   return vneg_s8(a);
5470 }
5471 
5472 // CHECK-LABEL: test_vneg_s16
5473 // CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s16(int16x4_t a)5474 int16x4_t test_vneg_s16(int16x4_t a) {
5475   return vneg_s16(a);
5476 }
5477 
5478 // CHECK-LABEL: test_vneg_s32
5479 // CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s32(int32x2_t a)5480 int32x2_t test_vneg_s32(int32x2_t a) {
5481   return vneg_s32(a);
5482 }
5483 
5484 // CHECK-LABEL: test_vneg_f32
5485 // CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_f32(float32x2_t a)5486 float32x2_t test_vneg_f32(float32x2_t a) {
5487   return vneg_f32(a);
5488 }
5489 
5490 // CHECK-LABEL: test_vnegq_s8
5491 // CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s8(int8x16_t a)5492 int8x16_t test_vnegq_s8(int8x16_t a) {
5493   return vnegq_s8(a);
5494 }
5495 
5496 // CHECK-LABEL: test_vnegq_s16
5497 // CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s16(int16x8_t a)5498 int16x8_t test_vnegq_s16(int16x8_t a) {
5499   return vnegq_s16(a);
5500 }
5501 
5502 // CHECK-LABEL: test_vnegq_s32
5503 // CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s32(int32x4_t a)5504 int32x4_t test_vnegq_s32(int32x4_t a) {
5505   return vnegq_s32(a);
5506 }
5507 
5508 // CHECK-LABEL: test_vnegq_f32
5509 // CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_f32(float32x4_t a)5510 float32x4_t test_vnegq_f32(float32x4_t a) {
5511   return vnegq_f32(a);
5512 }
5513 
5514 
5515 // CHECK-LABEL: test_vorn_s8
5516 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s8(int8x8_t a,int8x8_t b)5517 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
5518   return vorn_s8(a, b);
5519 }
5520 
5521 // CHECK-LABEL: test_vorn_s16
5522 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s16(int16x4_t a,int16x4_t b)5523 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
5524   return vorn_s16(a, b);
5525 }
5526 
5527 // CHECK-LABEL: test_vorn_s32
5528 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s32(int32x2_t a,int32x2_t b)5529 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
5530   return vorn_s32(a, b);
5531 }
5532 
5533 // CHECK-LABEL: test_vorn_s64
5534 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s64(int64x1_t a,int64x1_t b)5535 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
5536   return vorn_s64(a, b);
5537 }
5538 
5539 // CHECK-LABEL: test_vorn_u8
5540 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u8(uint8x8_t a,uint8x8_t b)5541 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
5542   return vorn_u8(a, b);
5543 }
5544 
5545 // CHECK-LABEL: test_vorn_u16
5546 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u16(uint16x4_t a,uint16x4_t b)5547 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
5548   return vorn_u16(a, b);
5549 }
5550 
5551 // CHECK-LABEL: test_vorn_u32
5552 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u32(uint32x2_t a,uint32x2_t b)5553 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
5554   return vorn_u32(a, b);
5555 }
5556 
5557 // CHECK-LABEL: test_vorn_u64
5558 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u64(uint64x1_t a,uint64x1_t b)5559 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
5560   return vorn_u64(a, b);
5561 }
5562 
5563 // CHECK-LABEL: test_vornq_s8
5564 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s8(int8x16_t a,int8x16_t b)5565 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
5566   return vornq_s8(a, b);
5567 }
5568 
5569 // CHECK-LABEL: test_vornq_s16
5570 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s16(int16x8_t a,int16x8_t b)5571 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
5572   return vornq_s16(a, b);
5573 }
5574 
5575 // CHECK-LABEL: test_vornq_s32
5576 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s32(int32x4_t a,int32x4_t b)5577 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
5578   return vornq_s32(a, b);
5579 }
5580 
5581 // CHECK-LABEL: test_vornq_s64
5582 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s64(int64x2_t a,int64x2_t b)5583 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
5584   return vornq_s64(a, b);
5585 }
5586 
5587 // CHECK-LABEL: test_vornq_u8
5588 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u8(uint8x16_t a,uint8x16_t b)5589 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
5590   return vornq_u8(a, b);
5591 }
5592 
5593 // CHECK-LABEL: test_vornq_u16
5594 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u16(uint16x8_t a,uint16x8_t b)5595 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
5596   return vornq_u16(a, b);
5597 }
5598 
5599 // CHECK-LABEL: test_vornq_u32
5600 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u32(uint32x4_t a,uint32x4_t b)5601 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
5602   return vornq_u32(a, b);
5603 }
5604 
5605 // CHECK-LABEL: test_vornq_u64
5606 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u64(uint64x2_t a,uint64x2_t b)5607 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
5608   return vornq_u64(a, b);
5609 }
5610 
5611 
5612 // CHECK-LABEL: test_vorr_s8
5613 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s8(int8x8_t a,int8x8_t b)5614 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
5615   return vorr_s8(a, b);
5616 }
5617 
5618 // CHECK-LABEL: test_vorr_s16
5619 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s16(int16x4_t a,int16x4_t b)5620 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
5621   return vorr_s16(a, b);
5622 }
5623 
5624 // CHECK-LABEL: test_vorr_s32
5625 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s32(int32x2_t a,int32x2_t b)5626 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
5627   return vorr_s32(a, b);
5628 }
5629 
5630 // CHECK-LABEL: test_vorr_s64
5631 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s64(int64x1_t a,int64x1_t b)5632 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
5633   return vorr_s64(a, b);
5634 }
5635 
5636 // CHECK-LABEL: test_vorr_u8
5637 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u8(uint8x8_t a,uint8x8_t b)5638 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
5639   return vorr_u8(a, b);
5640 }
5641 
5642 // CHECK-LABEL: test_vorr_u16
5643 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u16(uint16x4_t a,uint16x4_t b)5644 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
5645   return vorr_u16(a, b);
5646 }
5647 
5648 // CHECK-LABEL: test_vorr_u32
5649 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u32(uint32x2_t a,uint32x2_t b)5650 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
5651   return vorr_u32(a, b);
5652 }
5653 
5654 // CHECK-LABEL: test_vorr_u64
5655 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u64(uint64x1_t a,uint64x1_t b)5656 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
5657   return vorr_u64(a, b);
5658 }
5659 
5660 // CHECK-LABEL: test_vorrq_s8
5661 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s8(int8x16_t a,int8x16_t b)5662 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
5663   return vorrq_s8(a, b);
5664 }
5665 
5666 // CHECK-LABEL: test_vorrq_s16
5667 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s16(int16x8_t a,int16x8_t b)5668 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
5669   return vorrq_s16(a, b);
5670 }
5671 
5672 // CHECK-LABEL: test_vorrq_s32
5673 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s32(int32x4_t a,int32x4_t b)5674 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
5675   return vorrq_s32(a, b);
5676 }
5677 
5678 // CHECK-LABEL: test_vorrq_s64
5679 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s64(int64x2_t a,int64x2_t b)5680 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
5681   return vorrq_s64(a, b);
5682 }
5683 
5684 // CHECK-LABEL: test_vorrq_u8
5685 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u8(uint8x16_t a,uint8x16_t b)5686 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
5687   return vorrq_u8(a, b);
5688 }
5689 
5690 // CHECK-LABEL: test_vorrq_u16
5691 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u16(uint16x8_t a,uint16x8_t b)5692 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
5693   return vorrq_u16(a, b);
5694 }
5695 
5696 // CHECK-LABEL: test_vorrq_u32
5697 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u32(uint32x4_t a,uint32x4_t b)5698 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
5699   return vorrq_u32(a, b);
5700 }
5701 
5702 // CHECK-LABEL: test_vorrq_u64
5703 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u64(uint64x2_t a,uint64x2_t b)5704 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
5705   return vorrq_u64(a, b);
5706 }
5707 
5708 
5709 // CHECK-LABEL: test_vpadal_s8
5710 // CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s8(int16x4_t a,int8x8_t b)5711 int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) {
5712   return vpadal_s8(a, b);
5713 }
5714 
5715 // CHECK-LABEL: test_vpadal_s16
5716 // CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s16(int32x2_t a,int16x4_t b)5717 int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) {
5718   return vpadal_s16(a, b);
5719 }
5720 
5721 // CHECK-LABEL: test_vpadal_s32
5722 // CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s32(int64x1_t a,int32x2_t b)5723 int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) {
5724   return vpadal_s32(a, b);
5725 }
5726 
5727 // CHECK-LABEL: test_vpadal_u8
5728 // CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u8(uint16x4_t a,uint8x8_t b)5729 uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) {
5730   return vpadal_u8(a, b);
5731 }
5732 
5733 // CHECK-LABEL: test_vpadal_u16
5734 // CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u16(uint32x2_t a,uint16x4_t b)5735 uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) {
5736   return vpadal_u16(a, b);
5737 }
5738 
5739 // CHECK-LABEL: test_vpadal_u32
5740 // CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u32(uint64x1_t a,uint32x2_t b)5741 uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) {
5742   return vpadal_u32(a, b);
5743 }
5744 
5745 // CHECK-LABEL: test_vpadalq_s8
5746 // CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s8(int16x8_t a,int8x16_t b)5747 int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) {
5748   return vpadalq_s8(a, b);
5749 }
5750 
5751 // CHECK-LABEL: test_vpadalq_s16
5752 // CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s16(int32x4_t a,int16x8_t b)5753 int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) {
5754   return vpadalq_s16(a, b);
5755 }
5756 
5757 // CHECK-LABEL: test_vpadalq_s32
5758 // CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s32(int64x2_t a,int32x4_t b)5759 int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) {
5760   return vpadalq_s32(a, b);
5761 }
5762 
5763 // CHECK-LABEL: test_vpadalq_u8
5764 // CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u8(uint16x8_t a,uint8x16_t b)5765 uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) {
5766   return vpadalq_u8(a, b);
5767 }
5768 
5769 // CHECK-LABEL: test_vpadalq_u16
5770 // CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u16(uint32x4_t a,uint16x8_t b)5771 uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) {
5772   return vpadalq_u16(a, b);
5773 }
5774 
5775 // CHECK-LABEL: test_vpadalq_u32
5776 // CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u32(uint64x2_t a,uint32x4_t b)5777 uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) {
5778   return vpadalq_u32(a, b);
5779 }
5780 
5781 
5782 // CHECK-LABEL: test_vpadd_s8
5783 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s8(int8x8_t a,int8x8_t b)5784 int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) {
5785   return vpadd_s8(a, b);
5786 }
5787 
5788 // CHECK-LABEL: test_vpadd_s16
5789 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s16(int16x4_t a,int16x4_t b)5790 int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) {
5791   return vpadd_s16(a, b);
5792 }
5793 
5794 // CHECK-LABEL: test_vpadd_s32
5795 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s32(int32x2_t a,int32x2_t b)5796 int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) {
5797   return vpadd_s32(a, b);
5798 }
5799 
5800 // CHECK-LABEL: test_vpadd_u8
5801 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u8(uint8x8_t a,uint8x8_t b)5802 uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) {
5803   return vpadd_u8(a, b);
5804 }
5805 
5806 // CHECK-LABEL: test_vpadd_u16
5807 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u16(uint16x4_t a,uint16x4_t b)5808 uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) {
5809   return vpadd_u16(a, b);
5810 }
5811 
5812 // CHECK-LABEL: test_vpadd_u32
5813 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u32(uint32x2_t a,uint32x2_t b)5814 uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) {
5815   return vpadd_u32(a, b);
5816 }
5817 
5818 // CHECK-LABEL: test_vpadd_f32
5819 // CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_f32(float32x2_t a,float32x2_t b)5820 float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) {
5821   return vpadd_f32(a, b);
5822 }
5823 
5824 
5825 // CHECK-LABEL: test_vpaddl_s8
5826 // CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s8(int8x8_t a)5827 int16x4_t test_vpaddl_s8(int8x8_t a) {
5828   return vpaddl_s8(a);
5829 }
5830 
5831 // CHECK-LABEL: test_vpaddl_s16
5832 // CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s16(int16x4_t a)5833 int32x2_t test_vpaddl_s16(int16x4_t a) {
5834   return vpaddl_s16(a);
5835 }
5836 
5837 // CHECK-LABEL: test_vpaddl_s32
5838 // CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s32(int32x2_t a)5839 int64x1_t test_vpaddl_s32(int32x2_t a) {
5840   return vpaddl_s32(a);
5841 }
5842 
5843 // CHECK-LABEL: test_vpaddl_u8
5844 // CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u8(uint8x8_t a)5845 uint16x4_t test_vpaddl_u8(uint8x8_t a) {
5846   return vpaddl_u8(a);
5847 }
5848 
5849 // CHECK-LABEL: test_vpaddl_u16
5850 // CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u16(uint16x4_t a)5851 uint32x2_t test_vpaddl_u16(uint16x4_t a) {
5852   return vpaddl_u16(a);
5853 }
5854 
5855 // CHECK-LABEL: test_vpaddl_u32
5856 // CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u32(uint32x2_t a)5857 uint64x1_t test_vpaddl_u32(uint32x2_t a) {
5858   return vpaddl_u32(a);
5859 }
5860 
5861 // CHECK-LABEL: test_vpaddlq_s8
5862 // CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s8(int8x16_t a)5863 int16x8_t test_vpaddlq_s8(int8x16_t a) {
5864   return vpaddlq_s8(a);
5865 }
5866 
5867 // CHECK-LABEL: test_vpaddlq_s16
5868 // CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s16(int16x8_t a)5869 int32x4_t test_vpaddlq_s16(int16x8_t a) {
5870   return vpaddlq_s16(a);
5871 }
5872 
5873 // CHECK-LABEL: test_vpaddlq_s32
5874 // CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s32(int32x4_t a)5875 int64x2_t test_vpaddlq_s32(int32x4_t a) {
5876   return vpaddlq_s32(a);
5877 }
5878 
5879 // CHECK-LABEL: test_vpaddlq_u8
5880 // CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u8(uint8x16_t a)5881 uint16x8_t test_vpaddlq_u8(uint8x16_t a) {
5882   return vpaddlq_u8(a);
5883 }
5884 
5885 // CHECK-LABEL: test_vpaddlq_u16
5886 // CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u16(uint16x8_t a)5887 uint32x4_t test_vpaddlq_u16(uint16x8_t a) {
5888   return vpaddlq_u16(a);
5889 }
5890 
5891 // CHECK-LABEL: test_vpaddlq_u32
5892 // CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u32(uint32x4_t a)5893 uint64x2_t test_vpaddlq_u32(uint32x4_t a) {
5894   return vpaddlq_u32(a);
5895 }
5896 
5897 
5898 // CHECK-LABEL: test_vpmax_s8
5899 // CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s8(int8x8_t a,int8x8_t b)5900 int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) {
5901   return vpmax_s8(a, b);
5902 }
5903 
5904 // CHECK-LABEL: test_vpmax_s16
5905 // CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s16(int16x4_t a,int16x4_t b)5906 int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) {
5907   return vpmax_s16(a, b);
5908 }
5909 
5910 // CHECK-LABEL: test_vpmax_s32
5911 // CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s32(int32x2_t a,int32x2_t b)5912 int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) {
5913   return vpmax_s32(a, b);
5914 }
5915 
5916 // CHECK-LABEL: test_vpmax_u8
5917 // CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u8(uint8x8_t a,uint8x8_t b)5918 uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) {
5919   return vpmax_u8(a, b);
5920 }
5921 
5922 // CHECK-LABEL: test_vpmax_u16
5923 // CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u16(uint16x4_t a,uint16x4_t b)5924 uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) {
5925   return vpmax_u16(a, b);
5926 }
5927 
5928 // CHECK-LABEL: test_vpmax_u32
5929 // CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u32(uint32x2_t a,uint32x2_t b)5930 uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) {
5931   return vpmax_u32(a, b);
5932 }
5933 
5934 // CHECK-LABEL: test_vpmax_f32
5935 // CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_f32(float32x2_t a,float32x2_t b)5936 float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) {
5937   return vpmax_f32(a, b);
5938 }
5939 
5940 
5941 // CHECK-LABEL: test_vpmin_s8
5942 // CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s8(int8x8_t a,int8x8_t b)5943 int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) {
5944   return vpmin_s8(a, b);
5945 }
5946 
5947 // CHECK-LABEL: test_vpmin_s16
5948 // CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s16(int16x4_t a,int16x4_t b)5949 int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) {
5950   return vpmin_s16(a, b);
5951 }
5952 
5953 // CHECK-LABEL: test_vpmin_s32
5954 // CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s32(int32x2_t a,int32x2_t b)5955 int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) {
5956   return vpmin_s32(a, b);
5957 }
5958 
5959 // CHECK-LABEL: test_vpmin_u8
5960 // CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u8(uint8x8_t a,uint8x8_t b)5961 uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) {
5962   return vpmin_u8(a, b);
5963 }
5964 
5965 // CHECK-LABEL: test_vpmin_u16
5966 // CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u16(uint16x4_t a,uint16x4_t b)5967 uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) {
5968   return vpmin_u16(a, b);
5969 }
5970 
5971 // CHECK-LABEL: test_vpmin_u32
5972 // CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u32(uint32x2_t a,uint32x2_t b)5973 uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) {
5974   return vpmin_u32(a, b);
5975 }
5976 
5977 // CHECK-LABEL: test_vpmin_f32
5978 // CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_f32(float32x2_t a,float32x2_t b)5979 float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) {
5980   return vpmin_f32(a, b);
5981 }
5982 
5983 
5984 // CHECK-LABEL: test_vqabs_s8
5985 // CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s8(int8x8_t a)5986 int8x8_t test_vqabs_s8(int8x8_t a) {
5987   return vqabs_s8(a);
5988 }
5989 
5990 // CHECK-LABEL: test_vqabs_s16
5991 // CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s16(int16x4_t a)5992 int16x4_t test_vqabs_s16(int16x4_t a) {
5993   return vqabs_s16(a);
5994 }
5995 
5996 // CHECK-LABEL: test_vqabs_s32
5997 // CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s32(int32x2_t a)5998 int32x2_t test_vqabs_s32(int32x2_t a) {
5999   return vqabs_s32(a);
6000 }
6001 
6002 // CHECK-LABEL: test_vqabsq_s8
6003 // CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s8(int8x16_t a)6004 int8x16_t test_vqabsq_s8(int8x16_t a) {
6005   return vqabsq_s8(a);
6006 }
6007 
6008 // CHECK-LABEL: test_vqabsq_s16
6009 // CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s16(int16x8_t a)6010 int16x8_t test_vqabsq_s16(int16x8_t a) {
6011   return vqabsq_s16(a);
6012 }
6013 
6014 // CHECK-LABEL: test_vqabsq_s32
6015 // CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s32(int32x4_t a)6016 int32x4_t test_vqabsq_s32(int32x4_t a) {
6017   return vqabsq_s32(a);
6018 }
6019 
6020 
6021 // CHECK-LABEL: test_vqadd_s8
6022 // CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s8(int8x8_t a,int8x8_t b)6023 int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) {
6024   return vqadd_s8(a, b);
6025 }
6026 
6027 // CHECK-LABEL: test_vqadd_s16
6028 // CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s16(int16x4_t a,int16x4_t b)6029 int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) {
6030   return vqadd_s16(a, b);
6031 }
6032 
6033 // CHECK-LABEL: test_vqadd_s32
6034 // CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s32(int32x2_t a,int32x2_t b)6035 int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) {
6036   return vqadd_s32(a, b);
6037 }
6038 
6039 // CHECK-LABEL: test_vqadd_s64
6040 // CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s64(int64x1_t a,int64x1_t b)6041 int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) {
6042   return vqadd_s64(a, b);
6043 }
6044 
6045 // CHECK-LABEL: test_vqadd_u8
6046 // CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u8(uint8x8_t a,uint8x8_t b)6047 uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) {
6048   return vqadd_u8(a, b);
6049 }
6050 
6051 // CHECK-LABEL: test_vqadd_u16
6052 // CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u16(uint16x4_t a,uint16x4_t b)6053 uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) {
6054   return vqadd_u16(a, b);
6055 }
6056 
6057 // CHECK-LABEL: test_vqadd_u32
6058 // CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u32(uint32x2_t a,uint32x2_t b)6059 uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) {
6060   return vqadd_u32(a, b);
6061 }
6062 
6063 // CHECK-LABEL: test_vqadd_u64
6064 // CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u64(uint64x1_t a,uint64x1_t b)6065 uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) {
6066   return vqadd_u64(a, b);
6067 }
6068 
6069 // CHECK-LABEL: test_vqaddq_s8
6070 // CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s8(int8x16_t a,int8x16_t b)6071 int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) {
6072   return vqaddq_s8(a, b);
6073 }
6074 
6075 // CHECK-LABEL: test_vqaddq_s16
6076 // CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s16(int16x8_t a,int16x8_t b)6077 int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) {
6078   return vqaddq_s16(a, b);
6079 }
6080 
6081 // CHECK-LABEL: test_vqaddq_s32
6082 // CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s32(int32x4_t a,int32x4_t b)6083 int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) {
6084   return vqaddq_s32(a, b);
6085 }
6086 
6087 // CHECK-LABEL: test_vqaddq_s64
6088 // CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s64(int64x2_t a,int64x2_t b)6089 int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) {
6090   return vqaddq_s64(a, b);
6091 }
6092 
6093 // CHECK-LABEL: test_vqaddq_u8
6094 // CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u8(uint8x16_t a,uint8x16_t b)6095 uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) {
6096   return vqaddq_u8(a, b);
6097 }
6098 
6099 // CHECK-LABEL: test_vqaddq_u16
6100 // CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u16(uint16x8_t a,uint16x8_t b)6101 uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) {
6102   return vqaddq_u16(a, b);
6103 }
6104 
6105 // CHECK-LABEL: test_vqaddq_u32
6106 // CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u32(uint32x4_t a,uint32x4_t b)6107 uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) {
6108   return vqaddq_u32(a, b);
6109 }
6110 
6111 // CHECK-LABEL: test_vqaddq_u64
6112 // CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u64(uint64x2_t a,uint64x2_t b)6113 uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) {
6114   return vqaddq_u64(a, b);
6115 }
6116 
6117 
6118 // CHECK-LABEL: test_vqdmlal_s16
6119 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6120 int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6121   return vqdmlal_s16(a, b, c);
6122 }
6123 
6124 // CHECK-LABEL: test_vqdmlal_s32
6125 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6126 int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6127   return vqdmlal_s32(a, b, c);
6128 }
6129 
6130 
6131 // CHECK-LABEL: test_vqdmlal_lane_s16
6132 // 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)6133 int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6134   return vqdmlal_lane_s16(a, b, c, 3);
6135 }
6136 
6137 // CHECK-LABEL: test_vqdmlal_lane_s32
6138 // 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)6139 int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6140   return vqdmlal_lane_s32(a, b, c, 1);
6141 }
6142 
6143 
6144 // CHECK-LABEL: test_vqdmlal_n_s16
6145 // 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)6146 int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6147   return vqdmlal_n_s16(a, b, c);
6148 }
6149 
6150 // CHECK-LABEL: test_vqdmlal_n_s32
6151 // 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)6152 int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6153   return vqdmlal_n_s32(a, b, c);
6154 }
6155 
6156 
6157 // CHECK-LABEL: test_vqdmlsl_s16
6158 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)6159 int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6160   return vqdmlsl_s16(a, b, c);
6161 }
6162 
6163 // CHECK-LABEL: test_vqdmlsl_s32
6164 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)6165 int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6166   return vqdmlsl_s32(a, b, c);
6167 }
6168 
6169 
6170 // CHECK-LABEL: test_vqdmlsl_lane_s16
6171 // 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)6172 int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6173   return vqdmlsl_lane_s16(a, b, c, 3);
6174 }
6175 
6176 // CHECK-LABEL: test_vqdmlsl_lane_s32
6177 // 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)6178 int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6179   return vqdmlsl_lane_s32(a, b, c, 1);
6180 }
6181 
6182 
6183 // CHECK-LABEL: test_vqdmlsl_n_s16
6184 // 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)6185 int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6186   return vqdmlsl_n_s16(a, b, c);
6187 }
6188 
6189 // CHECK-LABEL: test_vqdmlsl_n_s32
6190 // 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)6191 int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6192   return vqdmlsl_n_s32(a, b, c);
6193 }
6194 
6195 
6196 // CHECK-LABEL: test_vqdmulh_s16
6197 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s16(int16x4_t a,int16x4_t b)6198 int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) {
6199   return vqdmulh_s16(a, b);
6200 }
6201 
6202 // CHECK-LABEL: test_vqdmulh_s32
6203 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s32(int32x2_t a,int32x2_t b)6204 int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) {
6205   return vqdmulh_s32(a, b);
6206 }
6207 
6208 // CHECK-LABEL: test_vqdmulhq_s16
6209 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s16(int16x8_t a,int16x8_t b)6210 int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) {
6211   return vqdmulhq_s16(a, b);
6212 }
6213 
6214 // CHECK-LABEL: test_vqdmulhq_s32
6215 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s32(int32x4_t a,int32x4_t b)6216 int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) {
6217   return vqdmulhq_s32(a, b);
6218 }
6219 
6220 
6221 // CHECK-LABEL: test_vqdmulh_lane_s16
6222 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s16(int16x4_t a,int16x4_t b)6223 int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6224   return vqdmulh_lane_s16(a, b, 3);
6225 }
6226 
6227 // CHECK-LABEL: test_vqdmulh_lane_s32
6228 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s32(int32x2_t a,int32x2_t b)6229 int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6230   return vqdmulh_lane_s32(a, b, 1);
6231 }
6232 
6233 // CHECK-LABEL: test_vqdmulhq_lane_s16
6234 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s16(int16x8_t a,int16x4_t b)6235 int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6236   return vqdmulhq_lane_s16(a, b, 3);
6237 }
6238 
6239 // CHECK-LABEL: test_vqdmulhq_lane_s32
6240 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s32(int32x4_t a,int32x2_t b)6241 int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6242   return vqdmulhq_lane_s32(a, b, 1);
6243 }
6244 
6245 
6246 // CHECK-LABEL: test_vqdmulh_n_s16
6247 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s16(int16x4_t a,int16_t b)6248 int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
6249   return vqdmulh_n_s16(a, b);
6250 }
6251 
6252 // CHECK-LABEL: test_vqdmulh_n_s32
6253 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s32(int32x2_t a,int32_t b)6254 int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
6255   return vqdmulh_n_s32(a, b);
6256 }
6257 
6258 // CHECK-LABEL: test_vqdmulhq_n_s16
6259 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s16(int16x8_t a,int16_t b)6260 int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
6261   return vqdmulhq_n_s16(a, b);
6262 }
6263 
6264 // CHECK-LABEL: test_vqdmulhq_n_s32
6265 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s32(int32x4_t a,int32_t b)6266 int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
6267   return vqdmulhq_n_s32(a, b);
6268 }
6269 
6270 
6271 // CHECK-LABEL: test_vqdmull_s16
6272 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s16(int16x4_t a,int16x4_t b)6273 int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) {
6274   return vqdmull_s16(a, b);
6275 }
6276 
6277 // CHECK-LABEL: test_vqdmull_s32
6278 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s32(int32x2_t a,int32x2_t b)6279 int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) {
6280   return vqdmull_s32(a, b);
6281 }
6282 
6283 
6284 // CHECK-LABEL: test_vqdmull_lane_s16
6285 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s16(int16x4_t a,int16x4_t b)6286 int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) {
6287   return vqdmull_lane_s16(a, b, 3);
6288 }
6289 
6290 // CHECK-LABEL: test_vqdmull_lane_s32
6291 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s32(int32x2_t a,int32x2_t b)6292 int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) {
6293   return vqdmull_lane_s32(a, b, 1);
6294 }
6295 
6296 
6297 // CHECK-LABEL: test_vqdmull_n_s16
6298 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s16(int16x4_t a,int16_t b)6299 int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
6300   return vqdmull_n_s16(a, b);
6301 }
6302 
6303 // CHECK-LABEL: test_vqdmull_n_s32
6304 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s32(int32x2_t a,int32_t b)6305 int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
6306   return vqdmull_n_s32(a, b);
6307 }
6308 
6309 
6310 // CHECK-LABEL: test_vqmovn_s16
6311 // CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s16(int16x8_t a)6312 int8x8_t test_vqmovn_s16(int16x8_t a) {
6313   return vqmovn_s16(a);
6314 }
6315 
6316 // CHECK-LABEL: test_vqmovn_s32
6317 // CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s32(int32x4_t a)6318 int16x4_t test_vqmovn_s32(int32x4_t a) {
6319   return vqmovn_s32(a);
6320 }
6321 
6322 // CHECK-LABEL: test_vqmovn_s64
6323 // CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s64(int64x2_t a)6324 int32x2_t test_vqmovn_s64(int64x2_t a) {
6325   return vqmovn_s64(a);
6326 }
6327 
6328 // CHECK-LABEL: test_vqmovn_u16
6329 // CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u16(uint16x8_t a)6330 uint8x8_t test_vqmovn_u16(uint16x8_t a) {
6331   return vqmovn_u16(a);
6332 }
6333 
6334 // CHECK-LABEL: test_vqmovn_u32
6335 // CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u32(uint32x4_t a)6336 uint16x4_t test_vqmovn_u32(uint32x4_t a) {
6337   return vqmovn_u32(a);
6338 }
6339 
6340 // CHECK-LABEL: test_vqmovn_u64
6341 // CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u64(uint64x2_t a)6342 uint32x2_t test_vqmovn_u64(uint64x2_t a) {
6343   return vqmovn_u64(a);
6344 }
6345 
6346 
6347 // CHECK-LABEL: test_vqmovun_s16
6348 // CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s16(int16x8_t a)6349 uint8x8_t test_vqmovun_s16(int16x8_t a) {
6350   return vqmovun_s16(a);
6351 }
6352 
6353 // CHECK-LABEL: test_vqmovun_s32
6354 // CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s32(int32x4_t a)6355 uint16x4_t test_vqmovun_s32(int32x4_t a) {
6356   return vqmovun_s32(a);
6357 }
6358 
6359 // CHECK-LABEL: test_vqmovun_s64
6360 // CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s64(int64x2_t a)6361 uint32x2_t test_vqmovun_s64(int64x2_t a) {
6362   return vqmovun_s64(a);
6363 }
6364 
6365 
6366 // CHECK-LABEL: test_vqneg_s8
6367 // CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s8(int8x8_t a)6368 int8x8_t test_vqneg_s8(int8x8_t a) {
6369   return vqneg_s8(a);
6370 }
6371 
6372 // CHECK-LABEL: test_vqneg_s16
6373 // CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s16(int16x4_t a)6374 int16x4_t test_vqneg_s16(int16x4_t a) {
6375   return vqneg_s16(a);
6376 }
6377 
6378 // CHECK-LABEL: test_vqneg_s32
6379 // CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s32(int32x2_t a)6380 int32x2_t test_vqneg_s32(int32x2_t a) {
6381   return vqneg_s32(a);
6382 }
6383 
6384 // CHECK-LABEL: test_vqnegq_s8
6385 // CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s8(int8x16_t a)6386 int8x16_t test_vqnegq_s8(int8x16_t a) {
6387   return vqnegq_s8(a);
6388 }
6389 
6390 // CHECK-LABEL: test_vqnegq_s16
6391 // CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s16(int16x8_t a)6392 int16x8_t test_vqnegq_s16(int16x8_t a) {
6393   return vqnegq_s16(a);
6394 }
6395 
6396 // CHECK-LABEL: test_vqnegq_s32
6397 // CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s32(int32x4_t a)6398 int32x4_t test_vqnegq_s32(int32x4_t a) {
6399   return vqnegq_s32(a);
6400 }
6401 
6402 
6403 // CHECK-LABEL: test_vqrdmulh_s16
6404 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s16(int16x4_t a,int16x4_t b)6405 int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) {
6406   return vqrdmulh_s16(a, b);
6407 }
6408 
6409 // CHECK-LABEL: test_vqrdmulh_s32
6410 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s32(int32x2_t a,int32x2_t b)6411 int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) {
6412   return vqrdmulh_s32(a, b);
6413 }
6414 
6415 // CHECK-LABEL: test_vqrdmulhq_s16
6416 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s16(int16x8_t a,int16x8_t b)6417 int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) {
6418   return vqrdmulhq_s16(a, b);
6419 }
6420 
6421 // CHECK-LABEL: test_vqrdmulhq_s32
6422 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s32(int32x4_t a,int32x4_t b)6423 int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) {
6424   return vqrdmulhq_s32(a, b);
6425 }
6426 
6427 
6428 // CHECK-LABEL: test_vqrdmulh_lane_s16
6429 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s16(int16x4_t a,int16x4_t b)6430 int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6431   return vqrdmulh_lane_s16(a, b, 3);
6432 }
6433 
6434 // CHECK-LABEL: test_vqrdmulh_lane_s32
6435 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s32(int32x2_t a,int32x2_t b)6436 int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6437   return vqrdmulh_lane_s32(a, b, 1);
6438 }
6439 
6440 // CHECK-LABEL: test_vqrdmulhq_lane_s16
6441 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s16(int16x8_t a,int16x4_t b)6442 int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6443   return vqrdmulhq_lane_s16(a, b, 3);
6444 }
6445 
6446 // CHECK-LABEL: test_vqrdmulhq_lane_s32
6447 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s32(int32x4_t a,int32x2_t b)6448 int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6449   return vqrdmulhq_lane_s32(a, b, 1);
6450 }
6451 
6452 
6453 // CHECK-LABEL: test_vqrdmulh_n_s16
6454 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s16(int16x4_t a,int16_t b)6455 int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
6456   return vqrdmulh_n_s16(a, b);
6457 }
6458 
6459 // CHECK-LABEL: test_vqrdmulh_n_s32
6460 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s32(int32x2_t a,int32_t b)6461 int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
6462   return vqrdmulh_n_s32(a, b);
6463 }
6464 
6465 // CHECK-LABEL: test_vqrdmulhq_n_s16
6466 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s16(int16x8_t a,int16_t b)6467 int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
6468   return vqrdmulhq_n_s16(a, b);
6469 }
6470 
6471 // CHECK-LABEL: test_vqrdmulhq_n_s32
6472 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s32(int32x4_t a,int32_t b)6473 int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
6474   return vqrdmulhq_n_s32(a, b);
6475 }
6476 
6477 
6478 // CHECK-LABEL: test_vqrshl_s8
6479 // CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s8(int8x8_t a,int8x8_t b)6480 int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) {
6481   return vqrshl_s8(a, b);
6482 }
6483 
6484 // CHECK-LABEL: test_vqrshl_s16
6485 // CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s16(int16x4_t a,int16x4_t b)6486 int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) {
6487   return vqrshl_s16(a, b);
6488 }
6489 
6490 // CHECK-LABEL: test_vqrshl_s32
6491 // CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s32(int32x2_t a,int32x2_t b)6492 int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) {
6493   return vqrshl_s32(a, b);
6494 }
6495 
6496 // CHECK-LABEL: test_vqrshl_s64
6497 // CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s64(int64x1_t a,int64x1_t b)6498 int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) {
6499   return vqrshl_s64(a, b);
6500 }
6501 
6502 // CHECK-LABEL: test_vqrshl_u8
6503 // CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u8(uint8x8_t a,int8x8_t b)6504 uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) {
6505   return vqrshl_u8(a, b);
6506 }
6507 
6508 // CHECK-LABEL: test_vqrshl_u16
6509 // CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u16(uint16x4_t a,int16x4_t b)6510 uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) {
6511   return vqrshl_u16(a, b);
6512 }
6513 
6514 // CHECK-LABEL: test_vqrshl_u32
6515 // CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u32(uint32x2_t a,int32x2_t b)6516 uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) {
6517   return vqrshl_u32(a, b);
6518 }
6519 
6520 // CHECK-LABEL: test_vqrshl_u64
6521 // CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u64(uint64x1_t a,int64x1_t b)6522 uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) {
6523   return vqrshl_u64(a, b);
6524 }
6525 
6526 // CHECK-LABEL: test_vqrshlq_s8
6527 // CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s8(int8x16_t a,int8x16_t b)6528 int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) {
6529   return vqrshlq_s8(a, b);
6530 }
6531 
6532 // CHECK-LABEL: test_vqrshlq_s16
6533 // CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s16(int16x8_t a,int16x8_t b)6534 int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) {
6535   return vqrshlq_s16(a, b);
6536 }
6537 
6538 // CHECK-LABEL: test_vqrshlq_s32
6539 // CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s32(int32x4_t a,int32x4_t b)6540 int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) {
6541   return vqrshlq_s32(a, b);
6542 }
6543 
6544 // CHECK-LABEL: test_vqrshlq_s64
6545 // CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s64(int64x2_t a,int64x2_t b)6546 int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) {
6547   return vqrshlq_s64(a, b);
6548 }
6549 
6550 // CHECK-LABEL: test_vqrshlq_u8
6551 // CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u8(uint8x16_t a,int8x16_t b)6552 uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) {
6553   return vqrshlq_u8(a, b);
6554 }
6555 
6556 // CHECK-LABEL: test_vqrshlq_u16
6557 // CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u16(uint16x8_t a,int16x8_t b)6558 uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) {
6559   return vqrshlq_u16(a, b);
6560 }
6561 
6562 // CHECK-LABEL: test_vqrshlq_u32
6563 // CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u32(uint32x4_t a,int32x4_t b)6564 uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) {
6565   return vqrshlq_u32(a, b);
6566 }
6567 
6568 // CHECK-LABEL: test_vqrshlq_u64
6569 // CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u64(uint64x2_t a,int64x2_t b)6570 uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) {
6571   return vqrshlq_u64(a, b);
6572 }
6573 
6574 
6575 // CHECK-LABEL: test_vqrshrn_n_s16
6576 // CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s16(int16x8_t a)6577 int8x8_t test_vqrshrn_n_s16(int16x8_t a) {
6578   return vqrshrn_n_s16(a, 1);
6579 }
6580 
6581 // CHECK-LABEL: test_vqrshrn_n_s32
6582 // CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s32(int32x4_t a)6583 int16x4_t test_vqrshrn_n_s32(int32x4_t a) {
6584   return vqrshrn_n_s32(a, 1);
6585 }
6586 
6587 // CHECK-LABEL: test_vqrshrn_n_s64
6588 // CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s64(int64x2_t a)6589 int32x2_t test_vqrshrn_n_s64(int64x2_t a) {
6590   return vqrshrn_n_s64(a, 1);
6591 }
6592 
6593 // CHECK-LABEL: test_vqrshrn_n_u16
6594 // CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u16(uint16x8_t a)6595 uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) {
6596   return vqrshrn_n_u16(a, 1);
6597 }
6598 
6599 // CHECK-LABEL: test_vqrshrn_n_u32
6600 // CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u32(uint32x4_t a)6601 uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) {
6602   return vqrshrn_n_u32(a, 1);
6603 }
6604 
6605 // CHECK-LABEL: test_vqrshrn_n_u64
6606 // CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u64(uint64x2_t a)6607 uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) {
6608   return vqrshrn_n_u64(a, 1);
6609 }
6610 
6611 
6612 // CHECK-LABEL: test_vqrshrun_n_s16
6613 // CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s16(int16x8_t a)6614 uint8x8_t test_vqrshrun_n_s16(int16x8_t a) {
6615   return vqrshrun_n_s16(a, 1);
6616 }
6617 
6618 // CHECK-LABEL: test_vqrshrun_n_s32
6619 // CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s32(int32x4_t a)6620 uint16x4_t test_vqrshrun_n_s32(int32x4_t a) {
6621   return vqrshrun_n_s32(a, 1);
6622 }
6623 
6624 // CHECK-LABEL: test_vqrshrun_n_s64
6625 // CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s64(int64x2_t a)6626 uint32x2_t test_vqrshrun_n_s64(int64x2_t a) {
6627   return vqrshrun_n_s64(a, 1);
6628 }
6629 
6630 
6631 // CHECK-LABEL: test_vqshl_s8
6632 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s8(int8x8_t a,int8x8_t b)6633 int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) {
6634   return vqshl_s8(a, b);
6635 }
6636 
6637 // CHECK-LABEL: test_vqshl_s16
6638 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s16(int16x4_t a,int16x4_t b)6639 int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) {
6640   return vqshl_s16(a, b);
6641 }
6642 
6643 // CHECK-LABEL: test_vqshl_s32
6644 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s32(int32x2_t a,int32x2_t b)6645 int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) {
6646   return vqshl_s32(a, b);
6647 }
6648 
6649 // CHECK-LABEL: test_vqshl_s64
6650 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s64(int64x1_t a,int64x1_t b)6651 int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) {
6652   return vqshl_s64(a, b);
6653 }
6654 
6655 // CHECK-LABEL: test_vqshl_u8
6656 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u8(uint8x8_t a,int8x8_t b)6657 uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) {
6658   return vqshl_u8(a, b);
6659 }
6660 
6661 // CHECK-LABEL: test_vqshl_u16
6662 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u16(uint16x4_t a,int16x4_t b)6663 uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) {
6664   return vqshl_u16(a, b);
6665 }
6666 
6667 // CHECK-LABEL: test_vqshl_u32
6668 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u32(uint32x2_t a,int32x2_t b)6669 uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) {
6670   return vqshl_u32(a, b);
6671 }
6672 
6673 // CHECK-LABEL: test_vqshl_u64
6674 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u64(uint64x1_t a,int64x1_t b)6675 uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) {
6676   return vqshl_u64(a, b);
6677 }
6678 
6679 // CHECK-LABEL: test_vqshlq_s8
6680 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s8(int8x16_t a,int8x16_t b)6681 int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) {
6682   return vqshlq_s8(a, b);
6683 }
6684 
6685 // CHECK-LABEL: test_vqshlq_s16
6686 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s16(int16x8_t a,int16x8_t b)6687 int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) {
6688   return vqshlq_s16(a, b);
6689 }
6690 
6691 // CHECK-LABEL: test_vqshlq_s32
6692 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s32(int32x4_t a,int32x4_t b)6693 int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) {
6694   return vqshlq_s32(a, b);
6695 }
6696 
6697 // CHECK-LABEL: test_vqshlq_s64
6698 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s64(int64x2_t a,int64x2_t b)6699 int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) {
6700   return vqshlq_s64(a, b);
6701 }
6702 
6703 // CHECK-LABEL: test_vqshlq_u8
6704 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u8(uint8x16_t a,int8x16_t b)6705 uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) {
6706   return vqshlq_u8(a, b);
6707 }
6708 
6709 // CHECK-LABEL: test_vqshlq_u16
6710 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u16(uint16x8_t a,int16x8_t b)6711 uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) {
6712   return vqshlq_u16(a, b);
6713 }
6714 
6715 // CHECK-LABEL: test_vqshlq_u32
6716 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u32(uint32x4_t a,int32x4_t b)6717 uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) {
6718   return vqshlq_u32(a, b);
6719 }
6720 
6721 // CHECK-LABEL: test_vqshlq_u64
6722 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u64(uint64x2_t a,int64x2_t b)6723 uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) {
6724   return vqshlq_u64(a, b);
6725 }
6726 
6727 
6728 // CHECK-LABEL: test_vqshlu_n_s8
6729 // CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s8(int8x8_t a)6730 uint8x8_t test_vqshlu_n_s8(int8x8_t a) {
6731   return vqshlu_n_s8(a, 1);
6732 }
6733 
6734 // CHECK-LABEL: test_vqshlu_n_s16
6735 // CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s16(int16x4_t a)6736 uint16x4_t test_vqshlu_n_s16(int16x4_t a) {
6737   return vqshlu_n_s16(a, 1);
6738 }
6739 
6740 // CHECK-LABEL: test_vqshlu_n_s32
6741 // CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s32(int32x2_t a)6742 uint32x2_t test_vqshlu_n_s32(int32x2_t a) {
6743   return vqshlu_n_s32(a, 1);
6744 }
6745 
6746 // CHECK-LABEL: test_vqshlu_n_s64
6747 // CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s64(int64x1_t a)6748 uint64x1_t test_vqshlu_n_s64(int64x1_t a) {
6749   return vqshlu_n_s64(a, 1);
6750 }
6751 
6752 // CHECK-LABEL: test_vqshluq_n_s8
6753 // CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s8(int8x16_t a)6754 uint8x16_t test_vqshluq_n_s8(int8x16_t a) {
6755   return vqshluq_n_s8(a, 1);
6756 }
6757 
6758 // CHECK-LABEL: test_vqshluq_n_s16
6759 // CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s16(int16x8_t a)6760 uint16x8_t test_vqshluq_n_s16(int16x8_t a) {
6761   return vqshluq_n_s16(a, 1);
6762 }
6763 
6764 // CHECK-LABEL: test_vqshluq_n_s32
6765 // CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s32(int32x4_t a)6766 uint32x4_t test_vqshluq_n_s32(int32x4_t a) {
6767   return vqshluq_n_s32(a, 1);
6768 }
6769 
6770 // CHECK-LABEL: test_vqshluq_n_s64
6771 // CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s64(int64x2_t a)6772 uint64x2_t test_vqshluq_n_s64(int64x2_t a) {
6773   return vqshluq_n_s64(a, 1);
6774 }
6775 
6776 
6777 // CHECK-LABEL: test_vqshl_n_s8
6778 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s8(int8x8_t a)6779 int8x8_t test_vqshl_n_s8(int8x8_t a) {
6780   return vqshl_n_s8(a, 1);
6781 }
6782 
6783 // CHECK-LABEL: test_vqshl_n_s16
6784 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s16(int16x4_t a)6785 int16x4_t test_vqshl_n_s16(int16x4_t a) {
6786   return vqshl_n_s16(a, 1);
6787 }
6788 
6789 // CHECK-LABEL: test_vqshl_n_s32
6790 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s32(int32x2_t a)6791 int32x2_t test_vqshl_n_s32(int32x2_t a) {
6792   return vqshl_n_s32(a, 1);
6793 }
6794 
6795 // CHECK-LABEL: test_vqshl_n_s64
6796 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s64(int64x1_t a)6797 int64x1_t test_vqshl_n_s64(int64x1_t a) {
6798   return vqshl_n_s64(a, 1);
6799 }
6800 
6801 // CHECK-LABEL: test_vqshl_n_u8
6802 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u8(uint8x8_t a)6803 uint8x8_t test_vqshl_n_u8(uint8x8_t a) {
6804   return vqshl_n_u8(a, 1);
6805 }
6806 
6807 // CHECK-LABEL: test_vqshl_n_u16
6808 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u16(uint16x4_t a)6809 uint16x4_t test_vqshl_n_u16(uint16x4_t a) {
6810   return vqshl_n_u16(a, 1);
6811 }
6812 
6813 // CHECK-LABEL: test_vqshl_n_u32
6814 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u32(uint32x2_t a)6815 uint32x2_t test_vqshl_n_u32(uint32x2_t a) {
6816   return vqshl_n_u32(a, 1);
6817 }
6818 
6819 // CHECK-LABEL: test_vqshl_n_u64
6820 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u64(uint64x1_t a)6821 uint64x1_t test_vqshl_n_u64(uint64x1_t a) {
6822   return vqshl_n_u64(a, 1);
6823 }
6824 
6825 // CHECK-LABEL: test_vqshlq_n_s8
6826 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s8(int8x16_t a)6827 int8x16_t test_vqshlq_n_s8(int8x16_t a) {
6828   return vqshlq_n_s8(a, 1);
6829 }
6830 
6831 // CHECK-LABEL: test_vqshlq_n_s16
6832 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s16(int16x8_t a)6833 int16x8_t test_vqshlq_n_s16(int16x8_t a) {
6834   return vqshlq_n_s16(a, 1);
6835 }
6836 
6837 // CHECK-LABEL: test_vqshlq_n_s32
6838 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s32(int32x4_t a)6839 int32x4_t test_vqshlq_n_s32(int32x4_t a) {
6840   return vqshlq_n_s32(a, 1);
6841 }
6842 
6843 // CHECK-LABEL: test_vqshlq_n_s64
6844 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s64(int64x2_t a)6845 int64x2_t test_vqshlq_n_s64(int64x2_t a) {
6846   return vqshlq_n_s64(a, 1);
6847 }
6848 
6849 // CHECK-LABEL: test_vqshlq_n_u8
6850 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u8(uint8x16_t a)6851 uint8x16_t test_vqshlq_n_u8(uint8x16_t a) {
6852   return vqshlq_n_u8(a, 1);
6853 }
6854 
6855 // CHECK-LABEL: test_vqshlq_n_u16
6856 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u16(uint16x8_t a)6857 uint16x8_t test_vqshlq_n_u16(uint16x8_t a) {
6858   return vqshlq_n_u16(a, 1);
6859 }
6860 
6861 // CHECK-LABEL: test_vqshlq_n_u32
6862 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u32(uint32x4_t a)6863 uint32x4_t test_vqshlq_n_u32(uint32x4_t a) {
6864   return vqshlq_n_u32(a, 1);
6865 }
6866 
6867 // CHECK-LABEL: test_vqshlq_n_u64
6868 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u64(uint64x2_t a)6869 uint64x2_t test_vqshlq_n_u64(uint64x2_t a) {
6870   return vqshlq_n_u64(a, 1);
6871 }
6872 
6873 
6874 // CHECK-LABEL: test_vqshrn_n_s16
6875 // CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s16(int16x8_t a)6876 int8x8_t test_vqshrn_n_s16(int16x8_t a) {
6877   return vqshrn_n_s16(a, 1);
6878 }
6879 
6880 // CHECK-LABEL: test_vqshrn_n_s32
6881 // CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s32(int32x4_t a)6882 int16x4_t test_vqshrn_n_s32(int32x4_t a) {
6883   return vqshrn_n_s32(a, 1);
6884 }
6885 
6886 // CHECK-LABEL: test_vqshrn_n_s64
6887 // CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s64(int64x2_t a)6888 int32x2_t test_vqshrn_n_s64(int64x2_t a) {
6889   return vqshrn_n_s64(a, 1);
6890 }
6891 
6892 // CHECK-LABEL: test_vqshrn_n_u16
6893 // CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u16(uint16x8_t a)6894 uint8x8_t test_vqshrn_n_u16(uint16x8_t a) {
6895   return vqshrn_n_u16(a, 1);
6896 }
6897 
6898 // CHECK-LABEL: test_vqshrn_n_u32
6899 // CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u32(uint32x4_t a)6900 uint16x4_t test_vqshrn_n_u32(uint32x4_t a) {
6901   return vqshrn_n_u32(a, 1);
6902 }
6903 
6904 // CHECK-LABEL: test_vqshrn_n_u64
6905 // CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u64(uint64x2_t a)6906 uint32x2_t test_vqshrn_n_u64(uint64x2_t a) {
6907   return vqshrn_n_u64(a, 1);
6908 }
6909 
6910 
6911 // CHECK-LABEL: test_vqshrun_n_s16
6912 // CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s16(int16x8_t a)6913 uint8x8_t test_vqshrun_n_s16(int16x8_t a) {
6914   return vqshrun_n_s16(a, 1);
6915 }
6916 
6917 // CHECK-LABEL: test_vqshrun_n_s32
6918 // CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s32(int32x4_t a)6919 uint16x4_t test_vqshrun_n_s32(int32x4_t a) {
6920   return vqshrun_n_s32(a, 1);
6921 }
6922 
6923 // CHECK-LABEL: test_vqshrun_n_s64
6924 // CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s64(int64x2_t a)6925 uint32x2_t test_vqshrun_n_s64(int64x2_t a) {
6926   return vqshrun_n_s64(a, 1);
6927 }
6928 
6929 
6930 // CHECK-LABEL: test_vqsub_s8
6931 // CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s8(int8x8_t a,int8x8_t b)6932 int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) {
6933   return vqsub_s8(a, b);
6934 }
6935 
6936 // CHECK-LABEL: test_vqsub_s16
6937 // CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s16(int16x4_t a,int16x4_t b)6938 int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) {
6939   return vqsub_s16(a, b);
6940 }
6941 
6942 // CHECK-LABEL: test_vqsub_s32
6943 // CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s32(int32x2_t a,int32x2_t b)6944 int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) {
6945   return vqsub_s32(a, b);
6946 }
6947 
6948 // CHECK-LABEL: test_vqsub_s64
6949 // CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s64(int64x1_t a,int64x1_t b)6950 int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) {
6951   return vqsub_s64(a, b);
6952 }
6953 
6954 // CHECK-LABEL: test_vqsub_u8
6955 // CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u8(uint8x8_t a,uint8x8_t b)6956 uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) {
6957   return vqsub_u8(a, b);
6958 }
6959 
6960 // CHECK-LABEL: test_vqsub_u16
6961 // CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u16(uint16x4_t a,uint16x4_t b)6962 uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) {
6963   return vqsub_u16(a, b);
6964 }
6965 
6966 // CHECK-LABEL: test_vqsub_u32
6967 // CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u32(uint32x2_t a,uint32x2_t b)6968 uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) {
6969   return vqsub_u32(a, b);
6970 }
6971 
6972 // CHECK-LABEL: test_vqsub_u64
6973 // CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u64(uint64x1_t a,uint64x1_t b)6974 uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) {
6975   return vqsub_u64(a, b);
6976 }
6977 
6978 // CHECK-LABEL: test_vqsubq_s8
6979 // CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s8(int8x16_t a,int8x16_t b)6980 int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) {
6981   return vqsubq_s8(a, b);
6982 }
6983 
6984 // CHECK-LABEL: test_vqsubq_s16
6985 // CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s16(int16x8_t a,int16x8_t b)6986 int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) {
6987   return vqsubq_s16(a, b);
6988 }
6989 
6990 // CHECK-LABEL: test_vqsubq_s32
6991 // CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s32(int32x4_t a,int32x4_t b)6992 int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) {
6993   return vqsubq_s32(a, b);
6994 }
6995 
6996 // CHECK-LABEL: test_vqsubq_s64
6997 // CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s64(int64x2_t a,int64x2_t b)6998 int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) {
6999   return vqsubq_s64(a, b);
7000 }
7001 
7002 // CHECK-LABEL: test_vqsubq_u8
7003 // CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u8(uint8x16_t a,uint8x16_t b)7004 uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) {
7005   return vqsubq_u8(a, b);
7006 }
7007 
7008 // CHECK-LABEL: test_vqsubq_u16
7009 // CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u16(uint16x8_t a,uint16x8_t b)7010 uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) {
7011   return vqsubq_u16(a, b);
7012 }
7013 
7014 // CHECK-LABEL: test_vqsubq_u32
7015 // CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u32(uint32x4_t a,uint32x4_t b)7016 uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) {
7017   return vqsubq_u32(a, b);
7018 }
7019 
7020 // CHECK-LABEL: test_vqsubq_u64
7021 // CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u64(uint64x2_t a,uint64x2_t b)7022 uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) {
7023   return vqsubq_u64(a, b);
7024 }
7025 
7026 
7027 // CHECK-LABEL: test_vraddhn_s16
7028 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s16(int16x8_t a,int16x8_t b)7029 int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) {
7030   return vraddhn_s16(a, b);
7031 }
7032 
7033 // CHECK-LABEL: test_vraddhn_s32
7034 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s32(int32x4_t a,int32x4_t b)7035 int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) {
7036   return vraddhn_s32(a, b);
7037 }
7038 
7039 // CHECK-LABEL: test_vraddhn_s64
7040 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s64(int64x2_t a,int64x2_t b)7041 int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) {
7042   return vraddhn_s64(a, b);
7043 }
7044 
7045 // CHECK-LABEL: test_vraddhn_u16
7046 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u16(uint16x8_t a,uint16x8_t b)7047 uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) {
7048   return vraddhn_u16(a, b);
7049 }
7050 
7051 // CHECK-LABEL: test_vraddhn_u32
7052 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u32(uint32x4_t a,uint32x4_t b)7053 uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) {
7054   return vraddhn_u32(a, b);
7055 }
7056 
7057 // CHECK-LABEL: test_vraddhn_u64
7058 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u64(uint64x2_t a,uint64x2_t b)7059 uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) {
7060   return vraddhn_u64(a, b);
7061 }
7062 
7063 
7064 // CHECK-LABEL: test_vrecpe_f32
7065 // CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_f32(float32x2_t a)7066 float32x2_t test_vrecpe_f32(float32x2_t a) {
7067   return vrecpe_f32(a);
7068 }
7069 
7070 // CHECK-LABEL: test_vrecpe_u32
7071 // CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_u32(uint32x2_t a)7072 uint32x2_t test_vrecpe_u32(uint32x2_t a) {
7073   return vrecpe_u32(a);
7074 }
7075 
7076 // CHECK-LABEL: test_vrecpeq_f32
7077 // CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_f32(float32x4_t a)7078 float32x4_t test_vrecpeq_f32(float32x4_t a) {
7079   return vrecpeq_f32(a);
7080 }
7081 
7082 // CHECK-LABEL: test_vrecpeq_u32
7083 // CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_u32(uint32x4_t a)7084 uint32x4_t test_vrecpeq_u32(uint32x4_t a) {
7085   return vrecpeq_u32(a);
7086 }
7087 
7088 
7089 // CHECK-LABEL: test_vrecps_f32
7090 // CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrecps_f32(float32x2_t a,float32x2_t b)7091 float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) {
7092   return vrecps_f32(a, b);
7093 }
7094 
7095 // CHECK-LABEL: test_vrecpsq_f32
7096 // CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpsq_f32(float32x4_t a,float32x4_t b)7097 float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) {
7098   return vrecpsq_f32(a, b);
7099 }
7100 
7101 
7102 // CHECK-LABEL: test_vreinterpret_s8_s16
test_vreinterpret_s8_s16(int16x4_t a)7103 int8x8_t test_vreinterpret_s8_s16(int16x4_t a) {
7104   return vreinterpret_s8_s16(a);
7105 }
7106 
7107 // CHECK-LABEL: test_vreinterpret_s8_s32
test_vreinterpret_s8_s32(int32x2_t a)7108 int8x8_t test_vreinterpret_s8_s32(int32x2_t a) {
7109   return vreinterpret_s8_s32(a);
7110 }
7111 
7112 // CHECK-LABEL: test_vreinterpret_s8_s64
test_vreinterpret_s8_s64(int64x1_t a)7113 int8x8_t test_vreinterpret_s8_s64(int64x1_t a) {
7114   return vreinterpret_s8_s64(a);
7115 }
7116 
7117 // CHECK-LABEL: test_vreinterpret_s8_u8
test_vreinterpret_s8_u8(uint8x8_t a)7118 int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) {
7119   return vreinterpret_s8_u8(a);
7120 }
7121 
7122 // CHECK-LABEL: test_vreinterpret_s8_u16
test_vreinterpret_s8_u16(uint16x4_t a)7123 int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) {
7124   return vreinterpret_s8_u16(a);
7125 }
7126 
7127 // CHECK-LABEL: test_vreinterpret_s8_u32
test_vreinterpret_s8_u32(uint32x2_t a)7128 int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) {
7129   return vreinterpret_s8_u32(a);
7130 }
7131 
7132 // CHECK-LABEL: test_vreinterpret_s8_u64
test_vreinterpret_s8_u64(uint64x1_t a)7133 int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) {
7134   return vreinterpret_s8_u64(a);
7135 }
7136 
7137 // CHECK-LABEL: test_vreinterpret_s8_f16
test_vreinterpret_s8_f16(float16x4_t a)7138 int8x8_t test_vreinterpret_s8_f16(float16x4_t a) {
7139   return vreinterpret_s8_f16(a);
7140 }
7141 
7142 // CHECK-LABEL: test_vreinterpret_s8_f32
test_vreinterpret_s8_f32(float32x2_t a)7143 int8x8_t test_vreinterpret_s8_f32(float32x2_t a) {
7144   return vreinterpret_s8_f32(a);
7145 }
7146 
7147 // CHECK-LABEL: test_vreinterpret_s8_p8
test_vreinterpret_s8_p8(poly8x8_t a)7148 int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) {
7149   return vreinterpret_s8_p8(a);
7150 }
7151 
7152 // CHECK-LABEL: test_vreinterpret_s8_p16
test_vreinterpret_s8_p16(poly16x4_t a)7153 int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) {
7154   return vreinterpret_s8_p16(a);
7155 }
7156 
7157 // CHECK-LABEL: test_vreinterpret_s16_s8
test_vreinterpret_s16_s8(int8x8_t a)7158 int16x4_t test_vreinterpret_s16_s8(int8x8_t a) {
7159   return vreinterpret_s16_s8(a);
7160 }
7161 
7162 // CHECK-LABEL: test_vreinterpret_s16_s32
test_vreinterpret_s16_s32(int32x2_t a)7163 int16x4_t test_vreinterpret_s16_s32(int32x2_t a) {
7164   return vreinterpret_s16_s32(a);
7165 }
7166 
7167 // CHECK-LABEL: test_vreinterpret_s16_s64
test_vreinterpret_s16_s64(int64x1_t a)7168 int16x4_t test_vreinterpret_s16_s64(int64x1_t a) {
7169   return vreinterpret_s16_s64(a);
7170 }
7171 
7172 // CHECK-LABEL: test_vreinterpret_s16_u8
test_vreinterpret_s16_u8(uint8x8_t a)7173 int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) {
7174   return vreinterpret_s16_u8(a);
7175 }
7176 
7177 // CHECK-LABEL: test_vreinterpret_s16_u16
test_vreinterpret_s16_u16(uint16x4_t a)7178 int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) {
7179   return vreinterpret_s16_u16(a);
7180 }
7181 
7182 // CHECK-LABEL: test_vreinterpret_s16_u32
test_vreinterpret_s16_u32(uint32x2_t a)7183 int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) {
7184   return vreinterpret_s16_u32(a);
7185 }
7186 
7187 // CHECK-LABEL: test_vreinterpret_s16_u64
test_vreinterpret_s16_u64(uint64x1_t a)7188 int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) {
7189   return vreinterpret_s16_u64(a);
7190 }
7191 
7192 // CHECK-LABEL: test_vreinterpret_s16_f16
test_vreinterpret_s16_f16(float16x4_t a)7193 int16x4_t test_vreinterpret_s16_f16(float16x4_t a) {
7194   return vreinterpret_s16_f16(a);
7195 }
7196 
7197 // CHECK-LABEL: test_vreinterpret_s16_f32
test_vreinterpret_s16_f32(float32x2_t a)7198 int16x4_t test_vreinterpret_s16_f32(float32x2_t a) {
7199   return vreinterpret_s16_f32(a);
7200 }
7201 
7202 // CHECK-LABEL: test_vreinterpret_s16_p8
test_vreinterpret_s16_p8(poly8x8_t a)7203 int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) {
7204   return vreinterpret_s16_p8(a);
7205 }
7206 
7207 // CHECK-LABEL: test_vreinterpret_s16_p16
test_vreinterpret_s16_p16(poly16x4_t a)7208 int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) {
7209   return vreinterpret_s16_p16(a);
7210 }
7211 
7212 // CHECK-LABEL: test_vreinterpret_s32_s8
test_vreinterpret_s32_s8(int8x8_t a)7213 int32x2_t test_vreinterpret_s32_s8(int8x8_t a) {
7214   return vreinterpret_s32_s8(a);
7215 }
7216 
7217 // CHECK-LABEL: test_vreinterpret_s32_s16
test_vreinterpret_s32_s16(int16x4_t a)7218 int32x2_t test_vreinterpret_s32_s16(int16x4_t a) {
7219   return vreinterpret_s32_s16(a);
7220 }
7221 
7222 // CHECK-LABEL: test_vreinterpret_s32_s64
test_vreinterpret_s32_s64(int64x1_t a)7223 int32x2_t test_vreinterpret_s32_s64(int64x1_t a) {
7224   return vreinterpret_s32_s64(a);
7225 }
7226 
7227 // CHECK-LABEL: test_vreinterpret_s32_u8
test_vreinterpret_s32_u8(uint8x8_t a)7228 int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) {
7229   return vreinterpret_s32_u8(a);
7230 }
7231 
7232 // CHECK-LABEL: test_vreinterpret_s32_u16
test_vreinterpret_s32_u16(uint16x4_t a)7233 int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) {
7234   return vreinterpret_s32_u16(a);
7235 }
7236 
7237 // CHECK-LABEL: test_vreinterpret_s32_u32
test_vreinterpret_s32_u32(uint32x2_t a)7238 int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) {
7239   return vreinterpret_s32_u32(a);
7240 }
7241 
7242 // CHECK-LABEL: test_vreinterpret_s32_u64
test_vreinterpret_s32_u64(uint64x1_t a)7243 int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) {
7244   return vreinterpret_s32_u64(a);
7245 }
7246 
7247 // CHECK-LABEL: test_vreinterpret_s32_f16
test_vreinterpret_s32_f16(float16x4_t a)7248 int32x2_t test_vreinterpret_s32_f16(float16x4_t a) {
7249   return vreinterpret_s32_f16(a);
7250 }
7251 
7252 // CHECK-LABEL: test_vreinterpret_s32_f32
test_vreinterpret_s32_f32(float32x2_t a)7253 int32x2_t test_vreinterpret_s32_f32(float32x2_t a) {
7254   return vreinterpret_s32_f32(a);
7255 }
7256 
7257 // CHECK-LABEL: test_vreinterpret_s32_p8
test_vreinterpret_s32_p8(poly8x8_t a)7258 int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) {
7259   return vreinterpret_s32_p8(a);
7260 }
7261 
7262 // CHECK-LABEL: test_vreinterpret_s32_p16
test_vreinterpret_s32_p16(poly16x4_t a)7263 int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) {
7264   return vreinterpret_s32_p16(a);
7265 }
7266 
7267 // CHECK-LABEL: test_vreinterpret_s64_s8
test_vreinterpret_s64_s8(int8x8_t a)7268 int64x1_t test_vreinterpret_s64_s8(int8x8_t a) {
7269   return vreinterpret_s64_s8(a);
7270 }
7271 
7272 // CHECK-LABEL: test_vreinterpret_s64_s16
test_vreinterpret_s64_s16(int16x4_t a)7273 int64x1_t test_vreinterpret_s64_s16(int16x4_t a) {
7274   return vreinterpret_s64_s16(a);
7275 }
7276 
7277 // CHECK-LABEL: test_vreinterpret_s64_s32
test_vreinterpret_s64_s32(int32x2_t a)7278 int64x1_t test_vreinterpret_s64_s32(int32x2_t a) {
7279   return vreinterpret_s64_s32(a);
7280 }
7281 
7282 // CHECK-LABEL: test_vreinterpret_s64_u8
test_vreinterpret_s64_u8(uint8x8_t a)7283 int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) {
7284   return vreinterpret_s64_u8(a);
7285 }
7286 
7287 // CHECK-LABEL: test_vreinterpret_s64_u16
test_vreinterpret_s64_u16(uint16x4_t a)7288 int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) {
7289   return vreinterpret_s64_u16(a);
7290 }
7291 
7292 // CHECK-LABEL: test_vreinterpret_s64_u32
test_vreinterpret_s64_u32(uint32x2_t a)7293 int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) {
7294   return vreinterpret_s64_u32(a);
7295 }
7296 
7297 // CHECK-LABEL: test_vreinterpret_s64_u64
test_vreinterpret_s64_u64(uint64x1_t a)7298 int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) {
7299   return vreinterpret_s64_u64(a);
7300 }
7301 
7302 // CHECK-LABEL: test_vreinterpret_s64_f16
test_vreinterpret_s64_f16(float16x4_t a)7303 int64x1_t test_vreinterpret_s64_f16(float16x4_t a) {
7304   return vreinterpret_s64_f16(a);
7305 }
7306 
7307 // CHECK-LABEL: test_vreinterpret_s64_f32
test_vreinterpret_s64_f32(float32x2_t a)7308 int64x1_t test_vreinterpret_s64_f32(float32x2_t a) {
7309   return vreinterpret_s64_f32(a);
7310 }
7311 
7312 // CHECK-LABEL: test_vreinterpret_s64_p8
test_vreinterpret_s64_p8(poly8x8_t a)7313 int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) {
7314   return vreinterpret_s64_p8(a);
7315 }
7316 
7317 // CHECK-LABEL: test_vreinterpret_s64_p16
test_vreinterpret_s64_p16(poly16x4_t a)7318 int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) {
7319   return vreinterpret_s64_p16(a);
7320 }
7321 
7322 // CHECK-LABEL: test_vreinterpret_u8_s8
test_vreinterpret_u8_s8(int8x8_t a)7323 uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) {
7324   return vreinterpret_u8_s8(a);
7325 }
7326 
7327 // CHECK-LABEL: test_vreinterpret_u8_s16
test_vreinterpret_u8_s16(int16x4_t a)7328 uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) {
7329   return vreinterpret_u8_s16(a);
7330 }
7331 
7332 // CHECK-LABEL: test_vreinterpret_u8_s32
test_vreinterpret_u8_s32(int32x2_t a)7333 uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) {
7334   return vreinterpret_u8_s32(a);
7335 }
7336 
7337 // CHECK-LABEL: test_vreinterpret_u8_s64
test_vreinterpret_u8_s64(int64x1_t a)7338 uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) {
7339   return vreinterpret_u8_s64(a);
7340 }
7341 
7342 // CHECK-LABEL: test_vreinterpret_u8_u16
test_vreinterpret_u8_u16(uint16x4_t a)7343 uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) {
7344   return vreinterpret_u8_u16(a);
7345 }
7346 
7347 // CHECK-LABEL: test_vreinterpret_u8_u32
test_vreinterpret_u8_u32(uint32x2_t a)7348 uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) {
7349   return vreinterpret_u8_u32(a);
7350 }
7351 
7352 // CHECK-LABEL: test_vreinterpret_u8_u64
test_vreinterpret_u8_u64(uint64x1_t a)7353 uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) {
7354   return vreinterpret_u8_u64(a);
7355 }
7356 
7357 // CHECK-LABEL: test_vreinterpret_u8_f16
test_vreinterpret_u8_f16(float16x4_t a)7358 uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) {
7359   return vreinterpret_u8_f16(a);
7360 }
7361 
7362 // CHECK-LABEL: test_vreinterpret_u8_f32
test_vreinterpret_u8_f32(float32x2_t a)7363 uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) {
7364   return vreinterpret_u8_f32(a);
7365 }
7366 
7367 // CHECK-LABEL: test_vreinterpret_u8_p8
test_vreinterpret_u8_p8(poly8x8_t a)7368 uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) {
7369   return vreinterpret_u8_p8(a);
7370 }
7371 
7372 // CHECK-LABEL: test_vreinterpret_u8_p16
test_vreinterpret_u8_p16(poly16x4_t a)7373 uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) {
7374   return vreinterpret_u8_p16(a);
7375 }
7376 
7377 // CHECK-LABEL: test_vreinterpret_u16_s8
test_vreinterpret_u16_s8(int8x8_t a)7378 uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) {
7379   return vreinterpret_u16_s8(a);
7380 }
7381 
7382 // CHECK-LABEL: test_vreinterpret_u16_s16
test_vreinterpret_u16_s16(int16x4_t a)7383 uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) {
7384   return vreinterpret_u16_s16(a);
7385 }
7386 
7387 // CHECK-LABEL: test_vreinterpret_u16_s32
test_vreinterpret_u16_s32(int32x2_t a)7388 uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) {
7389   return vreinterpret_u16_s32(a);
7390 }
7391 
7392 // CHECK-LABEL: test_vreinterpret_u16_s64
test_vreinterpret_u16_s64(int64x1_t a)7393 uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) {
7394   return vreinterpret_u16_s64(a);
7395 }
7396 
7397 // CHECK-LABEL: test_vreinterpret_u16_u8
test_vreinterpret_u16_u8(uint8x8_t a)7398 uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) {
7399   return vreinterpret_u16_u8(a);
7400 }
7401 
7402 // CHECK-LABEL: test_vreinterpret_u16_u32
test_vreinterpret_u16_u32(uint32x2_t a)7403 uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) {
7404   return vreinterpret_u16_u32(a);
7405 }
7406 
7407 // CHECK-LABEL: test_vreinterpret_u16_u64
test_vreinterpret_u16_u64(uint64x1_t a)7408 uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) {
7409   return vreinterpret_u16_u64(a);
7410 }
7411 
7412 // CHECK-LABEL: test_vreinterpret_u16_f16
test_vreinterpret_u16_f16(float16x4_t a)7413 uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) {
7414   return vreinterpret_u16_f16(a);
7415 }
7416 
7417 // CHECK-LABEL: test_vreinterpret_u16_f32
test_vreinterpret_u16_f32(float32x2_t a)7418 uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) {
7419   return vreinterpret_u16_f32(a);
7420 }
7421 
7422 // CHECK-LABEL: test_vreinterpret_u16_p8
test_vreinterpret_u16_p8(poly8x8_t a)7423 uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) {
7424   return vreinterpret_u16_p8(a);
7425 }
7426 
7427 // CHECK-LABEL: test_vreinterpret_u16_p16
test_vreinterpret_u16_p16(poly16x4_t a)7428 uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) {
7429   return vreinterpret_u16_p16(a);
7430 }
7431 
7432 // CHECK-LABEL: test_vreinterpret_u32_s8
test_vreinterpret_u32_s8(int8x8_t a)7433 uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) {
7434   return vreinterpret_u32_s8(a);
7435 }
7436 
7437 // CHECK-LABEL: test_vreinterpret_u32_s16
test_vreinterpret_u32_s16(int16x4_t a)7438 uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) {
7439   return vreinterpret_u32_s16(a);
7440 }
7441 
7442 // CHECK-LABEL: test_vreinterpret_u32_s32
test_vreinterpret_u32_s32(int32x2_t a)7443 uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) {
7444   return vreinterpret_u32_s32(a);
7445 }
7446 
7447 // CHECK-LABEL: test_vreinterpret_u32_s64
test_vreinterpret_u32_s64(int64x1_t a)7448 uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) {
7449   return vreinterpret_u32_s64(a);
7450 }
7451 
7452 // CHECK-LABEL: test_vreinterpret_u32_u8
test_vreinterpret_u32_u8(uint8x8_t a)7453 uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) {
7454   return vreinterpret_u32_u8(a);
7455 }
7456 
7457 // CHECK-LABEL: test_vreinterpret_u32_u16
test_vreinterpret_u32_u16(uint16x4_t a)7458 uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) {
7459   return vreinterpret_u32_u16(a);
7460 }
7461 
7462 // CHECK-LABEL: test_vreinterpret_u32_u64
test_vreinterpret_u32_u64(uint64x1_t a)7463 uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) {
7464   return vreinterpret_u32_u64(a);
7465 }
7466 
7467 // CHECK-LABEL: test_vreinterpret_u32_f16
test_vreinterpret_u32_f16(float16x4_t a)7468 uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) {
7469   return vreinterpret_u32_f16(a);
7470 }
7471 
7472 // CHECK-LABEL: test_vreinterpret_u32_f32
test_vreinterpret_u32_f32(float32x2_t a)7473 uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) {
7474   return vreinterpret_u32_f32(a);
7475 }
7476 
7477 // CHECK-LABEL: test_vreinterpret_u32_p8
test_vreinterpret_u32_p8(poly8x8_t a)7478 uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) {
7479   return vreinterpret_u32_p8(a);
7480 }
7481 
7482 // CHECK-LABEL: test_vreinterpret_u32_p16
test_vreinterpret_u32_p16(poly16x4_t a)7483 uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) {
7484   return vreinterpret_u32_p16(a);
7485 }
7486 
7487 // CHECK-LABEL: test_vreinterpret_u64_s8
test_vreinterpret_u64_s8(int8x8_t a)7488 uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) {
7489   return vreinterpret_u64_s8(a);
7490 }
7491 
7492 // CHECK-LABEL: test_vreinterpret_u64_s16
test_vreinterpret_u64_s16(int16x4_t a)7493 uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) {
7494   return vreinterpret_u64_s16(a);
7495 }
7496 
7497 // CHECK-LABEL: test_vreinterpret_u64_s32
test_vreinterpret_u64_s32(int32x2_t a)7498 uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) {
7499   return vreinterpret_u64_s32(a);
7500 }
7501 
7502 // CHECK-LABEL: test_vreinterpret_u64_s64
test_vreinterpret_u64_s64(int64x1_t a)7503 uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) {
7504   return vreinterpret_u64_s64(a);
7505 }
7506 
7507 // CHECK-LABEL: test_vreinterpret_u64_u8
test_vreinterpret_u64_u8(uint8x8_t a)7508 uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) {
7509   return vreinterpret_u64_u8(a);
7510 }
7511 
7512 // CHECK-LABEL: test_vreinterpret_u64_u16
test_vreinterpret_u64_u16(uint16x4_t a)7513 uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) {
7514   return vreinterpret_u64_u16(a);
7515 }
7516 
7517 // CHECK-LABEL: test_vreinterpret_u64_u32
test_vreinterpret_u64_u32(uint32x2_t a)7518 uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) {
7519   return vreinterpret_u64_u32(a);
7520 }
7521 
7522 // CHECK-LABEL: test_vreinterpret_u64_f16
test_vreinterpret_u64_f16(float16x4_t a)7523 uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) {
7524   return vreinterpret_u64_f16(a);
7525 }
7526 
7527 // CHECK-LABEL: test_vreinterpret_u64_f32
test_vreinterpret_u64_f32(float32x2_t a)7528 uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) {
7529   return vreinterpret_u64_f32(a);
7530 }
7531 
7532 // CHECK-LABEL: test_vreinterpret_u64_p8
test_vreinterpret_u64_p8(poly8x8_t a)7533 uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) {
7534   return vreinterpret_u64_p8(a);
7535 }
7536 
7537 // CHECK-LABEL: test_vreinterpret_u64_p16
test_vreinterpret_u64_p16(poly16x4_t a)7538 uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) {
7539   return vreinterpret_u64_p16(a);
7540 }
7541 
7542 // CHECK-LABEL: test_vreinterpret_f16_s8
test_vreinterpret_f16_s8(int8x8_t a)7543 float16x4_t test_vreinterpret_f16_s8(int8x8_t a) {
7544   return vreinterpret_f16_s8(a);
7545 }
7546 
7547 // CHECK-LABEL: test_vreinterpret_f16_s16
test_vreinterpret_f16_s16(int16x4_t a)7548 float16x4_t test_vreinterpret_f16_s16(int16x4_t a) {
7549   return vreinterpret_f16_s16(a);
7550 }
7551 
7552 // CHECK-LABEL: test_vreinterpret_f16_s32
test_vreinterpret_f16_s32(int32x2_t a)7553 float16x4_t test_vreinterpret_f16_s32(int32x2_t a) {
7554   return vreinterpret_f16_s32(a);
7555 }
7556 
7557 // CHECK-LABEL: test_vreinterpret_f16_s64
test_vreinterpret_f16_s64(int64x1_t a)7558 float16x4_t test_vreinterpret_f16_s64(int64x1_t a) {
7559   return vreinterpret_f16_s64(a);
7560 }
7561 
7562 // CHECK-LABEL: test_vreinterpret_f16_u8
test_vreinterpret_f16_u8(uint8x8_t a)7563 float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) {
7564   return vreinterpret_f16_u8(a);
7565 }
7566 
7567 // CHECK-LABEL: test_vreinterpret_f16_u16
test_vreinterpret_f16_u16(uint16x4_t a)7568 float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) {
7569   return vreinterpret_f16_u16(a);
7570 }
7571 
7572 // CHECK-LABEL: test_vreinterpret_f16_u32
test_vreinterpret_f16_u32(uint32x2_t a)7573 float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) {
7574   return vreinterpret_f16_u32(a);
7575 }
7576 
7577 // CHECK-LABEL: test_vreinterpret_f16_u64
test_vreinterpret_f16_u64(uint64x1_t a)7578 float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) {
7579   return vreinterpret_f16_u64(a);
7580 }
7581 
7582 // CHECK-LABEL: test_vreinterpret_f16_f32
test_vreinterpret_f16_f32(float32x2_t a)7583 float16x4_t test_vreinterpret_f16_f32(float32x2_t a) {
7584   return vreinterpret_f16_f32(a);
7585 }
7586 
7587 // CHECK-LABEL: test_vreinterpret_f16_p8
test_vreinterpret_f16_p8(poly8x8_t a)7588 float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) {
7589   return vreinterpret_f16_p8(a);
7590 }
7591 
7592 // CHECK-LABEL: test_vreinterpret_f16_p16
test_vreinterpret_f16_p16(poly16x4_t a)7593 float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) {
7594   return vreinterpret_f16_p16(a);
7595 }
7596 
7597 // CHECK-LABEL: test_vreinterpret_f32_s8
test_vreinterpret_f32_s8(int8x8_t a)7598 float32x2_t test_vreinterpret_f32_s8(int8x8_t a) {
7599   return vreinterpret_f32_s8(a);
7600 }
7601 
7602 // CHECK-LABEL: test_vreinterpret_f32_s16
test_vreinterpret_f32_s16(int16x4_t a)7603 float32x2_t test_vreinterpret_f32_s16(int16x4_t a) {
7604   return vreinterpret_f32_s16(a);
7605 }
7606 
7607 // CHECK-LABEL: test_vreinterpret_f32_s32
test_vreinterpret_f32_s32(int32x2_t a)7608 float32x2_t test_vreinterpret_f32_s32(int32x2_t a) {
7609   return vreinterpret_f32_s32(a);
7610 }
7611 
7612 // CHECK-LABEL: test_vreinterpret_f32_s64
test_vreinterpret_f32_s64(int64x1_t a)7613 float32x2_t test_vreinterpret_f32_s64(int64x1_t a) {
7614   return vreinterpret_f32_s64(a);
7615 }
7616 
7617 // CHECK-LABEL: test_vreinterpret_f32_u8
test_vreinterpret_f32_u8(uint8x8_t a)7618 float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) {
7619   return vreinterpret_f32_u8(a);
7620 }
7621 
7622 // CHECK-LABEL: test_vreinterpret_f32_u16
test_vreinterpret_f32_u16(uint16x4_t a)7623 float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) {
7624   return vreinterpret_f32_u16(a);
7625 }
7626 
7627 // CHECK-LABEL: test_vreinterpret_f32_u32
test_vreinterpret_f32_u32(uint32x2_t a)7628 float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) {
7629   return vreinterpret_f32_u32(a);
7630 }
7631 
7632 // CHECK-LABEL: test_vreinterpret_f32_u64
test_vreinterpret_f32_u64(uint64x1_t a)7633 float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) {
7634   return vreinterpret_f32_u64(a);
7635 }
7636 
7637 // CHECK-LABEL: test_vreinterpret_f32_f16
test_vreinterpret_f32_f16(float16x4_t a)7638 float32x2_t test_vreinterpret_f32_f16(float16x4_t a) {
7639   return vreinterpret_f32_f16(a);
7640 }
7641 
7642 // CHECK-LABEL: test_vreinterpret_f32_p8
test_vreinterpret_f32_p8(poly8x8_t a)7643 float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) {
7644   return vreinterpret_f32_p8(a);
7645 }
7646 
7647 // CHECK-LABEL: test_vreinterpret_f32_p16
test_vreinterpret_f32_p16(poly16x4_t a)7648 float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) {
7649   return vreinterpret_f32_p16(a);
7650 }
7651 
7652 // CHECK-LABEL: test_vreinterpret_p8_s8
test_vreinterpret_p8_s8(int8x8_t a)7653 poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) {
7654   return vreinterpret_p8_s8(a);
7655 }
7656 
7657 // CHECK-LABEL: test_vreinterpret_p8_s16
test_vreinterpret_p8_s16(int16x4_t a)7658 poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) {
7659   return vreinterpret_p8_s16(a);
7660 }
7661 
7662 // CHECK-LABEL: test_vreinterpret_p8_s32
test_vreinterpret_p8_s32(int32x2_t a)7663 poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) {
7664   return vreinterpret_p8_s32(a);
7665 }
7666 
7667 // CHECK-LABEL: test_vreinterpret_p8_s64
test_vreinterpret_p8_s64(int64x1_t a)7668 poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) {
7669   return vreinterpret_p8_s64(a);
7670 }
7671 
7672 // CHECK-LABEL: test_vreinterpret_p8_u8
test_vreinterpret_p8_u8(uint8x8_t a)7673 poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) {
7674   return vreinterpret_p8_u8(a);
7675 }
7676 
7677 // CHECK-LABEL: test_vreinterpret_p8_u16
test_vreinterpret_p8_u16(uint16x4_t a)7678 poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) {
7679   return vreinterpret_p8_u16(a);
7680 }
7681 
7682 // CHECK-LABEL: test_vreinterpret_p8_u32
test_vreinterpret_p8_u32(uint32x2_t a)7683 poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) {
7684   return vreinterpret_p8_u32(a);
7685 }
7686 
7687 // CHECK-LABEL: test_vreinterpret_p8_u64
test_vreinterpret_p8_u64(uint64x1_t a)7688 poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) {
7689   return vreinterpret_p8_u64(a);
7690 }
7691 
7692 // CHECK-LABEL: test_vreinterpret_p8_f16
test_vreinterpret_p8_f16(float16x4_t a)7693 poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) {
7694   return vreinterpret_p8_f16(a);
7695 }
7696 
7697 // CHECK-LABEL: test_vreinterpret_p8_f32
test_vreinterpret_p8_f32(float32x2_t a)7698 poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) {
7699   return vreinterpret_p8_f32(a);
7700 }
7701 
7702 // CHECK-LABEL: test_vreinterpret_p8_p16
test_vreinterpret_p8_p16(poly16x4_t a)7703 poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) {
7704   return vreinterpret_p8_p16(a);
7705 }
7706 
7707 // CHECK-LABEL: test_vreinterpret_p16_s8
test_vreinterpret_p16_s8(int8x8_t a)7708 poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) {
7709   return vreinterpret_p16_s8(a);
7710 }
7711 
7712 // CHECK-LABEL: test_vreinterpret_p16_s16
test_vreinterpret_p16_s16(int16x4_t a)7713 poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) {
7714   return vreinterpret_p16_s16(a);
7715 }
7716 
7717 // CHECK-LABEL: test_vreinterpret_p16_s32
test_vreinterpret_p16_s32(int32x2_t a)7718 poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) {
7719   return vreinterpret_p16_s32(a);
7720 }
7721 
7722 // CHECK-LABEL: test_vreinterpret_p16_s64
test_vreinterpret_p16_s64(int64x1_t a)7723 poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) {
7724   return vreinterpret_p16_s64(a);
7725 }
7726 
7727 // CHECK-LABEL: test_vreinterpret_p16_u8
test_vreinterpret_p16_u8(uint8x8_t a)7728 poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) {
7729   return vreinterpret_p16_u8(a);
7730 }
7731 
7732 // CHECK-LABEL: test_vreinterpret_p16_u16
test_vreinterpret_p16_u16(uint16x4_t a)7733 poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) {
7734   return vreinterpret_p16_u16(a);
7735 }
7736 
7737 // CHECK-LABEL: test_vreinterpret_p16_u32
test_vreinterpret_p16_u32(uint32x2_t a)7738 poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) {
7739   return vreinterpret_p16_u32(a);
7740 }
7741 
7742 // CHECK-LABEL: test_vreinterpret_p16_u64
test_vreinterpret_p16_u64(uint64x1_t a)7743 poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) {
7744   return vreinterpret_p16_u64(a);
7745 }
7746 
7747 // CHECK-LABEL: test_vreinterpret_p16_f16
test_vreinterpret_p16_f16(float16x4_t a)7748 poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) {
7749   return vreinterpret_p16_f16(a);
7750 }
7751 
7752 // CHECK-LABEL: test_vreinterpret_p16_f32
test_vreinterpret_p16_f32(float32x2_t a)7753 poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) {
7754   return vreinterpret_p16_f32(a);
7755 }
7756 
7757 // CHECK-LABEL: test_vreinterpret_p16_p8
test_vreinterpret_p16_p8(poly8x8_t a)7758 poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) {
7759   return vreinterpret_p16_p8(a);
7760 }
7761 
7762 // CHECK-LABEL: test_vreinterpretq_s8_s16
test_vreinterpretq_s8_s16(int16x8_t a)7763 int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) {
7764   return vreinterpretq_s8_s16(a);
7765 }
7766 
7767 // CHECK-LABEL: test_vreinterpretq_s8_s32
test_vreinterpretq_s8_s32(int32x4_t a)7768 int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) {
7769   return vreinterpretq_s8_s32(a);
7770 }
7771 
7772 // CHECK-LABEL: test_vreinterpretq_s8_s64
test_vreinterpretq_s8_s64(int64x2_t a)7773 int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) {
7774   return vreinterpretq_s8_s64(a);
7775 }
7776 
7777 // CHECK-LABEL: test_vreinterpretq_s8_u8
test_vreinterpretq_s8_u8(uint8x16_t a)7778 int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) {
7779   return vreinterpretq_s8_u8(a);
7780 }
7781 
7782 // CHECK-LABEL: test_vreinterpretq_s8_u16
test_vreinterpretq_s8_u16(uint16x8_t a)7783 int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) {
7784   return vreinterpretq_s8_u16(a);
7785 }
7786 
7787 // CHECK-LABEL: test_vreinterpretq_s8_u32
test_vreinterpretq_s8_u32(uint32x4_t a)7788 int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) {
7789   return vreinterpretq_s8_u32(a);
7790 }
7791 
7792 // CHECK-LABEL: test_vreinterpretq_s8_u64
test_vreinterpretq_s8_u64(uint64x2_t a)7793 int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) {
7794   return vreinterpretq_s8_u64(a);
7795 }
7796 
7797 // CHECK-LABEL: test_vreinterpretq_s8_f16
test_vreinterpretq_s8_f16(float16x8_t a)7798 int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) {
7799   return vreinterpretq_s8_f16(a);
7800 }
7801 
7802 // CHECK-LABEL: test_vreinterpretq_s8_f32
test_vreinterpretq_s8_f32(float32x4_t a)7803 int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) {
7804   return vreinterpretq_s8_f32(a);
7805 }
7806 
7807 // CHECK-LABEL: test_vreinterpretq_s8_p8
test_vreinterpretq_s8_p8(poly8x16_t a)7808 int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) {
7809   return vreinterpretq_s8_p8(a);
7810 }
7811 
7812 // CHECK-LABEL: test_vreinterpretq_s8_p16
test_vreinterpretq_s8_p16(poly16x8_t a)7813 int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) {
7814   return vreinterpretq_s8_p16(a);
7815 }
7816 
7817 // CHECK-LABEL: test_vreinterpretq_s16_s8
test_vreinterpretq_s16_s8(int8x16_t a)7818 int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) {
7819   return vreinterpretq_s16_s8(a);
7820 }
7821 
7822 // CHECK-LABEL: test_vreinterpretq_s16_s32
test_vreinterpretq_s16_s32(int32x4_t a)7823 int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) {
7824   return vreinterpretq_s16_s32(a);
7825 }
7826 
7827 // CHECK-LABEL: test_vreinterpretq_s16_s64
test_vreinterpretq_s16_s64(int64x2_t a)7828 int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) {
7829   return vreinterpretq_s16_s64(a);
7830 }
7831 
7832 // CHECK-LABEL: test_vreinterpretq_s16_u8
test_vreinterpretq_s16_u8(uint8x16_t a)7833 int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) {
7834   return vreinterpretq_s16_u8(a);
7835 }
7836 
7837 // CHECK-LABEL: test_vreinterpretq_s16_u16
test_vreinterpretq_s16_u16(uint16x8_t a)7838 int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) {
7839   return vreinterpretq_s16_u16(a);
7840 }
7841 
7842 // CHECK-LABEL: test_vreinterpretq_s16_u32
test_vreinterpretq_s16_u32(uint32x4_t a)7843 int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) {
7844   return vreinterpretq_s16_u32(a);
7845 }
7846 
7847 // CHECK-LABEL: test_vreinterpretq_s16_u64
test_vreinterpretq_s16_u64(uint64x2_t a)7848 int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) {
7849   return vreinterpretq_s16_u64(a);
7850 }
7851 
7852 // CHECK-LABEL: test_vreinterpretq_s16_f16
test_vreinterpretq_s16_f16(float16x8_t a)7853 int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) {
7854   return vreinterpretq_s16_f16(a);
7855 }
7856 
7857 // CHECK-LABEL: test_vreinterpretq_s16_f32
test_vreinterpretq_s16_f32(float32x4_t a)7858 int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) {
7859   return vreinterpretq_s16_f32(a);
7860 }
7861 
7862 // CHECK-LABEL: test_vreinterpretq_s16_p8
test_vreinterpretq_s16_p8(poly8x16_t a)7863 int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) {
7864   return vreinterpretq_s16_p8(a);
7865 }
7866 
7867 // CHECK-LABEL: test_vreinterpretq_s16_p16
test_vreinterpretq_s16_p16(poly16x8_t a)7868 int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) {
7869   return vreinterpretq_s16_p16(a);
7870 }
7871 
7872 // CHECK-LABEL: test_vreinterpretq_s32_s8
test_vreinterpretq_s32_s8(int8x16_t a)7873 int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) {
7874   return vreinterpretq_s32_s8(a);
7875 }
7876 
7877 // CHECK-LABEL: test_vreinterpretq_s32_s16
test_vreinterpretq_s32_s16(int16x8_t a)7878 int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) {
7879   return vreinterpretq_s32_s16(a);
7880 }
7881 
7882 // CHECK-LABEL: test_vreinterpretq_s32_s64
test_vreinterpretq_s32_s64(int64x2_t a)7883 int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) {
7884   return vreinterpretq_s32_s64(a);
7885 }
7886 
7887 // CHECK-LABEL: test_vreinterpretq_s32_u8
test_vreinterpretq_s32_u8(uint8x16_t a)7888 int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) {
7889   return vreinterpretq_s32_u8(a);
7890 }
7891 
7892 // CHECK-LABEL: test_vreinterpretq_s32_u16
test_vreinterpretq_s32_u16(uint16x8_t a)7893 int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) {
7894   return vreinterpretq_s32_u16(a);
7895 }
7896 
7897 // CHECK-LABEL: test_vreinterpretq_s32_u32
test_vreinterpretq_s32_u32(uint32x4_t a)7898 int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) {
7899   return vreinterpretq_s32_u32(a);
7900 }
7901 
7902 // CHECK-LABEL: test_vreinterpretq_s32_u64
test_vreinterpretq_s32_u64(uint64x2_t a)7903 int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) {
7904   return vreinterpretq_s32_u64(a);
7905 }
7906 
7907 // CHECK-LABEL: test_vreinterpretq_s32_f16
test_vreinterpretq_s32_f16(float16x8_t a)7908 int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) {
7909   return vreinterpretq_s32_f16(a);
7910 }
7911 
7912 // CHECK-LABEL: test_vreinterpretq_s32_f32
test_vreinterpretq_s32_f32(float32x4_t a)7913 int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) {
7914   return vreinterpretq_s32_f32(a);
7915 }
7916 
7917 // CHECK-LABEL: test_vreinterpretq_s32_p8
test_vreinterpretq_s32_p8(poly8x16_t a)7918 int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) {
7919   return vreinterpretq_s32_p8(a);
7920 }
7921 
7922 // CHECK-LABEL: test_vreinterpretq_s32_p16
test_vreinterpretq_s32_p16(poly16x8_t a)7923 int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) {
7924   return vreinterpretq_s32_p16(a);
7925 }
7926 
7927 // CHECK-LABEL: test_vreinterpretq_s64_s8
test_vreinterpretq_s64_s8(int8x16_t a)7928 int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) {
7929   return vreinterpretq_s64_s8(a);
7930 }
7931 
7932 // CHECK-LABEL: test_vreinterpretq_s64_s16
test_vreinterpretq_s64_s16(int16x8_t a)7933 int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) {
7934   return vreinterpretq_s64_s16(a);
7935 }
7936 
7937 // CHECK-LABEL: test_vreinterpretq_s64_s32
test_vreinterpretq_s64_s32(int32x4_t a)7938 int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) {
7939   return vreinterpretq_s64_s32(a);
7940 }
7941 
7942 // CHECK-LABEL: test_vreinterpretq_s64_u8
test_vreinterpretq_s64_u8(uint8x16_t a)7943 int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) {
7944   return vreinterpretq_s64_u8(a);
7945 }
7946 
7947 // CHECK-LABEL: test_vreinterpretq_s64_u16
test_vreinterpretq_s64_u16(uint16x8_t a)7948 int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) {
7949   return vreinterpretq_s64_u16(a);
7950 }
7951 
7952 // CHECK-LABEL: test_vreinterpretq_s64_u32
test_vreinterpretq_s64_u32(uint32x4_t a)7953 int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) {
7954   return vreinterpretq_s64_u32(a);
7955 }
7956 
7957 // CHECK-LABEL: test_vreinterpretq_s64_u64
test_vreinterpretq_s64_u64(uint64x2_t a)7958 int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) {
7959   return vreinterpretq_s64_u64(a);
7960 }
7961 
7962 // CHECK-LABEL: test_vreinterpretq_s64_f16
test_vreinterpretq_s64_f16(float16x8_t a)7963 int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) {
7964   return vreinterpretq_s64_f16(a);
7965 }
7966 
7967 // CHECK-LABEL: test_vreinterpretq_s64_f32
test_vreinterpretq_s64_f32(float32x4_t a)7968 int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) {
7969   return vreinterpretq_s64_f32(a);
7970 }
7971 
7972 // CHECK-LABEL: test_vreinterpretq_s64_p8
test_vreinterpretq_s64_p8(poly8x16_t a)7973 int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) {
7974   return vreinterpretq_s64_p8(a);
7975 }
7976 
7977 // CHECK-LABEL: test_vreinterpretq_s64_p16
test_vreinterpretq_s64_p16(poly16x8_t a)7978 int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) {
7979   return vreinterpretq_s64_p16(a);
7980 }
7981 
7982 // CHECK-LABEL: test_vreinterpretq_u8_s8
test_vreinterpretq_u8_s8(int8x16_t a)7983 uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) {
7984   return vreinterpretq_u8_s8(a);
7985 }
7986 
7987 // CHECK-LABEL: test_vreinterpretq_u8_s16
test_vreinterpretq_u8_s16(int16x8_t a)7988 uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) {
7989   return vreinterpretq_u8_s16(a);
7990 }
7991 
7992 // CHECK-LABEL: test_vreinterpretq_u8_s32
test_vreinterpretq_u8_s32(int32x4_t a)7993 uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) {
7994   return vreinterpretq_u8_s32(a);
7995 }
7996 
7997 // CHECK-LABEL: test_vreinterpretq_u8_s64
test_vreinterpretq_u8_s64(int64x2_t a)7998 uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) {
7999   return vreinterpretq_u8_s64(a);
8000 }
8001 
8002 // CHECK-LABEL: test_vreinterpretq_u8_u16
test_vreinterpretq_u8_u16(uint16x8_t a)8003 uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) {
8004   return vreinterpretq_u8_u16(a);
8005 }
8006 
8007 // CHECK-LABEL: test_vreinterpretq_u8_u32
test_vreinterpretq_u8_u32(uint32x4_t a)8008 uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) {
8009   return vreinterpretq_u8_u32(a);
8010 }
8011 
8012 // CHECK-LABEL: test_vreinterpretq_u8_u64
test_vreinterpretq_u8_u64(uint64x2_t a)8013 uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) {
8014   return vreinterpretq_u8_u64(a);
8015 }
8016 
8017 // CHECK-LABEL: test_vreinterpretq_u8_f16
test_vreinterpretq_u8_f16(float16x8_t a)8018 uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) {
8019   return vreinterpretq_u8_f16(a);
8020 }
8021 
8022 // CHECK-LABEL: test_vreinterpretq_u8_f32
test_vreinterpretq_u8_f32(float32x4_t a)8023 uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) {
8024   return vreinterpretq_u8_f32(a);
8025 }
8026 
8027 // CHECK-LABEL: test_vreinterpretq_u8_p8
test_vreinterpretq_u8_p8(poly8x16_t a)8028 uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) {
8029   return vreinterpretq_u8_p8(a);
8030 }
8031 
8032 // CHECK-LABEL: test_vreinterpretq_u8_p16
test_vreinterpretq_u8_p16(poly16x8_t a)8033 uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) {
8034   return vreinterpretq_u8_p16(a);
8035 }
8036 
8037 // CHECK-LABEL: test_vreinterpretq_u16_s8
test_vreinterpretq_u16_s8(int8x16_t a)8038 uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) {
8039   return vreinterpretq_u16_s8(a);
8040 }
8041 
8042 // CHECK-LABEL: test_vreinterpretq_u16_s16
test_vreinterpretq_u16_s16(int16x8_t a)8043 uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) {
8044   return vreinterpretq_u16_s16(a);
8045 }
8046 
8047 // CHECK-LABEL: test_vreinterpretq_u16_s32
test_vreinterpretq_u16_s32(int32x4_t a)8048 uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) {
8049   return vreinterpretq_u16_s32(a);
8050 }
8051 
8052 // CHECK-LABEL: test_vreinterpretq_u16_s64
test_vreinterpretq_u16_s64(int64x2_t a)8053 uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) {
8054   return vreinterpretq_u16_s64(a);
8055 }
8056 
8057 // CHECK-LABEL: test_vreinterpretq_u16_u8
test_vreinterpretq_u16_u8(uint8x16_t a)8058 uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) {
8059   return vreinterpretq_u16_u8(a);
8060 }
8061 
8062 // CHECK-LABEL: test_vreinterpretq_u16_u32
test_vreinterpretq_u16_u32(uint32x4_t a)8063 uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) {
8064   return vreinterpretq_u16_u32(a);
8065 }
8066 
8067 // CHECK-LABEL: test_vreinterpretq_u16_u64
test_vreinterpretq_u16_u64(uint64x2_t a)8068 uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) {
8069   return vreinterpretq_u16_u64(a);
8070 }
8071 
8072 // CHECK-LABEL: test_vreinterpretq_u16_f16
test_vreinterpretq_u16_f16(float16x8_t a)8073 uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) {
8074   return vreinterpretq_u16_f16(a);
8075 }
8076 
8077 // CHECK-LABEL: test_vreinterpretq_u16_f32
test_vreinterpretq_u16_f32(float32x4_t a)8078 uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) {
8079   return vreinterpretq_u16_f32(a);
8080 }
8081 
8082 // CHECK-LABEL: test_vreinterpretq_u16_p8
test_vreinterpretq_u16_p8(poly8x16_t a)8083 uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) {
8084   return vreinterpretq_u16_p8(a);
8085 }
8086 
8087 // CHECK-LABEL: test_vreinterpretq_u16_p16
test_vreinterpretq_u16_p16(poly16x8_t a)8088 uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) {
8089   return vreinterpretq_u16_p16(a);
8090 }
8091 
8092 // CHECK-LABEL: test_vreinterpretq_u32_s8
test_vreinterpretq_u32_s8(int8x16_t a)8093 uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) {
8094   return vreinterpretq_u32_s8(a);
8095 }
8096 
8097 // CHECK-LABEL: test_vreinterpretq_u32_s16
test_vreinterpretq_u32_s16(int16x8_t a)8098 uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) {
8099   return vreinterpretq_u32_s16(a);
8100 }
8101 
8102 // CHECK-LABEL: test_vreinterpretq_u32_s32
test_vreinterpretq_u32_s32(int32x4_t a)8103 uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) {
8104   return vreinterpretq_u32_s32(a);
8105 }
8106 
8107 // CHECK-LABEL: test_vreinterpretq_u32_s64
test_vreinterpretq_u32_s64(int64x2_t a)8108 uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) {
8109   return vreinterpretq_u32_s64(a);
8110 }
8111 
8112 // CHECK-LABEL: test_vreinterpretq_u32_u8
test_vreinterpretq_u32_u8(uint8x16_t a)8113 uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) {
8114   return vreinterpretq_u32_u8(a);
8115 }
8116 
8117 // CHECK-LABEL: test_vreinterpretq_u32_u16
test_vreinterpretq_u32_u16(uint16x8_t a)8118 uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) {
8119   return vreinterpretq_u32_u16(a);
8120 }
8121 
8122 // CHECK-LABEL: test_vreinterpretq_u32_u64
test_vreinterpretq_u32_u64(uint64x2_t a)8123 uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) {
8124   return vreinterpretq_u32_u64(a);
8125 }
8126 
8127 // CHECK-LABEL: test_vreinterpretq_u32_f16
test_vreinterpretq_u32_f16(float16x8_t a)8128 uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) {
8129   return vreinterpretq_u32_f16(a);
8130 }
8131 
8132 // CHECK-LABEL: test_vreinterpretq_u32_f32
test_vreinterpretq_u32_f32(float32x4_t a)8133 uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) {
8134   return vreinterpretq_u32_f32(a);
8135 }
8136 
8137 // CHECK-LABEL: test_vreinterpretq_u32_p8
test_vreinterpretq_u32_p8(poly8x16_t a)8138 uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) {
8139   return vreinterpretq_u32_p8(a);
8140 }
8141 
8142 // CHECK-LABEL: test_vreinterpretq_u32_p16
test_vreinterpretq_u32_p16(poly16x8_t a)8143 uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) {
8144   return vreinterpretq_u32_p16(a);
8145 }
8146 
8147 // CHECK-LABEL: test_vreinterpretq_u64_s8
test_vreinterpretq_u64_s8(int8x16_t a)8148 uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) {
8149   return vreinterpretq_u64_s8(a);
8150 }
8151 
8152 // CHECK-LABEL: test_vreinterpretq_u64_s16
test_vreinterpretq_u64_s16(int16x8_t a)8153 uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) {
8154   return vreinterpretq_u64_s16(a);
8155 }
8156 
8157 // CHECK-LABEL: test_vreinterpretq_u64_s32
test_vreinterpretq_u64_s32(int32x4_t a)8158 uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) {
8159   return vreinterpretq_u64_s32(a);
8160 }
8161 
8162 // CHECK-LABEL: test_vreinterpretq_u64_s64
test_vreinterpretq_u64_s64(int64x2_t a)8163 uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) {
8164   return vreinterpretq_u64_s64(a);
8165 }
8166 
8167 // CHECK-LABEL: test_vreinterpretq_u64_u8
test_vreinterpretq_u64_u8(uint8x16_t a)8168 uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) {
8169   return vreinterpretq_u64_u8(a);
8170 }
8171 
8172 // CHECK-LABEL: test_vreinterpretq_u64_u16
test_vreinterpretq_u64_u16(uint16x8_t a)8173 uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) {
8174   return vreinterpretq_u64_u16(a);
8175 }
8176 
8177 // CHECK-LABEL: test_vreinterpretq_u64_u32
test_vreinterpretq_u64_u32(uint32x4_t a)8178 uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) {
8179   return vreinterpretq_u64_u32(a);
8180 }
8181 
8182 // CHECK-LABEL: test_vreinterpretq_u64_f16
test_vreinterpretq_u64_f16(float16x8_t a)8183 uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) {
8184   return vreinterpretq_u64_f16(a);
8185 }
8186 
8187 // CHECK-LABEL: test_vreinterpretq_u64_f32
test_vreinterpretq_u64_f32(float32x4_t a)8188 uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) {
8189   return vreinterpretq_u64_f32(a);
8190 }
8191 
8192 // CHECK-LABEL: test_vreinterpretq_u64_p8
test_vreinterpretq_u64_p8(poly8x16_t a)8193 uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) {
8194   return vreinterpretq_u64_p8(a);
8195 }
8196 
8197 // CHECK-LABEL: test_vreinterpretq_u64_p16
test_vreinterpretq_u64_p16(poly16x8_t a)8198 uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) {
8199   return vreinterpretq_u64_p16(a);
8200 }
8201 
8202 // CHECK-LABEL: test_vreinterpretq_f16_s8
test_vreinterpretq_f16_s8(int8x16_t a)8203 float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) {
8204   return vreinterpretq_f16_s8(a);
8205 }
8206 
8207 // CHECK-LABEL: test_vreinterpretq_f16_s16
test_vreinterpretq_f16_s16(int16x8_t a)8208 float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) {
8209   return vreinterpretq_f16_s16(a);
8210 }
8211 
8212 // CHECK-LABEL: test_vreinterpretq_f16_s32
test_vreinterpretq_f16_s32(int32x4_t a)8213 float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) {
8214   return vreinterpretq_f16_s32(a);
8215 }
8216 
8217 // CHECK-LABEL: test_vreinterpretq_f16_s64
test_vreinterpretq_f16_s64(int64x2_t a)8218 float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) {
8219   return vreinterpretq_f16_s64(a);
8220 }
8221 
8222 // CHECK-LABEL: test_vreinterpretq_f16_u8
test_vreinterpretq_f16_u8(uint8x16_t a)8223 float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) {
8224   return vreinterpretq_f16_u8(a);
8225 }
8226 
8227 // CHECK-LABEL: test_vreinterpretq_f16_u16
test_vreinterpretq_f16_u16(uint16x8_t a)8228 float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) {
8229   return vreinterpretq_f16_u16(a);
8230 }
8231 
8232 // CHECK-LABEL: test_vreinterpretq_f16_u32
test_vreinterpretq_f16_u32(uint32x4_t a)8233 float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) {
8234   return vreinterpretq_f16_u32(a);
8235 }
8236 
8237 // CHECK-LABEL: test_vreinterpretq_f16_u64
test_vreinterpretq_f16_u64(uint64x2_t a)8238 float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) {
8239   return vreinterpretq_f16_u64(a);
8240 }
8241 
8242 // CHECK-LABEL: test_vreinterpretq_f16_f32
test_vreinterpretq_f16_f32(float32x4_t a)8243 float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) {
8244   return vreinterpretq_f16_f32(a);
8245 }
8246 
8247 // CHECK-LABEL: test_vreinterpretq_f16_p8
test_vreinterpretq_f16_p8(poly8x16_t a)8248 float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) {
8249   return vreinterpretq_f16_p8(a);
8250 }
8251 
8252 // CHECK-LABEL: test_vreinterpretq_f16_p16
test_vreinterpretq_f16_p16(poly16x8_t a)8253 float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) {
8254   return vreinterpretq_f16_p16(a);
8255 }
8256 
8257 // CHECK-LABEL: test_vreinterpretq_f32_s8
test_vreinterpretq_f32_s8(int8x16_t a)8258 float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) {
8259   return vreinterpretq_f32_s8(a);
8260 }
8261 
8262 // CHECK-LABEL: test_vreinterpretq_f32_s16
test_vreinterpretq_f32_s16(int16x8_t a)8263 float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) {
8264   return vreinterpretq_f32_s16(a);
8265 }
8266 
8267 // CHECK-LABEL: test_vreinterpretq_f32_s32
test_vreinterpretq_f32_s32(int32x4_t a)8268 float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) {
8269   return vreinterpretq_f32_s32(a);
8270 }
8271 
8272 // CHECK-LABEL: test_vreinterpretq_f32_s64
test_vreinterpretq_f32_s64(int64x2_t a)8273 float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) {
8274   return vreinterpretq_f32_s64(a);
8275 }
8276 
8277 // CHECK-LABEL: test_vreinterpretq_f32_u8
test_vreinterpretq_f32_u8(uint8x16_t a)8278 float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) {
8279   return vreinterpretq_f32_u8(a);
8280 }
8281 
8282 // CHECK-LABEL: test_vreinterpretq_f32_u16
test_vreinterpretq_f32_u16(uint16x8_t a)8283 float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) {
8284   return vreinterpretq_f32_u16(a);
8285 }
8286 
8287 // CHECK-LABEL: test_vreinterpretq_f32_u32
test_vreinterpretq_f32_u32(uint32x4_t a)8288 float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) {
8289   return vreinterpretq_f32_u32(a);
8290 }
8291 
8292 // CHECK-LABEL: test_vreinterpretq_f32_u64
test_vreinterpretq_f32_u64(uint64x2_t a)8293 float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) {
8294   return vreinterpretq_f32_u64(a);
8295 }
8296 
8297 // CHECK-LABEL: test_vreinterpretq_f32_f16
test_vreinterpretq_f32_f16(float16x8_t a)8298 float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) {
8299   return vreinterpretq_f32_f16(a);
8300 }
8301 
8302 // CHECK-LABEL: test_vreinterpretq_f32_p8
test_vreinterpretq_f32_p8(poly8x16_t a)8303 float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) {
8304   return vreinterpretq_f32_p8(a);
8305 }
8306 
8307 // CHECK-LABEL: test_vreinterpretq_f32_p16
test_vreinterpretq_f32_p16(poly16x8_t a)8308 float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) {
8309   return vreinterpretq_f32_p16(a);
8310 }
8311 
8312 // CHECK-LABEL: test_vreinterpretq_p8_s8
test_vreinterpretq_p8_s8(int8x16_t a)8313 poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) {
8314   return vreinterpretq_p8_s8(a);
8315 }
8316 
8317 // CHECK-LABEL: test_vreinterpretq_p8_s16
test_vreinterpretq_p8_s16(int16x8_t a)8318 poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) {
8319   return vreinterpretq_p8_s16(a);
8320 }
8321 
8322 // CHECK-LABEL: test_vreinterpretq_p8_s32
test_vreinterpretq_p8_s32(int32x4_t a)8323 poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) {
8324   return vreinterpretq_p8_s32(a);
8325 }
8326 
8327 // CHECK-LABEL: test_vreinterpretq_p8_s64
test_vreinterpretq_p8_s64(int64x2_t a)8328 poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) {
8329   return vreinterpretq_p8_s64(a);
8330 }
8331 
8332 // CHECK-LABEL: test_vreinterpretq_p8_u8
test_vreinterpretq_p8_u8(uint8x16_t a)8333 poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) {
8334   return vreinterpretq_p8_u8(a);
8335 }
8336 
8337 // CHECK-LABEL: test_vreinterpretq_p8_u16
test_vreinterpretq_p8_u16(uint16x8_t a)8338 poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) {
8339   return vreinterpretq_p8_u16(a);
8340 }
8341 
8342 // CHECK-LABEL: test_vreinterpretq_p8_u32
test_vreinterpretq_p8_u32(uint32x4_t a)8343 poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) {
8344   return vreinterpretq_p8_u32(a);
8345 }
8346 
8347 // CHECK-LABEL: test_vreinterpretq_p8_u64
test_vreinterpretq_p8_u64(uint64x2_t a)8348 poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) {
8349   return vreinterpretq_p8_u64(a);
8350 }
8351 
8352 // CHECK-LABEL: test_vreinterpretq_p8_f16
test_vreinterpretq_p8_f16(float16x8_t a)8353 poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) {
8354   return vreinterpretq_p8_f16(a);
8355 }
8356 
8357 // CHECK-LABEL: test_vreinterpretq_p8_f32
test_vreinterpretq_p8_f32(float32x4_t a)8358 poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) {
8359   return vreinterpretq_p8_f32(a);
8360 }
8361 
8362 // CHECK-LABEL: test_vreinterpretq_p8_p16
test_vreinterpretq_p8_p16(poly16x8_t a)8363 poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) {
8364   return vreinterpretq_p8_p16(a);
8365 }
8366 
8367 // CHECK-LABEL: test_vreinterpretq_p16_s8
test_vreinterpretq_p16_s8(int8x16_t a)8368 poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) {
8369   return vreinterpretq_p16_s8(a);
8370 }
8371 
8372 // CHECK-LABEL: test_vreinterpretq_p16_s16
test_vreinterpretq_p16_s16(int16x8_t a)8373 poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) {
8374   return vreinterpretq_p16_s16(a);
8375 }
8376 
8377 // CHECK-LABEL: test_vreinterpretq_p16_s32
test_vreinterpretq_p16_s32(int32x4_t a)8378 poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) {
8379   return vreinterpretq_p16_s32(a);
8380 }
8381 
8382 // CHECK-LABEL: test_vreinterpretq_p16_s64
test_vreinterpretq_p16_s64(int64x2_t a)8383 poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) {
8384   return vreinterpretq_p16_s64(a);
8385 }
8386 
8387 // CHECK-LABEL: test_vreinterpretq_p16_u8
test_vreinterpretq_p16_u8(uint8x16_t a)8388 poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) {
8389   return vreinterpretq_p16_u8(a);
8390 }
8391 
8392 // CHECK-LABEL: test_vreinterpretq_p16_u16
test_vreinterpretq_p16_u16(uint16x8_t a)8393 poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) {
8394   return vreinterpretq_p16_u16(a);
8395 }
8396 
8397 // CHECK-LABEL: test_vreinterpretq_p16_u32
test_vreinterpretq_p16_u32(uint32x4_t a)8398 poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) {
8399   return vreinterpretq_p16_u32(a);
8400 }
8401 
8402 // CHECK-LABEL: test_vreinterpretq_p16_u64
test_vreinterpretq_p16_u64(uint64x2_t a)8403 poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) {
8404   return vreinterpretq_p16_u64(a);
8405 }
8406 
8407 // CHECK-LABEL: test_vreinterpretq_p16_f16
test_vreinterpretq_p16_f16(float16x8_t a)8408 poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) {
8409   return vreinterpretq_p16_f16(a);
8410 }
8411 
8412 // CHECK-LABEL: test_vreinterpretq_p16_f32
test_vreinterpretq_p16_f32(float32x4_t a)8413 poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) {
8414   return vreinterpretq_p16_f32(a);
8415 }
8416 
8417 // CHECK-LABEL: test_vreinterpretq_p16_p8
test_vreinterpretq_p16_p8(poly8x16_t a)8418 poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) {
8419   return vreinterpretq_p16_p8(a);
8420 }
8421 
8422 
8423 // CHECK-LABEL: test_vrev16_s8
8424 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_s8(int8x8_t a)8425 int8x8_t test_vrev16_s8(int8x8_t a) {
8426   return vrev16_s8(a);
8427 }
8428 
8429 // CHECK-LABEL: test_vrev16_u8
8430 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_u8(uint8x8_t a)8431 uint8x8_t test_vrev16_u8(uint8x8_t a) {
8432   return vrev16_u8(a);
8433 }
8434 
8435 // CHECK-LABEL: test_vrev16_p8
8436 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_p8(poly8x8_t a)8437 poly8x8_t test_vrev16_p8(poly8x8_t a) {
8438   return vrev16_p8(a);
8439 }
8440 
8441 // CHECK-LABEL: test_vrev16q_s8
8442 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_s8(int8x16_t a)8443 int8x16_t test_vrev16q_s8(int8x16_t a) {
8444   return vrev16q_s8(a);
8445 }
8446 
8447 // CHECK-LABEL: test_vrev16q_u8
8448 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_u8(uint8x16_t a)8449 uint8x16_t test_vrev16q_u8(uint8x16_t a) {
8450   return vrev16q_u8(a);
8451 }
8452 
8453 // CHECK-LABEL: test_vrev16q_p8
8454 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_p8(poly8x16_t a)8455 poly8x16_t test_vrev16q_p8(poly8x16_t a) {
8456   return vrev16q_p8(a);
8457 }
8458 
8459 
8460 // CHECK-LABEL: test_vrev32_s8
8461 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s8(int8x8_t a)8462 int8x8_t test_vrev32_s8(int8x8_t a) {
8463   return vrev32_s8(a);
8464 }
8465 
8466 // CHECK-LABEL: test_vrev32_s16
8467 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s16(int16x4_t a)8468 int16x4_t test_vrev32_s16(int16x4_t a) {
8469   return vrev32_s16(a);
8470 }
8471 
8472 // CHECK-LABEL: test_vrev32_u8
8473 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u8(uint8x8_t a)8474 uint8x8_t test_vrev32_u8(uint8x8_t a) {
8475   return vrev32_u8(a);
8476 }
8477 
8478 // CHECK-LABEL: test_vrev32_u16
8479 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u16(uint16x4_t a)8480 uint16x4_t test_vrev32_u16(uint16x4_t a) {
8481   return vrev32_u16(a);
8482 }
8483 
8484 // CHECK-LABEL: test_vrev32_p8
8485 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p8(poly8x8_t a)8486 poly8x8_t test_vrev32_p8(poly8x8_t a) {
8487   return vrev32_p8(a);
8488 }
8489 
8490 // CHECK-LABEL: test_vrev32_p16
8491 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p16(poly16x4_t a)8492 poly16x4_t test_vrev32_p16(poly16x4_t a) {
8493   return vrev32_p16(a);
8494 }
8495 
8496 // CHECK-LABEL: test_vrev32q_s8
8497 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s8(int8x16_t a)8498 int8x16_t test_vrev32q_s8(int8x16_t a) {
8499   return vrev32q_s8(a);
8500 }
8501 
8502 // CHECK-LABEL: test_vrev32q_s16
8503 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s16(int16x8_t a)8504 int16x8_t test_vrev32q_s16(int16x8_t a) {
8505   return vrev32q_s16(a);
8506 }
8507 
8508 // CHECK-LABEL: test_vrev32q_u8
8509 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u8(uint8x16_t a)8510 uint8x16_t test_vrev32q_u8(uint8x16_t a) {
8511   return vrev32q_u8(a);
8512 }
8513 
8514 // CHECK-LABEL: test_vrev32q_u16
8515 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u16(uint16x8_t a)8516 uint16x8_t test_vrev32q_u16(uint16x8_t a) {
8517   return vrev32q_u16(a);
8518 }
8519 
8520 // CHECK-LABEL: test_vrev32q_p8
8521 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p8(poly8x16_t a)8522 poly8x16_t test_vrev32q_p8(poly8x16_t a) {
8523   return vrev32q_p8(a);
8524 }
8525 
8526 // CHECK-LABEL: test_vrev32q_p16
8527 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p16(poly16x8_t a)8528 poly16x8_t test_vrev32q_p16(poly16x8_t a) {
8529   return vrev32q_p16(a);
8530 }
8531 
8532 
8533 // CHECK-LABEL: test_vrev64_s8
8534 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s8(int8x8_t a)8535 int8x8_t test_vrev64_s8(int8x8_t a) {
8536   return vrev64_s8(a);
8537 }
8538 
8539 // CHECK-LABEL: test_vrev64_s16
8540 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s16(int16x4_t a)8541 int16x4_t test_vrev64_s16(int16x4_t a) {
8542   return vrev64_s16(a);
8543 }
8544 
8545 // CHECK-LABEL: test_vrev64_s32
8546 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s32(int32x2_t a)8547 int32x2_t test_vrev64_s32(int32x2_t a) {
8548   return vrev64_s32(a);
8549 }
8550 
8551 // CHECK-LABEL: test_vrev64_u8
8552 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u8(uint8x8_t a)8553 uint8x8_t test_vrev64_u8(uint8x8_t a) {
8554   return vrev64_u8(a);
8555 }
8556 
8557 // CHECK-LABEL: test_vrev64_u16
8558 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u16(uint16x4_t a)8559 uint16x4_t test_vrev64_u16(uint16x4_t a) {
8560   return vrev64_u16(a);
8561 }
8562 
8563 // CHECK-LABEL: test_vrev64_u32
8564 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u32(uint32x2_t a)8565 uint32x2_t test_vrev64_u32(uint32x2_t a) {
8566   return vrev64_u32(a);
8567 }
8568 
8569 // CHECK-LABEL: test_vrev64_p8
8570 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p8(poly8x8_t a)8571 poly8x8_t test_vrev64_p8(poly8x8_t a) {
8572   return vrev64_p8(a);
8573 }
8574 
8575 // CHECK-LABEL: test_vrev64_p16
8576 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p16(poly16x4_t a)8577 poly16x4_t test_vrev64_p16(poly16x4_t a) {
8578   return vrev64_p16(a);
8579 }
8580 
8581 // CHECK-LABEL: test_vrev64_f32
8582 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_f32(float32x2_t a)8583 float32x2_t test_vrev64_f32(float32x2_t a) {
8584   return vrev64_f32(a);
8585 }
8586 
8587 // CHECK-LABEL: test_vrev64q_s8
8588 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s8(int8x16_t a)8589 int8x16_t test_vrev64q_s8(int8x16_t a) {
8590   return vrev64q_s8(a);
8591 }
8592 
8593 // CHECK-LABEL: test_vrev64q_s16
8594 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s16(int16x8_t a)8595 int16x8_t test_vrev64q_s16(int16x8_t a) {
8596   return vrev64q_s16(a);
8597 }
8598 
8599 // CHECK-LABEL: test_vrev64q_s32
8600 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s32(int32x4_t a)8601 int32x4_t test_vrev64q_s32(int32x4_t a) {
8602   return vrev64q_s32(a);
8603 }
8604 
8605 // CHECK-LABEL: test_vrev64q_u8
8606 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u8(uint8x16_t a)8607 uint8x16_t test_vrev64q_u8(uint8x16_t a) {
8608   return vrev64q_u8(a);
8609 }
8610 
8611 // CHECK-LABEL: test_vrev64q_u16
8612 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u16(uint16x8_t a)8613 uint16x8_t test_vrev64q_u16(uint16x8_t a) {
8614   return vrev64q_u16(a);
8615 }
8616 
8617 // CHECK-LABEL: test_vrev64q_u32
8618 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u32(uint32x4_t a)8619 uint32x4_t test_vrev64q_u32(uint32x4_t a) {
8620   return vrev64q_u32(a);
8621 }
8622 
8623 // CHECK-LABEL: test_vrev64q_p8
8624 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p8(poly8x16_t a)8625 poly8x16_t test_vrev64q_p8(poly8x16_t a) {
8626   return vrev64q_p8(a);
8627 }
8628 
8629 // CHECK-LABEL: test_vrev64q_p16
8630 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p16(poly16x8_t a)8631 poly16x8_t test_vrev64q_p16(poly16x8_t a) {
8632   return vrev64q_p16(a);
8633 }
8634 
8635 // CHECK-LABEL: test_vrev64q_f32
8636 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_f32(float32x4_t a)8637 float32x4_t test_vrev64q_f32(float32x4_t a) {
8638   return vrev64q_f32(a);
8639 }
8640 
8641 
8642 // CHECK-LABEL: test_vrhadd_s8
8643 // CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s8(int8x8_t a,int8x8_t b)8644 int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) {
8645   return vrhadd_s8(a, b);
8646 }
8647 
8648 // CHECK-LABEL: test_vrhadd_s16
8649 // CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s16(int16x4_t a,int16x4_t b)8650 int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) {
8651   return vrhadd_s16(a, b);
8652 }
8653 
8654 // CHECK-LABEL: test_vrhadd_s32
8655 // CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s32(int32x2_t a,int32x2_t b)8656 int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) {
8657   return vrhadd_s32(a, b);
8658 }
8659 
8660 // CHECK-LABEL: test_vrhadd_u8
8661 // CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u8(uint8x8_t a,uint8x8_t b)8662 uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) {
8663   return vrhadd_u8(a, b);
8664 }
8665 
8666 // CHECK-LABEL: test_vrhadd_u16
8667 // CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u16(uint16x4_t a,uint16x4_t b)8668 uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) {
8669   return vrhadd_u16(a, b);
8670 }
8671 
8672 // CHECK-LABEL: test_vrhadd_u32
8673 // CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u32(uint32x2_t a,uint32x2_t b)8674 uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) {
8675   return vrhadd_u32(a, b);
8676 }
8677 
8678 // CHECK-LABEL: test_vrhaddq_s8
8679 // CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s8(int8x16_t a,int8x16_t b)8680 int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) {
8681   return vrhaddq_s8(a, b);
8682 }
8683 
8684 // CHECK-LABEL: test_vrhaddq_s16
8685 // CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s16(int16x8_t a,int16x8_t b)8686 int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) {
8687   return vrhaddq_s16(a, b);
8688 }
8689 
8690 // CHECK-LABEL: test_vrhaddq_s32
8691 // CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s32(int32x4_t a,int32x4_t b)8692 int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) {
8693   return vrhaddq_s32(a, b);
8694 }
8695 
8696 // CHECK-LABEL: test_vrhaddq_u8
8697 // CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u8(uint8x16_t a,uint8x16_t b)8698 uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) {
8699   return vrhaddq_u8(a, b);
8700 }
8701 
8702 // CHECK-LABEL: test_vrhaddq_u16
8703 // CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u16(uint16x8_t a,uint16x8_t b)8704 uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) {
8705   return vrhaddq_u16(a, b);
8706 }
8707 
8708 // CHECK-LABEL: test_vrhaddq_u32
8709 // CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u32(uint32x4_t a,uint32x4_t b)8710 uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) {
8711   return vrhaddq_u32(a, b);
8712 }
8713 
8714 
8715 // CHECK-LABEL: test_vrshl_s8
8716 // CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s8(int8x8_t a,int8x8_t b)8717 int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) {
8718   return vrshl_s8(a, b);
8719 }
8720 
8721 // CHECK-LABEL: test_vrshl_s16
8722 // CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s16(int16x4_t a,int16x4_t b)8723 int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) {
8724   return vrshl_s16(a, b);
8725 }
8726 
8727 // CHECK-LABEL: test_vrshl_s32
8728 // CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s32(int32x2_t a,int32x2_t b)8729 int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) {
8730   return vrshl_s32(a, b);
8731 }
8732 
8733 // CHECK-LABEL: test_vrshl_s64
8734 // CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s64(int64x1_t a,int64x1_t b)8735 int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) {
8736   return vrshl_s64(a, b);
8737 }
8738 
8739 // CHECK-LABEL: test_vrshl_u8
8740 // CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u8(uint8x8_t a,int8x8_t b)8741 uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) {
8742   return vrshl_u8(a, b);
8743 }
8744 
8745 // CHECK-LABEL: test_vrshl_u16
8746 // CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u16(uint16x4_t a,int16x4_t b)8747 uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) {
8748   return vrshl_u16(a, b);
8749 }
8750 
8751 // CHECK-LABEL: test_vrshl_u32
8752 // CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u32(uint32x2_t a,int32x2_t b)8753 uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) {
8754   return vrshl_u32(a, b);
8755 }
8756 
8757 // CHECK-LABEL: test_vrshl_u64
8758 // CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u64(uint64x1_t a,int64x1_t b)8759 uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) {
8760   return vrshl_u64(a, b);
8761 }
8762 
8763 // CHECK-LABEL: test_vrshlq_s8
8764 // CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s8(int8x16_t a,int8x16_t b)8765 int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) {
8766   return vrshlq_s8(a, b);
8767 }
8768 
8769 // CHECK-LABEL: test_vrshlq_s16
8770 // CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s16(int16x8_t a,int16x8_t b)8771 int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) {
8772   return vrshlq_s16(a, b);
8773 }
8774 
8775 // CHECK-LABEL: test_vrshlq_s32
8776 // CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s32(int32x4_t a,int32x4_t b)8777 int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) {
8778   return vrshlq_s32(a, b);
8779 }
8780 
8781 // CHECK-LABEL: test_vrshlq_s64
8782 // CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s64(int64x2_t a,int64x2_t b)8783 int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) {
8784   return vrshlq_s64(a, b);
8785 }
8786 
8787 // CHECK-LABEL: test_vrshlq_u8
8788 // CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u8(uint8x16_t a,int8x16_t b)8789 uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) {
8790   return vrshlq_u8(a, b);
8791 }
8792 
8793 // CHECK-LABEL: test_vrshlq_u16
8794 // CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u16(uint16x8_t a,int16x8_t b)8795 uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) {
8796   return vrshlq_u16(a, b);
8797 }
8798 
8799 // CHECK-LABEL: test_vrshlq_u32
8800 // CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u32(uint32x4_t a,int32x4_t b)8801 uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) {
8802   return vrshlq_u32(a, b);
8803 }
8804 
8805 // CHECK-LABEL: test_vrshlq_u64
8806 // CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u64(uint64x2_t a,int64x2_t b)8807 uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) {
8808   return vrshlq_u64(a, b);
8809 }
8810 
8811 
8812 // CHECK-LABEL: test_vrshrn_n_s16
8813 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s16(int16x8_t a)8814 int8x8_t test_vrshrn_n_s16(int16x8_t a) {
8815   return vrshrn_n_s16(a, 1);
8816 }
8817 
8818 // CHECK-LABEL: test_vrshrn_n_s32
8819 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s32(int32x4_t a)8820 int16x4_t test_vrshrn_n_s32(int32x4_t a) {
8821   return vrshrn_n_s32(a, 1);
8822 }
8823 
8824 // CHECK-LABEL: test_vrshrn_n_s64
8825 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s64(int64x2_t a)8826 int32x2_t test_vrshrn_n_s64(int64x2_t a) {
8827   return vrshrn_n_s64(a, 1);
8828 }
8829 
8830 // CHECK-LABEL: test_vrshrn_n_u16
8831 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u16(uint16x8_t a)8832 uint8x8_t test_vrshrn_n_u16(uint16x8_t a) {
8833   return vrshrn_n_u16(a, 1);
8834 }
8835 
8836 // CHECK-LABEL: test_vrshrn_n_u32
8837 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u32(uint32x4_t a)8838 uint16x4_t test_vrshrn_n_u32(uint32x4_t a) {
8839   return vrshrn_n_u32(a, 1);
8840 }
8841 
8842 // CHECK-LABEL: test_vrshrn_n_u64
8843 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u64(uint64x2_t a)8844 uint32x2_t test_vrshrn_n_u64(uint64x2_t a) {
8845   return vrshrn_n_u64(a, 1);
8846 }
8847 
8848 
8849 // CHECK-LABEL: test_vrshr_n_s8
8850 // CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s8(int8x8_t a)8851 int8x8_t test_vrshr_n_s8(int8x8_t a) {
8852   return vrshr_n_s8(a, 1);
8853 }
8854 
8855 // CHECK-LABEL: test_vrshr_n_s16
8856 // CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s16(int16x4_t a)8857 int16x4_t test_vrshr_n_s16(int16x4_t a) {
8858   return vrshr_n_s16(a, 1);
8859 }
8860 
8861 // CHECK-LABEL: test_vrshr_n_s32
8862 // CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s32(int32x2_t a)8863 int32x2_t test_vrshr_n_s32(int32x2_t a) {
8864   return vrshr_n_s32(a, 1);
8865 }
8866 
8867 // CHECK-LABEL: test_vrshr_n_s64
8868 // CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s64(int64x1_t a)8869 int64x1_t test_vrshr_n_s64(int64x1_t a) {
8870   return vrshr_n_s64(a, 1);
8871 }
8872 
8873 // CHECK-LABEL: test_vrshr_n_u8
8874 // CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u8(uint8x8_t a)8875 uint8x8_t test_vrshr_n_u8(uint8x8_t a) {
8876   return vrshr_n_u8(a, 1);
8877 }
8878 
8879 // CHECK-LABEL: test_vrshr_n_u16
8880 // CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u16(uint16x4_t a)8881 uint16x4_t test_vrshr_n_u16(uint16x4_t a) {
8882   return vrshr_n_u16(a, 1);
8883 }
8884 
8885 // CHECK-LABEL: test_vrshr_n_u32
8886 // CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u32(uint32x2_t a)8887 uint32x2_t test_vrshr_n_u32(uint32x2_t a) {
8888   return vrshr_n_u32(a, 1);
8889 }
8890 
8891 // CHECK-LABEL: test_vrshr_n_u64
8892 // CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u64(uint64x1_t a)8893 uint64x1_t test_vrshr_n_u64(uint64x1_t a) {
8894   return vrshr_n_u64(a, 1);
8895 }
8896 
8897 // CHECK-LABEL: test_vrshrq_n_s8
8898 // CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s8(int8x16_t a)8899 int8x16_t test_vrshrq_n_s8(int8x16_t a) {
8900   return vrshrq_n_s8(a, 1);
8901 }
8902 
8903 // CHECK-LABEL: test_vrshrq_n_s16
8904 // CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s16(int16x8_t a)8905 int16x8_t test_vrshrq_n_s16(int16x8_t a) {
8906   return vrshrq_n_s16(a, 1);
8907 }
8908 
8909 // CHECK-LABEL: test_vrshrq_n_s32
8910 // CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s32(int32x4_t a)8911 int32x4_t test_vrshrq_n_s32(int32x4_t a) {
8912   return vrshrq_n_s32(a, 1);
8913 }
8914 
8915 // CHECK-LABEL: test_vrshrq_n_s64
8916 // CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s64(int64x2_t a)8917 int64x2_t test_vrshrq_n_s64(int64x2_t a) {
8918   return vrshrq_n_s64(a, 1);
8919 }
8920 
8921 // CHECK-LABEL: test_vrshrq_n_u8
8922 // CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u8(uint8x16_t a)8923 uint8x16_t test_vrshrq_n_u8(uint8x16_t a) {
8924   return vrshrq_n_u8(a, 1);
8925 }
8926 
8927 // CHECK-LABEL: test_vrshrq_n_u16
8928 // CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u16(uint16x8_t a)8929 uint16x8_t test_vrshrq_n_u16(uint16x8_t a) {
8930   return vrshrq_n_u16(a, 1);
8931 }
8932 
8933 // CHECK-LABEL: test_vrshrq_n_u32
8934 // CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u32(uint32x4_t a)8935 uint32x4_t test_vrshrq_n_u32(uint32x4_t a) {
8936   return vrshrq_n_u32(a, 1);
8937 }
8938 
8939 // CHECK-LABEL: test_vrshrq_n_u64
8940 // CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u64(uint64x2_t a)8941 uint64x2_t test_vrshrq_n_u64(uint64x2_t a) {
8942   return vrshrq_n_u64(a, 1);
8943 }
8944 
8945 
8946 // CHECK-LABEL: test_vrsqrte_f32
8947 // CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_f32(float32x2_t a)8948 float32x2_t test_vrsqrte_f32(float32x2_t a) {
8949   return vrsqrte_f32(a);
8950 }
8951 
8952 // CHECK-LABEL: test_vrsqrte_u32
8953 // CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_u32(uint32x2_t a)8954 uint32x2_t test_vrsqrte_u32(uint32x2_t a) {
8955   return vrsqrte_u32(a);
8956 }
8957 
8958 // CHECK-LABEL: test_vrsqrteq_f32
8959 // CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_f32(float32x4_t a)8960 float32x4_t test_vrsqrteq_f32(float32x4_t a) {
8961   return vrsqrteq_f32(a);
8962 }
8963 
8964 // CHECK-LABEL: test_vrsqrteq_u32
8965 // CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_u32(uint32x4_t a)8966 uint32x4_t test_vrsqrteq_u32(uint32x4_t a) {
8967   return vrsqrteq_u32(a);
8968 }
8969 
8970 
8971 // CHECK-LABEL: test_vrsqrts_f32
8972 // CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrts_f32(float32x2_t a,float32x2_t b)8973 float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) {
8974   return vrsqrts_f32(a, b);
8975 }
8976 
8977 // CHECK-LABEL: test_vrsqrtsq_f32
8978 // CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrtsq_f32(float32x4_t a,float32x4_t b)8979 float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) {
8980   return vrsqrtsq_f32(a, b);
8981 }
8982 
8983 
8984 // CHECK-LABEL: test_vrsra_n_s8
8985 // CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s8(int8x8_t a,int8x8_t b)8986 int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) {
8987   return vrsra_n_s8(a, b, 1);
8988 }
8989 
8990 // CHECK-LABEL: test_vrsra_n_s16
8991 // CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s16(int16x4_t a,int16x4_t b)8992 int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) {
8993   return vrsra_n_s16(a, b, 1);
8994 }
8995 
8996 // CHECK-LABEL: test_vrsra_n_s32
8997 // CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s32(int32x2_t a,int32x2_t b)8998 int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) {
8999   return vrsra_n_s32(a, b, 1);
9000 }
9001 
9002 // CHECK-LABEL: test_vrsra_n_s64
9003 // CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s64(int64x1_t a,int64x1_t b)9004 int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) {
9005   return vrsra_n_s64(a, b, 1);
9006 }
9007 
9008 // CHECK-LABEL: test_vrsra_n_u8
9009 // CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u8(uint8x8_t a,uint8x8_t b)9010 uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) {
9011   return vrsra_n_u8(a, b, 1);
9012 }
9013 
9014 // CHECK-LABEL: test_vrsra_n_u16
9015 // CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u16(uint16x4_t a,uint16x4_t b)9016 uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) {
9017   return vrsra_n_u16(a, b, 1);
9018 }
9019 
9020 // CHECK-LABEL: test_vrsra_n_u32
9021 // CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u32(uint32x2_t a,uint32x2_t b)9022 uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) {
9023   return vrsra_n_u32(a, b, 1);
9024 }
9025 
9026 // CHECK-LABEL: test_vrsra_n_u64
9027 // CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u64(uint64x1_t a,uint64x1_t b)9028 uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) {
9029   return vrsra_n_u64(a, b, 1);
9030 }
9031 
9032 // CHECK-LABEL: test_vrsraq_n_s8
9033 // CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s8(int8x16_t a,int8x16_t b)9034 int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) {
9035   return vrsraq_n_s8(a, b, 1);
9036 }
9037 
9038 // CHECK-LABEL: test_vrsraq_n_s16
9039 // CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s16(int16x8_t a,int16x8_t b)9040 int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) {
9041   return vrsraq_n_s16(a, b, 1);
9042 }
9043 
9044 // CHECK-LABEL: test_vrsraq_n_s32
9045 // CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s32(int32x4_t a,int32x4_t b)9046 int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) {
9047   return vrsraq_n_s32(a, b, 1);
9048 }
9049 
9050 // CHECK-LABEL: test_vrsraq_n_s64
9051 // CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s64(int64x2_t a,int64x2_t b)9052 int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) {
9053   return vrsraq_n_s64(a, b, 1);
9054 }
9055 
9056 // CHECK-LABEL: test_vrsraq_n_u8
9057 // CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u8(uint8x16_t a,uint8x16_t b)9058 uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9059   return vrsraq_n_u8(a, b, 1);
9060 }
9061 
9062 // CHECK-LABEL: test_vrsraq_n_u16
9063 // CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u16(uint16x8_t a,uint16x8_t b)9064 uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9065   return vrsraq_n_u16(a, b, 1);
9066 }
9067 
9068 // CHECK-LABEL: test_vrsraq_n_u32
9069 // CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u32(uint32x4_t a,uint32x4_t b)9070 uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9071   return vrsraq_n_u32(a, b, 1);
9072 }
9073 
9074 // CHECK-LABEL: test_vrsraq_n_u64
9075 // CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u64(uint64x2_t a,uint64x2_t b)9076 uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9077   return vrsraq_n_u64(a, b, 1);
9078 }
9079 
9080 
9081 // CHECK-LABEL: test_vrsubhn_s16
9082 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s16(int16x8_t a,int16x8_t b)9083 int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) {
9084   return vrsubhn_s16(a, b);
9085 }
9086 
9087 // CHECK-LABEL: test_vrsubhn_s32
9088 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s32(int32x4_t a,int32x4_t b)9089 int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) {
9090   return vrsubhn_s32(a, b);
9091 }
9092 
9093 // CHECK-LABEL: test_vrsubhn_s64
9094 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s64(int64x2_t a,int64x2_t b)9095 int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) {
9096   return vrsubhn_s64(a, b);
9097 }
9098 
9099 // CHECK-LABEL: test_vrsubhn_u16
9100 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u16(uint16x8_t a,uint16x8_t b)9101 uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) {
9102   return vrsubhn_u16(a, b);
9103 }
9104 
9105 // CHECK-LABEL: test_vrsubhn_u32
9106 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u32(uint32x4_t a,uint32x4_t b)9107 uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) {
9108   return vrsubhn_u32(a, b);
9109 }
9110 
9111 // CHECK-LABEL: test_vrsubhn_u64
9112 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u64(uint64x2_t a,uint64x2_t b)9113 uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) {
9114   return vrsubhn_u64(a, b);
9115 }
9116 
9117 
9118 // CHECK-LABEL: test_vset_lane_u8
9119 // CHECK: vmov
test_vset_lane_u8(uint8_t a,uint8x8_t b)9120 uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
9121   return vset_lane_u8(a, b, 7);
9122 }
9123 
9124 // CHECK-LABEL: test_vset_lane_u16
9125 // CHECK: vmov
test_vset_lane_u16(uint16_t a,uint16x4_t b)9126 uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
9127   return vset_lane_u16(a, b, 3);
9128 }
9129 
9130 // CHECK-LABEL: test_vset_lane_u32
9131 // CHECK: mov
test_vset_lane_u32(uint32_t a,uint32x2_t b)9132 uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
9133   return vset_lane_u32(a, b, 1);
9134 }
9135 
9136 // CHECK-LABEL: test_vset_lane_s8
9137 // CHECK: vmov
test_vset_lane_s8(int8_t a,int8x8_t b)9138 int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) {
9139   return vset_lane_s8(a, b, 7);
9140 }
9141 
9142 // CHECK-LABEL: test_vset_lane_s16
9143 // CHECK: vmov
test_vset_lane_s16(int16_t a,int16x4_t b)9144 int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) {
9145   return vset_lane_s16(a, b, 3);
9146 }
9147 
9148 // CHECK-LABEL: test_vset_lane_s32
9149 // CHECK: mov
test_vset_lane_s32(int32_t a,int32x2_t b)9150 int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) {
9151   return vset_lane_s32(a, b, 1);
9152 }
9153 
9154 // CHECK-LABEL: test_vset_lane_p8
9155 // CHECK: vmov
test_vset_lane_p8(poly8_t a,poly8x8_t b)9156 poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) {
9157   return vset_lane_p8(a, b, 7);
9158 }
9159 
9160 // CHECK-LABEL: test_vset_lane_p16
9161 // CHECK: vmov
test_vset_lane_p16(poly16_t a,poly16x4_t b)9162 poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) {
9163   return vset_lane_p16(a, b, 3);
9164 }
9165 
9166 // CHECK-LABEL: test_vset_lane_f32
9167 // CHECK: mov
test_vset_lane_f32(float32_t a,float32x2_t b)9168 float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
9169   return vset_lane_f32(a, b, 1);
9170 }
9171 
9172 // CHECK-LABEL: test_vset_lane_f16
9173 // CHECK: mov
test_vset_lane_f16(float16_t * a,float16x4_t b)9174 float16x4_t test_vset_lane_f16(float16_t *a, float16x4_t b) {
9175   return vset_lane_f16(*a, b, 1);
9176 }
9177 
9178 // CHECK-LABEL: test_vsetq_lane_u8
9179 // CHECK: vmov
test_vsetq_lane_u8(uint8_t a,uint8x16_t b)9180 uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
9181   return vsetq_lane_u8(a, b, 15);
9182 }
9183 
9184 // CHECK-LABEL: test_vsetq_lane_u16
9185 // CHECK: vmov
test_vsetq_lane_u16(uint16_t a,uint16x8_t b)9186 uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
9187   return vsetq_lane_u16(a, b, 7);
9188 }
9189 
9190 // CHECK-LABEL: test_vsetq_lane_u32
9191 // CHECK: vmov
test_vsetq_lane_u32(uint32_t a,uint32x4_t b)9192 uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
9193   return vsetq_lane_u32(a, b, 3);
9194 }
9195 
9196 // CHECK-LABEL: test_vsetq_lane_s8
9197 // CHECK: vmov
test_vsetq_lane_s8(int8_t a,int8x16_t b)9198 int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) {
9199   return vsetq_lane_s8(a, b, 15);
9200 }
9201 
9202 // CHECK-LABEL: test_vsetq_lane_s16
9203 // CHECK: vmov
test_vsetq_lane_s16(int16_t a,int16x8_t b)9204 int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) {
9205   return vsetq_lane_s16(a, b, 7);
9206 }
9207 
9208 // CHECK-LABEL: test_vsetq_lane_s32
9209 // CHECK: vmov
test_vsetq_lane_s32(int32_t a,int32x4_t b)9210 int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) {
9211   return vsetq_lane_s32(a, b, 3);
9212 }
9213 
9214 // CHECK-LABEL: test_vsetq_lane_p8
9215 // CHECK: vmov
test_vsetq_lane_p8(poly8_t a,poly8x16_t b)9216 poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) {
9217   return vsetq_lane_p8(a, b, 15);
9218 }
9219 
9220 // CHECK-LABEL: test_vsetq_lane_p16
9221 // CHECK: vmov
test_vsetq_lane_p16(poly16_t a,poly16x8_t b)9222 poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) {
9223   return vsetq_lane_p16(a, b, 7);
9224 }
9225 
9226 // CHECK-LABEL: test_vsetq_lane_f32
9227 // CHECK: vmov
test_vsetq_lane_f32(float32_t a,float32x4_t b)9228 float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
9229   return vsetq_lane_f32(a, b, 3);
9230 }
9231 
9232 // CHECK-LABEL: test_vsetq_lane_f16
9233 // CHECK: vmov
test_vsetq_lane_f16(float16_t * a,float16x8_t b)9234 float16x8_t test_vsetq_lane_f16(float16_t *a, float16x8_t b) {
9235   return vsetq_lane_f16(*a, b, 3);
9236 }
9237 
9238 // CHECK-LABEL: test_vset_lane_s64
9239 // The optimizer is able to get rid of all moves now.
test_vset_lane_s64(int64_t a,int64x1_t b)9240 int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) {
9241   return vset_lane_s64(a, b, 0);
9242 }
9243 
9244 // CHECK-LABEL: test_vset_lane_u64
9245 // The optimizer is able to get rid of all moves now.
test_vset_lane_u64(uint64_t a,uint64x1_t b)9246 uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) {
9247   return vset_lane_u64(a, b, 0);
9248 }
9249 
9250 // CHECK-LABEL: test_vsetq_lane_s64
9251 // CHECK: vmov
test_vsetq_lane_s64(int64_t a,int64x2_t b)9252 int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
9253   return vsetq_lane_s64(a, b, 1);
9254 }
9255 
9256 // CHECK-LABEL: test_vsetq_lane_u64
9257 // CHECK: vmov
test_vsetq_lane_u64(uint64_t a,uint64x2_t b)9258 uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) {
9259   return vsetq_lane_u64(a, b, 1);
9260 }
9261 
9262 
9263 // CHECK-LABEL: test_vshl_s8
9264 // CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s8(int8x8_t a,int8x8_t b)9265 int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) {
9266   return vshl_s8(a, b);
9267 }
9268 
9269 // CHECK-LABEL: test_vshl_s16
9270 // CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s16(int16x4_t a,int16x4_t b)9271 int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) {
9272   return vshl_s16(a, b);
9273 }
9274 
9275 // CHECK-LABEL: test_vshl_s32
9276 // CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s32(int32x2_t a,int32x2_t b)9277 int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) {
9278   return vshl_s32(a, b);
9279 }
9280 
9281 // CHECK-LABEL: test_vshl_s64
9282 // CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s64(int64x1_t a,int64x1_t b)9283 int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) {
9284   return vshl_s64(a, b);
9285 }
9286 
9287 // CHECK-LABEL: test_vshl_u8
9288 // CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u8(uint8x8_t a,int8x8_t b)9289 uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) {
9290   return vshl_u8(a, b);
9291 }
9292 
9293 // CHECK-LABEL: test_vshl_u16
9294 // CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u16(uint16x4_t a,int16x4_t b)9295 uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) {
9296   return vshl_u16(a, b);
9297 }
9298 
9299 // CHECK-LABEL: test_vshl_u32
9300 // CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u32(uint32x2_t a,int32x2_t b)9301 uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) {
9302   return vshl_u32(a, b);
9303 }
9304 
9305 // CHECK-LABEL: test_vshl_u64
9306 // CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u64(uint64x1_t a,int64x1_t b)9307 uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) {
9308   return vshl_u64(a, b);
9309 }
9310 
9311 // CHECK-LABEL: test_vshlq_s8
9312 // CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s8(int8x16_t a,int8x16_t b)9313 int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) {
9314   return vshlq_s8(a, b);
9315 }
9316 
9317 // CHECK-LABEL: test_vshlq_s16
9318 // CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s16(int16x8_t a,int16x8_t b)9319 int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) {
9320   return vshlq_s16(a, b);
9321 }
9322 
9323 // CHECK-LABEL: test_vshlq_s32
9324 // CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s32(int32x4_t a,int32x4_t b)9325 int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) {
9326   return vshlq_s32(a, b);
9327 }
9328 
9329 // CHECK-LABEL: test_vshlq_s64
9330 // CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s64(int64x2_t a,int64x2_t b)9331 int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) {
9332   return vshlq_s64(a, b);
9333 }
9334 
9335 // CHECK-LABEL: test_vshlq_u8
9336 // CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u8(uint8x16_t a,int8x16_t b)9337 uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) {
9338   return vshlq_u8(a, b);
9339 }
9340 
9341 // CHECK-LABEL: test_vshlq_u16
9342 // CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u16(uint16x8_t a,int16x8_t b)9343 uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) {
9344   return vshlq_u16(a, b);
9345 }
9346 
9347 // CHECK-LABEL: test_vshlq_u32
9348 // CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u32(uint32x4_t a,int32x4_t b)9349 uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) {
9350   return vshlq_u32(a, b);
9351 }
9352 
9353 // CHECK-LABEL: test_vshlq_u64
9354 // CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u64(uint64x2_t a,int64x2_t b)9355 uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) {
9356   return vshlq_u64(a, b);
9357 }
9358 
9359 
9360 // CHECK-LABEL: test_vshll_n_s8
9361 // CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s8(int8x8_t a)9362 int16x8_t test_vshll_n_s8(int8x8_t a) {
9363   return vshll_n_s8(a, 1);
9364 }
9365 
9366 // CHECK-LABEL: test_vshll_n_s16
9367 // CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s16(int16x4_t a)9368 int32x4_t test_vshll_n_s16(int16x4_t a) {
9369   return vshll_n_s16(a, 1);
9370 }
9371 
9372 // CHECK-LABEL: test_vshll_n_s32
9373 // CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s32(int32x2_t a)9374 int64x2_t test_vshll_n_s32(int32x2_t a) {
9375   return vshll_n_s32(a, 1);
9376 }
9377 
9378 // CHECK-LABEL: test_vshll_n_u8
9379 // CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u8(uint8x8_t a)9380 uint16x8_t test_vshll_n_u8(uint8x8_t a) {
9381   return vshll_n_u8(a, 1);
9382 }
9383 
9384 // CHECK-LABEL: test_vshll_n_u16
9385 // CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u16(uint16x4_t a)9386 uint32x4_t test_vshll_n_u16(uint16x4_t a) {
9387   return vshll_n_u16(a, 1);
9388 }
9389 
9390 // CHECK-LABEL: test_vshll_n_u32
9391 // CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u32(uint32x2_t a)9392 uint64x2_t test_vshll_n_u32(uint32x2_t a) {
9393   return vshll_n_u32(a, 1);
9394 }
9395 
9396 
9397 // CHECK-LABEL: test_vshl_n_s8
9398 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s8(int8x8_t a)9399 int8x8_t test_vshl_n_s8(int8x8_t a) {
9400   return vshl_n_s8(a, 1);
9401 }
9402 
9403 // CHECK-LABEL: test_vshl_n_s16
9404 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s16(int16x4_t a)9405 int16x4_t test_vshl_n_s16(int16x4_t a) {
9406   return vshl_n_s16(a, 1);
9407 }
9408 
9409 // CHECK-LABEL: test_vshl_n_s32
9410 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s32(int32x2_t a)9411 int32x2_t test_vshl_n_s32(int32x2_t a) {
9412   return vshl_n_s32(a, 1);
9413 }
9414 
9415 // CHECK-LABEL: test_vshl_n_s64
9416 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s64(int64x1_t a)9417 int64x1_t test_vshl_n_s64(int64x1_t a) {
9418   return vshl_n_s64(a, 1);
9419 }
9420 
9421 // CHECK-LABEL: test_vshl_n_u8
9422 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u8(uint8x8_t a)9423 uint8x8_t test_vshl_n_u8(uint8x8_t a) {
9424   return vshl_n_u8(a, 1);
9425 }
9426 
9427 // CHECK-LABEL: test_vshl_n_u16
9428 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u16(uint16x4_t a)9429 uint16x4_t test_vshl_n_u16(uint16x4_t a) {
9430   return vshl_n_u16(a, 1);
9431 }
9432 
9433 // CHECK-LABEL: test_vshl_n_u32
9434 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u32(uint32x2_t a)9435 uint32x2_t test_vshl_n_u32(uint32x2_t a) {
9436   return vshl_n_u32(a, 1);
9437 }
9438 
9439 // CHECK-LABEL: test_vshl_n_u64
9440 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u64(uint64x1_t a)9441 uint64x1_t test_vshl_n_u64(uint64x1_t a) {
9442   return vshl_n_u64(a, 1);
9443 }
9444 
9445 // CHECK-LABEL: test_vshlq_n_s8
9446 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s8(int8x16_t a)9447 int8x16_t test_vshlq_n_s8(int8x16_t a) {
9448   return vshlq_n_s8(a, 1);
9449 }
9450 
9451 // CHECK-LABEL: test_vshlq_n_s16
9452 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s16(int16x8_t a)9453 int16x8_t test_vshlq_n_s16(int16x8_t a) {
9454   return vshlq_n_s16(a, 1);
9455 }
9456 
9457 // CHECK-LABEL: test_vshlq_n_s32
9458 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s32(int32x4_t a)9459 int32x4_t test_vshlq_n_s32(int32x4_t a) {
9460   return vshlq_n_s32(a, 1);
9461 }
9462 
9463 // CHECK-LABEL: test_vshlq_n_s64
9464 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s64(int64x2_t a)9465 int64x2_t test_vshlq_n_s64(int64x2_t a) {
9466   return vshlq_n_s64(a, 1);
9467 }
9468 
9469 // CHECK-LABEL: test_vshlq_n_u8
9470 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u8(uint8x16_t a)9471 uint8x16_t test_vshlq_n_u8(uint8x16_t a) {
9472   return vshlq_n_u8(a, 1);
9473 }
9474 
9475 // CHECK-LABEL: test_vshlq_n_u16
9476 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u16(uint16x8_t a)9477 uint16x8_t test_vshlq_n_u16(uint16x8_t a) {
9478   return vshlq_n_u16(a, 1);
9479 }
9480 
9481 // CHECK-LABEL: test_vshlq_n_u32
9482 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u32(uint32x4_t a)9483 uint32x4_t test_vshlq_n_u32(uint32x4_t a) {
9484   return vshlq_n_u32(a, 1);
9485 }
9486 
9487 // CHECK-LABEL: test_vshlq_n_u64
9488 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u64(uint64x2_t a)9489 uint64x2_t test_vshlq_n_u64(uint64x2_t a) {
9490   return vshlq_n_u64(a, 1);
9491 }
9492 
9493 
9494 // CHECK-LABEL: test_vshrn_n_s16
9495 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s16(int16x8_t a)9496 int8x8_t test_vshrn_n_s16(int16x8_t a) {
9497   return vshrn_n_s16(a, 1);
9498 }
9499 
9500 // CHECK-LABEL: test_vshrn_n_s32
9501 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s32(int32x4_t a)9502 int16x4_t test_vshrn_n_s32(int32x4_t a) {
9503   return vshrn_n_s32(a, 1);
9504 }
9505 
9506 // CHECK-LABEL: test_vshrn_n_s64
9507 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s64(int64x2_t a)9508 int32x2_t test_vshrn_n_s64(int64x2_t a) {
9509   return vshrn_n_s64(a, 1);
9510 }
9511 
9512 // CHECK-LABEL: test_vshrn_n_u16
9513 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u16(uint16x8_t a)9514 uint8x8_t test_vshrn_n_u16(uint16x8_t a) {
9515   return vshrn_n_u16(a, 1);
9516 }
9517 
9518 // CHECK-LABEL: test_vshrn_n_u32
9519 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u32(uint32x4_t a)9520 uint16x4_t test_vshrn_n_u32(uint32x4_t a) {
9521   return vshrn_n_u32(a, 1);
9522 }
9523 
9524 // CHECK-LABEL: test_vshrn_n_u64
9525 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u64(uint64x2_t a)9526 uint32x2_t test_vshrn_n_u64(uint64x2_t a) {
9527   return vshrn_n_u64(a, 1);
9528 }
9529 
9530 
9531 // CHECK-LABEL: test_vshr_n_s8
9532 // CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s8(int8x8_t a)9533 int8x8_t test_vshr_n_s8(int8x8_t a) {
9534   return vshr_n_s8(a, 1);
9535 }
9536 
9537 // CHECK-LABEL: test_vshr_n_s16
9538 // CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s16(int16x4_t a)9539 int16x4_t test_vshr_n_s16(int16x4_t a) {
9540   return vshr_n_s16(a, 1);
9541 }
9542 
9543 // CHECK-LABEL: test_vshr_n_s32
9544 // CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s32(int32x2_t a)9545 int32x2_t test_vshr_n_s32(int32x2_t a) {
9546   return vshr_n_s32(a, 1);
9547 }
9548 
9549 // CHECK-LABEL: test_vshr_n_s64
9550 // CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s64(int64x1_t a)9551 int64x1_t test_vshr_n_s64(int64x1_t a) {
9552   return vshr_n_s64(a, 1);
9553 }
9554 
9555 // CHECK-LABEL: test_vshr_n_u8
9556 // CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u8(uint8x8_t a)9557 uint8x8_t test_vshr_n_u8(uint8x8_t a) {
9558   return vshr_n_u8(a, 1);
9559 }
9560 
9561 // CHECK-LABEL: test_vshr_n_u16
9562 // CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u16(uint16x4_t a)9563 uint16x4_t test_vshr_n_u16(uint16x4_t a) {
9564   return vshr_n_u16(a, 1);
9565 }
9566 
9567 // CHECK-LABEL: test_vshr_n_u32
9568 // CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u32(uint32x2_t a)9569 uint32x2_t test_vshr_n_u32(uint32x2_t a) {
9570   return vshr_n_u32(a, 1);
9571 }
9572 
9573 // CHECK-LABEL: test_vshr_n_u64
9574 // CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u64(uint64x1_t a)9575 uint64x1_t test_vshr_n_u64(uint64x1_t a) {
9576   return vshr_n_u64(a, 1);
9577 }
9578 
9579 // CHECK-LABEL: test_vshrq_n_s8
9580 // CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s8(int8x16_t a)9581 int8x16_t test_vshrq_n_s8(int8x16_t a) {
9582   return vshrq_n_s8(a, 1);
9583 }
9584 
9585 // CHECK-LABEL: test_vshrq_n_s16
9586 // CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s16(int16x8_t a)9587 int16x8_t test_vshrq_n_s16(int16x8_t a) {
9588   return vshrq_n_s16(a, 1);
9589 }
9590 
9591 // CHECK-LABEL: test_vshrq_n_s32
9592 // CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s32(int32x4_t a)9593 int32x4_t test_vshrq_n_s32(int32x4_t a) {
9594   return vshrq_n_s32(a, 1);
9595 }
9596 
9597 // CHECK-LABEL: test_vshrq_n_s64
9598 // CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s64(int64x2_t a)9599 int64x2_t test_vshrq_n_s64(int64x2_t a) {
9600   return vshrq_n_s64(a, 1);
9601 }
9602 
9603 // CHECK-LABEL: test_vshrq_n_u8
9604 // CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u8(uint8x16_t a)9605 uint8x16_t test_vshrq_n_u8(uint8x16_t a) {
9606   return vshrq_n_u8(a, 1);
9607 }
9608 
9609 // CHECK-LABEL: test_vshrq_n_u16
9610 // CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u16(uint16x8_t a)9611 uint16x8_t test_vshrq_n_u16(uint16x8_t a) {
9612   return vshrq_n_u16(a, 1);
9613 }
9614 
9615 // CHECK-LABEL: test_vshrq_n_u32
9616 // CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u32(uint32x4_t a)9617 uint32x4_t test_vshrq_n_u32(uint32x4_t a) {
9618   return vshrq_n_u32(a, 1);
9619 }
9620 
9621 // CHECK-LABEL: test_vshrq_n_u64
9622 // CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u64(uint64x2_t a)9623 uint64x2_t test_vshrq_n_u64(uint64x2_t a) {
9624   return vshrq_n_u64(a, 1);
9625 }
9626 
9627 
9628 // CHECK-LABEL: test_vsli_n_s8
9629 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s8(int8x8_t a,int8x8_t b)9630 int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) {
9631   return vsli_n_s8(a, b, 1);
9632 }
9633 
9634 // CHECK-LABEL: test_vsli_n_s16
9635 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s16(int16x4_t a,int16x4_t b)9636 int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) {
9637   return vsli_n_s16(a, b, 1);
9638 }
9639 
9640 // CHECK-LABEL: test_vsli_n_s32
9641 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s32(int32x2_t a,int32x2_t b)9642 int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) {
9643   return vsli_n_s32(a, b, 1);
9644 }
9645 
9646 // CHECK-LABEL: test_vsli_n_s64
9647 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s64(int64x1_t a,int64x1_t b)9648 int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) {
9649   return vsli_n_s64(a, b, 1);
9650 }
9651 
9652 // CHECK-LABEL: test_vsli_n_u8
9653 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u8(uint8x8_t a,uint8x8_t b)9654 uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) {
9655   return vsli_n_u8(a, b, 1);
9656 }
9657 
9658 // CHECK-LABEL: test_vsli_n_u16
9659 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u16(uint16x4_t a,uint16x4_t b)9660 uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) {
9661   return vsli_n_u16(a, b, 1);
9662 }
9663 
9664 // CHECK-LABEL: test_vsli_n_u32
9665 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u32(uint32x2_t a,uint32x2_t b)9666 uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) {
9667   return vsli_n_u32(a, b, 1);
9668 }
9669 
9670 // CHECK-LABEL: test_vsli_n_u64
9671 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u64(uint64x1_t a,uint64x1_t b)9672 uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) {
9673   return vsli_n_u64(a, b, 1);
9674 }
9675 
9676 // CHECK-LABEL: test_vsli_n_p8
9677 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p8(poly8x8_t a,poly8x8_t b)9678 poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) {
9679   return vsli_n_p8(a, b, 1);
9680 }
9681 
9682 // CHECK-LABEL: test_vsli_n_p16
9683 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p16(poly16x4_t a,poly16x4_t b)9684 poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) {
9685   return vsli_n_p16(a, b, 1);
9686 }
9687 
9688 // CHECK-LABEL: test_vsliq_n_s8
9689 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s8(int8x16_t a,int8x16_t b)9690 int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) {
9691   return vsliq_n_s8(a, b, 1);
9692 }
9693 
9694 // CHECK-LABEL: test_vsliq_n_s16
9695 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s16(int16x8_t a,int16x8_t b)9696 int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) {
9697   return vsliq_n_s16(a, b, 1);
9698 }
9699 
9700 // CHECK-LABEL: test_vsliq_n_s32
9701 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s32(int32x4_t a,int32x4_t b)9702 int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) {
9703   return vsliq_n_s32(a, b, 1);
9704 }
9705 
9706 // CHECK-LABEL: test_vsliq_n_s64
9707 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s64(int64x2_t a,int64x2_t b)9708 int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) {
9709   return vsliq_n_s64(a, b, 1);
9710 }
9711 
9712 // CHECK-LABEL: test_vsliq_n_u8
9713 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u8(uint8x16_t a,uint8x16_t b)9714 uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) {
9715   return vsliq_n_u8(a, b, 1);
9716 }
9717 
9718 // CHECK-LABEL: test_vsliq_n_u16
9719 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u16(uint16x8_t a,uint16x8_t b)9720 uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) {
9721   return vsliq_n_u16(a, b, 1);
9722 }
9723 
9724 // CHECK-LABEL: test_vsliq_n_u32
9725 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u32(uint32x4_t a,uint32x4_t b)9726 uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) {
9727   return vsliq_n_u32(a, b, 1);
9728 }
9729 
9730 // CHECK-LABEL: test_vsliq_n_u64
9731 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u64(uint64x2_t a,uint64x2_t b)9732 uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) {
9733   return vsliq_n_u64(a, b, 1);
9734 }
9735 
9736 // CHECK-LABEL: test_vsliq_n_p8
9737 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p8(poly8x16_t a,poly8x16_t b)9738 poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) {
9739   return vsliq_n_p8(a, b, 1);
9740 }
9741 
9742 // CHECK-LABEL: test_vsliq_n_p16
9743 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p16(poly16x8_t a,poly16x8_t b)9744 poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) {
9745   return vsliq_n_p16(a, b, 1);
9746 }
9747 
9748 
9749 // CHECK-LABEL: test_vsra_n_s8
9750 // CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s8(int8x8_t a,int8x8_t b)9751 int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) {
9752   return vsra_n_s8(a, b, 1);
9753 }
9754 
9755 // CHECK-LABEL: test_vsra_n_s16
9756 // CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s16(int16x4_t a,int16x4_t b)9757 int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) {
9758   return vsra_n_s16(a, b, 1);
9759 }
9760 
9761 // CHECK-LABEL: test_vsra_n_s32
9762 // CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s32(int32x2_t a,int32x2_t b)9763 int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) {
9764   return vsra_n_s32(a, b, 1);
9765 }
9766 
9767 // CHECK-LABEL: test_vsra_n_s64
9768 // CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s64(int64x1_t a,int64x1_t b)9769 int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) {
9770   return vsra_n_s64(a, b, 1);
9771 }
9772 
9773 // CHECK-LABEL: test_vsra_n_u8
9774 // CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u8(uint8x8_t a,uint8x8_t b)9775 uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) {
9776   return vsra_n_u8(a, b, 1);
9777 }
9778 
9779 // CHECK-LABEL: test_vsra_n_u16
9780 // CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u16(uint16x4_t a,uint16x4_t b)9781 uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) {
9782   return vsra_n_u16(a, b, 1);
9783 }
9784 
9785 // CHECK-LABEL: test_vsra_n_u32
9786 // CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u32(uint32x2_t a,uint32x2_t b)9787 uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) {
9788   return vsra_n_u32(a, b, 1);
9789 }
9790 
9791 // CHECK-LABEL: test_vsra_n_u64
9792 // CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u64(uint64x1_t a,uint64x1_t b)9793 uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) {
9794   return vsra_n_u64(a, b, 1);
9795 }
9796 
9797 // CHECK-LABEL: test_vsraq_n_s8
9798 // CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s8(int8x16_t a,int8x16_t b)9799 int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) {
9800   return vsraq_n_s8(a, b, 1);
9801 }
9802 
9803 // CHECK-LABEL: test_vsraq_n_s16
9804 // CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s16(int16x8_t a,int16x8_t b)9805 int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) {
9806   return vsraq_n_s16(a, b, 1);
9807 }
9808 
9809 // CHECK-LABEL: test_vsraq_n_s32
9810 // CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s32(int32x4_t a,int32x4_t b)9811 int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) {
9812   return vsraq_n_s32(a, b, 1);
9813 }
9814 
9815 // CHECK-LABEL: test_vsraq_n_s64
9816 // CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s64(int64x2_t a,int64x2_t b)9817 int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) {
9818   return vsraq_n_s64(a, b, 1);
9819 }
9820 
9821 // CHECK-LABEL: test_vsraq_n_u8
9822 // CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u8(uint8x16_t a,uint8x16_t b)9823 uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9824   return vsraq_n_u8(a, b, 1);
9825 }
9826 
9827 // CHECK-LABEL: test_vsraq_n_u16
9828 // CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u16(uint16x8_t a,uint16x8_t b)9829 uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9830   return vsraq_n_u16(a, b, 1);
9831 }
9832 
9833 // CHECK-LABEL: test_vsraq_n_u32
9834 // CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u32(uint32x4_t a,uint32x4_t b)9835 uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9836   return vsraq_n_u32(a, b, 1);
9837 }
9838 
9839 // CHECK-LABEL: test_vsraq_n_u64
9840 // CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u64(uint64x2_t a,uint64x2_t b)9841 uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9842   return vsraq_n_u64(a, b, 1);
9843 }
9844 
9845 
9846 // CHECK-LABEL: test_vsri_n_s8
9847 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s8(int8x8_t a,int8x8_t b)9848 int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) {
9849   return vsri_n_s8(a, b, 1);
9850 }
9851 
9852 // CHECK-LABEL: test_vsri_n_s16
9853 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s16(int16x4_t a,int16x4_t b)9854 int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) {
9855   return vsri_n_s16(a, b, 1);
9856 }
9857 
9858 // CHECK-LABEL: test_vsri_n_s32
9859 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s32(int32x2_t a,int32x2_t b)9860 int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) {
9861   return vsri_n_s32(a, b, 1);
9862 }
9863 
9864 // CHECK-LABEL: test_vsri_n_s64
9865 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s64(int64x1_t a,int64x1_t b)9866 int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) {
9867   return vsri_n_s64(a, b, 1);
9868 }
9869 
9870 // CHECK-LABEL: test_vsri_n_u8
9871 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u8(uint8x8_t a,uint8x8_t b)9872 uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) {
9873   return vsri_n_u8(a, b, 1);
9874 }
9875 
9876 // CHECK-LABEL: test_vsri_n_u16
9877 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u16(uint16x4_t a,uint16x4_t b)9878 uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) {
9879   return vsri_n_u16(a, b, 1);
9880 }
9881 
9882 // CHECK-LABEL: test_vsri_n_u32
9883 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u32(uint32x2_t a,uint32x2_t b)9884 uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) {
9885   return vsri_n_u32(a, b, 1);
9886 }
9887 
9888 // CHECK-LABEL: test_vsri_n_u64
9889 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u64(uint64x1_t a,uint64x1_t b)9890 uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) {
9891   return vsri_n_u64(a, b, 1);
9892 }
9893 
9894 // CHECK-LABEL: test_vsri_n_p8
9895 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p8(poly8x8_t a,poly8x8_t b)9896 poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) {
9897   return vsri_n_p8(a, b, 1);
9898 }
9899 
9900 // CHECK-LABEL: test_vsri_n_p16
9901 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p16(poly16x4_t a,poly16x4_t b)9902 poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) {
9903   return vsri_n_p16(a, b, 1);
9904 }
9905 
9906 // CHECK-LABEL: test_vsriq_n_s8
9907 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s8(int8x16_t a,int8x16_t b)9908 int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) {
9909   return vsriq_n_s8(a, b, 1);
9910 }
9911 
9912 // CHECK-LABEL: test_vsriq_n_s16
9913 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s16(int16x8_t a,int16x8_t b)9914 int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) {
9915   return vsriq_n_s16(a, b, 1);
9916 }
9917 
9918 // CHECK-LABEL: test_vsriq_n_s32
9919 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s32(int32x4_t a,int32x4_t b)9920 int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) {
9921   return vsriq_n_s32(a, b, 1);
9922 }
9923 
9924 // CHECK-LABEL: test_vsriq_n_s64
9925 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s64(int64x2_t a,int64x2_t b)9926 int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) {
9927   return vsriq_n_s64(a, b, 1);
9928 }
9929 
9930 // CHECK-LABEL: test_vsriq_n_u8
9931 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u8(uint8x16_t a,uint8x16_t b)9932 uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) {
9933   return vsriq_n_u8(a, b, 1);
9934 }
9935 
9936 // CHECK-LABEL: test_vsriq_n_u16
9937 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u16(uint16x8_t a,uint16x8_t b)9938 uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) {
9939   return vsriq_n_u16(a, b, 1);
9940 }
9941 
9942 // CHECK-LABEL: test_vsriq_n_u32
9943 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u32(uint32x4_t a,uint32x4_t b)9944 uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) {
9945   return vsriq_n_u32(a, b, 1);
9946 }
9947 
9948 // CHECK-LABEL: test_vsriq_n_u64
9949 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u64(uint64x2_t a,uint64x2_t b)9950 uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) {
9951   return vsriq_n_u64(a, b, 1);
9952 }
9953 
9954 // CHECK-LABEL: test_vsriq_n_p8
9955 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p8(poly8x16_t a,poly8x16_t b)9956 poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) {
9957   return vsriq_n_p8(a, b, 1);
9958 }
9959 
9960 // CHECK-LABEL: test_vsriq_n_p16
9961 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p16(poly16x8_t a,poly16x8_t b)9962 poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) {
9963   return vsriq_n_p16(a, b, 1);
9964 }
9965 
9966 
9967 // CHECK-LABEL: test_vst1q_u8
9968 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u8(uint8_t * a,uint8x16_t b)9969 void test_vst1q_u8(uint8_t * a, uint8x16_t b) {
9970   vst1q_u8(a, b);
9971 }
9972 
9973 // CHECK-LABEL: test_vst1q_u16
9974 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u16(uint16_t * a,uint16x8_t b)9975 void test_vst1q_u16(uint16_t * a, uint16x8_t b) {
9976   vst1q_u16(a, b);
9977 }
9978 
9979 // CHECK-LABEL: test_vst1q_u32
9980 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u32(uint32_t * a,uint32x4_t b)9981 void test_vst1q_u32(uint32_t * a, uint32x4_t b) {
9982   vst1q_u32(a, b);
9983 }
9984 
9985 // CHECK-LABEL: test_vst1q_u64
9986 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_u64(uint64_t * a,uint64x2_t b)9987 void test_vst1q_u64(uint64_t * a, uint64x2_t b) {
9988   vst1q_u64(a, b);
9989 }
9990 
9991 // CHECK-LABEL: test_vst1q_s8
9992 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s8(int8_t * a,int8x16_t b)9993 void test_vst1q_s8(int8_t * a, int8x16_t b) {
9994   vst1q_s8(a, b);
9995 }
9996 
9997 // CHECK-LABEL: test_vst1q_s16
9998 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s16(int16_t * a,int16x8_t b)9999 void test_vst1q_s16(int16_t * a, int16x8_t b) {
10000   vst1q_s16(a, b);
10001 }
10002 
10003 // CHECK-LABEL: test_vst1q_s32
10004 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s32(int32_t * a,int32x4_t b)10005 void test_vst1q_s32(int32_t * a, int32x4_t b) {
10006   vst1q_s32(a, b);
10007 }
10008 
10009 // CHECK-LABEL: test_vst1q_s64
10010 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_s64(int64_t * a,int64x2_t b)10011 void test_vst1q_s64(int64_t * a, int64x2_t b) {
10012   vst1q_s64(a, b);
10013 }
10014 
10015 // CHECK-LABEL: test_vst1q_f16
10016 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f16(float16_t * a,float16x8_t b)10017 void test_vst1q_f16(float16_t * a, float16x8_t b) {
10018   vst1q_f16(a, b);
10019 }
10020 
10021 // CHECK-LABEL: test_vst1q_f32
10022 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f32(float32_t * a,float32x4_t b)10023 void test_vst1q_f32(float32_t * a, float32x4_t b) {
10024   vst1q_f32(a, b);
10025 }
10026 
10027 // CHECK-LABEL: test_vst1q_p8
10028 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p8(poly8_t * a,poly8x16_t b)10029 void test_vst1q_p8(poly8_t * a, poly8x16_t b) {
10030   vst1q_p8(a, b);
10031 }
10032 
10033 // CHECK-LABEL: test_vst1q_p16
10034 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p16(poly16_t * a,poly16x8_t b)10035 void test_vst1q_p16(poly16_t * a, poly16x8_t b) {
10036   vst1q_p16(a, b);
10037 }
10038 
10039 // CHECK-LABEL: test_vst1_u8
10040 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u8(uint8_t * a,uint8x8_t b)10041 void test_vst1_u8(uint8_t * a, uint8x8_t b) {
10042   vst1_u8(a, b);
10043 }
10044 
10045 // CHECK-LABEL: test_vst1_u16
10046 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u16(uint16_t * a,uint16x4_t b)10047 void test_vst1_u16(uint16_t * a, uint16x4_t b) {
10048   vst1_u16(a, b);
10049 }
10050 
10051 // CHECK-LABEL: test_vst1_u32
10052 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u32(uint32_t * a,uint32x2_t b)10053 void test_vst1_u32(uint32_t * a, uint32x2_t b) {
10054   vst1_u32(a, b);
10055 }
10056 
10057 // CHECK-LABEL: test_vst1_u64
10058 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_u64(uint64_t * a,uint64x1_t b)10059 void test_vst1_u64(uint64_t * a, uint64x1_t b) {
10060   vst1_u64(a, b);
10061 }
10062 
10063 // CHECK-LABEL: test_vst1_s8
10064 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s8(int8_t * a,int8x8_t b)10065 void test_vst1_s8(int8_t * a, int8x8_t b) {
10066   vst1_s8(a, b);
10067 }
10068 
10069 // CHECK-LABEL: test_vst1_s16
10070 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s16(int16_t * a,int16x4_t b)10071 void test_vst1_s16(int16_t * a, int16x4_t b) {
10072   vst1_s16(a, b);
10073 }
10074 
10075 // CHECK-LABEL: test_vst1_s32
10076 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s32(int32_t * a,int32x2_t b)10077 void test_vst1_s32(int32_t * a, int32x2_t b) {
10078   vst1_s32(a, b);
10079 }
10080 
10081 // CHECK-LABEL: test_vst1_s64
10082 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_s64(int64_t * a,int64x1_t b)10083 void test_vst1_s64(int64_t * a, int64x1_t b) {
10084   vst1_s64(a, b);
10085 }
10086 
10087 // CHECK-LABEL: test_vst1_f16
10088 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f16(float16_t * a,float16x4_t b)10089 void test_vst1_f16(float16_t * a, float16x4_t b) {
10090   vst1_f16(a, b);
10091 }
10092 
10093 // CHECK-LABEL: test_vst1_f32
10094 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f32(float32_t * a,float32x2_t b)10095 void test_vst1_f32(float32_t * a, float32x2_t b) {
10096   vst1_f32(a, b);
10097 }
10098 
10099 // CHECK-LABEL: test_vst1_p8
10100 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p8(poly8_t * a,poly8x8_t b)10101 void test_vst1_p8(poly8_t * a, poly8x8_t b) {
10102   vst1_p8(a, b);
10103 }
10104 
10105 // CHECK-LABEL: test_vst1_p16
10106 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p16(poly16_t * a,poly16x4_t b)10107 void test_vst1_p16(poly16_t * a, poly16x4_t b) {
10108   vst1_p16(a, b);
10109 }
10110 
10111 
10112 // CHECK-LABEL: test_vst1q_lane_u8
10113 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_u8(uint8_t * a,uint8x16_t b)10114 void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) {
10115   vst1q_lane_u8(a, b, 15);
10116 }
10117 
10118 // CHECK-LABEL: test_vst1q_lane_u16
10119 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_u16(uint16_t * a,uint16x8_t b)10120 void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) {
10121   vst1q_lane_u16(a, b, 7);
10122 }
10123 
10124 // CHECK-LABEL: test_vst1q_lane_u32
10125 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_u32(uint32_t * a,uint32x4_t b)10126 void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) {
10127   vst1q_lane_u32(a, b, 3);
10128 }
10129 
10130 // CHECK-LABEL: test_vst1q_lane_u64
10131 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_u64(uint64_t * a,uint64x2_t b)10132 void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) {
10133   vst1q_lane_u64(a, b, 1);
10134 }
10135 
10136 // CHECK-LABEL: test_vst1q_lane_s8
10137 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_s8(int8_t * a,int8x16_t b)10138 void test_vst1q_lane_s8(int8_t * a, int8x16_t b) {
10139   vst1q_lane_s8(a, b, 15);
10140 }
10141 
10142 // CHECK-LABEL: test_vst1q_lane_s16
10143 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_s16(int16_t * a,int16x8_t b)10144 void test_vst1q_lane_s16(int16_t * a, int16x8_t b) {
10145   vst1q_lane_s16(a, b, 7);
10146 }
10147 
10148 // CHECK-LABEL: test_vst1q_lane_s32
10149 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_s32(int32_t * a,int32x4_t b)10150 void test_vst1q_lane_s32(int32_t * a, int32x4_t b) {
10151   vst1q_lane_s32(a, b, 3);
10152 }
10153 
10154 // CHECK-LABEL: test_vst1q_lane_s64
10155 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_s64(int64_t * a,int64x2_t b)10156 void test_vst1q_lane_s64(int64_t * a, int64x2_t b) {
10157   vst1q_lane_s64(a, b, 1);
10158 }
10159 
10160 // CHECK-LABEL: test_vst1q_lane_f16
10161 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_f16(float16_t * a,float16x8_t b)10162 void test_vst1q_lane_f16(float16_t * a, float16x8_t b) {
10163   vst1q_lane_f16(a, b, 7);
10164 }
10165 
10166 // CHECK-LABEL: test_vst1q_lane_f32
10167 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_f32(float32_t * a,float32x4_t b)10168 void test_vst1q_lane_f32(float32_t * a, float32x4_t b) {
10169   vst1q_lane_f32(a, b, 3);
10170 }
10171 
10172 // CHECK-LABEL: test_vst1q_lane_p8
10173 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_p8(poly8_t * a,poly8x16_t b)10174 void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) {
10175   vst1q_lane_p8(a, b, 15);
10176 }
10177 
10178 // CHECK-LABEL: test_vst1q_lane_p16
10179 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_p16(poly16_t * a,poly16x8_t b)10180 void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) {
10181   vst1q_lane_p16(a, b, 7);
10182 }
10183 
10184 // CHECK-LABEL: test_vst1_lane_u8
10185 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_u8(uint8_t * a,uint8x8_t b)10186 void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) {
10187   vst1_lane_u8(a, b, 7);
10188 }
10189 
10190 // CHECK-LABEL: test_vst1_lane_u16
10191 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_u16(uint16_t * a,uint16x4_t b)10192 void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) {
10193   vst1_lane_u16(a, b, 3);
10194 }
10195 
10196 // CHECK-LABEL: test_vst1_lane_u32
10197 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_u32(uint32_t * a,uint32x2_t b)10198 void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) {
10199   vst1_lane_u32(a, b, 1);
10200 }
10201 
10202 // CHECK-LABEL: test_vst1_lane_u64
10203 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_u64(uint64_t * a,uint64x1_t b)10204 void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) {
10205   vst1_lane_u64(a, b, 0);
10206 }
10207 
10208 // CHECK-LABEL: test_vst1_lane_s8
10209 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_s8(int8_t * a,int8x8_t b)10210 void test_vst1_lane_s8(int8_t * a, int8x8_t b) {
10211   vst1_lane_s8(a, b, 7);
10212 }
10213 
10214 // CHECK-LABEL: test_vst1_lane_s16
10215 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_s16(int16_t * a,int16x4_t b)10216 void test_vst1_lane_s16(int16_t * a, int16x4_t b) {
10217   vst1_lane_s16(a, b, 3);
10218 }
10219 
10220 // CHECK-LABEL: test_vst1_lane_s32
10221 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_s32(int32_t * a,int32x2_t b)10222 void test_vst1_lane_s32(int32_t * a, int32x2_t b) {
10223   vst1_lane_s32(a, b, 1);
10224 }
10225 
10226 // CHECK-LABEL: test_vst1_lane_s64
10227 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_s64(int64_t * a,int64x1_t b)10228 void test_vst1_lane_s64(int64_t * a, int64x1_t b) {
10229   vst1_lane_s64(a, b, 0);
10230 }
10231 
10232 // CHECK-LABEL: test_vst1_lane_f16
10233 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_f16(float16_t * a,float16x4_t b)10234 void test_vst1_lane_f16(float16_t * a, float16x4_t b) {
10235   vst1_lane_f16(a, b, 3);
10236 }
10237 
10238 // CHECK-LABEL: test_vst1_lane_f32
10239 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_f32(float32_t * a,float32x2_t b)10240 void test_vst1_lane_f32(float32_t * a, float32x2_t b) {
10241   vst1_lane_f32(a, b, 1);
10242 }
10243 
10244 // CHECK-LABEL: test_vst1_lane_p8
10245 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_p8(poly8_t * a,poly8x8_t b)10246 void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) {
10247   vst1_lane_p8(a, b, 7);
10248 }
10249 
10250 // CHECK-LABEL: test_vst1_lane_p16
10251 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_p16(poly16_t * a,poly16x4_t b)10252 void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) {
10253   vst1_lane_p16(a, b, 3);
10254 }
10255 
10256 
10257 // CHECK-LABEL: test_vst2q_u8
10258 // 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)10259 void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) {
10260   vst2q_u8(a, b);
10261 }
10262 
10263 // CHECK-LABEL: test_vst2q_u16
10264 // 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)10265 void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) {
10266   vst2q_u16(a, b);
10267 }
10268 
10269 // CHECK-LABEL: test_vst2q_u32
10270 // 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)10271 void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) {
10272   vst2q_u32(a, b);
10273 }
10274 
10275 // CHECK-LABEL: test_vst2q_s8
10276 // 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)10277 void test_vst2q_s8(int8_t * a, int8x16x2_t b) {
10278   vst2q_s8(a, b);
10279 }
10280 
10281 // CHECK-LABEL: test_vst2q_s16
10282 // 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)10283 void test_vst2q_s16(int16_t * a, int16x8x2_t b) {
10284   vst2q_s16(a, b);
10285 }
10286 
10287 // CHECK-LABEL: test_vst2q_s32
10288 // 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)10289 void test_vst2q_s32(int32_t * a, int32x4x2_t b) {
10290   vst2q_s32(a, b);
10291 }
10292 
10293 // CHECK-LABEL: test_vst2q_f16
10294 // 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)10295 void test_vst2q_f16(float16_t * a, float16x8x2_t b) {
10296   vst2q_f16(a, b);
10297 }
10298 
10299 // CHECK-LABEL: test_vst2q_f32
10300 // 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)10301 void test_vst2q_f32(float32_t * a, float32x4x2_t b) {
10302   vst2q_f32(a, b);
10303 }
10304 
10305 // CHECK-LABEL: test_vst2q_p8
10306 // 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)10307 void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) {
10308   vst2q_p8(a, b);
10309 }
10310 
10311 // CHECK-LABEL: test_vst2q_p16
10312 // 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)10313 void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) {
10314   vst2q_p16(a, b);
10315 }
10316 
10317 // CHECK-LABEL: test_vst2_u8
10318 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u8(uint8_t * a,uint8x8x2_t b)10319 void test_vst2_u8(uint8_t * a, uint8x8x2_t b) {
10320   vst2_u8(a, b);
10321 }
10322 
10323 // CHECK-LABEL: test_vst2_u16
10324 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u16(uint16_t * a,uint16x4x2_t b)10325 void test_vst2_u16(uint16_t * a, uint16x4x2_t b) {
10326   vst2_u16(a, b);
10327 }
10328 
10329 // CHECK-LABEL: test_vst2_u32
10330 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u32(uint32_t * a,uint32x2x2_t b)10331 void test_vst2_u32(uint32_t * a, uint32x2x2_t b) {
10332   vst2_u32(a, b);
10333 }
10334 
10335 // CHECK-LABEL: test_vst2_u64
10336 // CHECK: vst1.64
test_vst2_u64(uint64_t * a,uint64x1x2_t b)10337 void test_vst2_u64(uint64_t * a, uint64x1x2_t b) {
10338   vst2_u64(a, b);
10339 }
10340 
10341 // CHECK-LABEL: test_vst2_s8
10342 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s8(int8_t * a,int8x8x2_t b)10343 void test_vst2_s8(int8_t * a, int8x8x2_t b) {
10344   vst2_s8(a, b);
10345 }
10346 
10347 // CHECK-LABEL: test_vst2_s16
10348 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s16(int16_t * a,int16x4x2_t b)10349 void test_vst2_s16(int16_t * a, int16x4x2_t b) {
10350   vst2_s16(a, b);
10351 }
10352 
10353 // CHECK-LABEL: test_vst2_s32
10354 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s32(int32_t * a,int32x2x2_t b)10355 void test_vst2_s32(int32_t * a, int32x2x2_t b) {
10356   vst2_s32(a, b);
10357 }
10358 
10359 // CHECK-LABEL: test_vst2_s64
10360 // CHECK: vst1.64
test_vst2_s64(int64_t * a,int64x1x2_t b)10361 void test_vst2_s64(int64_t * a, int64x1x2_t b) {
10362   vst2_s64(a, b);
10363 }
10364 
10365 // CHECK-LABEL: test_vst2_f16
10366 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f16(float16_t * a,float16x4x2_t b)10367 void test_vst2_f16(float16_t * a, float16x4x2_t b) {
10368   vst2_f16(a, b);
10369 }
10370 
10371 // CHECK-LABEL: test_vst2_f32
10372 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f32(float32_t * a,float32x2x2_t b)10373 void test_vst2_f32(float32_t * a, float32x2x2_t b) {
10374   vst2_f32(a, b);
10375 }
10376 
10377 // CHECK-LABEL: test_vst2_p8
10378 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p8(poly8_t * a,poly8x8x2_t b)10379 void test_vst2_p8(poly8_t * a, poly8x8x2_t b) {
10380   vst2_p8(a, b);
10381 }
10382 
10383 // CHECK-LABEL: test_vst2_p16
10384 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p16(poly16_t * a,poly16x4x2_t b)10385 void test_vst2_p16(poly16_t * a, poly16x4x2_t b) {
10386   vst2_p16(a, b);
10387 }
10388 
10389 
10390 // CHECK-LABEL: test_vst2q_lane_u16
10391 // 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)10392 void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) {
10393   vst2q_lane_u16(a, b, 7);
10394 }
10395 
10396 // CHECK-LABEL: test_vst2q_lane_u32
10397 // 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)10398 void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) {
10399   vst2q_lane_u32(a, b, 3);
10400 }
10401 
10402 // CHECK-LABEL: test_vst2q_lane_s16
10403 // 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)10404 void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) {
10405   vst2q_lane_s16(a, b, 7);
10406 }
10407 
10408 // CHECK-LABEL: test_vst2q_lane_s32
10409 // 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)10410 void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) {
10411   vst2q_lane_s32(a, b, 3);
10412 }
10413 
10414 // CHECK-LABEL: test_vst2q_lane_f16
10415 // 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)10416 void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) {
10417   vst2q_lane_f16(a, b, 7);
10418 }
10419 
10420 // CHECK-LABEL: test_vst2q_lane_f32
10421 // 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)10422 void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) {
10423   vst2q_lane_f32(a, b, 3);
10424 }
10425 
10426 // CHECK-LABEL: test_vst2q_lane_p16
10427 // 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)10428 void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) {
10429   vst2q_lane_p16(a, b, 7);
10430 }
10431 
10432 // CHECK-LABEL: test_vst2_lane_u8
10433 // 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)10434 void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) {
10435   vst2_lane_u8(a, b, 7);
10436 }
10437 
10438 // CHECK-LABEL: test_vst2_lane_u16
10439 // 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)10440 void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) {
10441   vst2_lane_u16(a, b, 3);
10442 }
10443 
10444 // CHECK-LABEL: test_vst2_lane_u32
10445 // 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)10446 void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) {
10447   vst2_lane_u32(a, b, 1);
10448 }
10449 
10450 // CHECK-LABEL: test_vst2_lane_s8
10451 // 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)10452 void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) {
10453   vst2_lane_s8(a, b, 7);
10454 }
10455 
10456 // CHECK-LABEL: test_vst2_lane_s16
10457 // 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)10458 void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) {
10459   vst2_lane_s16(a, b, 3);
10460 }
10461 
10462 // CHECK-LABEL: test_vst2_lane_s32
10463 // 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)10464 void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) {
10465   vst2_lane_s32(a, b, 1);
10466 }
10467 
10468 // CHECK-LABEL: test_vst2_lane_f16
10469 // 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)10470 void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) {
10471   vst2_lane_f16(a, b, 3);
10472 }
10473 
10474 // CHECK-LABEL: test_vst2_lane_f32
10475 // 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)10476 void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) {
10477   vst2_lane_f32(a, b, 1);
10478 }
10479 
10480 // CHECK-LABEL: test_vst2_lane_p8
10481 // 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)10482 void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) {
10483   vst2_lane_p8(a, b, 7);
10484 }
10485 
10486 // CHECK-LABEL: test_vst2_lane_p16
10487 // 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)10488 void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) {
10489   vst2_lane_p16(a, b, 3);
10490 }
10491 
10492 
10493 // CHECK-LABEL: test_vst3q_u8
10494 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u8(uint8_t * a,uint8x16x3_t b)10495 void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) {
10496   vst3q_u8(a, b);
10497 }
10498 
10499 // CHECK-LABEL: test_vst3q_u16
10500 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u16(uint16_t * a,uint16x8x3_t b)10501 void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) {
10502   vst3q_u16(a, b);
10503 }
10504 
10505 // CHECK-LABEL: test_vst3q_u32
10506 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u32(uint32_t * a,uint32x4x3_t b)10507 void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) {
10508   vst3q_u32(a, b);
10509 }
10510 
10511 // CHECK-LABEL: test_vst3q_s8
10512 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s8(int8_t * a,int8x16x3_t b)10513 void test_vst3q_s8(int8_t * a, int8x16x3_t b) {
10514   vst3q_s8(a, b);
10515 }
10516 
10517 // CHECK-LABEL: test_vst3q_s16
10518 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s16(int16_t * a,int16x8x3_t b)10519 void test_vst3q_s16(int16_t * a, int16x8x3_t b) {
10520   vst3q_s16(a, b);
10521 }
10522 
10523 // CHECK-LABEL: test_vst3q_s32
10524 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s32(int32_t * a,int32x4x3_t b)10525 void test_vst3q_s32(int32_t * a, int32x4x3_t b) {
10526   vst3q_s32(a, b);
10527 }
10528 
10529 // CHECK-LABEL: test_vst3q_f16
10530 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f16(float16_t * a,float16x8x3_t b)10531 void test_vst3q_f16(float16_t * a, float16x8x3_t b) {
10532   vst3q_f16(a, b);
10533 }
10534 
10535 // CHECK-LABEL: test_vst3q_f32
10536 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f32(float32_t * a,float32x4x3_t b)10537 void test_vst3q_f32(float32_t * a, float32x4x3_t b) {
10538   vst3q_f32(a, b);
10539 }
10540 
10541 // CHECK-LABEL: test_vst3q_p8
10542 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p8(poly8_t * a,poly8x16x3_t b)10543 void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) {
10544   vst3q_p8(a, b);
10545 }
10546 
10547 // CHECK-LABEL: test_vst3q_p16
10548 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p16(poly16_t * a,poly16x8x3_t b)10549 void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) {
10550   vst3q_p16(a, b);
10551 }
10552 
10553 // CHECK-LABEL: test_vst3_u8
10554 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u8(uint8_t * a,uint8x8x3_t b)10555 void test_vst3_u8(uint8_t * a, uint8x8x3_t b) {
10556   vst3_u8(a, b);
10557 }
10558 
10559 // CHECK-LABEL: test_vst3_u16
10560 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u16(uint16_t * a,uint16x4x3_t b)10561 void test_vst3_u16(uint16_t * a, uint16x4x3_t b) {
10562   vst3_u16(a, b);
10563 }
10564 
10565 // CHECK-LABEL: test_vst3_u32
10566 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u32(uint32_t * a,uint32x2x3_t b)10567 void test_vst3_u32(uint32_t * a, uint32x2x3_t b) {
10568   vst3_u32(a, b);
10569 }
10570 
10571 // CHECK-LABEL: test_vst3_u64
10572 // CHECK: vst1.64
test_vst3_u64(uint64_t * a,uint64x1x3_t b)10573 void test_vst3_u64(uint64_t * a, uint64x1x3_t b) {
10574   vst3_u64(a, b);
10575 }
10576 
10577 // CHECK-LABEL: test_vst3_s8
10578 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s8(int8_t * a,int8x8x3_t b)10579 void test_vst3_s8(int8_t * a, int8x8x3_t b) {
10580   vst3_s8(a, b);
10581 }
10582 
10583 // CHECK-LABEL: test_vst3_s16
10584 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s16(int16_t * a,int16x4x3_t b)10585 void test_vst3_s16(int16_t * a, int16x4x3_t b) {
10586   vst3_s16(a, b);
10587 }
10588 
10589 // CHECK-LABEL: test_vst3_s32
10590 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s32(int32_t * a,int32x2x3_t b)10591 void test_vst3_s32(int32_t * a, int32x2x3_t b) {
10592   vst3_s32(a, b);
10593 }
10594 
10595 // CHECK-LABEL: test_vst3_s64
10596 // CHECK: vst1.64
test_vst3_s64(int64_t * a,int64x1x3_t b)10597 void test_vst3_s64(int64_t * a, int64x1x3_t b) {
10598   vst3_s64(a, b);
10599 }
10600 
10601 // CHECK-LABEL: test_vst3_f16
10602 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f16(float16_t * a,float16x4x3_t b)10603 void test_vst3_f16(float16_t * a, float16x4x3_t b) {
10604   vst3_f16(a, b);
10605 }
10606 
10607 // CHECK-LABEL: test_vst3_f32
10608 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f32(float32_t * a,float32x2x3_t b)10609 void test_vst3_f32(float32_t * a, float32x2x3_t b) {
10610   vst3_f32(a, b);
10611 }
10612 
10613 // CHECK-LABEL: test_vst3_p8
10614 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p8(poly8_t * a,poly8x8x3_t b)10615 void test_vst3_p8(poly8_t * a, poly8x8x3_t b) {
10616   vst3_p8(a, b);
10617 }
10618 
10619 // CHECK-LABEL: test_vst3_p16
10620 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p16(poly16_t * a,poly16x4x3_t b)10621 void test_vst3_p16(poly16_t * a, poly16x4x3_t b) {
10622   vst3_p16(a, b);
10623 }
10624 
10625 
10626 // CHECK-LABEL: test_vst3q_lane_u16
10627 // 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)10628 void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) {
10629   vst3q_lane_u16(a, b, 7);
10630 }
10631 
10632 // CHECK-LABEL: test_vst3q_lane_u32
10633 // 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)10634 void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) {
10635   vst3q_lane_u32(a, b, 3);
10636 }
10637 
10638 // CHECK-LABEL: test_vst3q_lane_s16
10639 // 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)10640 void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) {
10641   vst3q_lane_s16(a, b, 7);
10642 }
10643 
10644 // CHECK-LABEL: test_vst3q_lane_s32
10645 // 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)10646 void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) {
10647   vst3q_lane_s32(a, b, 3);
10648 }
10649 
10650 // CHECK-LABEL: test_vst3q_lane_f16
10651 // 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)10652 void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) {
10653   vst3q_lane_f16(a, b, 7);
10654 }
10655 
10656 // CHECK-LABEL: test_vst3q_lane_f32
10657 // 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)10658 void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) {
10659   vst3q_lane_f32(a, b, 3);
10660 }
10661 
10662 // CHECK-LABEL: test_vst3q_lane_p16
10663 // 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)10664 void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) {
10665   vst3q_lane_p16(a, b, 7);
10666 }
10667 
10668 // CHECK-LABEL: test_vst3_lane_u8
10669 // 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)10670 void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) {
10671   vst3_lane_u8(a, b, 7);
10672 }
10673 
10674 // CHECK-LABEL: test_vst3_lane_u16
10675 // 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)10676 void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) {
10677   vst3_lane_u16(a, b, 3);
10678 }
10679 
10680 // CHECK-LABEL: test_vst3_lane_u32
10681 // 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)10682 void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) {
10683   vst3_lane_u32(a, b, 1);
10684 }
10685 
10686 // CHECK-LABEL: test_vst3_lane_s8
10687 // 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)10688 void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) {
10689   vst3_lane_s8(a, b, 7);
10690 }
10691 
10692 // CHECK-LABEL: test_vst3_lane_s16
10693 // 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)10694 void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) {
10695   vst3_lane_s16(a, b, 3);
10696 }
10697 
10698 // CHECK-LABEL: test_vst3_lane_s32
10699 // 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)10700 void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) {
10701   vst3_lane_s32(a, b, 1);
10702 }
10703 
10704 // CHECK-LABEL: test_vst3_lane_f16
10705 // 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)10706 void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) {
10707   vst3_lane_f16(a, b, 3);
10708 }
10709 
10710 // CHECK-LABEL: test_vst3_lane_f32
10711 // 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)10712 void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) {
10713   vst3_lane_f32(a, b, 1);
10714 }
10715 
10716 // CHECK-LABEL: test_vst3_lane_p8
10717 // 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)10718 void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) {
10719   vst3_lane_p8(a, b, 7);
10720 }
10721 
10722 // CHECK-LABEL: test_vst3_lane_p16
10723 // 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)10724 void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) {
10725   vst3_lane_p16(a, b, 3);
10726 }
10727 
10728 
10729 // CHECK-LABEL: test_vst4q_u8
10730 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u8(uint8_t * a,uint8x16x4_t b)10731 void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) {
10732   vst4q_u8(a, b);
10733 }
10734 
10735 // CHECK-LABEL: test_vst4q_u16
10736 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u16(uint16_t * a,uint16x8x4_t b)10737 void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) {
10738   vst4q_u16(a, b);
10739 }
10740 
10741 // CHECK-LABEL: test_vst4q_u32
10742 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u32(uint32_t * a,uint32x4x4_t b)10743 void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) {
10744   vst4q_u32(a, b);
10745 }
10746 
10747 // CHECK-LABEL: test_vst4q_s8
10748 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s8(int8_t * a,int8x16x4_t b)10749 void test_vst4q_s8(int8_t * a, int8x16x4_t b) {
10750   vst4q_s8(a, b);
10751 }
10752 
10753 // CHECK-LABEL: test_vst4q_s16
10754 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s16(int16_t * a,int16x8x4_t b)10755 void test_vst4q_s16(int16_t * a, int16x8x4_t b) {
10756   vst4q_s16(a, b);
10757 }
10758 
10759 // CHECK-LABEL: test_vst4q_s32
10760 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s32(int32_t * a,int32x4x4_t b)10761 void test_vst4q_s32(int32_t * a, int32x4x4_t b) {
10762   vst4q_s32(a, b);
10763 }
10764 
10765 // CHECK-LABEL: test_vst4q_f16
10766 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f16(float16_t * a,float16x8x4_t b)10767 void test_vst4q_f16(float16_t * a, float16x8x4_t b) {
10768   vst4q_f16(a, b);
10769 }
10770 
10771 // CHECK-LABEL: test_vst4q_f32
10772 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f32(float32_t * a,float32x4x4_t b)10773 void test_vst4q_f32(float32_t * a, float32x4x4_t b) {
10774   vst4q_f32(a, b);
10775 }
10776 
10777 // CHECK-LABEL: test_vst4q_p8
10778 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p8(poly8_t * a,poly8x16x4_t b)10779 void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) {
10780   vst4q_p8(a, b);
10781 }
10782 
10783 // CHECK-LABEL: test_vst4q_p16
10784 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p16(poly16_t * a,poly16x8x4_t b)10785 void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) {
10786   vst4q_p16(a, b);
10787 }
10788 
10789 // CHECK-LABEL: test_vst4_u8
10790 // 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)10791 void test_vst4_u8(uint8_t * a, uint8x8x4_t b) {
10792   vst4_u8(a, b);
10793 }
10794 
10795 // CHECK-LABEL: test_vst4_u16
10796 // 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)10797 void test_vst4_u16(uint16_t * a, uint16x4x4_t b) {
10798   vst4_u16(a, b);
10799 }
10800 
10801 // CHECK-LABEL: test_vst4_u32
10802 // 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)10803 void test_vst4_u32(uint32_t * a, uint32x2x4_t b) {
10804   vst4_u32(a, b);
10805 }
10806 
10807 // CHECK-LABEL: test_vst4_u64
10808 // CHECK: vst1.64
test_vst4_u64(uint64_t * a,uint64x1x4_t b)10809 void test_vst4_u64(uint64_t * a, uint64x1x4_t b) {
10810   vst4_u64(a, b);
10811 }
10812 
10813 // CHECK-LABEL: test_vst4_s8
10814 // 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)10815 void test_vst4_s8(int8_t * a, int8x8x4_t b) {
10816   vst4_s8(a, b);
10817 }
10818 
10819 // CHECK-LABEL: test_vst4_s16
10820 // 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)10821 void test_vst4_s16(int16_t * a, int16x4x4_t b) {
10822   vst4_s16(a, b);
10823 }
10824 
10825 // CHECK-LABEL: test_vst4_s32
10826 // 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)10827 void test_vst4_s32(int32_t * a, int32x2x4_t b) {
10828   vst4_s32(a, b);
10829 }
10830 
10831 // CHECK-LABEL: test_vst4_s64
10832 // CHECK: vst1.64
test_vst4_s64(int64_t * a,int64x1x4_t b)10833 void test_vst4_s64(int64_t * a, int64x1x4_t b) {
10834   vst4_s64(a, b);
10835 }
10836 
10837 // CHECK-LABEL: test_vst4_f16
10838 // 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)10839 void test_vst4_f16(float16_t * a, float16x4x4_t b) {
10840   vst4_f16(a, b);
10841 }
10842 
10843 // CHECK-LABEL: test_vst4_f32
10844 // 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)10845 void test_vst4_f32(float32_t * a, float32x2x4_t b) {
10846   vst4_f32(a, b);
10847 }
10848 
10849 // CHECK-LABEL: test_vst4_p8
10850 // 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)10851 void test_vst4_p8(poly8_t * a, poly8x8x4_t b) {
10852   vst4_p8(a, b);
10853 }
10854 
10855 // CHECK-LABEL: test_vst4_p16
10856 // 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)10857 void test_vst4_p16(poly16_t * a, poly16x4x4_t b) {
10858   vst4_p16(a, b);
10859 }
10860 
10861 
10862 // CHECK-LABEL: test_vst4q_lane_u16
10863 // 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)10864 void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) {
10865   vst4q_lane_u16(a, b, 7);
10866 }
10867 
10868 // CHECK-LABEL: test_vst4q_lane_u32
10869 // 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)10870 void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) {
10871   vst4q_lane_u32(a, b, 3);
10872 }
10873 
10874 // CHECK-LABEL: test_vst4q_lane_s16
10875 // 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)10876 void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) {
10877   vst4q_lane_s16(a, b, 7);
10878 }
10879 
10880 // CHECK-LABEL: test_vst4q_lane_s32
10881 // 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)10882 void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) {
10883   vst4q_lane_s32(a, b, 3);
10884 }
10885 
10886 // CHECK-LABEL: test_vst4q_lane_f16
10887 // 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)10888 void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) {
10889   vst4q_lane_f16(a, b, 7);
10890 }
10891 
10892 // CHECK-LABEL: test_vst4q_lane_f32
10893 // 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)10894 void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) {
10895   vst4q_lane_f32(a, b, 3);
10896 }
10897 
10898 // CHECK-LABEL: test_vst4q_lane_p16
10899 // 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)10900 void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) {
10901   vst4q_lane_p16(a, b, 7);
10902 }
10903 
10904 // CHECK-LABEL: test_vst4_lane_u8
10905 // 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)10906 void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) {
10907   vst4_lane_u8(a, b, 7);
10908 }
10909 
10910 // CHECK-LABEL: test_vst4_lane_u16
10911 // 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)10912 void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) {
10913   vst4_lane_u16(a, b, 3);
10914 }
10915 
10916 // CHECK-LABEL: test_vst4_lane_u32
10917 // 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)10918 void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) {
10919   vst4_lane_u32(a, b, 1);
10920 }
10921 
10922 // CHECK-LABEL: test_vst4_lane_s8
10923 // 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)10924 void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) {
10925   vst4_lane_s8(a, b, 7);
10926 }
10927 
10928 // CHECK-LABEL: test_vst4_lane_s16
10929 // 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)10930 void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) {
10931   vst4_lane_s16(a, b, 3);
10932 }
10933 
10934 // CHECK-LABEL: test_vst4_lane_s32
10935 // 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)10936 void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) {
10937   vst4_lane_s32(a, b, 1);
10938 }
10939 
10940 // CHECK-LABEL: test_vst4_lane_f16
10941 // 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)10942 void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) {
10943   vst4_lane_f16(a, b, 3);
10944 }
10945 
10946 // CHECK-LABEL: test_vst4_lane_f32
10947 // 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)10948 void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) {
10949   vst4_lane_f32(a, b, 1);
10950 }
10951 
10952 // CHECK-LABEL: test_vst4_lane_p8
10953 // 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)10954 void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) {
10955   vst4_lane_p8(a, b, 7);
10956 }
10957 
10958 // CHECK-LABEL: test_vst4_lane_p16
10959 // 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)10960 void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) {
10961   vst4_lane_p16(a, b, 3);
10962 }
10963 
10964 
10965 // CHECK-LABEL: test_vsub_s8
10966 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s8(int8x8_t a,int8x8_t b)10967 int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) {
10968   return vsub_s8(a, b);
10969 }
10970 
10971 // CHECK-LABEL: test_vsub_s16
10972 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s16(int16x4_t a,int16x4_t b)10973 int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) {
10974   return vsub_s16(a, b);
10975 }
10976 
10977 // CHECK-LABEL: test_vsub_s32
10978 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s32(int32x2_t a,int32x2_t b)10979 int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) {
10980   return vsub_s32(a, b);
10981 }
10982 
10983 // CHECK-LABEL: test_vsub_s64
10984 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s64(int64x1_t a,int64x1_t b)10985 int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) {
10986   return vsub_s64(a, b);
10987 }
10988 
10989 // CHECK-LABEL: test_vsub_f32
10990 // CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_f32(float32x2_t a,float32x2_t b)10991 float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) {
10992   return vsub_f32(a, b);
10993 }
10994 
10995 // CHECK-LABEL: test_vsub_u8
10996 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u8(uint8x8_t a,uint8x8_t b)10997 uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) {
10998   return vsub_u8(a, b);
10999 }
11000 
11001 // CHECK-LABEL: test_vsub_u16
11002 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u16(uint16x4_t a,uint16x4_t b)11003 uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) {
11004   return vsub_u16(a, b);
11005 }
11006 
11007 // CHECK-LABEL: test_vsub_u32
11008 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u32(uint32x2_t a,uint32x2_t b)11009 uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) {
11010   return vsub_u32(a, b);
11011 }
11012 
11013 // CHECK-LABEL: test_vsub_u64
11014 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u64(uint64x1_t a,uint64x1_t b)11015 uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) {
11016   return vsub_u64(a, b);
11017 }
11018 
11019 // CHECK-LABEL: test_vsubq_s8
11020 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s8(int8x16_t a,int8x16_t b)11021 int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) {
11022   return vsubq_s8(a, b);
11023 }
11024 
11025 // CHECK-LABEL: test_vsubq_s16
11026 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s16(int16x8_t a,int16x8_t b)11027 int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) {
11028   return vsubq_s16(a, b);
11029 }
11030 
11031 // CHECK-LABEL: test_vsubq_s32
11032 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s32(int32x4_t a,int32x4_t b)11033 int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) {
11034   return vsubq_s32(a, b);
11035 }
11036 
11037 // CHECK-LABEL: test_vsubq_s64
11038 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s64(int64x2_t a,int64x2_t b)11039 int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) {
11040   return vsubq_s64(a, b);
11041 }
11042 
11043 // CHECK-LABEL: test_vsubq_f32
11044 // CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_f32(float32x4_t a,float32x4_t b)11045 float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) {
11046   return vsubq_f32(a, b);
11047 }
11048 
11049 // CHECK-LABEL: test_vsubq_u8
11050 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u8(uint8x16_t a,uint8x16_t b)11051 uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) {
11052   return vsubq_u8(a, b);
11053 }
11054 
11055 // CHECK-LABEL: test_vsubq_u16
11056 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u16(uint16x8_t a,uint16x8_t b)11057 uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) {
11058   return vsubq_u16(a, b);
11059 }
11060 
11061 // CHECK-LABEL: test_vsubq_u32
11062 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u32(uint32x4_t a,uint32x4_t b)11063 uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) {
11064   return vsubq_u32(a, b);
11065 }
11066 
11067 // CHECK-LABEL: test_vsubq_u64
11068 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u64(uint64x2_t a,uint64x2_t b)11069 uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) {
11070   return vsubq_u64(a, b);
11071 }
11072 
11073 
11074 // CHECK-LABEL: test_vsubhn_s16
11075 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s16(int16x8_t a,int16x8_t b)11076 int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) {
11077   return vsubhn_s16(a, b);
11078 }
11079 
11080 // CHECK-LABEL: test_vsubhn_s32
11081 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s32(int32x4_t a,int32x4_t b)11082 int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) {
11083   return vsubhn_s32(a, b);
11084 }
11085 
11086 // CHECK-LABEL: test_vsubhn_s64
11087 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s64(int64x2_t a,int64x2_t b)11088 int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) {
11089   return vsubhn_s64(a, b);
11090 }
11091 
11092 // CHECK-LABEL: test_vsubhn_u16
11093 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u16(uint16x8_t a,uint16x8_t b)11094 uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) {
11095   return vsubhn_u16(a, b);
11096 }
11097 
11098 // CHECK-LABEL: test_vsubhn_u32
11099 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u32(uint32x4_t a,uint32x4_t b)11100 uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) {
11101   return vsubhn_u32(a, b);
11102 }
11103 
11104 // CHECK-LABEL: test_vsubhn_u64
11105 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u64(uint64x2_t a,uint64x2_t b)11106 uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) {
11107   return vsubhn_u64(a, b);
11108 }
11109 
11110 
11111 // CHECK-LABEL: test_vsubl_s8
11112 // CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s8(int8x8_t a,int8x8_t b)11113 int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) {
11114   return vsubl_s8(a, b);
11115 }
11116 
11117 // CHECK-LABEL: test_vsubl_s16
11118 // CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s16(int16x4_t a,int16x4_t b)11119 int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) {
11120   return vsubl_s16(a, b);
11121 }
11122 
11123 // CHECK-LABEL: test_vsubl_s32
11124 // CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s32(int32x2_t a,int32x2_t b)11125 int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) {
11126   return vsubl_s32(a, b);
11127 }
11128 
11129 // CHECK-LABEL: test_vsubl_u8
11130 // CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u8(uint8x8_t a,uint8x8_t b)11131 uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) {
11132   return vsubl_u8(a, b);
11133 }
11134 
11135 // CHECK-LABEL: test_vsubl_u16
11136 // CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u16(uint16x4_t a,uint16x4_t b)11137 uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) {
11138   return vsubl_u16(a, b);
11139 }
11140 
11141 // CHECK-LABEL: test_vsubl_u32
11142 // CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u32(uint32x2_t a,uint32x2_t b)11143 uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) {
11144   return vsubl_u32(a, b);
11145 }
11146 
11147 
11148 // CHECK-LABEL: test_vsubw_s8
11149 // CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s8(int16x8_t a,int8x8_t b)11150 int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) {
11151   return vsubw_s8(a, b);
11152 }
11153 
11154 // CHECK-LABEL: test_vsubw_s16
11155 // CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s16(int32x4_t a,int16x4_t b)11156 int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) {
11157   return vsubw_s16(a, b);
11158 }
11159 
11160 // CHECK-LABEL: test_vsubw_s32
11161 // CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s32(int64x2_t a,int32x2_t b)11162 int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) {
11163   return vsubw_s32(a, b);
11164 }
11165 
11166 // CHECK-LABEL: test_vsubw_u8
11167 // CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u8(uint16x8_t a,uint8x8_t b)11168 uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) {
11169   return vsubw_u8(a, b);
11170 }
11171 
11172 // CHECK-LABEL: test_vsubw_u16
11173 // CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u16(uint32x4_t a,uint16x4_t b)11174 uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) {
11175   return vsubw_u16(a, b);
11176 }
11177 
11178 // CHECK-LABEL: test_vsubw_u32
11179 // CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u32(uint64x2_t a,uint32x2_t b)11180 uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) {
11181   return vsubw_u32(a, b);
11182 }
11183 
11184 
11185 // CHECK-LABEL: test_vtbl1_u8
11186 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_u8(uint8x8_t a,uint8x8_t b)11187 uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) {
11188   return vtbl1_u8(a, b);
11189 }
11190 
11191 // CHECK-LABEL: test_vtbl1_s8
11192 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_s8(int8x8_t a,int8x8_t b)11193 int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) {
11194   return vtbl1_s8(a, b);
11195 }
11196 
11197 // CHECK-LABEL: test_vtbl1_p8
11198 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_p8(poly8x8_t a,uint8x8_t b)11199 poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) {
11200   return vtbl1_p8(a, b);
11201 }
11202 
11203 
11204 // CHECK-LABEL: test_vtbl2_u8
11205 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_u8(uint8x8x2_t a,uint8x8_t b)11206 uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) {
11207   return vtbl2_u8(a, b);
11208 }
11209 
11210 // CHECK-LABEL: test_vtbl2_s8
11211 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_s8(int8x8x2_t a,int8x8_t b)11212 int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) {
11213   return vtbl2_s8(a, b);
11214 }
11215 
11216 // CHECK-LABEL: test_vtbl2_p8
11217 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_p8(poly8x8x2_t a,uint8x8_t b)11218 poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) {
11219   return vtbl2_p8(a, b);
11220 }
11221 
11222 
11223 // CHECK-LABEL: test_vtbl3_u8
11224 // 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)11225 uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) {
11226   return vtbl3_u8(a, b);
11227 }
11228 
11229 // CHECK-LABEL: test_vtbl3_s8
11230 // 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)11231 int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) {
11232   return vtbl3_s8(a, b);
11233 }
11234 
11235 // CHECK-LABEL: test_vtbl3_p8
11236 // 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)11237 poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) {
11238   return vtbl3_p8(a, b);
11239 }
11240 
11241 
11242 // CHECK-LABEL: test_vtbl4_u8
11243 // 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)11244 uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) {
11245   return vtbl4_u8(a, b);
11246 }
11247 
11248 // CHECK-LABEL: test_vtbl4_s8
11249 // 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)11250 int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) {
11251   return vtbl4_s8(a, b);
11252 }
11253 
11254 // CHECK-LABEL: test_vtbl4_p8
11255 // 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)11256 poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) {
11257   return vtbl4_p8(a, b);
11258 }
11259 
11260 
11261 // CHECK-LABEL: test_vtbx1_u8
11262 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)11263 uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
11264   return vtbx1_u8(a, b, c);
11265 }
11266 
11267 // CHECK-LABEL: test_vtbx1_s8
11268 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_s8(int8x8_t a,int8x8_t b,int8x8_t c)11269 int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
11270   return vtbx1_s8(a, b, c);
11271 }
11272 
11273 // CHECK-LABEL: test_vtbx1_p8
11274 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_p8(poly8x8_t a,poly8x8_t b,uint8x8_t c)11275 poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) {
11276   return vtbx1_p8(a, b, c);
11277 }
11278 
11279 
11280 // CHECK-LABEL: test_vtbx2_u8
11281 // 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)11282 uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) {
11283   return vtbx2_u8(a, b, c);
11284 }
11285 
11286 // CHECK-LABEL: test_vtbx2_s8
11287 // 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)11288 int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) {
11289   return vtbx2_s8(a, b, c);
11290 }
11291 
11292 // CHECK-LABEL: test_vtbx2_p8
11293 // 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)11294 poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) {
11295   return vtbx2_p8(a, b, c);
11296 }
11297 
11298 
11299 // CHECK-LABEL: test_vtbx3_u8
11300 // 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)11301 uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) {
11302   return vtbx3_u8(a, b, c);
11303 }
11304 
11305 // CHECK-LABEL: test_vtbx3_s8
11306 // 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)11307 int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) {
11308   return vtbx3_s8(a, b, c);
11309 }
11310 
11311 // CHECK-LABEL: test_vtbx3_p8
11312 // 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)11313 poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) {
11314   return vtbx3_p8(a, b, c);
11315 }
11316 
11317 
11318 // CHECK-LABEL: test_vtbx4_u8
11319 // 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)11320 uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) {
11321   return vtbx4_u8(a, b, c);
11322 }
11323 
11324 // CHECK-LABEL: test_vtbx4_s8
11325 // 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)11326 int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) {
11327   return vtbx4_s8(a, b, c);
11328 }
11329 
11330 // CHECK-LABEL: test_vtbx4_p8
11331 // 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)11332 poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) {
11333   return vtbx4_p8(a, b, c);
11334 }
11335 
11336 
11337 // CHECK-LABEL: test_vtrn_s8
11338 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s8(int8x8_t a,int8x8_t b)11339 int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) {
11340   return vtrn_s8(a, b);
11341 }
11342 
11343 // CHECK-LABEL: test_vtrn_s16
11344 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s16(int16x4_t a,int16x4_t b)11345 int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) {
11346   return vtrn_s16(a, b);
11347 }
11348 
11349 // CHECK-LABEL: test_vtrn_s32
11350 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s32(int32x2_t a,int32x2_t b)11351 int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
11352   return vtrn_s32(a, b);
11353 }
11354 
11355 // CHECK-LABEL: test_vtrn_u8
11356 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u8(uint8x8_t a,uint8x8_t b)11357 uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
11358   return vtrn_u8(a, b);
11359 }
11360 
11361 // CHECK-LABEL: test_vtrn_u16
11362 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u16(uint16x4_t a,uint16x4_t b)11363 uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
11364   return vtrn_u16(a, b);
11365 }
11366 
11367 // CHECK-LABEL: test_vtrn_u32
11368 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u32(uint32x2_t a,uint32x2_t b)11369 uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) {
11370   return vtrn_u32(a, b);
11371 }
11372 
11373 // CHECK-LABEL: test_vtrn_f32
11374 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_f32(float32x2_t a,float32x2_t b)11375 float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) {
11376   return vtrn_f32(a, b);
11377 }
11378 
11379 // CHECK-LABEL: test_vtrn_p8
11380 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p8(poly8x8_t a,poly8x8_t b)11381 poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) {
11382   return vtrn_p8(a, b);
11383 }
11384 
11385 // CHECK-LABEL: test_vtrn_p16
11386 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p16(poly16x4_t a,poly16x4_t b)11387 poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) {
11388   return vtrn_p16(a, b);
11389 }
11390 
11391 // CHECK-LABEL: test_vtrnq_s8
11392 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s8(int8x16_t a,int8x16_t b)11393 int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) {
11394   return vtrnq_s8(a, b);
11395 }
11396 
11397 // CHECK-LABEL: test_vtrnq_s16
11398 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s16(int16x8_t a,int16x8_t b)11399 int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
11400   return vtrnq_s16(a, b);
11401 }
11402 
11403 // CHECK-LABEL: test_vtrnq_s32
11404 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s32(int32x4_t a,int32x4_t b)11405 int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) {
11406   return vtrnq_s32(a, b);
11407 }
11408 
11409 // CHECK-LABEL: test_vtrnq_u8
11410 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u8(uint8x16_t a,uint8x16_t b)11411 uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
11412   return vtrnq_u8(a, b);
11413 }
11414 
11415 // CHECK-LABEL: test_vtrnq_u16
11416 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u16(uint16x8_t a,uint16x8_t b)11417 uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) {
11418   return vtrnq_u16(a, b);
11419 }
11420 
11421 // CHECK-LABEL: test_vtrnq_u32
11422 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u32(uint32x4_t a,uint32x4_t b)11423 uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
11424   return vtrnq_u32(a, b);
11425 }
11426 
11427 // CHECK-LABEL: test_vtrnq_f32
11428 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_f32(float32x4_t a,float32x4_t b)11429 float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) {
11430   return vtrnq_f32(a, b);
11431 }
11432 
11433 // CHECK-LABEL: test_vtrnq_p8
11434 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p8(poly8x16_t a,poly8x16_t b)11435 poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) {
11436   return vtrnq_p8(a, b);
11437 }
11438 
11439 // CHECK-LABEL: test_vtrnq_p16
11440 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p16(poly16x8_t a,poly16x8_t b)11441 poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) {
11442   return vtrnq_p16(a, b);
11443 }
11444 
11445 
11446 // CHECK-LABEL: test_vtst_s8
11447 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s8(int8x8_t a,int8x8_t b)11448 uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) {
11449   return vtst_s8(a, b);
11450 }
11451 
11452 // CHECK-LABEL: test_vtst_s16
11453 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s16(int16x4_t a,int16x4_t b)11454 uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) {
11455   return vtst_s16(a, b);
11456 }
11457 
11458 // CHECK-LABEL: test_vtst_s32
11459 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s32(int32x2_t a,int32x2_t b)11460 uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) {
11461   return vtst_s32(a, b);
11462 }
11463 
11464 // CHECK-LABEL: test_vtst_u8
11465 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u8(uint8x8_t a,uint8x8_t b)11466 uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) {
11467   return vtst_u8(a, b);
11468 }
11469 
11470 // CHECK-LABEL: test_vtst_u16
11471 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u16(uint16x4_t a,uint16x4_t b)11472 uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) {
11473   return vtst_u16(a, b);
11474 }
11475 
11476 // CHECK-LABEL: test_vtst_u32
11477 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u32(uint32x2_t a,uint32x2_t b)11478 uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) {
11479   return vtst_u32(a, b);
11480 }
11481 
11482 // CHECK-LABEL: test_vtst_p8
11483 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p8(poly8x8_t a,poly8x8_t b)11484 uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) {
11485   return vtst_p8(a, b);
11486 }
11487 
11488 // CHECK-LABEL: test_vtst_p16
11489 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p16(poly16x4_t a,poly16x4_t b)11490 uint16x4_t test_vtst_p16(poly16x4_t a, poly16x4_t b) {
11491   return vtst_p16(a, b);
11492 }
11493 
11494 // CHECK-LABEL: test_vtstq_s8
11495 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s8(int8x16_t a,int8x16_t b)11496 uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) {
11497   return vtstq_s8(a, b);
11498 }
11499 
11500 // CHECK-LABEL: test_vtstq_s16
11501 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s16(int16x8_t a,int16x8_t b)11502 uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) {
11503   return vtstq_s16(a, b);
11504 }
11505 
11506 // CHECK-LABEL: test_vtstq_s32
11507 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s32(int32x4_t a,int32x4_t b)11508 uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) {
11509   return vtstq_s32(a, b);
11510 }
11511 
11512 // CHECK-LABEL: test_vtstq_u8
11513 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u8(uint8x16_t a,uint8x16_t b)11514 uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) {
11515   return vtstq_u8(a, b);
11516 }
11517 
11518 // CHECK-LABEL: test_vtstq_u16
11519 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u16(uint16x8_t a,uint16x8_t b)11520 uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) {
11521   return vtstq_u16(a, b);
11522 }
11523 
11524 // CHECK-LABEL: test_vtstq_u32
11525 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u32(uint32x4_t a,uint32x4_t b)11526 uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) {
11527   return vtstq_u32(a, b);
11528 }
11529 
11530 // CHECK-LABEL: test_vtstq_p8
11531 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p8(poly8x16_t a,poly8x16_t b)11532 uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) {
11533   return vtstq_p8(a, b);
11534 }
11535 
11536 // CHECK-LABEL: test_vtstq_p16
11537 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p16(poly16x8_t a,poly16x8_t b)11538 uint16x8_t test_vtstq_p16(poly16x8_t a, poly16x8_t b) {
11539   return vtstq_p16(a, b);
11540 }
11541 
11542 
11543 // CHECK-LABEL: test_vuzp_s8
11544 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s8(int8x8_t a,int8x8_t b)11545 int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) {
11546   return vuzp_s8(a, b);
11547 }
11548 
11549 // CHECK-LABEL: test_vuzp_s16
11550 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s16(int16x4_t a,int16x4_t b)11551 int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) {
11552   return vuzp_s16(a, b);
11553 }
11554 
11555 // CHECK-LABEL: test_vuzp_s32
11556 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s32(int32x2_t a,int32x2_t b)11557 int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) {
11558   return vuzp_s32(a, b);
11559 }
11560 
11561 // CHECK-LABEL: test_vuzp_u8
11562 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u8(uint8x8_t a,uint8x8_t b)11563 uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) {
11564   return vuzp_u8(a, b);
11565 }
11566 
11567 // CHECK-LABEL: test_vuzp_u16
11568 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u16(uint16x4_t a,uint16x4_t b)11569 uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) {
11570   return vuzp_u16(a, b);
11571 }
11572 
11573 // CHECK-LABEL: test_vuzp_u32
11574 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u32(uint32x2_t a,uint32x2_t b)11575 uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) {
11576   return vuzp_u32(a, b);
11577 }
11578 
11579 // CHECK-LABEL: test_vuzp_f32
11580 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_f32(float32x2_t a,float32x2_t b)11581 float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) {
11582   return vuzp_f32(a, b);
11583 }
11584 
11585 // CHECK-LABEL: test_vuzp_p8
11586 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p8(poly8x8_t a,poly8x8_t b)11587 poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) {
11588   return vuzp_p8(a, b);
11589 }
11590 
11591 // CHECK-LABEL: test_vuzp_p16
11592 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p16(poly16x4_t a,poly16x4_t b)11593 poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) {
11594   return vuzp_p16(a, b);
11595 }
11596 
11597 // CHECK-LABEL: test_vuzpq_s8
11598 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s8(int8x16_t a,int8x16_t b)11599 int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) {
11600   return vuzpq_s8(a, b);
11601 }
11602 
11603 // CHECK-LABEL: test_vuzpq_s16
11604 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s16(int16x8_t a,int16x8_t b)11605 int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) {
11606   return vuzpq_s16(a, b);
11607 }
11608 
11609 // CHECK-LABEL: test_vuzpq_s32
11610 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s32(int32x4_t a,int32x4_t b)11611 int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) {
11612   return vuzpq_s32(a, b);
11613 }
11614 
11615 // CHECK-LABEL: test_vuzpq_u8
11616 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u8(uint8x16_t a,uint8x16_t b)11617 uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) {
11618   return vuzpq_u8(a, b);
11619 }
11620 
11621 // CHECK-LABEL: test_vuzpq_u16
11622 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u16(uint16x8_t a,uint16x8_t b)11623 uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) {
11624   return vuzpq_u16(a, b);
11625 }
11626 
11627 // CHECK-LABEL: test_vuzpq_u32
11628 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u32(uint32x4_t a,uint32x4_t b)11629 uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) {
11630   return vuzpq_u32(a, b);
11631 }
11632 
11633 // CHECK-LABEL: test_vuzpq_f32
11634 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_f32(float32x4_t a,float32x4_t b)11635 float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) {
11636   return vuzpq_f32(a, b);
11637 }
11638 
11639 // CHECK-LABEL: test_vuzpq_p8
11640 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p8(poly8x16_t a,poly8x16_t b)11641 poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) {
11642   return vuzpq_p8(a, b);
11643 }
11644 
11645 // CHECK-LABEL: test_vuzpq_p16
11646 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p16(poly16x8_t a,poly16x8_t b)11647 poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) {
11648   return vuzpq_p16(a, b);
11649 }
11650 
11651 
11652 // CHECK-LABEL: test_vzip_s8
11653 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s8(int8x8_t a,int8x8_t b)11654 int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) {
11655   return vzip_s8(a, b);
11656 }
11657 
11658 // CHECK-LABEL: test_vzip_s16
11659 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s16(int16x4_t a,int16x4_t b)11660 int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) {
11661   return vzip_s16(a, b);
11662 }
11663 
11664 // CHECK-LABEL: test_vzip_s32
11665 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s32(int32x2_t a,int32x2_t b)11666 int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) {
11667   return vzip_s32(a, b);
11668 }
11669 
11670 // CHECK-LABEL: test_vzip_u8
11671 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u8(uint8x8_t a,uint8x8_t b)11672 uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) {
11673   return vzip_u8(a, b);
11674 }
11675 
11676 // CHECK-LABEL: test_vzip_u16
11677 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u16(uint16x4_t a,uint16x4_t b)11678 uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) {
11679   return vzip_u16(a, b);
11680 }
11681 
11682 // CHECK-LABEL: test_vzip_u32
11683 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u32(uint32x2_t a,uint32x2_t b)11684 uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) {
11685   return vzip_u32(a, b);
11686 }
11687 
11688 // CHECK-LABEL: test_vzip_f32
11689 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_f32(float32x2_t a,float32x2_t b)11690 float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) {
11691   return vzip_f32(a, b);
11692 }
11693 
11694 // CHECK-LABEL: test_vzip_p8
11695 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p8(poly8x8_t a,poly8x8_t b)11696 poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) {
11697   return vzip_p8(a, b);
11698 }
11699 
11700 // CHECK-LABEL: test_vzip_p16
11701 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p16(poly16x4_t a,poly16x4_t b)11702 poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) {
11703   return vzip_p16(a, b);
11704 }
11705 
11706 // CHECK-LABEL: test_vzipq_s8
11707 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s8(int8x16_t a,int8x16_t b)11708 int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) {
11709   return vzipq_s8(a, b);
11710 }
11711 
11712 // CHECK-LABEL: test_vzipq_s16
11713 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s16(int16x8_t a,int16x8_t b)11714 int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) {
11715   return vzipq_s16(a, b);
11716 }
11717 
11718 // CHECK-LABEL: test_vzipq_s32
11719 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s32(int32x4_t a,int32x4_t b)11720 int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) {
11721   return vzipq_s32(a, b);
11722 }
11723 
11724 // CHECK-LABEL: test_vzipq_u8
11725 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u8(uint8x16_t a,uint8x16_t b)11726 uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) {
11727   return vzipq_u8(a, b);
11728 }
11729 
11730 // CHECK-LABEL: test_vzipq_u16
11731 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u16(uint16x8_t a,uint16x8_t b)11732 uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) {
11733   return vzipq_u16(a, b);
11734 }
11735 
11736 // CHECK-LABEL: test_vzipq_u32
11737 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u32(uint32x4_t a,uint32x4_t b)11738 uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) {
11739   return vzipq_u32(a, b);
11740 }
11741 
11742 // CHECK-LABEL: test_vzipq_f32
11743 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_f32(float32x4_t a,float32x4_t b)11744 float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) {
11745   return vzipq_f32(a, b);
11746 }
11747 
11748 // CHECK-LABEL: test_vzipq_p8
11749 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p8(poly8x16_t a,poly8x16_t b)11750 poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) {
11751   return vzipq_p8(a, b);
11752 }
11753 
11754 // CHECK-LABEL: test_vzipq_p16
11755 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p16(poly16x8_t a,poly16x8_t b)11756 poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) {
11757   return vzipq_p16(a, b);
11758 }
11759 
11760 
11761