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_vgetq_lane_u8
2403 // CHECK: vmov
test_vgetq_lane_u8(uint8x16_t a)2404 uint8_t test_vgetq_lane_u8(uint8x16_t a) {
2405 return vgetq_lane_u8(a, 15);
2406 }
2407
2408 // CHECK-LABEL: test_vgetq_lane_u16
2409 // CHECK: vmov
test_vgetq_lane_u16(uint16x8_t a)2410 uint16_t test_vgetq_lane_u16(uint16x8_t a) {
2411 return vgetq_lane_u16(a, 7);
2412 }
2413
2414 // CHECK-LABEL: test_vgetq_lane_u32
2415 // CHECK: vmov
test_vgetq_lane_u32(uint32x4_t a)2416 uint32_t test_vgetq_lane_u32(uint32x4_t a) {
2417 return vgetq_lane_u32(a, 3);
2418 }
2419
2420 // CHECK-LABEL: test_vgetq_lane_s8
2421 // CHECK: vmov
test_vgetq_lane_s8(int8x16_t a)2422 int8_t test_vgetq_lane_s8(int8x16_t a) {
2423 return vgetq_lane_s8(a, 15);
2424 }
2425
2426 // CHECK-LABEL: test_vgetq_lane_s16
2427 // CHECK: vmov
test_vgetq_lane_s16(int16x8_t a)2428 int16_t test_vgetq_lane_s16(int16x8_t a) {
2429 return vgetq_lane_s16(a, 7);
2430 }
2431
2432 // CHECK-LABEL: test_vgetq_lane_s32
2433 // CHECK: vmov
test_vgetq_lane_s32(int32x4_t a)2434 int32_t test_vgetq_lane_s32(int32x4_t a) {
2435 return vgetq_lane_s32(a, 3);
2436 }
2437
2438 // CHECK-LABEL: test_vgetq_lane_p8
2439 // CHECK: vmov
test_vgetq_lane_p8(poly8x16_t a)2440 poly8_t test_vgetq_lane_p8(poly8x16_t a) {
2441 return vgetq_lane_p8(a, 15);
2442 }
2443
2444 // CHECK-LABEL: test_vgetq_lane_p16
2445 // CHECK: vmov
test_vgetq_lane_p16(poly16x8_t a)2446 poly16_t test_vgetq_lane_p16(poly16x8_t a) {
2447 return vgetq_lane_p16(a, 7);
2448 }
2449
2450 // CHECK-LABEL: test_vgetq_lane_f32
2451 // CHECK: vmov
test_vgetq_lane_f32(float32x4_t a)2452 float32_t test_vgetq_lane_f32(float32x4_t a) {
2453 return vgetq_lane_f32(a, 3);
2454 }
2455
2456 // CHECK-LABEL: test_vget_lane_s64
2457 // The optimizer is able to remove all moves now.
test_vget_lane_s64(int64x1_t a)2458 int64_t test_vget_lane_s64(int64x1_t a) {
2459 return vget_lane_s64(a, 0);
2460 }
2461
2462 // CHECK-LABEL: test_vget_lane_u64
2463 // The optimizer is able to remove all moves now.
test_vget_lane_u64(uint64x1_t a)2464 uint64_t test_vget_lane_u64(uint64x1_t a) {
2465 return vget_lane_u64(a, 0);
2466 }
2467
2468 // CHECK-LABEL: test_vgetq_lane_s64
2469 // CHECK: vmov
test_vgetq_lane_s64(int64x2_t a)2470 int64_t test_vgetq_lane_s64(int64x2_t a) {
2471 return vgetq_lane_s64(a, 1);
2472 }
2473
2474 // CHECK-LABEL: test_vgetq_lane_u64
2475 // CHECK: vmov
test_vgetq_lane_u64(uint64x2_t a)2476 uint64_t test_vgetq_lane_u64(uint64x2_t a) {
2477 return vgetq_lane_u64(a, 1);
2478 }
2479
2480
2481 // CHECK-LABEL: test_vget_low_s8
test_vget_low_s8(int8x16_t a)2482 int8x8_t test_vget_low_s8(int8x16_t a) {
2483 return vget_low_s8(a);
2484 }
2485
2486 // CHECK-LABEL: test_vget_low_s16
test_vget_low_s16(int16x8_t a)2487 int16x4_t test_vget_low_s16(int16x8_t a) {
2488 return vget_low_s16(a);
2489 }
2490
2491 // CHECK-LABEL: test_vget_low_s32
test_vget_low_s32(int32x4_t a)2492 int32x2_t test_vget_low_s32(int32x4_t a) {
2493 return vget_low_s32(a);
2494 }
2495
2496 // CHECK-LABEL: test_vget_low_s64
test_vget_low_s64(int64x2_t a)2497 int64x1_t test_vget_low_s64(int64x2_t a) {
2498 return vget_low_s64(a);
2499 }
2500
2501 // CHECK-LABEL: test_vget_low_f16
test_vget_low_f16(float16x8_t a)2502 float16x4_t test_vget_low_f16(float16x8_t a) {
2503 return vget_low_f16(a);
2504 }
2505
2506 // CHECK-LABEL: test_vget_low_f32
test_vget_low_f32(float32x4_t a)2507 float32x2_t test_vget_low_f32(float32x4_t a) {
2508 return vget_low_f32(a);
2509 }
2510
2511 // CHECK-LABEL: test_vget_low_u8
test_vget_low_u8(uint8x16_t a)2512 uint8x8_t test_vget_low_u8(uint8x16_t a) {
2513 return vget_low_u8(a);
2514 }
2515
2516 // CHECK-LABEL: test_vget_low_u16
test_vget_low_u16(uint16x8_t a)2517 uint16x4_t test_vget_low_u16(uint16x8_t a) {
2518 return vget_low_u16(a);
2519 }
2520
2521 // CHECK-LABEL: test_vget_low_u32
test_vget_low_u32(uint32x4_t a)2522 uint32x2_t test_vget_low_u32(uint32x4_t a) {
2523 return vget_low_u32(a);
2524 }
2525
2526 // CHECK-LABEL: test_vget_low_u64
test_vget_low_u64(uint64x2_t a)2527 uint64x1_t test_vget_low_u64(uint64x2_t a) {
2528 return vget_low_u64(a);
2529 }
2530
2531 // CHECK-LABEL: test_vget_low_p8
test_vget_low_p8(poly8x16_t a)2532 poly8x8_t test_vget_low_p8(poly8x16_t a) {
2533 return vget_low_p8(a);
2534 }
2535
2536 // CHECK-LABEL: test_vget_low_p16
test_vget_low_p16(poly16x8_t a)2537 poly16x4_t test_vget_low_p16(poly16x8_t a) {
2538 return vget_low_p16(a);
2539 }
2540
2541
2542 // CHECK-LABEL: test_vhadd_s8
2543 // CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s8(int8x8_t a,int8x8_t b)2544 int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) {
2545 return vhadd_s8(a, b);
2546 }
2547
2548 // CHECK-LABEL: test_vhadd_s16
2549 // CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s16(int16x4_t a,int16x4_t b)2550 int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) {
2551 return vhadd_s16(a, b);
2552 }
2553
2554 // CHECK-LABEL: test_vhadd_s32
2555 // CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s32(int32x2_t a,int32x2_t b)2556 int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) {
2557 return vhadd_s32(a, b);
2558 }
2559
2560 // CHECK-LABEL: test_vhadd_u8
2561 // CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u8(uint8x8_t a,uint8x8_t b)2562 uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) {
2563 return vhadd_u8(a, b);
2564 }
2565
2566 // CHECK-LABEL: test_vhadd_u16
2567 // CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u16(uint16x4_t a,uint16x4_t b)2568 uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) {
2569 return vhadd_u16(a, b);
2570 }
2571
2572 // CHECK-LABEL: test_vhadd_u32
2573 // CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u32(uint32x2_t a,uint32x2_t b)2574 uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) {
2575 return vhadd_u32(a, b);
2576 }
2577
2578 // CHECK-LABEL: test_vhaddq_s8
2579 // CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s8(int8x16_t a,int8x16_t b)2580 int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) {
2581 return vhaddq_s8(a, b);
2582 }
2583
2584 // CHECK-LABEL: test_vhaddq_s16
2585 // CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s16(int16x8_t a,int16x8_t b)2586 int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) {
2587 return vhaddq_s16(a, b);
2588 }
2589
2590 // CHECK-LABEL: test_vhaddq_s32
2591 // CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s32(int32x4_t a,int32x4_t b)2592 int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) {
2593 return vhaddq_s32(a, b);
2594 }
2595
2596 // CHECK-LABEL: test_vhaddq_u8
2597 // CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u8(uint8x16_t a,uint8x16_t b)2598 uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) {
2599 return vhaddq_u8(a, b);
2600 }
2601
2602 // CHECK-LABEL: test_vhaddq_u16
2603 // CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u16(uint16x8_t a,uint16x8_t b)2604 uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) {
2605 return vhaddq_u16(a, b);
2606 }
2607
2608 // CHECK-LABEL: test_vhaddq_u32
2609 // CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u32(uint32x4_t a,uint32x4_t b)2610 uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) {
2611 return vhaddq_u32(a, b);
2612 }
2613
2614
2615 // CHECK-LABEL: test_vhsub_s8
2616 // CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s8(int8x8_t a,int8x8_t b)2617 int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) {
2618 return vhsub_s8(a, b);
2619 }
2620
2621 // CHECK-LABEL: test_vhsub_s16
2622 // CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s16(int16x4_t a,int16x4_t b)2623 int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) {
2624 return vhsub_s16(a, b);
2625 }
2626
2627 // CHECK-LABEL: test_vhsub_s32
2628 // CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s32(int32x2_t a,int32x2_t b)2629 int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) {
2630 return vhsub_s32(a, b);
2631 }
2632
2633 // CHECK-LABEL: test_vhsub_u8
2634 // CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u8(uint8x8_t a,uint8x8_t b)2635 uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) {
2636 return vhsub_u8(a, b);
2637 }
2638
2639 // CHECK-LABEL: test_vhsub_u16
2640 // CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u16(uint16x4_t a,uint16x4_t b)2641 uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) {
2642 return vhsub_u16(a, b);
2643 }
2644
2645 // CHECK-LABEL: test_vhsub_u32
2646 // CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u32(uint32x2_t a,uint32x2_t b)2647 uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) {
2648 return vhsub_u32(a, b);
2649 }
2650
2651 // CHECK-LABEL: test_vhsubq_s8
2652 // CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s8(int8x16_t a,int8x16_t b)2653 int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) {
2654 return vhsubq_s8(a, b);
2655 }
2656
2657 // CHECK-LABEL: test_vhsubq_s16
2658 // CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s16(int16x8_t a,int16x8_t b)2659 int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) {
2660 return vhsubq_s16(a, b);
2661 }
2662
2663 // CHECK-LABEL: test_vhsubq_s32
2664 // CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s32(int32x4_t a,int32x4_t b)2665 int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) {
2666 return vhsubq_s32(a, b);
2667 }
2668
2669 // CHECK-LABEL: test_vhsubq_u8
2670 // CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u8(uint8x16_t a,uint8x16_t b)2671 uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) {
2672 return vhsubq_u8(a, b);
2673 }
2674
2675 // CHECK-LABEL: test_vhsubq_u16
2676 // CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u16(uint16x8_t a,uint16x8_t b)2677 uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) {
2678 return vhsubq_u16(a, b);
2679 }
2680
2681 // CHECK-LABEL: test_vhsubq_u32
2682 // CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u32(uint32x4_t a,uint32x4_t b)2683 uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) {
2684 return vhsubq_u32(a, b);
2685 }
2686
2687
2688 // CHECK-LABEL: test_vld1q_u8
2689 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u8(uint8_t const * a)2690 uint8x16_t test_vld1q_u8(uint8_t const * a) {
2691 return vld1q_u8(a);
2692 }
2693
2694 // CHECK-LABEL: test_vld1q_u16
2695 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u16(uint16_t const * a)2696 uint16x8_t test_vld1q_u16(uint16_t const * a) {
2697 return vld1q_u16(a);
2698 }
2699
2700 // CHECK-LABEL: test_vld1q_u32
2701 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u32(uint32_t const * a)2702 uint32x4_t test_vld1q_u32(uint32_t const * a) {
2703 return vld1q_u32(a);
2704 }
2705
2706 // CHECK-LABEL: test_vld1q_u64
2707 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_u64(uint64_t const * a)2708 uint64x2_t test_vld1q_u64(uint64_t const * a) {
2709 return vld1q_u64(a);
2710 }
2711
2712 // CHECK-LABEL: test_vld1q_s8
2713 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s8(int8_t const * a)2714 int8x16_t test_vld1q_s8(int8_t const * a) {
2715 return vld1q_s8(a);
2716 }
2717
2718 // CHECK-LABEL: test_vld1q_s16
2719 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s16(int16_t const * a)2720 int16x8_t test_vld1q_s16(int16_t const * a) {
2721 return vld1q_s16(a);
2722 }
2723
2724 // CHECK-LABEL: test_vld1q_s32
2725 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s32(int32_t const * a)2726 int32x4_t test_vld1q_s32(int32_t const * a) {
2727 return vld1q_s32(a);
2728 }
2729
2730 // CHECK-LABEL: test_vld1q_s64
2731 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_s64(int64_t const * a)2732 int64x2_t test_vld1q_s64(int64_t const * a) {
2733 return vld1q_s64(a);
2734 }
2735
2736 // CHECK-LABEL: test_vld1q_f16
2737 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f16(float16_t const * a)2738 float16x8_t test_vld1q_f16(float16_t const * a) {
2739 return vld1q_f16(a);
2740 }
2741
2742 // CHECK-LABEL: test_vld1q_f32
2743 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f32(float32_t const * a)2744 float32x4_t test_vld1q_f32(float32_t const * a) {
2745 return vld1q_f32(a);
2746 }
2747
2748 // CHECK-LABEL: test_vld1q_p8
2749 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p8(poly8_t const * a)2750 poly8x16_t test_vld1q_p8(poly8_t const * a) {
2751 return vld1q_p8(a);
2752 }
2753
2754 // CHECK-LABEL: test_vld1q_p16
2755 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p16(poly16_t const * a)2756 poly16x8_t test_vld1q_p16(poly16_t const * a) {
2757 return vld1q_p16(a);
2758 }
2759
2760 // CHECK-LABEL: test_vld1_u8
2761 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u8(uint8_t const * a)2762 uint8x8_t test_vld1_u8(uint8_t const * a) {
2763 return vld1_u8(a);
2764 }
2765
2766 // CHECK-LABEL: test_vld1_u16
2767 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u16(uint16_t const * a)2768 uint16x4_t test_vld1_u16(uint16_t const * a) {
2769 return vld1_u16(a);
2770 }
2771
2772 // CHECK-LABEL: test_vld1_u32
2773 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u32(uint32_t const * a)2774 uint32x2_t test_vld1_u32(uint32_t const * a) {
2775 return vld1_u32(a);
2776 }
2777
2778 // CHECK-LABEL: test_vld1_u64
2779 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_u64(uint64_t const * a)2780 uint64x1_t test_vld1_u64(uint64_t const * a) {
2781 return vld1_u64(a);
2782 }
2783
2784 // CHECK-LABEL: test_vld1_s8
2785 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s8(int8_t const * a)2786 int8x8_t test_vld1_s8(int8_t const * a) {
2787 return vld1_s8(a);
2788 }
2789
2790 // CHECK-LABEL: test_vld1_s16
2791 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s16(int16_t const * a)2792 int16x4_t test_vld1_s16(int16_t const * a) {
2793 return vld1_s16(a);
2794 }
2795
2796 // CHECK-LABEL: test_vld1_s32
2797 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s32(int32_t const * a)2798 int32x2_t test_vld1_s32(int32_t const * a) {
2799 return vld1_s32(a);
2800 }
2801
2802 // CHECK-LABEL: test_vld1_s64
2803 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_s64(int64_t const * a)2804 int64x1_t test_vld1_s64(int64_t const * a) {
2805 return vld1_s64(a);
2806 }
2807
2808 // CHECK-LABEL: test_vld1_f16
2809 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f16(float16_t const * a)2810 float16x4_t test_vld1_f16(float16_t const * a) {
2811 return vld1_f16(a);
2812 }
2813
2814 // CHECK-LABEL: test_vld1_f32
2815 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f32(float32_t const * a)2816 float32x2_t test_vld1_f32(float32_t const * a) {
2817 return vld1_f32(a);
2818 }
2819
2820 // CHECK-LABEL: test_vld1_p8
2821 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p8(poly8_t const * a)2822 poly8x8_t test_vld1_p8(poly8_t const * a) {
2823 return vld1_p8(a);
2824 }
2825
2826 // CHECK-LABEL: test_vld1_p16
2827 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p16(poly16_t const * a)2828 poly16x4_t test_vld1_p16(poly16_t const * a) {
2829 return vld1_p16(a);
2830 }
2831
2832
2833 // CHECK-LABEL: test_vld1q_dup_u8
2834 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_u8(uint8_t const * a)2835 uint8x16_t test_vld1q_dup_u8(uint8_t const * a) {
2836 return vld1q_dup_u8(a);
2837 }
2838
2839 // CHECK-LABEL: test_vld1q_dup_u16
2840 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_u16(uint16_t const * a)2841 uint16x8_t test_vld1q_dup_u16(uint16_t const * a) {
2842 return vld1q_dup_u16(a);
2843 }
2844
2845 // CHECK-LABEL: test_vld1q_dup_u32
2846 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_u32(uint32_t const * a)2847 uint32x4_t test_vld1q_dup_u32(uint32_t const * a) {
2848 return vld1q_dup_u32(a);
2849 }
2850
2851 // CHECK-LABEL: test_vld1q_dup_u64
2852 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_u64(uint64_t const * a)2853 uint64x2_t test_vld1q_dup_u64(uint64_t const * a) {
2854 return vld1q_dup_u64(a);
2855 }
2856
2857 // CHECK-LABEL: test_vld1q_dup_s8
2858 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_s8(int8_t const * a)2859 int8x16_t test_vld1q_dup_s8(int8_t const * a) {
2860 return vld1q_dup_s8(a);
2861 }
2862
2863 // CHECK-LABEL: test_vld1q_dup_s16
2864 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_s16(int16_t const * a)2865 int16x8_t test_vld1q_dup_s16(int16_t const * a) {
2866 return vld1q_dup_s16(a);
2867 }
2868
2869 // CHECK-LABEL: test_vld1q_dup_s32
2870 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_s32(int32_t const * a)2871 int32x4_t test_vld1q_dup_s32(int32_t const * a) {
2872 return vld1q_dup_s32(a);
2873 }
2874
2875 // CHECK-LABEL: test_vld1q_dup_s64
2876 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_s64(int64_t const * a)2877 int64x2_t test_vld1q_dup_s64(int64_t const * a) {
2878 return vld1q_dup_s64(a);
2879 }
2880
2881 // CHECK-LABEL: test_vld1q_dup_f16
2882 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_f16(float16_t const * a)2883 float16x8_t test_vld1q_dup_f16(float16_t const * a) {
2884 return vld1q_dup_f16(a);
2885 }
2886
2887 // CHECK-LABEL: test_vld1q_dup_f32
2888 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_f32(float32_t const * a)2889 float32x4_t test_vld1q_dup_f32(float32_t const * a) {
2890 return vld1q_dup_f32(a);
2891 }
2892
2893 // CHECK-LABEL: test_vld1q_dup_p8
2894 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_p8(poly8_t const * a)2895 poly8x16_t test_vld1q_dup_p8(poly8_t const * a) {
2896 return vld1q_dup_p8(a);
2897 }
2898
2899 // CHECK-LABEL: test_vld1q_dup_p16
2900 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_p16(poly16_t const * a)2901 poly16x8_t test_vld1q_dup_p16(poly16_t const * a) {
2902 return vld1q_dup_p16(a);
2903 }
2904
2905 // CHECK-LABEL: test_vld1_dup_u8
2906 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_u8(uint8_t const * a)2907 uint8x8_t test_vld1_dup_u8(uint8_t const * a) {
2908 return vld1_dup_u8(a);
2909 }
2910
2911 // CHECK-LABEL: test_vld1_dup_u16
2912 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_u16(uint16_t const * a)2913 uint16x4_t test_vld1_dup_u16(uint16_t const * a) {
2914 return vld1_dup_u16(a);
2915 }
2916
2917 // CHECK-LABEL: test_vld1_dup_u32
2918 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_u32(uint32_t const * a)2919 uint32x2_t test_vld1_dup_u32(uint32_t const * a) {
2920 return vld1_dup_u32(a);
2921 }
2922
2923 // CHECK-LABEL: test_vld1_dup_u64
2924 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_u64(uint64_t const * a)2925 uint64x1_t test_vld1_dup_u64(uint64_t const * a) {
2926 return vld1_dup_u64(a);
2927 }
2928
2929 // CHECK-LABEL: test_vld1_dup_s8
2930 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_s8(int8_t const * a)2931 int8x8_t test_vld1_dup_s8(int8_t const * a) {
2932 return vld1_dup_s8(a);
2933 }
2934
2935 // CHECK-LABEL: test_vld1_dup_s16
2936 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_s16(int16_t const * a)2937 int16x4_t test_vld1_dup_s16(int16_t const * a) {
2938 return vld1_dup_s16(a);
2939 }
2940
2941 // CHECK-LABEL: test_vld1_dup_s32
2942 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_s32(int32_t const * a)2943 int32x2_t test_vld1_dup_s32(int32_t const * a) {
2944 return vld1_dup_s32(a);
2945 }
2946
2947 // CHECK-LABEL: test_vld1_dup_s64
2948 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_s64(int64_t const * a)2949 int64x1_t test_vld1_dup_s64(int64_t const * a) {
2950 return vld1_dup_s64(a);
2951 }
2952
2953 // CHECK-LABEL: test_vld1_dup_f16
2954 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_f16(float16_t const * a)2955 float16x4_t test_vld1_dup_f16(float16_t const * a) {
2956 return vld1_dup_f16(a);
2957 }
2958
2959 // CHECK-LABEL: test_vld1_dup_f32
2960 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_f32(float32_t const * a)2961 float32x2_t test_vld1_dup_f32(float32_t const * a) {
2962 return vld1_dup_f32(a);
2963 }
2964
2965 // CHECK-LABEL: test_vld1_dup_p8
2966 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_p8(poly8_t const * a)2967 poly8x8_t test_vld1_dup_p8(poly8_t const * a) {
2968 return vld1_dup_p8(a);
2969 }
2970
2971 // CHECK-LABEL: test_vld1_dup_p16
2972 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_p16(poly16_t const * a)2973 poly16x4_t test_vld1_dup_p16(poly16_t const * a) {
2974 return vld1_dup_p16(a);
2975 }
2976
2977
2978 // CHECK-LABEL: test_vld1q_lane_u8
2979 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_u8(uint8_t const * a,uint8x16_t b)2980 uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) {
2981 return vld1q_lane_u8(a, b, 15);
2982 }
2983
2984 // CHECK-LABEL: test_vld1q_lane_u16
2985 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_u16(uint16_t const * a,uint16x8_t b)2986 uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) {
2987 return vld1q_lane_u16(a, b, 7);
2988 }
2989
2990 // CHECK-LABEL: test_vld1q_lane_u32
2991 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_u32(uint32_t const * a,uint32x4_t b)2992 uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) {
2993 return vld1q_lane_u32(a, b, 3);
2994 }
2995
2996 // CHECK-LABEL: test_vld1q_lane_u64
2997 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_u64(uint64_t const * a,uint64x2_t b)2998 uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) {
2999 return vld1q_lane_u64(a, b, 1);
3000 }
3001
3002 // CHECK-LABEL: test_vld1q_lane_s8
3003 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_s8(int8_t const * a,int8x16_t b)3004 int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) {
3005 return vld1q_lane_s8(a, b, 15);
3006 }
3007
3008 // CHECK-LABEL: test_vld1q_lane_s16
3009 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_s16(int16_t const * a,int16x8_t b)3010 int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) {
3011 return vld1q_lane_s16(a, b, 7);
3012 }
3013
3014 // CHECK-LABEL: test_vld1q_lane_s32
3015 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_s32(int32_t const * a,int32x4_t b)3016 int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) {
3017 return vld1q_lane_s32(a, b, 3);
3018 }
3019
3020 // CHECK-LABEL: test_vld1q_lane_s64
3021 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_s64(int64_t const * a,int64x2_t b)3022 int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) {
3023 return vld1q_lane_s64(a, b, 1);
3024 }
3025
3026 // CHECK-LABEL: test_vld1q_lane_f16
3027 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_f16(float16_t const * a,float16x8_t b)3028 float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) {
3029 return vld1q_lane_f16(a, b, 7);
3030 }
3031
3032 // CHECK-LABEL: test_vld1q_lane_f32
3033 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_f32(float32_t const * a,float32x4_t b)3034 float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) {
3035 return vld1q_lane_f32(a, b, 3);
3036 }
3037
3038 // CHECK-LABEL: test_vld1q_lane_p8
3039 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_p8(poly8_t const * a,poly8x16_t b)3040 poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) {
3041 return vld1q_lane_p8(a, b, 15);
3042 }
3043
3044 // CHECK-LABEL: test_vld1q_lane_p16
3045 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_p16(poly16_t const * a,poly16x8_t b)3046 poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) {
3047 return vld1q_lane_p16(a, b, 7);
3048 }
3049
3050 // CHECK-LABEL: test_vld1_lane_u8
3051 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_u8(uint8_t const * a,uint8x8_t b)3052 uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) {
3053 return vld1_lane_u8(a, b, 7);
3054 }
3055
3056 // CHECK-LABEL: test_vld1_lane_u16
3057 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_u16(uint16_t const * a,uint16x4_t b)3058 uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) {
3059 return vld1_lane_u16(a, b, 3);
3060 }
3061
3062 // CHECK-LABEL: test_vld1_lane_u32
3063 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_u32(uint32_t const * a,uint32x2_t b)3064 uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) {
3065 return vld1_lane_u32(a, b, 1);
3066 }
3067
3068 // CHECK-LABEL: test_vld1_lane_u64
3069 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_u64(uint64_t const * a,uint64x1_t b)3070 uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) {
3071 return vld1_lane_u64(a, b, 0);
3072 }
3073
3074 // CHECK-LABEL: test_vld1_lane_s8
3075 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_s8(int8_t const * a,int8x8_t b)3076 int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) {
3077 return vld1_lane_s8(a, b, 7);
3078 }
3079
3080 // CHECK-LABEL: test_vld1_lane_s16
3081 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_s16(int16_t const * a,int16x4_t b)3082 int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) {
3083 return vld1_lane_s16(a, b, 3);
3084 }
3085
3086 // CHECK-LABEL: test_vld1_lane_s32
3087 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_s32(int32_t const * a,int32x2_t b)3088 int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) {
3089 return vld1_lane_s32(a, b, 1);
3090 }
3091
3092 // CHECK-LABEL: test_vld1_lane_s64
3093 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_s64(int64_t const * a,int64x1_t b)3094 int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) {
3095 return vld1_lane_s64(a, b, 0);
3096 }
3097
3098 // CHECK-LABEL: test_vld1_lane_f16
3099 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_f16(float16_t const * a,float16x4_t b)3100 float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) {
3101 return vld1_lane_f16(a, b, 3);
3102 }
3103
3104 // CHECK-LABEL: test_vld1_lane_f32
3105 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_f32(float32_t const * a,float32x2_t b)3106 float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) {
3107 return vld1_lane_f32(a, b, 1);
3108 }
3109
3110 // CHECK-LABEL: test_vld1_lane_p8
3111 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_p8(poly8_t const * a,poly8x8_t b)3112 poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) {
3113 return vld1_lane_p8(a, b, 7);
3114 }
3115
3116 // CHECK-LABEL: test_vld1_lane_p16
3117 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_p16(poly16_t const * a,poly16x4_t b)3118 poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) {
3119 return vld1_lane_p16(a, b, 3);
3120 }
3121
3122
3123 // CHECK-LABEL: test_vld2q_u8
3124 // 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)3125 uint8x16x2_t test_vld2q_u8(uint8_t const * a) {
3126 return vld2q_u8(a);
3127 }
3128
3129 // CHECK-LABEL: test_vld2q_u16
3130 // 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)3131 uint16x8x2_t test_vld2q_u16(uint16_t const * a) {
3132 return vld2q_u16(a);
3133 }
3134
3135 // CHECK-LABEL: test_vld2q_u32
3136 // 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)3137 uint32x4x2_t test_vld2q_u32(uint32_t const * a) {
3138 return vld2q_u32(a);
3139 }
3140
3141 // CHECK-LABEL: test_vld2q_s8
3142 // 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)3143 int8x16x2_t test_vld2q_s8(int8_t const * a) {
3144 return vld2q_s8(a);
3145 }
3146
3147 // CHECK-LABEL: test_vld2q_s16
3148 // 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)3149 int16x8x2_t test_vld2q_s16(int16_t const * a) {
3150 return vld2q_s16(a);
3151 }
3152
3153 // CHECK-LABEL: test_vld2q_s32
3154 // 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)3155 int32x4x2_t test_vld2q_s32(int32_t const * a) {
3156 return vld2q_s32(a);
3157 }
3158
3159 // CHECK-LABEL: test_vld2q_f16
3160 // 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)3161 float16x8x2_t test_vld2q_f16(float16_t const * a) {
3162 return vld2q_f16(a);
3163 }
3164
3165 // CHECK-LABEL: test_vld2q_f32
3166 // 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)3167 float32x4x2_t test_vld2q_f32(float32_t const * a) {
3168 return vld2q_f32(a);
3169 }
3170
3171 // CHECK-LABEL: test_vld2q_p8
3172 // 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)3173 poly8x16x2_t test_vld2q_p8(poly8_t const * a) {
3174 return vld2q_p8(a);
3175 }
3176
3177 // CHECK-LABEL: test_vld2q_p16
3178 // 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)3179 poly16x8x2_t test_vld2q_p16(poly16_t const * a) {
3180 return vld2q_p16(a);
3181 }
3182
3183 // CHECK-LABEL: test_vld2_u8
3184 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u8(uint8_t const * a)3185 uint8x8x2_t test_vld2_u8(uint8_t const * a) {
3186 return vld2_u8(a);
3187 }
3188
3189 // CHECK-LABEL: test_vld2_u16
3190 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u16(uint16_t const * a)3191 uint16x4x2_t test_vld2_u16(uint16_t const * a) {
3192 return vld2_u16(a);
3193 }
3194
3195 // CHECK-LABEL: test_vld2_u32
3196 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u32(uint32_t const * a)3197 uint32x2x2_t test_vld2_u32(uint32_t const * a) {
3198 return vld2_u32(a);
3199 }
3200
3201 // CHECK-LABEL: test_vld2_u64
3202 // CHECK: vld1.64
test_vld2_u64(uint64_t const * a)3203 uint64x1x2_t test_vld2_u64(uint64_t const * a) {
3204 return vld2_u64(a);
3205 }
3206
3207 // CHECK-LABEL: test_vld2_s8
3208 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s8(int8_t const * a)3209 int8x8x2_t test_vld2_s8(int8_t const * a) {
3210 return vld2_s8(a);
3211 }
3212
3213 // CHECK-LABEL: test_vld2_s16
3214 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s16(int16_t const * a)3215 int16x4x2_t test_vld2_s16(int16_t const * a) {
3216 return vld2_s16(a);
3217 }
3218
3219 // CHECK-LABEL: test_vld2_s32
3220 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s32(int32_t const * a)3221 int32x2x2_t test_vld2_s32(int32_t const * a) {
3222 return vld2_s32(a);
3223 }
3224
3225 // CHECK-LABEL: test_vld2_s64
3226 // CHECK: vld1.64
test_vld2_s64(int64_t const * a)3227 int64x1x2_t test_vld2_s64(int64_t const * a) {
3228 return vld2_s64(a);
3229 }
3230
3231 // CHECK-LABEL: test_vld2_f16
3232 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f16(float16_t const * a)3233 float16x4x2_t test_vld2_f16(float16_t const * a) {
3234 return vld2_f16(a);
3235 }
3236
3237 // CHECK-LABEL: test_vld2_f32
3238 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f32(float32_t const * a)3239 float32x2x2_t test_vld2_f32(float32_t const * a) {
3240 return vld2_f32(a);
3241 }
3242
3243 // CHECK-LABEL: test_vld2_p8
3244 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p8(poly8_t const * a)3245 poly8x8x2_t test_vld2_p8(poly8_t const * a) {
3246 return vld2_p8(a);
3247 }
3248
3249 // CHECK-LABEL: test_vld2_p16
3250 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p16(poly16_t const * a)3251 poly16x4x2_t test_vld2_p16(poly16_t const * a) {
3252 return vld2_p16(a);
3253 }
3254
3255
3256 // CHECK-LABEL: test_vld2_dup_u8
3257 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u8(uint8_t const * a)3258 uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) {
3259 return vld2_dup_u8(a);
3260 }
3261
3262 // CHECK-LABEL: test_vld2_dup_u16
3263 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u16(uint16_t const * a)3264 uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) {
3265 return vld2_dup_u16(a);
3266 }
3267
3268 // CHECK-LABEL: test_vld2_dup_u32
3269 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u32(uint32_t const * a)3270 uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) {
3271 return vld2_dup_u32(a);
3272 }
3273
3274 // CHECK-LABEL: test_vld2_dup_u64
3275 // CHECK: vld1.64
test_vld2_dup_u64(uint64_t const * a)3276 uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) {
3277 return vld2_dup_u64(a);
3278 }
3279
3280 // CHECK-LABEL: test_vld2_dup_s8
3281 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s8(int8_t const * a)3282 int8x8x2_t test_vld2_dup_s8(int8_t const * a) {
3283 return vld2_dup_s8(a);
3284 }
3285
3286 // CHECK-LABEL: test_vld2_dup_s16
3287 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s16(int16_t const * a)3288 int16x4x2_t test_vld2_dup_s16(int16_t const * a) {
3289 return vld2_dup_s16(a);
3290 }
3291
3292 // CHECK-LABEL: test_vld2_dup_s32
3293 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s32(int32_t const * a)3294 int32x2x2_t test_vld2_dup_s32(int32_t const * a) {
3295 return vld2_dup_s32(a);
3296 }
3297
3298 // CHECK-LABEL: test_vld2_dup_s64
3299 // CHECK: vld1.64
test_vld2_dup_s64(int64_t const * a)3300 int64x1x2_t test_vld2_dup_s64(int64_t const * a) {
3301 return vld2_dup_s64(a);
3302 }
3303
3304 // CHECK-LABEL: test_vld2_dup_f16
3305 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f16(float16_t const * a)3306 float16x4x2_t test_vld2_dup_f16(float16_t const * a) {
3307 return vld2_dup_f16(a);
3308 }
3309
3310 // CHECK-LABEL: test_vld2_dup_f32
3311 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f32(float32_t const * a)3312 float32x2x2_t test_vld2_dup_f32(float32_t const * a) {
3313 return vld2_dup_f32(a);
3314 }
3315
3316 // CHECK-LABEL: test_vld2_dup_p8
3317 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p8(poly8_t const * a)3318 poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) {
3319 return vld2_dup_p8(a);
3320 }
3321
3322 // CHECK-LABEL: test_vld2_dup_p16
3323 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p16(poly16_t const * a)3324 poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) {
3325 return vld2_dup_p16(a);
3326 }
3327
3328
3329 // CHECK-LABEL: test_vld2q_lane_u16
3330 // 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)3331 uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) {
3332 return vld2q_lane_u16(a, b, 7);
3333 }
3334
3335 // CHECK-LABEL: test_vld2q_lane_u32
3336 // 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)3337 uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) {
3338 return vld2q_lane_u32(a, b, 3);
3339 }
3340
3341 // CHECK-LABEL: test_vld2q_lane_s16
3342 // 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)3343 int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) {
3344 return vld2q_lane_s16(a, b, 7);
3345 }
3346
3347 // CHECK-LABEL: test_vld2q_lane_s32
3348 // 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)3349 int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) {
3350 return vld2q_lane_s32(a, b, 3);
3351 }
3352
3353 // CHECK-LABEL: test_vld2q_lane_f16
3354 // 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)3355 float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) {
3356 return vld2q_lane_f16(a, b, 7);
3357 }
3358
3359 // CHECK-LABEL: test_vld2q_lane_f32
3360 // 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)3361 float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) {
3362 return vld2q_lane_f32(a, b, 3);
3363 }
3364
3365 // CHECK-LABEL: test_vld2q_lane_p16
3366 // 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)3367 poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) {
3368 return vld2q_lane_p16(a, b, 7);
3369 }
3370
3371 // CHECK-LABEL: test_vld2_lane_u8
3372 // 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)3373 uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) {
3374 return vld2_lane_u8(a, b, 7);
3375 }
3376
3377 // CHECK-LABEL: test_vld2_lane_u16
3378 // 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)3379 uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) {
3380 return vld2_lane_u16(a, b, 3);
3381 }
3382
3383 // CHECK-LABEL: test_vld2_lane_u32
3384 // 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)3385 uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) {
3386 return vld2_lane_u32(a, b, 1);
3387 }
3388
3389 // CHECK-LABEL: test_vld2_lane_s8
3390 // 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)3391 int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) {
3392 return vld2_lane_s8(a, b, 7);
3393 }
3394
3395 // CHECK-LABEL: test_vld2_lane_s16
3396 // 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)3397 int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) {
3398 return vld2_lane_s16(a, b, 3);
3399 }
3400
3401 // CHECK-LABEL: test_vld2_lane_s32
3402 // 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)3403 int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) {
3404 return vld2_lane_s32(a, b, 1);
3405 }
3406
3407 // CHECK-LABEL: test_vld2_lane_f16
3408 // 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)3409 float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) {
3410 return vld2_lane_f16(a, b, 3);
3411 }
3412
3413 // CHECK-LABEL: test_vld2_lane_f32
3414 // 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)3415 float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) {
3416 return vld2_lane_f32(a, b, 1);
3417 }
3418
3419 // CHECK-LABEL: test_vld2_lane_p8
3420 // 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)3421 poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) {
3422 return vld2_lane_p8(a, b, 7);
3423 }
3424
3425 // CHECK-LABEL: test_vld2_lane_p16
3426 // 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)3427 poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) {
3428 return vld2_lane_p16(a, b, 3);
3429 }
3430
3431
3432 // CHECK-LABEL: test_vld3q_u8
3433 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u8(uint8_t const * a)3434 uint8x16x3_t test_vld3q_u8(uint8_t const * a) {
3435 return vld3q_u8(a);
3436 }
3437
3438 // CHECK-LABEL: test_vld3q_u16
3439 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u16(uint16_t const * a)3440 uint16x8x3_t test_vld3q_u16(uint16_t const * a) {
3441 return vld3q_u16(a);
3442 }
3443
3444 // CHECK-LABEL: test_vld3q_u32
3445 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u32(uint32_t const * a)3446 uint32x4x3_t test_vld3q_u32(uint32_t const * a) {
3447 return vld3q_u32(a);
3448 }
3449
3450 // CHECK-LABEL: test_vld3q_s8
3451 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s8(int8_t const * a)3452 int8x16x3_t test_vld3q_s8(int8_t const * a) {
3453 return vld3q_s8(a);
3454 }
3455
3456 // CHECK-LABEL: test_vld3q_s16
3457 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s16(int16_t const * a)3458 int16x8x3_t test_vld3q_s16(int16_t const * a) {
3459 return vld3q_s16(a);
3460 }
3461
3462 // CHECK-LABEL: test_vld3q_s32
3463 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s32(int32_t const * a)3464 int32x4x3_t test_vld3q_s32(int32_t const * a) {
3465 return vld3q_s32(a);
3466 }
3467
3468 // CHECK-LABEL: test_vld3q_f16
3469 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f16(float16_t const * a)3470 float16x8x3_t test_vld3q_f16(float16_t const * a) {
3471 return vld3q_f16(a);
3472 }
3473
3474 // CHECK-LABEL: test_vld3q_f32
3475 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f32(float32_t const * a)3476 float32x4x3_t test_vld3q_f32(float32_t const * a) {
3477 return vld3q_f32(a);
3478 }
3479
3480 // CHECK-LABEL: test_vld3q_p8
3481 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p8(poly8_t const * a)3482 poly8x16x3_t test_vld3q_p8(poly8_t const * a) {
3483 return vld3q_p8(a);
3484 }
3485
3486 // CHECK-LABEL: test_vld3q_p16
3487 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p16(poly16_t const * a)3488 poly16x8x3_t test_vld3q_p16(poly16_t const * a) {
3489 return vld3q_p16(a);
3490 }
3491
3492 // CHECK-LABEL: test_vld3_u8
3493 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u8(uint8_t const * a)3494 uint8x8x3_t test_vld3_u8(uint8_t const * a) {
3495 return vld3_u8(a);
3496 }
3497
3498 // CHECK-LABEL: test_vld3_u16
3499 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u16(uint16_t const * a)3500 uint16x4x3_t test_vld3_u16(uint16_t const * a) {
3501 return vld3_u16(a);
3502 }
3503
3504 // CHECK-LABEL: test_vld3_u32
3505 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u32(uint32_t const * a)3506 uint32x2x3_t test_vld3_u32(uint32_t const * a) {
3507 return vld3_u32(a);
3508 }
3509
3510 // CHECK-LABEL: test_vld3_u64
3511 // CHECK: vld1.64
test_vld3_u64(uint64_t const * a)3512 uint64x1x3_t test_vld3_u64(uint64_t const * a) {
3513 return vld3_u64(a);
3514 }
3515
3516 // CHECK-LABEL: test_vld3_s8
3517 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s8(int8_t const * a)3518 int8x8x3_t test_vld3_s8(int8_t const * a) {
3519 return vld3_s8(a);
3520 }
3521
3522 // CHECK-LABEL: test_vld3_s16
3523 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s16(int16_t const * a)3524 int16x4x3_t test_vld3_s16(int16_t const * a) {
3525 return vld3_s16(a);
3526 }
3527
3528 // CHECK-LABEL: test_vld3_s32
3529 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s32(int32_t const * a)3530 int32x2x3_t test_vld3_s32(int32_t const * a) {
3531 return vld3_s32(a);
3532 }
3533
3534 // CHECK-LABEL: test_vld3_s64
3535 // CHECK: vld1.64
test_vld3_s64(int64_t const * a)3536 int64x1x3_t test_vld3_s64(int64_t const * a) {
3537 return vld3_s64(a);
3538 }
3539
3540 // CHECK-LABEL: test_vld3_f16
3541 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f16(float16_t const * a)3542 float16x4x3_t test_vld3_f16(float16_t const * a) {
3543 return vld3_f16(a);
3544 }
3545
3546 // CHECK-LABEL: test_vld3_f32
3547 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f32(float32_t const * a)3548 float32x2x3_t test_vld3_f32(float32_t const * a) {
3549 return vld3_f32(a);
3550 }
3551
3552 // CHECK-LABEL: test_vld3_p8
3553 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p8(poly8_t const * a)3554 poly8x8x3_t test_vld3_p8(poly8_t const * a) {
3555 return vld3_p8(a);
3556 }
3557
3558 // CHECK-LABEL: test_vld3_p16
3559 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p16(poly16_t const * a)3560 poly16x4x3_t test_vld3_p16(poly16_t const * a) {
3561 return vld3_p16(a);
3562 }
3563
3564
3565 // CHECK-LABEL: test_vld3_dup_u8
3566 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u8(uint8_t const * a)3567 uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) {
3568 return vld3_dup_u8(a);
3569 }
3570
3571 // CHECK-LABEL: test_vld3_dup_u16
3572 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u16(uint16_t const * a)3573 uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) {
3574 return vld3_dup_u16(a);
3575 }
3576
3577 // CHECK-LABEL: test_vld3_dup_u32
3578 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u32(uint32_t const * a)3579 uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) {
3580 return vld3_dup_u32(a);
3581 }
3582
3583 // CHECK-LABEL: test_vld3_dup_u64
3584 // CHECK: vld1.64
test_vld3_dup_u64(uint64_t const * a)3585 uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) {
3586 return vld3_dup_u64(a);
3587 }
3588
3589 // CHECK-LABEL: test_vld3_dup_s8
3590 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s8(int8_t const * a)3591 int8x8x3_t test_vld3_dup_s8(int8_t const * a) {
3592 return vld3_dup_s8(a);
3593 }
3594
3595 // CHECK-LABEL: test_vld3_dup_s16
3596 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s16(int16_t const * a)3597 int16x4x3_t test_vld3_dup_s16(int16_t const * a) {
3598 return vld3_dup_s16(a);
3599 }
3600
3601 // CHECK-LABEL: test_vld3_dup_s32
3602 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s32(int32_t const * a)3603 int32x2x3_t test_vld3_dup_s32(int32_t const * a) {
3604 return vld3_dup_s32(a);
3605 }
3606
3607 // CHECK-LABEL: test_vld3_dup_s64
3608 // CHECK: vld1.64
test_vld3_dup_s64(int64_t const * a)3609 int64x1x3_t test_vld3_dup_s64(int64_t const * a) {
3610 return vld3_dup_s64(a);
3611 }
3612
3613 // CHECK-LABEL: test_vld3_dup_f16
3614 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f16(float16_t const * a)3615 float16x4x3_t test_vld3_dup_f16(float16_t const * a) {
3616 return vld3_dup_f16(a);
3617 }
3618
3619 // CHECK-LABEL: test_vld3_dup_f32
3620 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f32(float32_t const * a)3621 float32x2x3_t test_vld3_dup_f32(float32_t const * a) {
3622 return vld3_dup_f32(a);
3623 }
3624
3625 // CHECK-LABEL: test_vld3_dup_p8
3626 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p8(poly8_t const * a)3627 poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) {
3628 return vld3_dup_p8(a);
3629 }
3630
3631 // CHECK-LABEL: test_vld3_dup_p16
3632 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p16(poly16_t const * a)3633 poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) {
3634 return vld3_dup_p16(a);
3635 }
3636
3637
3638 // CHECK-LABEL: test_vld3q_lane_u16
3639 // 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)3640 uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) {
3641 return vld3q_lane_u16(a, b, 7);
3642 }
3643
3644 // CHECK-LABEL: test_vld3q_lane_u32
3645 // 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)3646 uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) {
3647 return vld3q_lane_u32(a, b, 3);
3648 }
3649
3650 // CHECK-LABEL: test_vld3q_lane_s16
3651 // 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)3652 int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) {
3653 return vld3q_lane_s16(a, b, 7);
3654 }
3655
3656 // CHECK-LABEL: test_vld3q_lane_s32
3657 // 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)3658 int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) {
3659 return vld3q_lane_s32(a, b, 3);
3660 }
3661
3662 // CHECK-LABEL: test_vld3q_lane_f16
3663 // 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)3664 float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) {
3665 return vld3q_lane_f16(a, b, 7);
3666 }
3667
3668 // CHECK-LABEL: test_vld3q_lane_f32
3669 // 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)3670 float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) {
3671 return vld3q_lane_f32(a, b, 3);
3672 }
3673
3674 // CHECK-LABEL: test_vld3q_lane_p16
3675 // 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)3676 poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) {
3677 return vld3q_lane_p16(a, b, 7);
3678 }
3679
3680 // CHECK-LABEL: test_vld3_lane_u8
3681 // 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)3682 uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) {
3683 return vld3_lane_u8(a, b, 7);
3684 }
3685
3686 // CHECK-LABEL: test_vld3_lane_u16
3687 // 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)3688 uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) {
3689 return vld3_lane_u16(a, b, 3);
3690 }
3691
3692 // CHECK-LABEL: test_vld3_lane_u32
3693 // 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)3694 uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) {
3695 return vld3_lane_u32(a, b, 1);
3696 }
3697
3698 // CHECK-LABEL: test_vld3_lane_s8
3699 // 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)3700 int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) {
3701 return vld3_lane_s8(a, b, 7);
3702 }
3703
3704 // CHECK-LABEL: test_vld3_lane_s16
3705 // 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)3706 int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) {
3707 return vld3_lane_s16(a, b, 3);
3708 }
3709
3710 // CHECK-LABEL: test_vld3_lane_s32
3711 // 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)3712 int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) {
3713 return vld3_lane_s32(a, b, 1);
3714 }
3715
3716 // CHECK-LABEL: test_vld3_lane_f16
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_f16(float16_t const * a,float16x4x3_t b)3718 float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) {
3719 return vld3_lane_f16(a, b, 3);
3720 }
3721
3722 // CHECK-LABEL: test_vld3_lane_f32
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_f32(float32_t const * a,float32x2x3_t b)3724 float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) {
3725 return vld3_lane_f32(a, b, 1);
3726 }
3727
3728 // CHECK-LABEL: test_vld3_lane_p8
3729 // 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)3730 poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) {
3731 return vld3_lane_p8(a, b, 7);
3732 }
3733
3734 // CHECK-LABEL: test_vld3_lane_p16
3735 // 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)3736 poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) {
3737 return vld3_lane_p16(a, b, 3);
3738 }
3739
3740
3741 // CHECK-LABEL: test_vld4q_u8
3742 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u8(uint8_t const * a)3743 uint8x16x4_t test_vld4q_u8(uint8_t const * a) {
3744 return vld4q_u8(a);
3745 }
3746
3747 // CHECK-LABEL: test_vld4q_u16
3748 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u16(uint16_t const * a)3749 uint16x8x4_t test_vld4q_u16(uint16_t const * a) {
3750 return vld4q_u16(a);
3751 }
3752
3753 // CHECK-LABEL: test_vld4q_u32
3754 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u32(uint32_t const * a)3755 uint32x4x4_t test_vld4q_u32(uint32_t const * a) {
3756 return vld4q_u32(a);
3757 }
3758
3759 // CHECK-LABEL: test_vld4q_s8
3760 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s8(int8_t const * a)3761 int8x16x4_t test_vld4q_s8(int8_t const * a) {
3762 return vld4q_s8(a);
3763 }
3764
3765 // CHECK-LABEL: test_vld4q_s16
3766 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s16(int16_t const * a)3767 int16x8x4_t test_vld4q_s16(int16_t const * a) {
3768 return vld4q_s16(a);
3769 }
3770
3771 // CHECK-LABEL: test_vld4q_s32
3772 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s32(int32_t const * a)3773 int32x4x4_t test_vld4q_s32(int32_t const * a) {
3774 return vld4q_s32(a);
3775 }
3776
3777 // CHECK-LABEL: test_vld4q_f16
3778 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f16(float16_t const * a)3779 float16x8x4_t test_vld4q_f16(float16_t const * a) {
3780 return vld4q_f16(a);
3781 }
3782
3783 // CHECK-LABEL: test_vld4q_f32
3784 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f32(float32_t const * a)3785 float32x4x4_t test_vld4q_f32(float32_t const * a) {
3786 return vld4q_f32(a);
3787 }
3788
3789 // CHECK-LABEL: test_vld4q_p8
3790 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p8(poly8_t const * a)3791 poly8x16x4_t test_vld4q_p8(poly8_t const * a) {
3792 return vld4q_p8(a);
3793 }
3794
3795 // CHECK-LABEL: test_vld4q_p16
3796 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p16(poly16_t const * a)3797 poly16x8x4_t test_vld4q_p16(poly16_t const * a) {
3798 return vld4q_p16(a);
3799 }
3800
3801 // CHECK-LABEL: test_vld4_u8
3802 // 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)3803 uint8x8x4_t test_vld4_u8(uint8_t const * a) {
3804 return vld4_u8(a);
3805 }
3806
3807 // CHECK-LABEL: test_vld4_u16
3808 // 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)3809 uint16x4x4_t test_vld4_u16(uint16_t const * a) {
3810 return vld4_u16(a);
3811 }
3812
3813 // CHECK-LABEL: test_vld4_u32
3814 // 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)3815 uint32x2x4_t test_vld4_u32(uint32_t const * a) {
3816 return vld4_u32(a);
3817 }
3818
3819 // CHECK-LABEL: test_vld4_u64
3820 // CHECK: vld1.64
test_vld4_u64(uint64_t const * a)3821 uint64x1x4_t test_vld4_u64(uint64_t const * a) {
3822 return vld4_u64(a);
3823 }
3824
3825 // CHECK-LABEL: test_vld4_s8
3826 // 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)3827 int8x8x4_t test_vld4_s8(int8_t const * a) {
3828 return vld4_s8(a);
3829 }
3830
3831 // CHECK-LABEL: test_vld4_s16
3832 // 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)3833 int16x4x4_t test_vld4_s16(int16_t const * a) {
3834 return vld4_s16(a);
3835 }
3836
3837 // CHECK-LABEL: test_vld4_s32
3838 // 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)3839 int32x2x4_t test_vld4_s32(int32_t const * a) {
3840 return vld4_s32(a);
3841 }
3842
3843 // CHECK-LABEL: test_vld4_s64
3844 // CHECK: vld1.64
test_vld4_s64(int64_t const * a)3845 int64x1x4_t test_vld4_s64(int64_t const * a) {
3846 return vld4_s64(a);
3847 }
3848
3849 // CHECK-LABEL: test_vld4_f16
3850 // 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)3851 float16x4x4_t test_vld4_f16(float16_t const * a) {
3852 return vld4_f16(a);
3853 }
3854
3855 // CHECK-LABEL: test_vld4_f32
3856 // 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)3857 float32x2x4_t test_vld4_f32(float32_t const * a) {
3858 return vld4_f32(a);
3859 }
3860
3861 // CHECK-LABEL: test_vld4_p8
3862 // 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)3863 poly8x8x4_t test_vld4_p8(poly8_t const * a) {
3864 return vld4_p8(a);
3865 }
3866
3867 // CHECK-LABEL: test_vld4_p16
3868 // 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)3869 poly16x4x4_t test_vld4_p16(poly16_t const * a) {
3870 return vld4_p16(a);
3871 }
3872
3873
3874 // CHECK-LABEL: test_vld4_dup_u8
3875 // 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)3876 uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) {
3877 return vld4_dup_u8(a);
3878 }
3879
3880 // CHECK-LABEL: test_vld4_dup_u16
3881 // 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)3882 uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) {
3883 return vld4_dup_u16(a);
3884 }
3885
3886 // CHECK-LABEL: test_vld4_dup_u32
3887 // 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)3888 uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) {
3889 return vld4_dup_u32(a);
3890 }
3891
3892 // CHECK-LABEL: test_vld4_dup_u64
3893 // CHECK: vld1.64
test_vld4_dup_u64(uint64_t const * a)3894 uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) {
3895 return vld4_dup_u64(a);
3896 }
3897
3898 // CHECK-LABEL: test_vld4_dup_s8
3899 // 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)3900 int8x8x4_t test_vld4_dup_s8(int8_t const * a) {
3901 return vld4_dup_s8(a);
3902 }
3903
3904 // CHECK-LABEL: test_vld4_dup_s16
3905 // 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)3906 int16x4x4_t test_vld4_dup_s16(int16_t const * a) {
3907 return vld4_dup_s16(a);
3908 }
3909
3910 // CHECK-LABEL: test_vld4_dup_s32
3911 // 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)3912 int32x2x4_t test_vld4_dup_s32(int32_t const * a) {
3913 return vld4_dup_s32(a);
3914 }
3915
3916 // CHECK-LABEL: test_vld4_dup_s64
3917 // CHECK: vld1.64
test_vld4_dup_s64(int64_t const * a)3918 int64x1x4_t test_vld4_dup_s64(int64_t const * a) {
3919 return vld4_dup_s64(a);
3920 }
3921
3922 // CHECK-LABEL: test_vld4_dup_f16
3923 // 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)3924 float16x4x4_t test_vld4_dup_f16(float16_t const * a) {
3925 return vld4_dup_f16(a);
3926 }
3927
3928 // CHECK-LABEL: test_vld4_dup_f32
3929 // 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)3930 float32x2x4_t test_vld4_dup_f32(float32_t const * a) {
3931 return vld4_dup_f32(a);
3932 }
3933
3934 // CHECK-LABEL: test_vld4_dup_p8
3935 // 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)3936 poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) {
3937 return vld4_dup_p8(a);
3938 }
3939
3940 // CHECK-LABEL: test_vld4_dup_p16
3941 // 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)3942 poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) {
3943 return vld4_dup_p16(a);
3944 }
3945
3946
3947 // CHECK-LABEL: test_vld4q_lane_u16
3948 // 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)3949 uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) {
3950 return vld4q_lane_u16(a, b, 7);
3951 }
3952
3953 // CHECK-LABEL: test_vld4q_lane_u32
3954 // 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)3955 uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) {
3956 return vld4q_lane_u32(a, b, 3);
3957 }
3958
3959 // CHECK-LABEL: test_vld4q_lane_s16
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_s16(int16_t const * a,int16x8x4_t b)3961 int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) {
3962 return vld4q_lane_s16(a, b, 7);
3963 }
3964
3965 // CHECK-LABEL: test_vld4q_lane_s32
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_s32(int32_t const * a,int32x4x4_t b)3967 int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) {
3968 return vld4q_lane_s32(a, b, 3);
3969 }
3970
3971 // CHECK-LABEL: test_vld4q_lane_f16
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_f16(float16_t const * a,float16x8x4_t b)3973 float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) {
3974 return vld4q_lane_f16(a, b, 7);
3975 }
3976
3977 // CHECK-LABEL: test_vld4q_lane_f32
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_f32(float32_t const * a,float32x4x4_t b)3979 float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) {
3980 return vld4q_lane_f32(a, b, 3);
3981 }
3982
3983 // CHECK-LABEL: test_vld4q_lane_p16
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_p16(poly16_t const * a,poly16x8x4_t b)3985 poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) {
3986 return vld4q_lane_p16(a, b, 7);
3987 }
3988
3989 // CHECK-LABEL: test_vld4_lane_u8
3990 // 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)3991 uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) {
3992 return vld4_lane_u8(a, b, 7);
3993 }
3994
3995 // CHECK-LABEL: test_vld4_lane_u16
3996 // 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)3997 uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) {
3998 return vld4_lane_u16(a, b, 3);
3999 }
4000
4001 // CHECK-LABEL: test_vld4_lane_u32
4002 // 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)4003 uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) {
4004 return vld4_lane_u32(a, b, 1);
4005 }
4006
4007 // CHECK-LABEL: test_vld4_lane_s8
4008 // 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)4009 int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) {
4010 return vld4_lane_s8(a, b, 7);
4011 }
4012
4013 // CHECK-LABEL: test_vld4_lane_s16
4014 // 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)4015 int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) {
4016 return vld4_lane_s16(a, b, 3);
4017 }
4018
4019 // CHECK-LABEL: test_vld4_lane_s32
4020 // 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)4021 int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) {
4022 return vld4_lane_s32(a, b, 1);
4023 }
4024
4025 // CHECK-LABEL: test_vld4_lane_f16
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_f16(float16_t const * a,float16x4x4_t b)4027 float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) {
4028 return vld4_lane_f16(a, b, 3);
4029 }
4030
4031 // CHECK-LABEL: test_vld4_lane_f32
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_f32(float32_t const * a,float32x2x4_t b)4033 float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) {
4034 return vld4_lane_f32(a, b, 1);
4035 }
4036
4037 // CHECK-LABEL: test_vld4_lane_p8
4038 // 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)4039 poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) {
4040 return vld4_lane_p8(a, b, 7);
4041 }
4042
4043 // CHECK-LABEL: test_vld4_lane_p16
4044 // 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)4045 poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) {
4046 return vld4_lane_p16(a, b, 3);
4047 }
4048
4049
4050 // CHECK-LABEL: test_vmax_s8
4051 // CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s8(int8x8_t a,int8x8_t b)4052 int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) {
4053 return vmax_s8(a, b);
4054 }
4055
4056 // CHECK-LABEL: test_vmax_s16
4057 // CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s16(int16x4_t a,int16x4_t b)4058 int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) {
4059 return vmax_s16(a, b);
4060 }
4061
4062 // CHECK-LABEL: test_vmax_s32
4063 // CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s32(int32x2_t a,int32x2_t b)4064 int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) {
4065 return vmax_s32(a, b);
4066 }
4067
4068 // CHECK-LABEL: test_vmax_u8
4069 // CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u8(uint8x8_t a,uint8x8_t b)4070 uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) {
4071 return vmax_u8(a, b);
4072 }
4073
4074 // CHECK-LABEL: test_vmax_u16
4075 // CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u16(uint16x4_t a,uint16x4_t b)4076 uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) {
4077 return vmax_u16(a, b);
4078 }
4079
4080 // CHECK-LABEL: test_vmax_u32
4081 // CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u32(uint32x2_t a,uint32x2_t b)4082 uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) {
4083 return vmax_u32(a, b);
4084 }
4085
4086 // CHECK-LABEL: test_vmax_f32
4087 // CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_f32(float32x2_t a,float32x2_t b)4088 float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) {
4089 return vmax_f32(a, b);
4090 }
4091
4092 // CHECK-LABEL: test_vmaxq_s8
4093 // CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s8(int8x16_t a,int8x16_t b)4094 int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) {
4095 return vmaxq_s8(a, b);
4096 }
4097
4098 // CHECK-LABEL: test_vmaxq_s16
4099 // CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s16(int16x8_t a,int16x8_t b)4100 int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) {
4101 return vmaxq_s16(a, b);
4102 }
4103
4104 // CHECK-LABEL: test_vmaxq_s32
4105 // CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s32(int32x4_t a,int32x4_t b)4106 int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) {
4107 return vmaxq_s32(a, b);
4108 }
4109
4110 // CHECK-LABEL: test_vmaxq_u8
4111 // CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u8(uint8x16_t a,uint8x16_t b)4112 uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) {
4113 return vmaxq_u8(a, b);
4114 }
4115
4116 // CHECK-LABEL: test_vmaxq_u16
4117 // CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u16(uint16x8_t a,uint16x8_t b)4118 uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) {
4119 return vmaxq_u16(a, b);
4120 }
4121
4122 // CHECK-LABEL: test_vmaxq_u32
4123 // CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u32(uint32x4_t a,uint32x4_t b)4124 uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) {
4125 return vmaxq_u32(a, b);
4126 }
4127
4128 // CHECK-LABEL: test_vmaxq_f32
4129 // CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_f32(float32x4_t a,float32x4_t b)4130 float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) {
4131 return vmaxq_f32(a, b);
4132 }
4133
4134
4135 // CHECK-LABEL: test_vmin_s8
4136 // CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s8(int8x8_t a,int8x8_t b)4137 int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) {
4138 return vmin_s8(a, b);
4139 }
4140
4141 // CHECK-LABEL: test_vmin_s16
4142 // CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s16(int16x4_t a,int16x4_t b)4143 int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) {
4144 return vmin_s16(a, b);
4145 }
4146
4147 // CHECK-LABEL: test_vmin_s32
4148 // CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s32(int32x2_t a,int32x2_t b)4149 int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) {
4150 return vmin_s32(a, b);
4151 }
4152
4153 // CHECK-LABEL: test_vmin_u8
4154 // CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u8(uint8x8_t a,uint8x8_t b)4155 uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) {
4156 return vmin_u8(a, b);
4157 }
4158
4159 // CHECK-LABEL: test_vmin_u16
4160 // CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u16(uint16x4_t a,uint16x4_t b)4161 uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) {
4162 return vmin_u16(a, b);
4163 }
4164
4165 // CHECK-LABEL: test_vmin_u32
4166 // CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u32(uint32x2_t a,uint32x2_t b)4167 uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) {
4168 return vmin_u32(a, b);
4169 }
4170
4171 // CHECK-LABEL: test_vmin_f32
4172 // CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_f32(float32x2_t a,float32x2_t b)4173 float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) {
4174 return vmin_f32(a, b);
4175 }
4176
4177 // CHECK-LABEL: test_vminq_s8
4178 // CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s8(int8x16_t a,int8x16_t b)4179 int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) {
4180 return vminq_s8(a, b);
4181 }
4182
4183 // CHECK-LABEL: test_vminq_s16
4184 // CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s16(int16x8_t a,int16x8_t b)4185 int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) {
4186 return vminq_s16(a, b);
4187 }
4188
4189 // CHECK-LABEL: test_vminq_s32
4190 // CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s32(int32x4_t a,int32x4_t b)4191 int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) {
4192 return vminq_s32(a, b);
4193 }
4194
4195 // CHECK-LABEL: test_vminq_u8
4196 // CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u8(uint8x16_t a,uint8x16_t b)4197 uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) {
4198 return vminq_u8(a, b);
4199 }
4200
4201 // CHECK-LABEL: test_vminq_u16
4202 // CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u16(uint16x8_t a,uint16x8_t b)4203 uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) {
4204 return vminq_u16(a, b);
4205 }
4206
4207 // CHECK-LABEL: test_vminq_u32
4208 // CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u32(uint32x4_t a,uint32x4_t b)4209 uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) {
4210 return vminq_u32(a, b);
4211 }
4212
4213 // CHECK-LABEL: test_vminq_f32
4214 // CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_f32(float32x4_t a,float32x4_t b)4215 float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) {
4216 return vminq_f32(a, b);
4217 }
4218
4219
4220 // CHECK-LABEL: test_vmla_s8
4221 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)4222 int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4223 return vmla_s8(a, b, c);
4224 }
4225
4226 // CHECK-LABEL: test_vmla_s16
4227 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)4228 int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4229 return vmla_s16(a, b, c);
4230 }
4231
4232 // CHECK-LABEL: test_vmla_s32
4233 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)4234 int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4235 return vmla_s32(a, b, c);
4236 }
4237
4238 // CHECK-LABEL: test_vmla_f32
4239 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4240 // CHECK-SWIFT: vadd.f32
4241 // 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)4242 float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4243 return vmla_f32(a, b, c);
4244 }
4245
4246 // CHECK-LABEL: test_vmla_u8
4247 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4248 uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4249 return vmla_u8(a, b, c);
4250 }
4251
4252 // CHECK-LABEL: test_vmla_u16
4253 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4254 uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4255 return vmla_u16(a, b, c);
4256 }
4257
4258 // CHECK-LABEL: test_vmla_u32
4259 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4260 uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4261 return vmla_u32(a, b, c);
4262 }
4263
4264 // CHECK-LABEL: test_vmlaq_s8
4265 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4266 int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4267 return vmlaq_s8(a, b, c);
4268 }
4269
4270 // CHECK-LABEL: test_vmlaq_s16
4271 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4272 int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4273 return vmlaq_s16(a, b, c);
4274 }
4275
4276 // CHECK-LABEL: test_vmlaq_s32
4277 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4278 int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4279 return vmlaq_s32(a, b, c);
4280 }
4281
4282 // CHECK-LABEL: test_vmlaq_f32
4283 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4284 // CHECK-SWIFT: vadd.f32
4285 // 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)4286 float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4287 return vmlaq_f32(a, b, c);
4288 }
4289
4290 // CHECK-LABEL: test_vmlaq_u8
4291 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4292 uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4293 return vmlaq_u8(a, b, c);
4294 }
4295
4296 // CHECK-LABEL: test_vmlaq_u16
4297 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4298 uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4299 return vmlaq_u16(a, b, c);
4300 }
4301
4302 // CHECK-LABEL: test_vmlaq_u32
4303 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4304 uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4305 return vmlaq_u32(a, b, c);
4306 }
4307
4308
4309 // CHECK-LABEL: test_vmlal_s8
4310 // CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)4311 int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4312 return vmlal_s8(a, b, c);
4313 }
4314
4315 // CHECK-LABEL: test_vmlal_s16
4316 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)4317 int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4318 return vmlal_s16(a, b, c);
4319 }
4320
4321 // CHECK-LABEL: test_vmlal_s32
4322 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)4323 int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4324 return vmlal_s32(a, b, c);
4325 }
4326
4327 // CHECK-LABEL: test_vmlal_u8
4328 // CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4329 uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4330 return vmlal_u8(a, b, c);
4331 }
4332
4333 // CHECK-LABEL: test_vmlal_u16
4334 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4335 uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4336 return vmlal_u16(a, b, c);
4337 }
4338
4339 // CHECK-LABEL: test_vmlal_u32
4340 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4341 uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4342 return vmlal_u32(a, b, c);
4343 }
4344
4345
4346 // CHECK-LABEL: test_vmlal_lane_s16
4347 // 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)4348 int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4349 return vmlal_lane_s16(a, b, c, 3);
4350 }
4351
4352 // CHECK-LABEL: test_vmlal_lane_s32
4353 // 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)4354 int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4355 return vmlal_lane_s32(a, b, c, 1);
4356 }
4357
4358 // CHECK-LABEL: test_vmlal_lane_u16
4359 // 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)4360 uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4361 return vmlal_lane_u16(a, b, c, 3);
4362 }
4363
4364 // CHECK-LABEL: test_vmlal_lane_u32
4365 // 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)4366 uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4367 return vmlal_lane_u32(a, b, c, 1);
4368 }
4369
4370
4371 // CHECK-LABEL: test_vmlal_n_s16
4372 // 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)4373 int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4374 return vmlal_n_s16(a, b, c);
4375 }
4376
4377 // CHECK-LABEL: test_vmlal_n_s32
4378 // 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)4379 int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4380 return vmlal_n_s32(a, b, c);
4381 }
4382
4383 // CHECK-LABEL: test_vmlal_n_u16
4384 // 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)4385 uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4386 return vmlal_n_u16(a, b, c);
4387 }
4388
4389 // CHECK-LABEL: test_vmlal_n_u32
4390 // 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)4391 uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4392 return vmlal_n_u32(a, b, c);
4393 }
4394
4395
4396 // CHECK-LABEL: test_vmla_lane_s16
4397 // 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)4398 int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4399 return vmla_lane_s16(a, b, c, 3);
4400 }
4401
4402 // CHECK-LABEL: test_vmla_lane_s32
4403 // 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)4404 int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4405 return vmla_lane_s32(a, b, c, 1);
4406 }
4407
4408 // CHECK-LABEL: test_vmla_lane_u16
4409 // 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)4410 uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4411 return vmla_lane_u16(a, b, c, 3);
4412 }
4413
4414 // CHECK-LABEL: test_vmla_lane_u32
4415 // 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)4416 uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4417 return vmla_lane_u32(a, b, c, 1);
4418 }
4419
4420 // CHECK-LABEL: test_vmla_lane_f32
4421 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4422 // CHECK-SWIFT: vadd.f32
4423 // 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)4424 float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4425 return vmla_lane_f32(a, b, c, 1);
4426 }
4427
4428 // CHECK-LABEL: test_vmlaq_lane_s16
4429 // 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)4430 int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4431 return vmlaq_lane_s16(a, b, c, 3);
4432 }
4433
4434 // CHECK-LABEL: test_vmlaq_lane_s32
4435 // 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)4436 int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4437 return vmlaq_lane_s32(a, b, c, 1);
4438 }
4439
4440 // CHECK-LABEL: test_vmlaq_lane_u16
4441 // 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)4442 uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4443 return vmlaq_lane_u16(a, b, c, 3);
4444 }
4445
4446 // CHECK-LABEL: test_vmlaq_lane_u32
4447 // 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)4448 uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4449 return vmlaq_lane_u32(a, b, c, 1);
4450 }
4451
4452 // CHECK-LABEL: test_vmlaq_lane_f32
4453 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4454 // CHECK-SWIFT: vadd.f32
4455 // 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)4456 float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4457 return vmlaq_lane_f32(a, b, c, 1);
4458 }
4459
4460
4461 // CHECK-LABEL: test_vmla_n_s16
4462 // 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)4463 int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4464 return vmla_n_s16(a, b, c);
4465 }
4466
4467 // CHECK-LABEL: test_vmla_n_s32
4468 // 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)4469 int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4470 return vmla_n_s32(a, b, c);
4471 }
4472
4473 // CHECK-LABEL: test_vmla_n_u16
4474 // 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)4475 uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4476 return vmla_n_u16(a, b, c);
4477 }
4478
4479 // CHECK-LABEL: test_vmla_n_u32
4480 // 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)4481 uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4482 return vmla_n_u32(a, b, c);
4483 }
4484
4485 // CHECK-LABEL: test_vmla_n_f32
4486 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4487 // CHECK-SWIFT: vadd.f32
4488 // 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)4489 float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4490 return vmla_n_f32(a, b, c);
4491 }
4492
4493 // CHECK-LABEL: test_vmlaq_n_s16
4494 // 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)4495 int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4496 return vmlaq_n_s16(a, b, c);
4497 }
4498
4499 // CHECK-LABEL: test_vmlaq_n_s32
4500 // 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)4501 int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4502 return vmlaq_n_s32(a, b, c);
4503 }
4504
4505 // CHECK-LABEL: test_vmlaq_n_u16
4506 // 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)4507 uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4508 return vmlaq_n_u16(a, b, c);
4509 }
4510
4511 // CHECK-LABEL: test_vmlaq_n_u32
4512 // 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)4513 uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4514 return vmlaq_n_u32(a, b, c);
4515 }
4516
4517 // CHECK-LABEL: test_vmlaq_n_f32
4518 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4519 // CHECK-SWIFT: vadd.f32
4520 // CHECK-A57: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]},
4521 // 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)4522 float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4523 return vmlaq_n_f32(a, b, c);
4524 }
4525
4526
4527 // CHECK-LABEL: test_vmls_s8
4528 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)4529 int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4530 return vmls_s8(a, b, c);
4531 }
4532
4533 // CHECK-LABEL: test_vmls_s16
4534 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)4535 int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4536 return vmls_s16(a, b, c);
4537 }
4538
4539 // CHECK-LABEL: test_vmls_s32
4540 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)4541 int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4542 return vmls_s32(a, b, c);
4543 }
4544
4545 // CHECK-LABEL: test_vmls_f32
4546 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4547 // CHECK-SWIFT: vsub.f32
4548 // 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)4549 float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4550 return vmls_f32(a, b, c);
4551 }
4552
4553 // CHECK-LABEL: test_vmls_u8
4554 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4555 uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4556 return vmls_u8(a, b, c);
4557 }
4558
4559 // CHECK-LABEL: test_vmls_u16
4560 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4561 uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4562 return vmls_u16(a, b, c);
4563 }
4564
4565 // CHECK-LABEL: test_vmls_u32
4566 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4567 uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4568 return vmls_u32(a, b, c);
4569 }
4570
4571 // CHECK-LABEL: test_vmlsq_s8
4572 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4573 int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4574 return vmlsq_s8(a, b, c);
4575 }
4576
4577 // CHECK-LABEL: test_vmlsq_s16
4578 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4579 int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4580 return vmlsq_s16(a, b, c);
4581 }
4582
4583 // CHECK-LABEL: test_vmlsq_s32
4584 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4585 int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4586 return vmlsq_s32(a, b, c);
4587 }
4588
4589 // CHECK-LABEL: test_vmlsq_f32
4590 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4591 // CHECK-SWIFT: vsub.f32
4592 // 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)4593 float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4594 return vmlsq_f32(a, b, c);
4595 }
4596
4597 // CHECK-LABEL: test_vmlsq_u8
4598 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4599 uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4600 return vmlsq_u8(a, b, c);
4601 }
4602
4603 // CHECK-LABEL: test_vmlsq_u16
4604 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4605 uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4606 return vmlsq_u16(a, b, c);
4607 }
4608
4609 // CHECK-LABEL: test_vmlsq_u32
4610 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4611 uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4612 return vmlsq_u32(a, b, c);
4613 }
4614
4615
4616 // CHECK-LABEL: test_vmlsl_s8
4617 // CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)4618 int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4619 return vmlsl_s8(a, b, c);
4620 }
4621
4622 // CHECK-LABEL: test_vmlsl_s16
4623 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)4624 int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4625 return vmlsl_s16(a, b, c);
4626 }
4627
4628 // CHECK-LABEL: test_vmlsl_s32
4629 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)4630 int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4631 return vmlsl_s32(a, b, c);
4632 }
4633
4634 // CHECK-LABEL: test_vmlsl_u8
4635 // CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4636 uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4637 return vmlsl_u8(a, b, c);
4638 }
4639
4640 // CHECK-LABEL: test_vmlsl_u16
4641 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4642 uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4643 return vmlsl_u16(a, b, c);
4644 }
4645
4646 // CHECK-LABEL: test_vmlsl_u32
4647 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4648 uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4649 return vmlsl_u32(a, b, c);
4650 }
4651
4652
4653 // CHECK-LABEL: test_vmlsl_lane_s16
4654 // 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)4655 int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4656 return vmlsl_lane_s16(a, b, c, 3);
4657 }
4658
4659 // CHECK-LABEL: test_vmlsl_lane_s32
4660 // 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)4661 int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4662 return vmlsl_lane_s32(a, b, c, 1);
4663 }
4664
4665 // CHECK-LABEL: test_vmlsl_lane_u16
4666 // 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)4667 uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4668 return vmlsl_lane_u16(a, b, c, 3);
4669 }
4670
4671 // CHECK-LABEL: test_vmlsl_lane_u32
4672 // 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)4673 uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4674 return vmlsl_lane_u32(a, b, c, 1);
4675 }
4676
4677
4678 // CHECK-LABEL: test_vmlsl_n_s16
4679 // 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)4680 int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4681 return vmlsl_n_s16(a, b, c);
4682 }
4683
4684 // CHECK-LABEL: test_vmlsl_n_s32
4685 // 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)4686 int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4687 return vmlsl_n_s32(a, b, c);
4688 }
4689
4690 // CHECK-LABEL: test_vmlsl_n_u16
4691 // 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)4692 uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4693 return vmlsl_n_u16(a, b, c);
4694 }
4695
4696 // CHECK-LABEL: test_vmlsl_n_u32
4697 // 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)4698 uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4699 return vmlsl_n_u32(a, b, c);
4700 }
4701
4702
4703 // CHECK-LABEL: test_vmls_lane_s16
4704 // 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)4705 int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4706 return vmls_lane_s16(a, b, c, 3);
4707 }
4708
4709 // CHECK-LABEL: test_vmls_lane_s32
4710 // 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)4711 int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4712 return vmls_lane_s32(a, b, c, 1);
4713 }
4714
4715 // CHECK-LABEL: test_vmls_lane_u16
4716 // 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)4717 uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4718 return vmls_lane_u16(a, b, c, 3);
4719 }
4720
4721 // CHECK-LABEL: test_vmls_lane_u32
4722 // 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)4723 uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4724 return vmls_lane_u32(a, b, c, 1);
4725 }
4726
4727 // CHECK-LABEL: test_vmls_lane_f32
4728 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4729 // CHECK-SWIFT: vsub.f32
4730 // 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)4731 float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4732 return vmls_lane_f32(a, b, c, 1);
4733 }
4734
4735 // CHECK-LABEL: test_vmlsq_lane_s16
4736 // 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)4737 int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4738 return vmlsq_lane_s16(a, b, c, 3);
4739 }
4740
4741 // CHECK-LABEL: test_vmlsq_lane_s32
4742 // 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)4743 int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4744 return vmlsq_lane_s32(a, b, c, 1);
4745 }
4746
4747 // CHECK-LABEL: test_vmlsq_lane_u16
4748 // 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)4749 uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4750 return vmlsq_lane_u16(a, b, c, 3);
4751 }
4752
4753 // CHECK-LABEL: test_vmlsq_lane_u32
4754 // 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)4755 uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4756 return vmlsq_lane_u32(a, b, c, 1);
4757 }
4758
4759 // CHECK-LABEL: test_vmlsq_lane_f32
4760 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4761 // CHECK-SWIFT: vsub.f32
4762 // 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)4763 float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4764 return vmlsq_lane_f32(a, b, c, 1);
4765 }
4766
4767
4768 // CHECK-LABEL: test_vmls_n_s16
4769 // 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)4770 int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4771 return vmls_n_s16(a, b, c);
4772 }
4773
4774 // CHECK-LABEL: test_vmls_n_s32
4775 // 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)4776 int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4777 return vmls_n_s32(a, b, c);
4778 }
4779
4780 // CHECK-LABEL: test_vmls_n_u16
4781 // 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)4782 uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4783 return vmls_n_u16(a, b, c);
4784 }
4785
4786 // CHECK-LABEL: test_vmls_n_u32
4787 // 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)4788 uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4789 return vmls_n_u32(a, b, c);
4790 }
4791
4792 // CHECK-LABEL: test_vmls_n_f32
4793 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4794 // CHECK-SWIFT: vsub.f32
4795 // 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)4796 float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4797 return vmls_n_f32(a, b, c);
4798 }
4799
4800 // CHECK-LABEL: test_vmlsq_n_s16
4801 // 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)4802 int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4803 return vmlsq_n_s16(a, b, c);
4804 }
4805
4806 // CHECK-LABEL: test_vmlsq_n_s32
4807 // 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)4808 int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4809 return vmlsq_n_s32(a, b, c);
4810 }
4811
4812 // CHECK-LABEL: test_vmlsq_n_u16
4813 // 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)4814 uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4815 return vmlsq_n_u16(a, b, c);
4816 }
4817
4818 // CHECK-LABEL: test_vmlsq_n_u32
4819 // 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)4820 uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4821 return vmlsq_n_u32(a, b, c);
4822 }
4823
4824 // CHECK-LABEL: test_vmlsq_n_f32
4825 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4826 // CHECK-SWIFT: vsub.f32
4827 // 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)4828 float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4829 return vmlsq_n_f32(a, b, c);
4830 }
4831
4832
4833 // CHECK-LABEL: test_vmovl_s8
4834 // CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s8(int8x8_t a)4835 int16x8_t test_vmovl_s8(int8x8_t a) {
4836 return vmovl_s8(a);
4837 }
4838
4839 // CHECK-LABEL: test_vmovl_s16
4840 // CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s16(int16x4_t a)4841 int32x4_t test_vmovl_s16(int16x4_t a) {
4842 return vmovl_s16(a);
4843 }
4844
4845 // CHECK-LABEL: test_vmovl_s32
4846 // CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s32(int32x2_t a)4847 int64x2_t test_vmovl_s32(int32x2_t a) {
4848 return vmovl_s32(a);
4849 }
4850
4851 // CHECK-LABEL: test_vmovl_u8
4852 // CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u8(uint8x8_t a)4853 uint16x8_t test_vmovl_u8(uint8x8_t a) {
4854 return vmovl_u8(a);
4855 }
4856
4857 // CHECK-LABEL: test_vmovl_u16
4858 // CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u16(uint16x4_t a)4859 uint32x4_t test_vmovl_u16(uint16x4_t a) {
4860 return vmovl_u16(a);
4861 }
4862
4863 // CHECK-LABEL: test_vmovl_u32
4864 // CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u32(uint32x2_t a)4865 uint64x2_t test_vmovl_u32(uint32x2_t a) {
4866 return vmovl_u32(a);
4867 }
4868
4869
4870 // CHECK-LABEL: test_vmovn_s16
4871 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s16(int16x8_t a)4872 int8x8_t test_vmovn_s16(int16x8_t a) {
4873 return vmovn_s16(a);
4874 }
4875
4876 // CHECK-LABEL: test_vmovn_s32
4877 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s32(int32x4_t a)4878 int16x4_t test_vmovn_s32(int32x4_t a) {
4879 return vmovn_s32(a);
4880 }
4881
4882 // CHECK-LABEL: test_vmovn_s64
4883 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s64(int64x2_t a)4884 int32x2_t test_vmovn_s64(int64x2_t a) {
4885 return vmovn_s64(a);
4886 }
4887
4888 // CHECK-LABEL: test_vmovn_u16
4889 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u16(uint16x8_t a)4890 uint8x8_t test_vmovn_u16(uint16x8_t a) {
4891 return vmovn_u16(a);
4892 }
4893
4894 // CHECK-LABEL: test_vmovn_u32
4895 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u32(uint32x4_t a)4896 uint16x4_t test_vmovn_u32(uint32x4_t a) {
4897 return vmovn_u32(a);
4898 }
4899
4900 // CHECK-LABEL: test_vmovn_u64
4901 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u64(uint64x2_t a)4902 uint32x2_t test_vmovn_u64(uint64x2_t a) {
4903 return vmovn_u64(a);
4904 }
4905
4906
4907 // CHECK-LABEL: test_vmov_n_u8
4908 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u8(uint8_t a)4909 uint8x8_t test_vmov_n_u8(uint8_t a) {
4910 return vmov_n_u8(a);
4911 }
4912
4913 // CHECK-LABEL: test_vmov_n_u16
4914 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u16(uint16_t a)4915 uint16x4_t test_vmov_n_u16(uint16_t a) {
4916 return vmov_n_u16(a);
4917 }
4918
4919 // CHECK-LABEL: test_vmov_n_u32
4920 // CHECK: mov {{r[0-9]+}}
test_vmov_n_u32(uint32_t a)4921 uint32x2_t test_vmov_n_u32(uint32_t a) {
4922 return vmov_n_u32(a);
4923 }
4924
4925 // CHECK-LABEL: test_vmov_n_s8
4926 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s8(int8_t a)4927 int8x8_t test_vmov_n_s8(int8_t a) {
4928 return vmov_n_s8(a);
4929 }
4930
4931 // CHECK-LABEL: test_vmov_n_s16
4932 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s16(int16_t a)4933 int16x4_t test_vmov_n_s16(int16_t a) {
4934 return vmov_n_s16(a);
4935 }
4936
4937 // CHECK-LABEL: test_vmov_n_s32
4938 // CHECK: mov {{r[0-9]+}}
test_vmov_n_s32(int32_t a)4939 int32x2_t test_vmov_n_s32(int32_t a) {
4940 return vmov_n_s32(a);
4941 }
4942
4943 // CHECK-LABEL: test_vmov_n_p8
4944 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p8(poly8_t a)4945 poly8x8_t test_vmov_n_p8(poly8_t a) {
4946 return vmov_n_p8(a);
4947 }
4948
4949 // CHECK-LABEL: test_vmov_n_p16
4950 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p16(poly16_t a)4951 poly16x4_t test_vmov_n_p16(poly16_t a) {
4952 return vmov_n_p16(a);
4953 }
4954
4955 // CHECK-LABEL: test_vmov_n_f16
4956 // CHECK: vld1.16 {{{d[0-9]+\[\]}}}
test_vmov_n_f16(float16_t * a)4957 float16x4_t test_vmov_n_f16(float16_t *a) {
4958 return vmov_n_f16(*a);
4959 }
4960
4961 // CHECK-LABEL: test_vmov_n_f32
4962 // CHECK: mov {{r[0-9]+}}
test_vmov_n_f32(float32_t a)4963 float32x2_t test_vmov_n_f32(float32_t a) {
4964 return vmov_n_f32(a);
4965 }
4966
4967 // CHECK-LABEL: test_vmovq_n_u8
4968 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u8(uint8_t a)4969 uint8x16_t test_vmovq_n_u8(uint8_t a) {
4970 return vmovq_n_u8(a);
4971 }
4972
4973 // CHECK-LABEL: test_vmovq_n_u16
4974 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u16(uint16_t a)4975 uint16x8_t test_vmovq_n_u16(uint16_t a) {
4976 return vmovq_n_u16(a);
4977 }
4978
4979 // CHECK-LABEL: test_vmovq_n_u32
4980 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u32(uint32_t a)4981 uint32x4_t test_vmovq_n_u32(uint32_t a) {
4982 return vmovq_n_u32(a);
4983 }
4984
4985 // CHECK-LABEL: test_vmovq_n_s8
4986 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s8(int8_t a)4987 int8x16_t test_vmovq_n_s8(int8_t a) {
4988 return vmovq_n_s8(a);
4989 }
4990
4991 // CHECK-LABEL: test_vmovq_n_s16
4992 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s16(int16_t a)4993 int16x8_t test_vmovq_n_s16(int16_t a) {
4994 return vmovq_n_s16(a);
4995 }
4996
4997 // CHECK-LABEL: test_vmovq_n_s32
4998 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s32(int32_t a)4999 int32x4_t test_vmovq_n_s32(int32_t a) {
5000 return vmovq_n_s32(a);
5001 }
5002
5003 // CHECK-LABEL: test_vmovq_n_p8
5004 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p8(poly8_t a)5005 poly8x16_t test_vmovq_n_p8(poly8_t a) {
5006 return vmovq_n_p8(a);
5007 }
5008
5009 // CHECK-LABEL: test_vmovq_n_p16
5010 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p16(poly16_t a)5011 poly16x8_t test_vmovq_n_p16(poly16_t a) {
5012 return vmovq_n_p16(a);
5013 }
5014
5015 // CHECK-LABEL: test_vmovq_n_f16
5016 // CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}}
test_vmovq_n_f16(float16_t * a)5017 float16x8_t test_vmovq_n_f16(float16_t *a) {
5018 return vmovq_n_f16(*a);
5019 }
5020
5021 // CHECK-LABEL: test_vmovq_n_f32
5022 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_f32(float32_t a)5023 float32x4_t test_vmovq_n_f32(float32_t a) {
5024 return vmovq_n_f32(a);
5025 }
5026
5027 // CHECK-LABEL: test_vmov_n_s64
5028 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5029 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_s64(int64_t a)5030 int64x1_t test_vmov_n_s64(int64_t a) {
5031 int64x1_t tmp = vmov_n_s64(a);
5032 return vadd_s64(tmp, tmp);
5033 }
5034
5035 // CHECK-LABEL: test_vmov_n_u64
5036 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5037 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_u64(uint64_t a)5038 uint64x1_t test_vmov_n_u64(uint64_t a) {
5039 uint64x1_t tmp = vmov_n_u64(a);
5040 return vadd_u64(tmp, tmp);
5041 }
5042
5043 // CHECK-LABEL: test_vmovq_n_s64
5044 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s64(int64_t a)5045 int64x2_t test_vmovq_n_s64(int64_t a) {
5046 return vmovq_n_s64(a);
5047 }
5048
5049 // CHECK-LABEL: test_vmovq_n_u64
5050 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u64(uint64_t a)5051 uint64x2_t test_vmovq_n_u64(uint64_t a) {
5052 return vmovq_n_u64(a);
5053 }
5054
5055
5056 // CHECK-LABEL: test_vmul_s8
5057 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s8(int8x8_t a,int8x8_t b)5058 int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) {
5059 return vmul_s8(a, b);
5060 }
5061
5062 // CHECK-LABEL: test_vmul_s16
5063 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s16(int16x4_t a,int16x4_t b)5064 int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) {
5065 return vmul_s16(a, b);
5066 }
5067
5068 // CHECK-LABEL: test_vmul_s32
5069 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s32(int32x2_t a,int32x2_t b)5070 int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) {
5071 return vmul_s32(a, b);
5072 }
5073
5074 // CHECK-LABEL: test_vmul_f32
5075 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_f32(float32x2_t a,float32x2_t b)5076 float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) {
5077 return vmul_f32(a, b);
5078 }
5079
5080 // CHECK-LABEL: test_vmul_u8
5081 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u8(uint8x8_t a,uint8x8_t b)5082 uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) {
5083 return vmul_u8(a, b);
5084 }
5085
5086 // CHECK-LABEL: test_vmul_u16
5087 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u16(uint16x4_t a,uint16x4_t b)5088 uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) {
5089 return vmul_u16(a, b);
5090 }
5091
5092 // CHECK-LABEL: test_vmul_u32
5093 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u32(uint32x2_t a,uint32x2_t b)5094 uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) {
5095 return vmul_u32(a, b);
5096 }
5097
5098 // CHECK-LABEL: test_vmulq_s8
5099 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s8(int8x16_t a,int8x16_t b)5100 int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) {
5101 return vmulq_s8(a, b);
5102 }
5103
5104 // CHECK-LABEL: test_vmulq_s16
5105 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s16(int16x8_t a,int16x8_t b)5106 int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) {
5107 return vmulq_s16(a, b);
5108 }
5109
5110 // CHECK-LABEL: test_vmulq_s32
5111 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s32(int32x4_t a,int32x4_t b)5112 int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) {
5113 return vmulq_s32(a, b);
5114 }
5115
5116 // CHECK-LABEL: test_vmulq_f32
5117 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_f32(float32x4_t a,float32x4_t b)5118 float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) {
5119 return vmulq_f32(a, b);
5120 }
5121
5122 // CHECK-LABEL: test_vmulq_u8
5123 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u8(uint8x16_t a,uint8x16_t b)5124 uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) {
5125 return vmulq_u8(a, b);
5126 }
5127
5128 // CHECK-LABEL: test_vmulq_u16
5129 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u16(uint16x8_t a,uint16x8_t b)5130 uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) {
5131 return vmulq_u16(a, b);
5132 }
5133
5134 // CHECK-LABEL: test_vmulq_u32
5135 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u32(uint32x4_t a,uint32x4_t b)5136 uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) {
5137 return vmulq_u32(a, b);
5138 }
5139
5140
5141 // CHECK-LABEL: test_vmull_s8
5142 // CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s8(int8x8_t a,int8x8_t b)5143 int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) {
5144 return vmull_s8(a, b);
5145 }
5146
5147 // CHECK-LABEL: test_vmull_s16
5148 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s16(int16x4_t a,int16x4_t b)5149 int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) {
5150 return vmull_s16(a, b);
5151 }
5152
5153 // CHECK-LABEL: test_vmull_s32
5154 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s32(int32x2_t a,int32x2_t b)5155 int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) {
5156 return vmull_s32(a, b);
5157 }
5158
5159 // CHECK-LABEL: test_vmull_u8
5160 // CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u8(uint8x8_t a,uint8x8_t b)5161 uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) {
5162 return vmull_u8(a, b);
5163 }
5164
5165 // CHECK-LABEL: test_vmull_u16
5166 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u16(uint16x4_t a,uint16x4_t b)5167 uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) {
5168 return vmull_u16(a, b);
5169 }
5170
5171 // CHECK-LABEL: test_vmull_u32
5172 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u32(uint32x2_t a,uint32x2_t b)5173 uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) {
5174 return vmull_u32(a, b);
5175 }
5176
5177 // CHECK-LABEL: test_vmull_p8
5178 // CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_p8(poly8x8_t a,poly8x8_t b)5179 poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) {
5180 return vmull_p8(a, b);
5181 }
5182
5183
5184 // CHECK-LABEL: test_vmull_lane_s16
5185 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s16(int16x4_t a,int16x4_t b)5186 int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) {
5187 return vmull_lane_s16(a, b, 3);
5188 }
5189
5190 // CHECK-LABEL: test_vmull_lane_s32
5191 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s32(int32x2_t a,int32x2_t b)5192 int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) {
5193 return vmull_lane_s32(a, b, 1);
5194 }
5195
5196 // CHECK-LABEL: test_vmull_lane_u16
5197 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u16(uint16x4_t a,uint16x4_t b)5198 uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) {
5199 return vmull_lane_u16(a, b, 3);
5200 }
5201
5202 // CHECK-LABEL: test_vmull_lane_u32
5203 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u32(uint32x2_t a,uint32x2_t b)5204 uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) {
5205 return vmull_lane_u32(a, b, 1);
5206 }
5207
5208
5209 // CHECK-LABEL: test_vmull_n_s16
5210 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s16(int16x4_t a,int16_t b)5211 int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
5212 return vmull_n_s16(a, b);
5213 }
5214
5215 // CHECK-LABEL: test_vmull_n_s32
5216 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s32(int32x2_t a,int32_t b)5217 int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
5218 return vmull_n_s32(a, b);
5219 }
5220
5221 // CHECK-LABEL: test_vmull_n_u16
5222 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u16(uint16x4_t a,uint16_t b)5223 uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
5224 return vmull_n_u16(a, b);
5225 }
5226
5227 // CHECK-LABEL: test_vmull_n_u32
5228 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u32(uint32x2_t a,uint32_t b)5229 uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
5230 return vmull_n_u32(a, b);
5231 }
5232
5233
5234 // CHECK-LABEL: test_vmul_p8
5235 // CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_p8(poly8x8_t a,poly8x8_t b)5236 poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) {
5237 return vmul_p8(a, b);
5238 }
5239
5240 // CHECK-LABEL: test_vmulq_p8
5241 // CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_p8(poly8x16_t a,poly8x16_t b)5242 poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) {
5243 return vmulq_p8(a, b);
5244 }
5245
5246
5247 // CHECK-LABEL: test_vmul_lane_s16
5248 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s16(int16x4_t a,int16x4_t b)5249 int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) {
5250 return vmul_lane_s16(a, b, 3);
5251 }
5252
5253 // CHECK-LABEL: test_vmul_lane_s32
5254 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s32(int32x2_t a,int32x2_t b)5255 int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) {
5256 return vmul_lane_s32(a, b, 1);
5257 }
5258
5259 // CHECK-LABEL: test_vmul_lane_f32
5260 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_f32(float32x2_t a,float32x2_t b)5261 float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) {
5262 return vmul_lane_f32(a, b, 1);
5263 }
5264
5265 // CHECK-LABEL: test_vmul_lane_u16
5266 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u16(uint16x4_t a,uint16x4_t b)5267 uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) {
5268 return vmul_lane_u16(a, b, 3);
5269 }
5270
5271 // CHECK-LABEL: test_vmul_lane_u32
5272 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u32(uint32x2_t a,uint32x2_t b)5273 uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) {
5274 return vmul_lane_u32(a, b, 1);
5275 }
5276
5277 // CHECK-LABEL: test_vmulq_lane_s16
5278 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s16(int16x8_t a,int16x4_t b)5279 int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) {
5280 return vmulq_lane_s16(a, b, 3);
5281 }
5282
5283 // CHECK-LABEL: test_vmulq_lane_s32
5284 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s32(int32x4_t a,int32x2_t b)5285 int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) {
5286 return vmulq_lane_s32(a, b, 1);
5287 }
5288
5289 // CHECK-LABEL: test_vmulq_lane_f32
5290 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_f32(float32x4_t a,float32x2_t b)5291 float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) {
5292 return vmulq_lane_f32(a, b, 1);
5293 }
5294
5295 // CHECK-LABEL: test_vmulq_lane_u16
5296 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u16(uint16x8_t a,uint16x4_t b)5297 uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) {
5298 return vmulq_lane_u16(a, b, 3);
5299 }
5300
5301 // CHECK-LABEL: test_vmulq_lane_u32
5302 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u32(uint32x4_t a,uint32x2_t b)5303 uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) {
5304 return vmulq_lane_u32(a, b, 1);
5305 }
5306
5307
5308 // CHECK-LABEL: test_vmul_n_s16
5309 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s16(int16x4_t a,int16_t b)5310 int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
5311 return vmul_n_s16(a, b);
5312 }
5313
5314 // CHECK-LABEL: test_vmul_n_s32
5315 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s32(int32x2_t a,int32_t b)5316 int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
5317 return vmul_n_s32(a, b);
5318 }
5319
5320 // CHECK-LABEL: test_vmul_n_f32
5321 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_f32(float32x2_t a,float32_t b)5322 float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
5323 return vmul_n_f32(a, b);
5324 }
5325
5326 // CHECK-LABEL: test_vmul_n_u16
5327 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u16(uint16x4_t a,uint16_t b)5328 uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
5329 return vmul_n_u16(a, b);
5330 }
5331
5332 // CHECK-LABEL: test_vmul_n_u32
5333 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u32(uint32x2_t a,uint32_t b)5334 uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
5335 return vmul_n_u32(a, b);
5336 }
5337
5338 // CHECK-LABEL: test_vmulq_n_s16
5339 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s16(int16x8_t a,int16_t b)5340 int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
5341 return vmulq_n_s16(a, b);
5342 }
5343
5344 // CHECK-LABEL: test_vmulq_n_s32
5345 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s32(int32x4_t a,int32_t b)5346 int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
5347 return vmulq_n_s32(a, b);
5348 }
5349
5350 // CHECK-LABEL: test_vmulq_n_f32
5351 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
test_vmulq_n_f32(float32x4_t a,float32_t b)5352 float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
5353 return vmulq_n_f32(a, b);
5354 }
5355
5356 // CHECK-LABEL: test_vmulq_n_u16
5357 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u16(uint16x8_t a,uint16_t b)5358 uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
5359 return vmulq_n_u16(a, b);
5360 }
5361
5362 // CHECK-LABEL: test_vmulq_n_u32
5363 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u32(uint32x4_t a,uint32_t b)5364 uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
5365 return vmulq_n_u32(a, b);
5366 }
5367
5368
5369 // CHECK-LABEL: test_vmvn_s8
5370 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s8(int8x8_t a)5371 int8x8_t test_vmvn_s8(int8x8_t a) {
5372 return vmvn_s8(a);
5373 }
5374
5375 // CHECK-LABEL: test_vmvn_s16
5376 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s16(int16x4_t a)5377 int16x4_t test_vmvn_s16(int16x4_t a) {
5378 return vmvn_s16(a);
5379 }
5380
5381 // CHECK-LABEL: test_vmvn_s32
5382 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s32(int32x2_t a)5383 int32x2_t test_vmvn_s32(int32x2_t a) {
5384 return vmvn_s32(a);
5385 }
5386
5387 // CHECK-LABEL: test_vmvn_u8
5388 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u8(uint8x8_t a)5389 uint8x8_t test_vmvn_u8(uint8x8_t a) {
5390 return vmvn_u8(a);
5391 }
5392
5393 // CHECK-LABEL: test_vmvn_u16
5394 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u16(uint16x4_t a)5395 uint16x4_t test_vmvn_u16(uint16x4_t a) {
5396 return vmvn_u16(a);
5397 }
5398
5399 // CHECK-LABEL: test_vmvn_u32
5400 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u32(uint32x2_t a)5401 uint32x2_t test_vmvn_u32(uint32x2_t a) {
5402 return vmvn_u32(a);
5403 }
5404
5405 // CHECK-LABEL: test_vmvn_p8
5406 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_p8(poly8x8_t a)5407 poly8x8_t test_vmvn_p8(poly8x8_t a) {
5408 return vmvn_p8(a);
5409 }
5410
5411 // CHECK-LABEL: test_vmvnq_s8
5412 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s8(int8x16_t a)5413 int8x16_t test_vmvnq_s8(int8x16_t a) {
5414 return vmvnq_s8(a);
5415 }
5416
5417 // CHECK-LABEL: test_vmvnq_s16
5418 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s16(int16x8_t a)5419 int16x8_t test_vmvnq_s16(int16x8_t a) {
5420 return vmvnq_s16(a);
5421 }
5422
5423 // CHECK-LABEL: test_vmvnq_s32
5424 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s32(int32x4_t a)5425 int32x4_t test_vmvnq_s32(int32x4_t a) {
5426 return vmvnq_s32(a);
5427 }
5428
5429 // CHECK-LABEL: test_vmvnq_u8
5430 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u8(uint8x16_t a)5431 uint8x16_t test_vmvnq_u8(uint8x16_t a) {
5432 return vmvnq_u8(a);
5433 }
5434
5435 // CHECK-LABEL: test_vmvnq_u16
5436 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u16(uint16x8_t a)5437 uint16x8_t test_vmvnq_u16(uint16x8_t a) {
5438 return vmvnq_u16(a);
5439 }
5440
5441 // CHECK-LABEL: test_vmvnq_u32
5442 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u32(uint32x4_t a)5443 uint32x4_t test_vmvnq_u32(uint32x4_t a) {
5444 return vmvnq_u32(a);
5445 }
5446
5447 // CHECK-LABEL: test_vmvnq_p8
5448 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_p8(poly8x16_t a)5449 poly8x16_t test_vmvnq_p8(poly8x16_t a) {
5450 return vmvnq_p8(a);
5451 }
5452
5453
5454 // CHECK-LABEL: test_vneg_s8
5455 // CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s8(int8x8_t a)5456 int8x8_t test_vneg_s8(int8x8_t a) {
5457 return vneg_s8(a);
5458 }
5459
5460 // CHECK-LABEL: test_vneg_s16
5461 // CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s16(int16x4_t a)5462 int16x4_t test_vneg_s16(int16x4_t a) {
5463 return vneg_s16(a);
5464 }
5465
5466 // CHECK-LABEL: test_vneg_s32
5467 // CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s32(int32x2_t a)5468 int32x2_t test_vneg_s32(int32x2_t a) {
5469 return vneg_s32(a);
5470 }
5471
5472 // CHECK-LABEL: test_vneg_f32
5473 // CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_f32(float32x2_t a)5474 float32x2_t test_vneg_f32(float32x2_t a) {
5475 return vneg_f32(a);
5476 }
5477
5478 // CHECK-LABEL: test_vnegq_s8
5479 // CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s8(int8x16_t a)5480 int8x16_t test_vnegq_s8(int8x16_t a) {
5481 return vnegq_s8(a);
5482 }
5483
5484 // CHECK-LABEL: test_vnegq_s16
5485 // CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s16(int16x8_t a)5486 int16x8_t test_vnegq_s16(int16x8_t a) {
5487 return vnegq_s16(a);
5488 }
5489
5490 // CHECK-LABEL: test_vnegq_s32
5491 // CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s32(int32x4_t a)5492 int32x4_t test_vnegq_s32(int32x4_t a) {
5493 return vnegq_s32(a);
5494 }
5495
5496 // CHECK-LABEL: test_vnegq_f32
5497 // CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_f32(float32x4_t a)5498 float32x4_t test_vnegq_f32(float32x4_t a) {
5499 return vnegq_f32(a);
5500 }
5501
5502
5503 // CHECK-LABEL: test_vorn_s8
5504 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s8(int8x8_t a,int8x8_t b)5505 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
5506 return vorn_s8(a, b);
5507 }
5508
5509 // CHECK-LABEL: test_vorn_s16
5510 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s16(int16x4_t a,int16x4_t b)5511 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
5512 return vorn_s16(a, b);
5513 }
5514
5515 // CHECK-LABEL: test_vorn_s32
5516 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s32(int32x2_t a,int32x2_t b)5517 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
5518 return vorn_s32(a, b);
5519 }
5520
5521 // CHECK-LABEL: test_vorn_s64
5522 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s64(int64x1_t a,int64x1_t b)5523 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
5524 return vorn_s64(a, b);
5525 }
5526
5527 // CHECK-LABEL: test_vorn_u8
5528 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u8(uint8x8_t a,uint8x8_t b)5529 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
5530 return vorn_u8(a, b);
5531 }
5532
5533 // CHECK-LABEL: test_vorn_u16
5534 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u16(uint16x4_t a,uint16x4_t b)5535 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
5536 return vorn_u16(a, b);
5537 }
5538
5539 // CHECK-LABEL: test_vorn_u32
5540 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u32(uint32x2_t a,uint32x2_t b)5541 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
5542 return vorn_u32(a, b);
5543 }
5544
5545 // CHECK-LABEL: test_vorn_u64
5546 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u64(uint64x1_t a,uint64x1_t b)5547 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
5548 return vorn_u64(a, b);
5549 }
5550
5551 // CHECK-LABEL: test_vornq_s8
5552 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s8(int8x16_t a,int8x16_t b)5553 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
5554 return vornq_s8(a, b);
5555 }
5556
5557 // CHECK-LABEL: test_vornq_s16
5558 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s16(int16x8_t a,int16x8_t b)5559 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
5560 return vornq_s16(a, b);
5561 }
5562
5563 // CHECK-LABEL: test_vornq_s32
5564 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s32(int32x4_t a,int32x4_t b)5565 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
5566 return vornq_s32(a, b);
5567 }
5568
5569 // CHECK-LABEL: test_vornq_s64
5570 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s64(int64x2_t a,int64x2_t b)5571 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
5572 return vornq_s64(a, b);
5573 }
5574
5575 // CHECK-LABEL: test_vornq_u8
5576 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u8(uint8x16_t a,uint8x16_t b)5577 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
5578 return vornq_u8(a, b);
5579 }
5580
5581 // CHECK-LABEL: test_vornq_u16
5582 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u16(uint16x8_t a,uint16x8_t b)5583 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
5584 return vornq_u16(a, b);
5585 }
5586
5587 // CHECK-LABEL: test_vornq_u32
5588 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u32(uint32x4_t a,uint32x4_t b)5589 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
5590 return vornq_u32(a, b);
5591 }
5592
5593 // CHECK-LABEL: test_vornq_u64
5594 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u64(uint64x2_t a,uint64x2_t b)5595 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
5596 return vornq_u64(a, b);
5597 }
5598
5599
5600 // CHECK-LABEL: test_vorr_s8
5601 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s8(int8x8_t a,int8x8_t b)5602 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
5603 return vorr_s8(a, b);
5604 }
5605
5606 // CHECK-LABEL: test_vorr_s16
5607 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s16(int16x4_t a,int16x4_t b)5608 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
5609 return vorr_s16(a, b);
5610 }
5611
5612 // CHECK-LABEL: test_vorr_s32
5613 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s32(int32x2_t a,int32x2_t b)5614 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
5615 return vorr_s32(a, b);
5616 }
5617
5618 // CHECK-LABEL: test_vorr_s64
5619 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s64(int64x1_t a,int64x1_t b)5620 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
5621 return vorr_s64(a, b);
5622 }
5623
5624 // CHECK-LABEL: test_vorr_u8
5625 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u8(uint8x8_t a,uint8x8_t b)5626 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
5627 return vorr_u8(a, b);
5628 }
5629
5630 // CHECK-LABEL: test_vorr_u16
5631 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u16(uint16x4_t a,uint16x4_t b)5632 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
5633 return vorr_u16(a, b);
5634 }
5635
5636 // CHECK-LABEL: test_vorr_u32
5637 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u32(uint32x2_t a,uint32x2_t b)5638 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
5639 return vorr_u32(a, b);
5640 }
5641
5642 // CHECK-LABEL: test_vorr_u64
5643 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u64(uint64x1_t a,uint64x1_t b)5644 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
5645 return vorr_u64(a, b);
5646 }
5647
5648 // CHECK-LABEL: test_vorrq_s8
5649 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s8(int8x16_t a,int8x16_t b)5650 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
5651 return vorrq_s8(a, b);
5652 }
5653
5654 // CHECK-LABEL: test_vorrq_s16
5655 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s16(int16x8_t a,int16x8_t b)5656 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
5657 return vorrq_s16(a, b);
5658 }
5659
5660 // CHECK-LABEL: test_vorrq_s32
5661 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s32(int32x4_t a,int32x4_t b)5662 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
5663 return vorrq_s32(a, b);
5664 }
5665
5666 // CHECK-LABEL: test_vorrq_s64
5667 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s64(int64x2_t a,int64x2_t b)5668 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
5669 return vorrq_s64(a, b);
5670 }
5671
5672 // CHECK-LABEL: test_vorrq_u8
5673 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u8(uint8x16_t a,uint8x16_t b)5674 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
5675 return vorrq_u8(a, b);
5676 }
5677
5678 // CHECK-LABEL: test_vorrq_u16
5679 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u16(uint16x8_t a,uint16x8_t b)5680 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
5681 return vorrq_u16(a, b);
5682 }
5683
5684 // CHECK-LABEL: test_vorrq_u32
5685 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u32(uint32x4_t a,uint32x4_t b)5686 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
5687 return vorrq_u32(a, b);
5688 }
5689
5690 // CHECK-LABEL: test_vorrq_u64
5691 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u64(uint64x2_t a,uint64x2_t b)5692 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
5693 return vorrq_u64(a, b);
5694 }
5695
5696
5697 // CHECK-LABEL: test_vpadal_s8
5698 // CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s8(int16x4_t a,int8x8_t b)5699 int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) {
5700 return vpadal_s8(a, b);
5701 }
5702
5703 // CHECK-LABEL: test_vpadal_s16
5704 // CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s16(int32x2_t a,int16x4_t b)5705 int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) {
5706 return vpadal_s16(a, b);
5707 }
5708
5709 // CHECK-LABEL: test_vpadal_s32
5710 // CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s32(int64x1_t a,int32x2_t b)5711 int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) {
5712 return vpadal_s32(a, b);
5713 }
5714
5715 // CHECK-LABEL: test_vpadal_u8
5716 // CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u8(uint16x4_t a,uint8x8_t b)5717 uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) {
5718 return vpadal_u8(a, b);
5719 }
5720
5721 // CHECK-LABEL: test_vpadal_u16
5722 // CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u16(uint32x2_t a,uint16x4_t b)5723 uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) {
5724 return vpadal_u16(a, b);
5725 }
5726
5727 // CHECK-LABEL: test_vpadal_u32
5728 // CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u32(uint64x1_t a,uint32x2_t b)5729 uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) {
5730 return vpadal_u32(a, b);
5731 }
5732
5733 // CHECK-LABEL: test_vpadalq_s8
5734 // CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s8(int16x8_t a,int8x16_t b)5735 int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) {
5736 return vpadalq_s8(a, b);
5737 }
5738
5739 // CHECK-LABEL: test_vpadalq_s16
5740 // CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s16(int32x4_t a,int16x8_t b)5741 int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) {
5742 return vpadalq_s16(a, b);
5743 }
5744
5745 // CHECK-LABEL: test_vpadalq_s32
5746 // CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s32(int64x2_t a,int32x4_t b)5747 int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) {
5748 return vpadalq_s32(a, b);
5749 }
5750
5751 // CHECK-LABEL: test_vpadalq_u8
5752 // CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u8(uint16x8_t a,uint8x16_t b)5753 uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) {
5754 return vpadalq_u8(a, b);
5755 }
5756
5757 // CHECK-LABEL: test_vpadalq_u16
5758 // CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u16(uint32x4_t a,uint16x8_t b)5759 uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) {
5760 return vpadalq_u16(a, b);
5761 }
5762
5763 // CHECK-LABEL: test_vpadalq_u32
5764 // CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u32(uint64x2_t a,uint32x4_t b)5765 uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) {
5766 return vpadalq_u32(a, b);
5767 }
5768
5769
5770 // CHECK-LABEL: test_vpadd_s8
5771 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s8(int8x8_t a,int8x8_t b)5772 int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) {
5773 return vpadd_s8(a, b);
5774 }
5775
5776 // CHECK-LABEL: test_vpadd_s16
5777 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s16(int16x4_t a,int16x4_t b)5778 int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) {
5779 return vpadd_s16(a, b);
5780 }
5781
5782 // CHECK-LABEL: test_vpadd_s32
5783 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s32(int32x2_t a,int32x2_t b)5784 int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) {
5785 return vpadd_s32(a, b);
5786 }
5787
5788 // CHECK-LABEL: test_vpadd_u8
5789 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u8(uint8x8_t a,uint8x8_t b)5790 uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) {
5791 return vpadd_u8(a, b);
5792 }
5793
5794 // CHECK-LABEL: test_vpadd_u16
5795 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u16(uint16x4_t a,uint16x4_t b)5796 uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) {
5797 return vpadd_u16(a, b);
5798 }
5799
5800 // CHECK-LABEL: test_vpadd_u32
5801 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u32(uint32x2_t a,uint32x2_t b)5802 uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) {
5803 return vpadd_u32(a, b);
5804 }
5805
5806 // CHECK-LABEL: test_vpadd_f32
5807 // CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_f32(float32x2_t a,float32x2_t b)5808 float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) {
5809 return vpadd_f32(a, b);
5810 }
5811
5812
5813 // CHECK-LABEL: test_vpaddl_s8
5814 // CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s8(int8x8_t a)5815 int16x4_t test_vpaddl_s8(int8x8_t a) {
5816 return vpaddl_s8(a);
5817 }
5818
5819 // CHECK-LABEL: test_vpaddl_s16
5820 // CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s16(int16x4_t a)5821 int32x2_t test_vpaddl_s16(int16x4_t a) {
5822 return vpaddl_s16(a);
5823 }
5824
5825 // CHECK-LABEL: test_vpaddl_s32
5826 // CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s32(int32x2_t a)5827 int64x1_t test_vpaddl_s32(int32x2_t a) {
5828 return vpaddl_s32(a);
5829 }
5830
5831 // CHECK-LABEL: test_vpaddl_u8
5832 // CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u8(uint8x8_t a)5833 uint16x4_t test_vpaddl_u8(uint8x8_t a) {
5834 return vpaddl_u8(a);
5835 }
5836
5837 // CHECK-LABEL: test_vpaddl_u16
5838 // CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u16(uint16x4_t a)5839 uint32x2_t test_vpaddl_u16(uint16x4_t a) {
5840 return vpaddl_u16(a);
5841 }
5842
5843 // CHECK-LABEL: test_vpaddl_u32
5844 // CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u32(uint32x2_t a)5845 uint64x1_t test_vpaddl_u32(uint32x2_t a) {
5846 return vpaddl_u32(a);
5847 }
5848
5849 // CHECK-LABEL: test_vpaddlq_s8
5850 // CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s8(int8x16_t a)5851 int16x8_t test_vpaddlq_s8(int8x16_t a) {
5852 return vpaddlq_s8(a);
5853 }
5854
5855 // CHECK-LABEL: test_vpaddlq_s16
5856 // CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s16(int16x8_t a)5857 int32x4_t test_vpaddlq_s16(int16x8_t a) {
5858 return vpaddlq_s16(a);
5859 }
5860
5861 // CHECK-LABEL: test_vpaddlq_s32
5862 // CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s32(int32x4_t a)5863 int64x2_t test_vpaddlq_s32(int32x4_t a) {
5864 return vpaddlq_s32(a);
5865 }
5866
5867 // CHECK-LABEL: test_vpaddlq_u8
5868 // CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u8(uint8x16_t a)5869 uint16x8_t test_vpaddlq_u8(uint8x16_t a) {
5870 return vpaddlq_u8(a);
5871 }
5872
5873 // CHECK-LABEL: test_vpaddlq_u16
5874 // CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u16(uint16x8_t a)5875 uint32x4_t test_vpaddlq_u16(uint16x8_t a) {
5876 return vpaddlq_u16(a);
5877 }
5878
5879 // CHECK-LABEL: test_vpaddlq_u32
5880 // CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u32(uint32x4_t a)5881 uint64x2_t test_vpaddlq_u32(uint32x4_t a) {
5882 return vpaddlq_u32(a);
5883 }
5884
5885
5886 // CHECK-LABEL: test_vpmax_s8
5887 // CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s8(int8x8_t a,int8x8_t b)5888 int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) {
5889 return vpmax_s8(a, b);
5890 }
5891
5892 // CHECK-LABEL: test_vpmax_s16
5893 // CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s16(int16x4_t a,int16x4_t b)5894 int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) {
5895 return vpmax_s16(a, b);
5896 }
5897
5898 // CHECK-LABEL: test_vpmax_s32
5899 // CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s32(int32x2_t a,int32x2_t b)5900 int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) {
5901 return vpmax_s32(a, b);
5902 }
5903
5904 // CHECK-LABEL: test_vpmax_u8
5905 // CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u8(uint8x8_t a,uint8x8_t b)5906 uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) {
5907 return vpmax_u8(a, b);
5908 }
5909
5910 // CHECK-LABEL: test_vpmax_u16
5911 // CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u16(uint16x4_t a,uint16x4_t b)5912 uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) {
5913 return vpmax_u16(a, b);
5914 }
5915
5916 // CHECK-LABEL: test_vpmax_u32
5917 // CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u32(uint32x2_t a,uint32x2_t b)5918 uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) {
5919 return vpmax_u32(a, b);
5920 }
5921
5922 // CHECK-LABEL: test_vpmax_f32
5923 // CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_f32(float32x2_t a,float32x2_t b)5924 float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) {
5925 return vpmax_f32(a, b);
5926 }
5927
5928
5929 // CHECK-LABEL: test_vpmin_s8
5930 // CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s8(int8x8_t a,int8x8_t b)5931 int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) {
5932 return vpmin_s8(a, b);
5933 }
5934
5935 // CHECK-LABEL: test_vpmin_s16
5936 // CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s16(int16x4_t a,int16x4_t b)5937 int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) {
5938 return vpmin_s16(a, b);
5939 }
5940
5941 // CHECK-LABEL: test_vpmin_s32
5942 // CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s32(int32x2_t a,int32x2_t b)5943 int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) {
5944 return vpmin_s32(a, b);
5945 }
5946
5947 // CHECK-LABEL: test_vpmin_u8
5948 // CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u8(uint8x8_t a,uint8x8_t b)5949 uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) {
5950 return vpmin_u8(a, b);
5951 }
5952
5953 // CHECK-LABEL: test_vpmin_u16
5954 // CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u16(uint16x4_t a,uint16x4_t b)5955 uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) {
5956 return vpmin_u16(a, b);
5957 }
5958
5959 // CHECK-LABEL: test_vpmin_u32
5960 // CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u32(uint32x2_t a,uint32x2_t b)5961 uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) {
5962 return vpmin_u32(a, b);
5963 }
5964
5965 // CHECK-LABEL: test_vpmin_f32
5966 // CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_f32(float32x2_t a,float32x2_t b)5967 float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) {
5968 return vpmin_f32(a, b);
5969 }
5970
5971
5972 // CHECK-LABEL: test_vqabs_s8
5973 // CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s8(int8x8_t a)5974 int8x8_t test_vqabs_s8(int8x8_t a) {
5975 return vqabs_s8(a);
5976 }
5977
5978 // CHECK-LABEL: test_vqabs_s16
5979 // CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s16(int16x4_t a)5980 int16x4_t test_vqabs_s16(int16x4_t a) {
5981 return vqabs_s16(a);
5982 }
5983
5984 // CHECK-LABEL: test_vqabs_s32
5985 // CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s32(int32x2_t a)5986 int32x2_t test_vqabs_s32(int32x2_t a) {
5987 return vqabs_s32(a);
5988 }
5989
5990 // CHECK-LABEL: test_vqabsq_s8
5991 // CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s8(int8x16_t a)5992 int8x16_t test_vqabsq_s8(int8x16_t a) {
5993 return vqabsq_s8(a);
5994 }
5995
5996 // CHECK-LABEL: test_vqabsq_s16
5997 // CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s16(int16x8_t a)5998 int16x8_t test_vqabsq_s16(int16x8_t a) {
5999 return vqabsq_s16(a);
6000 }
6001
6002 // CHECK-LABEL: test_vqabsq_s32
6003 // CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s32(int32x4_t a)6004 int32x4_t test_vqabsq_s32(int32x4_t a) {
6005 return vqabsq_s32(a);
6006 }
6007
6008
6009 // CHECK-LABEL: test_vqadd_s8
6010 // CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s8(int8x8_t a,int8x8_t b)6011 int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) {
6012 return vqadd_s8(a, b);
6013 }
6014
6015 // CHECK-LABEL: test_vqadd_s16
6016 // CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s16(int16x4_t a,int16x4_t b)6017 int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) {
6018 return vqadd_s16(a, b);
6019 }
6020
6021 // CHECK-LABEL: test_vqadd_s32
6022 // CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s32(int32x2_t a,int32x2_t b)6023 int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) {
6024 return vqadd_s32(a, b);
6025 }
6026
6027 // CHECK-LABEL: test_vqadd_s64
6028 // CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s64(int64x1_t a,int64x1_t b)6029 int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) {
6030 return vqadd_s64(a, b);
6031 }
6032
6033 // CHECK-LABEL: test_vqadd_u8
6034 // CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u8(uint8x8_t a,uint8x8_t b)6035 uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) {
6036 return vqadd_u8(a, b);
6037 }
6038
6039 // CHECK-LABEL: test_vqadd_u16
6040 // CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u16(uint16x4_t a,uint16x4_t b)6041 uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) {
6042 return vqadd_u16(a, b);
6043 }
6044
6045 // CHECK-LABEL: test_vqadd_u32
6046 // CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u32(uint32x2_t a,uint32x2_t b)6047 uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) {
6048 return vqadd_u32(a, b);
6049 }
6050
6051 // CHECK-LABEL: test_vqadd_u64
6052 // CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u64(uint64x1_t a,uint64x1_t b)6053 uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) {
6054 return vqadd_u64(a, b);
6055 }
6056
6057 // CHECK-LABEL: test_vqaddq_s8
6058 // CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s8(int8x16_t a,int8x16_t b)6059 int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) {
6060 return vqaddq_s8(a, b);
6061 }
6062
6063 // CHECK-LABEL: test_vqaddq_s16
6064 // CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s16(int16x8_t a,int16x8_t b)6065 int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) {
6066 return vqaddq_s16(a, b);
6067 }
6068
6069 // CHECK-LABEL: test_vqaddq_s32
6070 // CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s32(int32x4_t a,int32x4_t b)6071 int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) {
6072 return vqaddq_s32(a, b);
6073 }
6074
6075 // CHECK-LABEL: test_vqaddq_s64
6076 // CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s64(int64x2_t a,int64x2_t b)6077 int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) {
6078 return vqaddq_s64(a, b);
6079 }
6080
6081 // CHECK-LABEL: test_vqaddq_u8
6082 // CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u8(uint8x16_t a,uint8x16_t b)6083 uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) {
6084 return vqaddq_u8(a, b);
6085 }
6086
6087 // CHECK-LABEL: test_vqaddq_u16
6088 // CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u16(uint16x8_t a,uint16x8_t b)6089 uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) {
6090 return vqaddq_u16(a, b);
6091 }
6092
6093 // CHECK-LABEL: test_vqaddq_u32
6094 // CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u32(uint32x4_t a,uint32x4_t b)6095 uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) {
6096 return vqaddq_u32(a, b);
6097 }
6098
6099 // CHECK-LABEL: test_vqaddq_u64
6100 // CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u64(uint64x2_t a,uint64x2_t b)6101 uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) {
6102 return vqaddq_u64(a, b);
6103 }
6104
6105
6106 // CHECK-LABEL: test_vqdmlal_s16
6107 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6108 int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6109 return vqdmlal_s16(a, b, c);
6110 }
6111
6112 // CHECK-LABEL: test_vqdmlal_s32
6113 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6114 int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6115 return vqdmlal_s32(a, b, c);
6116 }
6117
6118
6119 // CHECK-LABEL: test_vqdmlal_lane_s16
6120 // 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)6121 int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6122 return vqdmlal_lane_s16(a, b, c, 3);
6123 }
6124
6125 // CHECK-LABEL: test_vqdmlal_lane_s32
6126 // 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)6127 int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6128 return vqdmlal_lane_s32(a, b, c, 1);
6129 }
6130
6131
6132 // CHECK-LABEL: test_vqdmlal_n_s16
6133 // 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)6134 int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6135 return vqdmlal_n_s16(a, b, c);
6136 }
6137
6138 // CHECK-LABEL: test_vqdmlal_n_s32
6139 // 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)6140 int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6141 return vqdmlal_n_s32(a, b, c);
6142 }
6143
6144
6145 // CHECK-LABEL: test_vqdmlsl_s16
6146 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)6147 int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6148 return vqdmlsl_s16(a, b, c);
6149 }
6150
6151 // CHECK-LABEL: test_vqdmlsl_s32
6152 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)6153 int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6154 return vqdmlsl_s32(a, b, c);
6155 }
6156
6157
6158 // CHECK-LABEL: test_vqdmlsl_lane_s16
6159 // 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)6160 int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6161 return vqdmlsl_lane_s16(a, b, c, 3);
6162 }
6163
6164 // CHECK-LABEL: test_vqdmlsl_lane_s32
6165 // 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)6166 int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6167 return vqdmlsl_lane_s32(a, b, c, 1);
6168 }
6169
6170
6171 // CHECK-LABEL: test_vqdmlsl_n_s16
6172 // 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)6173 int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6174 return vqdmlsl_n_s16(a, b, c);
6175 }
6176
6177 // CHECK-LABEL: test_vqdmlsl_n_s32
6178 // 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)6179 int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6180 return vqdmlsl_n_s32(a, b, c);
6181 }
6182
6183
6184 // CHECK-LABEL: test_vqdmulh_s16
6185 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s16(int16x4_t a,int16x4_t b)6186 int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) {
6187 return vqdmulh_s16(a, b);
6188 }
6189
6190 // CHECK-LABEL: test_vqdmulh_s32
6191 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s32(int32x2_t a,int32x2_t b)6192 int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) {
6193 return vqdmulh_s32(a, b);
6194 }
6195
6196 // CHECK-LABEL: test_vqdmulhq_s16
6197 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s16(int16x8_t a,int16x8_t b)6198 int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) {
6199 return vqdmulhq_s16(a, b);
6200 }
6201
6202 // CHECK-LABEL: test_vqdmulhq_s32
6203 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s32(int32x4_t a,int32x4_t b)6204 int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) {
6205 return vqdmulhq_s32(a, b);
6206 }
6207
6208
6209 // CHECK-LABEL: test_vqdmulh_lane_s16
6210 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s16(int16x4_t a,int16x4_t b)6211 int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6212 return vqdmulh_lane_s16(a, b, 3);
6213 }
6214
6215 // CHECK-LABEL: test_vqdmulh_lane_s32
6216 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s32(int32x2_t a,int32x2_t b)6217 int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6218 return vqdmulh_lane_s32(a, b, 1);
6219 }
6220
6221 // CHECK-LABEL: test_vqdmulhq_lane_s16
6222 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s16(int16x8_t a,int16x4_t b)6223 int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6224 return vqdmulhq_lane_s16(a, b, 3);
6225 }
6226
6227 // CHECK-LABEL: test_vqdmulhq_lane_s32
6228 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s32(int32x4_t a,int32x2_t b)6229 int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6230 return vqdmulhq_lane_s32(a, b, 1);
6231 }
6232
6233
6234 // CHECK-LABEL: test_vqdmulh_n_s16
6235 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s16(int16x4_t a,int16_t b)6236 int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
6237 return vqdmulh_n_s16(a, b);
6238 }
6239
6240 // CHECK-LABEL: test_vqdmulh_n_s32
6241 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s32(int32x2_t a,int32_t b)6242 int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
6243 return vqdmulh_n_s32(a, b);
6244 }
6245
6246 // CHECK-LABEL: test_vqdmulhq_n_s16
6247 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s16(int16x8_t a,int16_t b)6248 int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
6249 return vqdmulhq_n_s16(a, b);
6250 }
6251
6252 // CHECK-LABEL: test_vqdmulhq_n_s32
6253 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s32(int32x4_t a,int32_t b)6254 int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
6255 return vqdmulhq_n_s32(a, b);
6256 }
6257
6258
6259 // CHECK-LABEL: test_vqdmull_s16
6260 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s16(int16x4_t a,int16x4_t b)6261 int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) {
6262 return vqdmull_s16(a, b);
6263 }
6264
6265 // CHECK-LABEL: test_vqdmull_s32
6266 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s32(int32x2_t a,int32x2_t b)6267 int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) {
6268 return vqdmull_s32(a, b);
6269 }
6270
6271
6272 // CHECK-LABEL: test_vqdmull_lane_s16
6273 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s16(int16x4_t a,int16x4_t b)6274 int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) {
6275 return vqdmull_lane_s16(a, b, 3);
6276 }
6277
6278 // CHECK-LABEL: test_vqdmull_lane_s32
6279 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s32(int32x2_t a,int32x2_t b)6280 int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) {
6281 return vqdmull_lane_s32(a, b, 1);
6282 }
6283
6284
6285 // CHECK-LABEL: test_vqdmull_n_s16
6286 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s16(int16x4_t a,int16_t b)6287 int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
6288 return vqdmull_n_s16(a, b);
6289 }
6290
6291 // CHECK-LABEL: test_vqdmull_n_s32
6292 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s32(int32x2_t a,int32_t b)6293 int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
6294 return vqdmull_n_s32(a, b);
6295 }
6296
6297
6298 // CHECK-LABEL: test_vqmovn_s16
6299 // CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s16(int16x8_t a)6300 int8x8_t test_vqmovn_s16(int16x8_t a) {
6301 return vqmovn_s16(a);
6302 }
6303
6304 // CHECK-LABEL: test_vqmovn_s32
6305 // CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s32(int32x4_t a)6306 int16x4_t test_vqmovn_s32(int32x4_t a) {
6307 return vqmovn_s32(a);
6308 }
6309
6310 // CHECK-LABEL: test_vqmovn_s64
6311 // CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s64(int64x2_t a)6312 int32x2_t test_vqmovn_s64(int64x2_t a) {
6313 return vqmovn_s64(a);
6314 }
6315
6316 // CHECK-LABEL: test_vqmovn_u16
6317 // CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u16(uint16x8_t a)6318 uint8x8_t test_vqmovn_u16(uint16x8_t a) {
6319 return vqmovn_u16(a);
6320 }
6321
6322 // CHECK-LABEL: test_vqmovn_u32
6323 // CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u32(uint32x4_t a)6324 uint16x4_t test_vqmovn_u32(uint32x4_t a) {
6325 return vqmovn_u32(a);
6326 }
6327
6328 // CHECK-LABEL: test_vqmovn_u64
6329 // CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u64(uint64x2_t a)6330 uint32x2_t test_vqmovn_u64(uint64x2_t a) {
6331 return vqmovn_u64(a);
6332 }
6333
6334
6335 // CHECK-LABEL: test_vqmovun_s16
6336 // CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s16(int16x8_t a)6337 uint8x8_t test_vqmovun_s16(int16x8_t a) {
6338 return vqmovun_s16(a);
6339 }
6340
6341 // CHECK-LABEL: test_vqmovun_s32
6342 // CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s32(int32x4_t a)6343 uint16x4_t test_vqmovun_s32(int32x4_t a) {
6344 return vqmovun_s32(a);
6345 }
6346
6347 // CHECK-LABEL: test_vqmovun_s64
6348 // CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s64(int64x2_t a)6349 uint32x2_t test_vqmovun_s64(int64x2_t a) {
6350 return vqmovun_s64(a);
6351 }
6352
6353
6354 // CHECK-LABEL: test_vqneg_s8
6355 // CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s8(int8x8_t a)6356 int8x8_t test_vqneg_s8(int8x8_t a) {
6357 return vqneg_s8(a);
6358 }
6359
6360 // CHECK-LABEL: test_vqneg_s16
6361 // CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s16(int16x4_t a)6362 int16x4_t test_vqneg_s16(int16x4_t a) {
6363 return vqneg_s16(a);
6364 }
6365
6366 // CHECK-LABEL: test_vqneg_s32
6367 // CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s32(int32x2_t a)6368 int32x2_t test_vqneg_s32(int32x2_t a) {
6369 return vqneg_s32(a);
6370 }
6371
6372 // CHECK-LABEL: test_vqnegq_s8
6373 // CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s8(int8x16_t a)6374 int8x16_t test_vqnegq_s8(int8x16_t a) {
6375 return vqnegq_s8(a);
6376 }
6377
6378 // CHECK-LABEL: test_vqnegq_s16
6379 // CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s16(int16x8_t a)6380 int16x8_t test_vqnegq_s16(int16x8_t a) {
6381 return vqnegq_s16(a);
6382 }
6383
6384 // CHECK-LABEL: test_vqnegq_s32
6385 // CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s32(int32x4_t a)6386 int32x4_t test_vqnegq_s32(int32x4_t a) {
6387 return vqnegq_s32(a);
6388 }
6389
6390
6391 // CHECK-LABEL: test_vqrdmulh_s16
6392 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s16(int16x4_t a,int16x4_t b)6393 int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) {
6394 return vqrdmulh_s16(a, b);
6395 }
6396
6397 // CHECK-LABEL: test_vqrdmulh_s32
6398 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s32(int32x2_t a,int32x2_t b)6399 int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) {
6400 return vqrdmulh_s32(a, b);
6401 }
6402
6403 // CHECK-LABEL: test_vqrdmulhq_s16
6404 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s16(int16x8_t a,int16x8_t b)6405 int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) {
6406 return vqrdmulhq_s16(a, b);
6407 }
6408
6409 // CHECK-LABEL: test_vqrdmulhq_s32
6410 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s32(int32x4_t a,int32x4_t b)6411 int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) {
6412 return vqrdmulhq_s32(a, b);
6413 }
6414
6415
6416 // CHECK-LABEL: test_vqrdmulh_lane_s16
6417 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s16(int16x4_t a,int16x4_t b)6418 int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6419 return vqrdmulh_lane_s16(a, b, 3);
6420 }
6421
6422 // CHECK-LABEL: test_vqrdmulh_lane_s32
6423 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s32(int32x2_t a,int32x2_t b)6424 int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6425 return vqrdmulh_lane_s32(a, b, 1);
6426 }
6427
6428 // CHECK-LABEL: test_vqrdmulhq_lane_s16
6429 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s16(int16x8_t a,int16x4_t b)6430 int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6431 return vqrdmulhq_lane_s16(a, b, 3);
6432 }
6433
6434 // CHECK-LABEL: test_vqrdmulhq_lane_s32
6435 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s32(int32x4_t a,int32x2_t b)6436 int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6437 return vqrdmulhq_lane_s32(a, b, 1);
6438 }
6439
6440
6441 // CHECK-LABEL: test_vqrdmulh_n_s16
6442 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s16(int16x4_t a,int16_t b)6443 int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
6444 return vqrdmulh_n_s16(a, b);
6445 }
6446
6447 // CHECK-LABEL: test_vqrdmulh_n_s32
6448 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s32(int32x2_t a,int32_t b)6449 int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
6450 return vqrdmulh_n_s32(a, b);
6451 }
6452
6453 // CHECK-LABEL: test_vqrdmulhq_n_s16
6454 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s16(int16x8_t a,int16_t b)6455 int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
6456 return vqrdmulhq_n_s16(a, b);
6457 }
6458
6459 // CHECK-LABEL: test_vqrdmulhq_n_s32
6460 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s32(int32x4_t a,int32_t b)6461 int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
6462 return vqrdmulhq_n_s32(a, b);
6463 }
6464
6465
6466 // CHECK-LABEL: test_vqrshl_s8
6467 // CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s8(int8x8_t a,int8x8_t b)6468 int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) {
6469 return vqrshl_s8(a, b);
6470 }
6471
6472 // CHECK-LABEL: test_vqrshl_s16
6473 // CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s16(int16x4_t a,int16x4_t b)6474 int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) {
6475 return vqrshl_s16(a, b);
6476 }
6477
6478 // CHECK-LABEL: test_vqrshl_s32
6479 // CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s32(int32x2_t a,int32x2_t b)6480 int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) {
6481 return vqrshl_s32(a, b);
6482 }
6483
6484 // CHECK-LABEL: test_vqrshl_s64
6485 // CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s64(int64x1_t a,int64x1_t b)6486 int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) {
6487 return vqrshl_s64(a, b);
6488 }
6489
6490 // CHECK-LABEL: test_vqrshl_u8
6491 // CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u8(uint8x8_t a,int8x8_t b)6492 uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) {
6493 return vqrshl_u8(a, b);
6494 }
6495
6496 // CHECK-LABEL: test_vqrshl_u16
6497 // CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u16(uint16x4_t a,int16x4_t b)6498 uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) {
6499 return vqrshl_u16(a, b);
6500 }
6501
6502 // CHECK-LABEL: test_vqrshl_u32
6503 // CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u32(uint32x2_t a,int32x2_t b)6504 uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) {
6505 return vqrshl_u32(a, b);
6506 }
6507
6508 // CHECK-LABEL: test_vqrshl_u64
6509 // CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u64(uint64x1_t a,int64x1_t b)6510 uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) {
6511 return vqrshl_u64(a, b);
6512 }
6513
6514 // CHECK-LABEL: test_vqrshlq_s8
6515 // CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s8(int8x16_t a,int8x16_t b)6516 int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) {
6517 return vqrshlq_s8(a, b);
6518 }
6519
6520 // CHECK-LABEL: test_vqrshlq_s16
6521 // CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s16(int16x8_t a,int16x8_t b)6522 int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) {
6523 return vqrshlq_s16(a, b);
6524 }
6525
6526 // CHECK-LABEL: test_vqrshlq_s32
6527 // CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s32(int32x4_t a,int32x4_t b)6528 int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) {
6529 return vqrshlq_s32(a, b);
6530 }
6531
6532 // CHECK-LABEL: test_vqrshlq_s64
6533 // CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s64(int64x2_t a,int64x2_t b)6534 int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) {
6535 return vqrshlq_s64(a, b);
6536 }
6537
6538 // CHECK-LABEL: test_vqrshlq_u8
6539 // CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u8(uint8x16_t a,int8x16_t b)6540 uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) {
6541 return vqrshlq_u8(a, b);
6542 }
6543
6544 // CHECK-LABEL: test_vqrshlq_u16
6545 // CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u16(uint16x8_t a,int16x8_t b)6546 uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) {
6547 return vqrshlq_u16(a, b);
6548 }
6549
6550 // CHECK-LABEL: test_vqrshlq_u32
6551 // CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u32(uint32x4_t a,int32x4_t b)6552 uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) {
6553 return vqrshlq_u32(a, b);
6554 }
6555
6556 // CHECK-LABEL: test_vqrshlq_u64
6557 // CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u64(uint64x2_t a,int64x2_t b)6558 uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) {
6559 return vqrshlq_u64(a, b);
6560 }
6561
6562
6563 // CHECK-LABEL: test_vqrshrn_n_s16
6564 // CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s16(int16x8_t a)6565 int8x8_t test_vqrshrn_n_s16(int16x8_t a) {
6566 return vqrshrn_n_s16(a, 1);
6567 }
6568
6569 // CHECK-LABEL: test_vqrshrn_n_s32
6570 // CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s32(int32x4_t a)6571 int16x4_t test_vqrshrn_n_s32(int32x4_t a) {
6572 return vqrshrn_n_s32(a, 1);
6573 }
6574
6575 // CHECK-LABEL: test_vqrshrn_n_s64
6576 // CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s64(int64x2_t a)6577 int32x2_t test_vqrshrn_n_s64(int64x2_t a) {
6578 return vqrshrn_n_s64(a, 1);
6579 }
6580
6581 // CHECK-LABEL: test_vqrshrn_n_u16
6582 // CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u16(uint16x8_t a)6583 uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) {
6584 return vqrshrn_n_u16(a, 1);
6585 }
6586
6587 // CHECK-LABEL: test_vqrshrn_n_u32
6588 // CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u32(uint32x4_t a)6589 uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) {
6590 return vqrshrn_n_u32(a, 1);
6591 }
6592
6593 // CHECK-LABEL: test_vqrshrn_n_u64
6594 // CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u64(uint64x2_t a)6595 uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) {
6596 return vqrshrn_n_u64(a, 1);
6597 }
6598
6599
6600 // CHECK-LABEL: test_vqrshrun_n_s16
6601 // CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s16(int16x8_t a)6602 uint8x8_t test_vqrshrun_n_s16(int16x8_t a) {
6603 return vqrshrun_n_s16(a, 1);
6604 }
6605
6606 // CHECK-LABEL: test_vqrshrun_n_s32
6607 // CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s32(int32x4_t a)6608 uint16x4_t test_vqrshrun_n_s32(int32x4_t a) {
6609 return vqrshrun_n_s32(a, 1);
6610 }
6611
6612 // CHECK-LABEL: test_vqrshrun_n_s64
6613 // CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s64(int64x2_t a)6614 uint32x2_t test_vqrshrun_n_s64(int64x2_t a) {
6615 return vqrshrun_n_s64(a, 1);
6616 }
6617
6618
6619 // CHECK-LABEL: test_vqshl_s8
6620 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s8(int8x8_t a,int8x8_t b)6621 int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) {
6622 return vqshl_s8(a, b);
6623 }
6624
6625 // CHECK-LABEL: test_vqshl_s16
6626 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s16(int16x4_t a,int16x4_t b)6627 int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) {
6628 return vqshl_s16(a, b);
6629 }
6630
6631 // CHECK-LABEL: test_vqshl_s32
6632 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s32(int32x2_t a,int32x2_t b)6633 int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) {
6634 return vqshl_s32(a, b);
6635 }
6636
6637 // CHECK-LABEL: test_vqshl_s64
6638 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s64(int64x1_t a,int64x1_t b)6639 int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) {
6640 return vqshl_s64(a, b);
6641 }
6642
6643 // CHECK-LABEL: test_vqshl_u8
6644 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u8(uint8x8_t a,int8x8_t b)6645 uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) {
6646 return vqshl_u8(a, b);
6647 }
6648
6649 // CHECK-LABEL: test_vqshl_u16
6650 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u16(uint16x4_t a,int16x4_t b)6651 uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) {
6652 return vqshl_u16(a, b);
6653 }
6654
6655 // CHECK-LABEL: test_vqshl_u32
6656 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u32(uint32x2_t a,int32x2_t b)6657 uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) {
6658 return vqshl_u32(a, b);
6659 }
6660
6661 // CHECK-LABEL: test_vqshl_u64
6662 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u64(uint64x1_t a,int64x1_t b)6663 uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) {
6664 return vqshl_u64(a, b);
6665 }
6666
6667 // CHECK-LABEL: test_vqshlq_s8
6668 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s8(int8x16_t a,int8x16_t b)6669 int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) {
6670 return vqshlq_s8(a, b);
6671 }
6672
6673 // CHECK-LABEL: test_vqshlq_s16
6674 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s16(int16x8_t a,int16x8_t b)6675 int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) {
6676 return vqshlq_s16(a, b);
6677 }
6678
6679 // CHECK-LABEL: test_vqshlq_s32
6680 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s32(int32x4_t a,int32x4_t b)6681 int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) {
6682 return vqshlq_s32(a, b);
6683 }
6684
6685 // CHECK-LABEL: test_vqshlq_s64
6686 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s64(int64x2_t a,int64x2_t b)6687 int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) {
6688 return vqshlq_s64(a, b);
6689 }
6690
6691 // CHECK-LABEL: test_vqshlq_u8
6692 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u8(uint8x16_t a,int8x16_t b)6693 uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) {
6694 return vqshlq_u8(a, b);
6695 }
6696
6697 // CHECK-LABEL: test_vqshlq_u16
6698 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u16(uint16x8_t a,int16x8_t b)6699 uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) {
6700 return vqshlq_u16(a, b);
6701 }
6702
6703 // CHECK-LABEL: test_vqshlq_u32
6704 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u32(uint32x4_t a,int32x4_t b)6705 uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) {
6706 return vqshlq_u32(a, b);
6707 }
6708
6709 // CHECK-LABEL: test_vqshlq_u64
6710 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u64(uint64x2_t a,int64x2_t b)6711 uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) {
6712 return vqshlq_u64(a, b);
6713 }
6714
6715
6716 // CHECK-LABEL: test_vqshlu_n_s8
6717 // CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s8(int8x8_t a)6718 uint8x8_t test_vqshlu_n_s8(int8x8_t a) {
6719 return vqshlu_n_s8(a, 1);
6720 }
6721
6722 // CHECK-LABEL: test_vqshlu_n_s16
6723 // CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s16(int16x4_t a)6724 uint16x4_t test_vqshlu_n_s16(int16x4_t a) {
6725 return vqshlu_n_s16(a, 1);
6726 }
6727
6728 // CHECK-LABEL: test_vqshlu_n_s32
6729 // CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s32(int32x2_t a)6730 uint32x2_t test_vqshlu_n_s32(int32x2_t a) {
6731 return vqshlu_n_s32(a, 1);
6732 }
6733
6734 // CHECK-LABEL: test_vqshlu_n_s64
6735 // CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s64(int64x1_t a)6736 uint64x1_t test_vqshlu_n_s64(int64x1_t a) {
6737 return vqshlu_n_s64(a, 1);
6738 }
6739
6740 // CHECK-LABEL: test_vqshluq_n_s8
6741 // CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s8(int8x16_t a)6742 uint8x16_t test_vqshluq_n_s8(int8x16_t a) {
6743 return vqshluq_n_s8(a, 1);
6744 }
6745
6746 // CHECK-LABEL: test_vqshluq_n_s16
6747 // CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s16(int16x8_t a)6748 uint16x8_t test_vqshluq_n_s16(int16x8_t a) {
6749 return vqshluq_n_s16(a, 1);
6750 }
6751
6752 // CHECK-LABEL: test_vqshluq_n_s32
6753 // CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s32(int32x4_t a)6754 uint32x4_t test_vqshluq_n_s32(int32x4_t a) {
6755 return vqshluq_n_s32(a, 1);
6756 }
6757
6758 // CHECK-LABEL: test_vqshluq_n_s64
6759 // CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s64(int64x2_t a)6760 uint64x2_t test_vqshluq_n_s64(int64x2_t a) {
6761 return vqshluq_n_s64(a, 1);
6762 }
6763
6764
6765 // CHECK-LABEL: test_vqshl_n_s8
6766 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s8(int8x8_t a)6767 int8x8_t test_vqshl_n_s8(int8x8_t a) {
6768 return vqshl_n_s8(a, 1);
6769 }
6770
6771 // CHECK-LABEL: test_vqshl_n_s16
6772 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s16(int16x4_t a)6773 int16x4_t test_vqshl_n_s16(int16x4_t a) {
6774 return vqshl_n_s16(a, 1);
6775 }
6776
6777 // CHECK-LABEL: test_vqshl_n_s32
6778 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s32(int32x2_t a)6779 int32x2_t test_vqshl_n_s32(int32x2_t a) {
6780 return vqshl_n_s32(a, 1);
6781 }
6782
6783 // CHECK-LABEL: test_vqshl_n_s64
6784 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s64(int64x1_t a)6785 int64x1_t test_vqshl_n_s64(int64x1_t a) {
6786 return vqshl_n_s64(a, 1);
6787 }
6788
6789 // CHECK-LABEL: test_vqshl_n_u8
6790 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u8(uint8x8_t a)6791 uint8x8_t test_vqshl_n_u8(uint8x8_t a) {
6792 return vqshl_n_u8(a, 1);
6793 }
6794
6795 // CHECK-LABEL: test_vqshl_n_u16
6796 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u16(uint16x4_t a)6797 uint16x4_t test_vqshl_n_u16(uint16x4_t a) {
6798 return vqshl_n_u16(a, 1);
6799 }
6800
6801 // CHECK-LABEL: test_vqshl_n_u32
6802 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u32(uint32x2_t a)6803 uint32x2_t test_vqshl_n_u32(uint32x2_t a) {
6804 return vqshl_n_u32(a, 1);
6805 }
6806
6807 // CHECK-LABEL: test_vqshl_n_u64
6808 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u64(uint64x1_t a)6809 uint64x1_t test_vqshl_n_u64(uint64x1_t a) {
6810 return vqshl_n_u64(a, 1);
6811 }
6812
6813 // CHECK-LABEL: test_vqshlq_n_s8
6814 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s8(int8x16_t a)6815 int8x16_t test_vqshlq_n_s8(int8x16_t a) {
6816 return vqshlq_n_s8(a, 1);
6817 }
6818
6819 // CHECK-LABEL: test_vqshlq_n_s16
6820 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s16(int16x8_t a)6821 int16x8_t test_vqshlq_n_s16(int16x8_t a) {
6822 return vqshlq_n_s16(a, 1);
6823 }
6824
6825 // CHECK-LABEL: test_vqshlq_n_s32
6826 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s32(int32x4_t a)6827 int32x4_t test_vqshlq_n_s32(int32x4_t a) {
6828 return vqshlq_n_s32(a, 1);
6829 }
6830
6831 // CHECK-LABEL: test_vqshlq_n_s64
6832 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s64(int64x2_t a)6833 int64x2_t test_vqshlq_n_s64(int64x2_t a) {
6834 return vqshlq_n_s64(a, 1);
6835 }
6836
6837 // CHECK-LABEL: test_vqshlq_n_u8
6838 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u8(uint8x16_t a)6839 uint8x16_t test_vqshlq_n_u8(uint8x16_t a) {
6840 return vqshlq_n_u8(a, 1);
6841 }
6842
6843 // CHECK-LABEL: test_vqshlq_n_u16
6844 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u16(uint16x8_t a)6845 uint16x8_t test_vqshlq_n_u16(uint16x8_t a) {
6846 return vqshlq_n_u16(a, 1);
6847 }
6848
6849 // CHECK-LABEL: test_vqshlq_n_u32
6850 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u32(uint32x4_t a)6851 uint32x4_t test_vqshlq_n_u32(uint32x4_t a) {
6852 return vqshlq_n_u32(a, 1);
6853 }
6854
6855 // CHECK-LABEL: test_vqshlq_n_u64
6856 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u64(uint64x2_t a)6857 uint64x2_t test_vqshlq_n_u64(uint64x2_t a) {
6858 return vqshlq_n_u64(a, 1);
6859 }
6860
6861
6862 // CHECK-LABEL: test_vqshrn_n_s16
6863 // CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s16(int16x8_t a)6864 int8x8_t test_vqshrn_n_s16(int16x8_t a) {
6865 return vqshrn_n_s16(a, 1);
6866 }
6867
6868 // CHECK-LABEL: test_vqshrn_n_s32
6869 // CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s32(int32x4_t a)6870 int16x4_t test_vqshrn_n_s32(int32x4_t a) {
6871 return vqshrn_n_s32(a, 1);
6872 }
6873
6874 // CHECK-LABEL: test_vqshrn_n_s64
6875 // CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s64(int64x2_t a)6876 int32x2_t test_vqshrn_n_s64(int64x2_t a) {
6877 return vqshrn_n_s64(a, 1);
6878 }
6879
6880 // CHECK-LABEL: test_vqshrn_n_u16
6881 // CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u16(uint16x8_t a)6882 uint8x8_t test_vqshrn_n_u16(uint16x8_t a) {
6883 return vqshrn_n_u16(a, 1);
6884 }
6885
6886 // CHECK-LABEL: test_vqshrn_n_u32
6887 // CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u32(uint32x4_t a)6888 uint16x4_t test_vqshrn_n_u32(uint32x4_t a) {
6889 return vqshrn_n_u32(a, 1);
6890 }
6891
6892 // CHECK-LABEL: test_vqshrn_n_u64
6893 // CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u64(uint64x2_t a)6894 uint32x2_t test_vqshrn_n_u64(uint64x2_t a) {
6895 return vqshrn_n_u64(a, 1);
6896 }
6897
6898
6899 // CHECK-LABEL: test_vqshrun_n_s16
6900 // CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s16(int16x8_t a)6901 uint8x8_t test_vqshrun_n_s16(int16x8_t a) {
6902 return vqshrun_n_s16(a, 1);
6903 }
6904
6905 // CHECK-LABEL: test_vqshrun_n_s32
6906 // CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s32(int32x4_t a)6907 uint16x4_t test_vqshrun_n_s32(int32x4_t a) {
6908 return vqshrun_n_s32(a, 1);
6909 }
6910
6911 // CHECK-LABEL: test_vqshrun_n_s64
6912 // CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s64(int64x2_t a)6913 uint32x2_t test_vqshrun_n_s64(int64x2_t a) {
6914 return vqshrun_n_s64(a, 1);
6915 }
6916
6917
6918 // CHECK-LABEL: test_vqsub_s8
6919 // CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s8(int8x8_t a,int8x8_t b)6920 int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) {
6921 return vqsub_s8(a, b);
6922 }
6923
6924 // CHECK-LABEL: test_vqsub_s16
6925 // CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s16(int16x4_t a,int16x4_t b)6926 int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) {
6927 return vqsub_s16(a, b);
6928 }
6929
6930 // CHECK-LABEL: test_vqsub_s32
6931 // CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s32(int32x2_t a,int32x2_t b)6932 int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) {
6933 return vqsub_s32(a, b);
6934 }
6935
6936 // CHECK-LABEL: test_vqsub_s64
6937 // CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s64(int64x1_t a,int64x1_t b)6938 int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) {
6939 return vqsub_s64(a, b);
6940 }
6941
6942 // CHECK-LABEL: test_vqsub_u8
6943 // CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u8(uint8x8_t a,uint8x8_t b)6944 uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) {
6945 return vqsub_u8(a, b);
6946 }
6947
6948 // CHECK-LABEL: test_vqsub_u16
6949 // CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u16(uint16x4_t a,uint16x4_t b)6950 uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) {
6951 return vqsub_u16(a, b);
6952 }
6953
6954 // CHECK-LABEL: test_vqsub_u32
6955 // CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u32(uint32x2_t a,uint32x2_t b)6956 uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) {
6957 return vqsub_u32(a, b);
6958 }
6959
6960 // CHECK-LABEL: test_vqsub_u64
6961 // CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u64(uint64x1_t a,uint64x1_t b)6962 uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) {
6963 return vqsub_u64(a, b);
6964 }
6965
6966 // CHECK-LABEL: test_vqsubq_s8
6967 // CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s8(int8x16_t a,int8x16_t b)6968 int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) {
6969 return vqsubq_s8(a, b);
6970 }
6971
6972 // CHECK-LABEL: test_vqsubq_s16
6973 // CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s16(int16x8_t a,int16x8_t b)6974 int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) {
6975 return vqsubq_s16(a, b);
6976 }
6977
6978 // CHECK-LABEL: test_vqsubq_s32
6979 // CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s32(int32x4_t a,int32x4_t b)6980 int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) {
6981 return vqsubq_s32(a, b);
6982 }
6983
6984 // CHECK-LABEL: test_vqsubq_s64
6985 // CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s64(int64x2_t a,int64x2_t b)6986 int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) {
6987 return vqsubq_s64(a, b);
6988 }
6989
6990 // CHECK-LABEL: test_vqsubq_u8
6991 // CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u8(uint8x16_t a,uint8x16_t b)6992 uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) {
6993 return vqsubq_u8(a, b);
6994 }
6995
6996 // CHECK-LABEL: test_vqsubq_u16
6997 // CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u16(uint16x8_t a,uint16x8_t b)6998 uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) {
6999 return vqsubq_u16(a, b);
7000 }
7001
7002 // CHECK-LABEL: test_vqsubq_u32
7003 // CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u32(uint32x4_t a,uint32x4_t b)7004 uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) {
7005 return vqsubq_u32(a, b);
7006 }
7007
7008 // CHECK-LABEL: test_vqsubq_u64
7009 // CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u64(uint64x2_t a,uint64x2_t b)7010 uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) {
7011 return vqsubq_u64(a, b);
7012 }
7013
7014
7015 // CHECK-LABEL: test_vraddhn_s16
7016 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s16(int16x8_t a,int16x8_t b)7017 int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) {
7018 return vraddhn_s16(a, b);
7019 }
7020
7021 // CHECK-LABEL: test_vraddhn_s32
7022 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s32(int32x4_t a,int32x4_t b)7023 int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) {
7024 return vraddhn_s32(a, b);
7025 }
7026
7027 // CHECK-LABEL: test_vraddhn_s64
7028 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s64(int64x2_t a,int64x2_t b)7029 int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) {
7030 return vraddhn_s64(a, b);
7031 }
7032
7033 // CHECK-LABEL: test_vraddhn_u16
7034 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u16(uint16x8_t a,uint16x8_t b)7035 uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) {
7036 return vraddhn_u16(a, b);
7037 }
7038
7039 // CHECK-LABEL: test_vraddhn_u32
7040 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u32(uint32x4_t a,uint32x4_t b)7041 uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) {
7042 return vraddhn_u32(a, b);
7043 }
7044
7045 // CHECK-LABEL: test_vraddhn_u64
7046 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u64(uint64x2_t a,uint64x2_t b)7047 uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) {
7048 return vraddhn_u64(a, b);
7049 }
7050
7051
7052 // CHECK-LABEL: test_vrecpe_f32
7053 // CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_f32(float32x2_t a)7054 float32x2_t test_vrecpe_f32(float32x2_t a) {
7055 return vrecpe_f32(a);
7056 }
7057
7058 // CHECK-LABEL: test_vrecpe_u32
7059 // CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_u32(uint32x2_t a)7060 uint32x2_t test_vrecpe_u32(uint32x2_t a) {
7061 return vrecpe_u32(a);
7062 }
7063
7064 // CHECK-LABEL: test_vrecpeq_f32
7065 // CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_f32(float32x4_t a)7066 float32x4_t test_vrecpeq_f32(float32x4_t a) {
7067 return vrecpeq_f32(a);
7068 }
7069
7070 // CHECK-LABEL: test_vrecpeq_u32
7071 // CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_u32(uint32x4_t a)7072 uint32x4_t test_vrecpeq_u32(uint32x4_t a) {
7073 return vrecpeq_u32(a);
7074 }
7075
7076
7077 // CHECK-LABEL: test_vrecps_f32
7078 // CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrecps_f32(float32x2_t a,float32x2_t b)7079 float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) {
7080 return vrecps_f32(a, b);
7081 }
7082
7083 // CHECK-LABEL: test_vrecpsq_f32
7084 // CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpsq_f32(float32x4_t a,float32x4_t b)7085 float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) {
7086 return vrecpsq_f32(a, b);
7087 }
7088
7089
7090 // CHECK-LABEL: test_vreinterpret_s8_s16
test_vreinterpret_s8_s16(int16x4_t a)7091 int8x8_t test_vreinterpret_s8_s16(int16x4_t a) {
7092 return vreinterpret_s8_s16(a);
7093 }
7094
7095 // CHECK-LABEL: test_vreinterpret_s8_s32
test_vreinterpret_s8_s32(int32x2_t a)7096 int8x8_t test_vreinterpret_s8_s32(int32x2_t a) {
7097 return vreinterpret_s8_s32(a);
7098 }
7099
7100 // CHECK-LABEL: test_vreinterpret_s8_s64
test_vreinterpret_s8_s64(int64x1_t a)7101 int8x8_t test_vreinterpret_s8_s64(int64x1_t a) {
7102 return vreinterpret_s8_s64(a);
7103 }
7104
7105 // CHECK-LABEL: test_vreinterpret_s8_u8
test_vreinterpret_s8_u8(uint8x8_t a)7106 int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) {
7107 return vreinterpret_s8_u8(a);
7108 }
7109
7110 // CHECK-LABEL: test_vreinterpret_s8_u16
test_vreinterpret_s8_u16(uint16x4_t a)7111 int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) {
7112 return vreinterpret_s8_u16(a);
7113 }
7114
7115 // CHECK-LABEL: test_vreinterpret_s8_u32
test_vreinterpret_s8_u32(uint32x2_t a)7116 int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) {
7117 return vreinterpret_s8_u32(a);
7118 }
7119
7120 // CHECK-LABEL: test_vreinterpret_s8_u64
test_vreinterpret_s8_u64(uint64x1_t a)7121 int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) {
7122 return vreinterpret_s8_u64(a);
7123 }
7124
7125 // CHECK-LABEL: test_vreinterpret_s8_f16
test_vreinterpret_s8_f16(float16x4_t a)7126 int8x8_t test_vreinterpret_s8_f16(float16x4_t a) {
7127 return vreinterpret_s8_f16(a);
7128 }
7129
7130 // CHECK-LABEL: test_vreinterpret_s8_f32
test_vreinterpret_s8_f32(float32x2_t a)7131 int8x8_t test_vreinterpret_s8_f32(float32x2_t a) {
7132 return vreinterpret_s8_f32(a);
7133 }
7134
7135 // CHECK-LABEL: test_vreinterpret_s8_p8
test_vreinterpret_s8_p8(poly8x8_t a)7136 int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) {
7137 return vreinterpret_s8_p8(a);
7138 }
7139
7140 // CHECK-LABEL: test_vreinterpret_s8_p16
test_vreinterpret_s8_p16(poly16x4_t a)7141 int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) {
7142 return vreinterpret_s8_p16(a);
7143 }
7144
7145 // CHECK-LABEL: test_vreinterpret_s16_s8
test_vreinterpret_s16_s8(int8x8_t a)7146 int16x4_t test_vreinterpret_s16_s8(int8x8_t a) {
7147 return vreinterpret_s16_s8(a);
7148 }
7149
7150 // CHECK-LABEL: test_vreinterpret_s16_s32
test_vreinterpret_s16_s32(int32x2_t a)7151 int16x4_t test_vreinterpret_s16_s32(int32x2_t a) {
7152 return vreinterpret_s16_s32(a);
7153 }
7154
7155 // CHECK-LABEL: test_vreinterpret_s16_s64
test_vreinterpret_s16_s64(int64x1_t a)7156 int16x4_t test_vreinterpret_s16_s64(int64x1_t a) {
7157 return vreinterpret_s16_s64(a);
7158 }
7159
7160 // CHECK-LABEL: test_vreinterpret_s16_u8
test_vreinterpret_s16_u8(uint8x8_t a)7161 int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) {
7162 return vreinterpret_s16_u8(a);
7163 }
7164
7165 // CHECK-LABEL: test_vreinterpret_s16_u16
test_vreinterpret_s16_u16(uint16x4_t a)7166 int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) {
7167 return vreinterpret_s16_u16(a);
7168 }
7169
7170 // CHECK-LABEL: test_vreinterpret_s16_u32
test_vreinterpret_s16_u32(uint32x2_t a)7171 int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) {
7172 return vreinterpret_s16_u32(a);
7173 }
7174
7175 // CHECK-LABEL: test_vreinterpret_s16_u64
test_vreinterpret_s16_u64(uint64x1_t a)7176 int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) {
7177 return vreinterpret_s16_u64(a);
7178 }
7179
7180 // CHECK-LABEL: test_vreinterpret_s16_f16
test_vreinterpret_s16_f16(float16x4_t a)7181 int16x4_t test_vreinterpret_s16_f16(float16x4_t a) {
7182 return vreinterpret_s16_f16(a);
7183 }
7184
7185 // CHECK-LABEL: test_vreinterpret_s16_f32
test_vreinterpret_s16_f32(float32x2_t a)7186 int16x4_t test_vreinterpret_s16_f32(float32x2_t a) {
7187 return vreinterpret_s16_f32(a);
7188 }
7189
7190 // CHECK-LABEL: test_vreinterpret_s16_p8
test_vreinterpret_s16_p8(poly8x8_t a)7191 int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) {
7192 return vreinterpret_s16_p8(a);
7193 }
7194
7195 // CHECK-LABEL: test_vreinterpret_s16_p16
test_vreinterpret_s16_p16(poly16x4_t a)7196 int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) {
7197 return vreinterpret_s16_p16(a);
7198 }
7199
7200 // CHECK-LABEL: test_vreinterpret_s32_s8
test_vreinterpret_s32_s8(int8x8_t a)7201 int32x2_t test_vreinterpret_s32_s8(int8x8_t a) {
7202 return vreinterpret_s32_s8(a);
7203 }
7204
7205 // CHECK-LABEL: test_vreinterpret_s32_s16
test_vreinterpret_s32_s16(int16x4_t a)7206 int32x2_t test_vreinterpret_s32_s16(int16x4_t a) {
7207 return vreinterpret_s32_s16(a);
7208 }
7209
7210 // CHECK-LABEL: test_vreinterpret_s32_s64
test_vreinterpret_s32_s64(int64x1_t a)7211 int32x2_t test_vreinterpret_s32_s64(int64x1_t a) {
7212 return vreinterpret_s32_s64(a);
7213 }
7214
7215 // CHECK-LABEL: test_vreinterpret_s32_u8
test_vreinterpret_s32_u8(uint8x8_t a)7216 int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) {
7217 return vreinterpret_s32_u8(a);
7218 }
7219
7220 // CHECK-LABEL: test_vreinterpret_s32_u16
test_vreinterpret_s32_u16(uint16x4_t a)7221 int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) {
7222 return vreinterpret_s32_u16(a);
7223 }
7224
7225 // CHECK-LABEL: test_vreinterpret_s32_u32
test_vreinterpret_s32_u32(uint32x2_t a)7226 int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) {
7227 return vreinterpret_s32_u32(a);
7228 }
7229
7230 // CHECK-LABEL: test_vreinterpret_s32_u64
test_vreinterpret_s32_u64(uint64x1_t a)7231 int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) {
7232 return vreinterpret_s32_u64(a);
7233 }
7234
7235 // CHECK-LABEL: test_vreinterpret_s32_f16
test_vreinterpret_s32_f16(float16x4_t a)7236 int32x2_t test_vreinterpret_s32_f16(float16x4_t a) {
7237 return vreinterpret_s32_f16(a);
7238 }
7239
7240 // CHECK-LABEL: test_vreinterpret_s32_f32
test_vreinterpret_s32_f32(float32x2_t a)7241 int32x2_t test_vreinterpret_s32_f32(float32x2_t a) {
7242 return vreinterpret_s32_f32(a);
7243 }
7244
7245 // CHECK-LABEL: test_vreinterpret_s32_p8
test_vreinterpret_s32_p8(poly8x8_t a)7246 int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) {
7247 return vreinterpret_s32_p8(a);
7248 }
7249
7250 // CHECK-LABEL: test_vreinterpret_s32_p16
test_vreinterpret_s32_p16(poly16x4_t a)7251 int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) {
7252 return vreinterpret_s32_p16(a);
7253 }
7254
7255 // CHECK-LABEL: test_vreinterpret_s64_s8
test_vreinterpret_s64_s8(int8x8_t a)7256 int64x1_t test_vreinterpret_s64_s8(int8x8_t a) {
7257 return vreinterpret_s64_s8(a);
7258 }
7259
7260 // CHECK-LABEL: test_vreinterpret_s64_s16
test_vreinterpret_s64_s16(int16x4_t a)7261 int64x1_t test_vreinterpret_s64_s16(int16x4_t a) {
7262 return vreinterpret_s64_s16(a);
7263 }
7264
7265 // CHECK-LABEL: test_vreinterpret_s64_s32
test_vreinterpret_s64_s32(int32x2_t a)7266 int64x1_t test_vreinterpret_s64_s32(int32x2_t a) {
7267 return vreinterpret_s64_s32(a);
7268 }
7269
7270 // CHECK-LABEL: test_vreinterpret_s64_u8
test_vreinterpret_s64_u8(uint8x8_t a)7271 int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) {
7272 return vreinterpret_s64_u8(a);
7273 }
7274
7275 // CHECK-LABEL: test_vreinterpret_s64_u16
test_vreinterpret_s64_u16(uint16x4_t a)7276 int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) {
7277 return vreinterpret_s64_u16(a);
7278 }
7279
7280 // CHECK-LABEL: test_vreinterpret_s64_u32
test_vreinterpret_s64_u32(uint32x2_t a)7281 int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) {
7282 return vreinterpret_s64_u32(a);
7283 }
7284
7285 // CHECK-LABEL: test_vreinterpret_s64_u64
test_vreinterpret_s64_u64(uint64x1_t a)7286 int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) {
7287 return vreinterpret_s64_u64(a);
7288 }
7289
7290 // CHECK-LABEL: test_vreinterpret_s64_f16
test_vreinterpret_s64_f16(float16x4_t a)7291 int64x1_t test_vreinterpret_s64_f16(float16x4_t a) {
7292 return vreinterpret_s64_f16(a);
7293 }
7294
7295 // CHECK-LABEL: test_vreinterpret_s64_f32
test_vreinterpret_s64_f32(float32x2_t a)7296 int64x1_t test_vreinterpret_s64_f32(float32x2_t a) {
7297 return vreinterpret_s64_f32(a);
7298 }
7299
7300 // CHECK-LABEL: test_vreinterpret_s64_p8
test_vreinterpret_s64_p8(poly8x8_t a)7301 int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) {
7302 return vreinterpret_s64_p8(a);
7303 }
7304
7305 // CHECK-LABEL: test_vreinterpret_s64_p16
test_vreinterpret_s64_p16(poly16x4_t a)7306 int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) {
7307 return vreinterpret_s64_p16(a);
7308 }
7309
7310 // CHECK-LABEL: test_vreinterpret_u8_s8
test_vreinterpret_u8_s8(int8x8_t a)7311 uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) {
7312 return vreinterpret_u8_s8(a);
7313 }
7314
7315 // CHECK-LABEL: test_vreinterpret_u8_s16
test_vreinterpret_u8_s16(int16x4_t a)7316 uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) {
7317 return vreinterpret_u8_s16(a);
7318 }
7319
7320 // CHECK-LABEL: test_vreinterpret_u8_s32
test_vreinterpret_u8_s32(int32x2_t a)7321 uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) {
7322 return vreinterpret_u8_s32(a);
7323 }
7324
7325 // CHECK-LABEL: test_vreinterpret_u8_s64
test_vreinterpret_u8_s64(int64x1_t a)7326 uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) {
7327 return vreinterpret_u8_s64(a);
7328 }
7329
7330 // CHECK-LABEL: test_vreinterpret_u8_u16
test_vreinterpret_u8_u16(uint16x4_t a)7331 uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) {
7332 return vreinterpret_u8_u16(a);
7333 }
7334
7335 // CHECK-LABEL: test_vreinterpret_u8_u32
test_vreinterpret_u8_u32(uint32x2_t a)7336 uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) {
7337 return vreinterpret_u8_u32(a);
7338 }
7339
7340 // CHECK-LABEL: test_vreinterpret_u8_u64
test_vreinterpret_u8_u64(uint64x1_t a)7341 uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) {
7342 return vreinterpret_u8_u64(a);
7343 }
7344
7345 // CHECK-LABEL: test_vreinterpret_u8_f16
test_vreinterpret_u8_f16(float16x4_t a)7346 uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) {
7347 return vreinterpret_u8_f16(a);
7348 }
7349
7350 // CHECK-LABEL: test_vreinterpret_u8_f32
test_vreinterpret_u8_f32(float32x2_t a)7351 uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) {
7352 return vreinterpret_u8_f32(a);
7353 }
7354
7355 // CHECK-LABEL: test_vreinterpret_u8_p8
test_vreinterpret_u8_p8(poly8x8_t a)7356 uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) {
7357 return vreinterpret_u8_p8(a);
7358 }
7359
7360 // CHECK-LABEL: test_vreinterpret_u8_p16
test_vreinterpret_u8_p16(poly16x4_t a)7361 uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) {
7362 return vreinterpret_u8_p16(a);
7363 }
7364
7365 // CHECK-LABEL: test_vreinterpret_u16_s8
test_vreinterpret_u16_s8(int8x8_t a)7366 uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) {
7367 return vreinterpret_u16_s8(a);
7368 }
7369
7370 // CHECK-LABEL: test_vreinterpret_u16_s16
test_vreinterpret_u16_s16(int16x4_t a)7371 uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) {
7372 return vreinterpret_u16_s16(a);
7373 }
7374
7375 // CHECK-LABEL: test_vreinterpret_u16_s32
test_vreinterpret_u16_s32(int32x2_t a)7376 uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) {
7377 return vreinterpret_u16_s32(a);
7378 }
7379
7380 // CHECK-LABEL: test_vreinterpret_u16_s64
test_vreinterpret_u16_s64(int64x1_t a)7381 uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) {
7382 return vreinterpret_u16_s64(a);
7383 }
7384
7385 // CHECK-LABEL: test_vreinterpret_u16_u8
test_vreinterpret_u16_u8(uint8x8_t a)7386 uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) {
7387 return vreinterpret_u16_u8(a);
7388 }
7389
7390 // CHECK-LABEL: test_vreinterpret_u16_u32
test_vreinterpret_u16_u32(uint32x2_t a)7391 uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) {
7392 return vreinterpret_u16_u32(a);
7393 }
7394
7395 // CHECK-LABEL: test_vreinterpret_u16_u64
test_vreinterpret_u16_u64(uint64x1_t a)7396 uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) {
7397 return vreinterpret_u16_u64(a);
7398 }
7399
7400 // CHECK-LABEL: test_vreinterpret_u16_f16
test_vreinterpret_u16_f16(float16x4_t a)7401 uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) {
7402 return vreinterpret_u16_f16(a);
7403 }
7404
7405 // CHECK-LABEL: test_vreinterpret_u16_f32
test_vreinterpret_u16_f32(float32x2_t a)7406 uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) {
7407 return vreinterpret_u16_f32(a);
7408 }
7409
7410 // CHECK-LABEL: test_vreinterpret_u16_p8
test_vreinterpret_u16_p8(poly8x8_t a)7411 uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) {
7412 return vreinterpret_u16_p8(a);
7413 }
7414
7415 // CHECK-LABEL: test_vreinterpret_u16_p16
test_vreinterpret_u16_p16(poly16x4_t a)7416 uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) {
7417 return vreinterpret_u16_p16(a);
7418 }
7419
7420 // CHECK-LABEL: test_vreinterpret_u32_s8
test_vreinterpret_u32_s8(int8x8_t a)7421 uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) {
7422 return vreinterpret_u32_s8(a);
7423 }
7424
7425 // CHECK-LABEL: test_vreinterpret_u32_s16
test_vreinterpret_u32_s16(int16x4_t a)7426 uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) {
7427 return vreinterpret_u32_s16(a);
7428 }
7429
7430 // CHECK-LABEL: test_vreinterpret_u32_s32
test_vreinterpret_u32_s32(int32x2_t a)7431 uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) {
7432 return vreinterpret_u32_s32(a);
7433 }
7434
7435 // CHECK-LABEL: test_vreinterpret_u32_s64
test_vreinterpret_u32_s64(int64x1_t a)7436 uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) {
7437 return vreinterpret_u32_s64(a);
7438 }
7439
7440 // CHECK-LABEL: test_vreinterpret_u32_u8
test_vreinterpret_u32_u8(uint8x8_t a)7441 uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) {
7442 return vreinterpret_u32_u8(a);
7443 }
7444
7445 // CHECK-LABEL: test_vreinterpret_u32_u16
test_vreinterpret_u32_u16(uint16x4_t a)7446 uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) {
7447 return vreinterpret_u32_u16(a);
7448 }
7449
7450 // CHECK-LABEL: test_vreinterpret_u32_u64
test_vreinterpret_u32_u64(uint64x1_t a)7451 uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) {
7452 return vreinterpret_u32_u64(a);
7453 }
7454
7455 // CHECK-LABEL: test_vreinterpret_u32_f16
test_vreinterpret_u32_f16(float16x4_t a)7456 uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) {
7457 return vreinterpret_u32_f16(a);
7458 }
7459
7460 // CHECK-LABEL: test_vreinterpret_u32_f32
test_vreinterpret_u32_f32(float32x2_t a)7461 uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) {
7462 return vreinterpret_u32_f32(a);
7463 }
7464
7465 // CHECK-LABEL: test_vreinterpret_u32_p8
test_vreinterpret_u32_p8(poly8x8_t a)7466 uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) {
7467 return vreinterpret_u32_p8(a);
7468 }
7469
7470 // CHECK-LABEL: test_vreinterpret_u32_p16
test_vreinterpret_u32_p16(poly16x4_t a)7471 uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) {
7472 return vreinterpret_u32_p16(a);
7473 }
7474
7475 // CHECK-LABEL: test_vreinterpret_u64_s8
test_vreinterpret_u64_s8(int8x8_t a)7476 uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) {
7477 return vreinterpret_u64_s8(a);
7478 }
7479
7480 // CHECK-LABEL: test_vreinterpret_u64_s16
test_vreinterpret_u64_s16(int16x4_t a)7481 uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) {
7482 return vreinterpret_u64_s16(a);
7483 }
7484
7485 // CHECK-LABEL: test_vreinterpret_u64_s32
test_vreinterpret_u64_s32(int32x2_t a)7486 uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) {
7487 return vreinterpret_u64_s32(a);
7488 }
7489
7490 // CHECK-LABEL: test_vreinterpret_u64_s64
test_vreinterpret_u64_s64(int64x1_t a)7491 uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) {
7492 return vreinterpret_u64_s64(a);
7493 }
7494
7495 // CHECK-LABEL: test_vreinterpret_u64_u8
test_vreinterpret_u64_u8(uint8x8_t a)7496 uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) {
7497 return vreinterpret_u64_u8(a);
7498 }
7499
7500 // CHECK-LABEL: test_vreinterpret_u64_u16
test_vreinterpret_u64_u16(uint16x4_t a)7501 uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) {
7502 return vreinterpret_u64_u16(a);
7503 }
7504
7505 // CHECK-LABEL: test_vreinterpret_u64_u32
test_vreinterpret_u64_u32(uint32x2_t a)7506 uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) {
7507 return vreinterpret_u64_u32(a);
7508 }
7509
7510 // CHECK-LABEL: test_vreinterpret_u64_f16
test_vreinterpret_u64_f16(float16x4_t a)7511 uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) {
7512 return vreinterpret_u64_f16(a);
7513 }
7514
7515 // CHECK-LABEL: test_vreinterpret_u64_f32
test_vreinterpret_u64_f32(float32x2_t a)7516 uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) {
7517 return vreinterpret_u64_f32(a);
7518 }
7519
7520 // CHECK-LABEL: test_vreinterpret_u64_p8
test_vreinterpret_u64_p8(poly8x8_t a)7521 uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) {
7522 return vreinterpret_u64_p8(a);
7523 }
7524
7525 // CHECK-LABEL: test_vreinterpret_u64_p16
test_vreinterpret_u64_p16(poly16x4_t a)7526 uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) {
7527 return vreinterpret_u64_p16(a);
7528 }
7529
7530 // CHECK-LABEL: test_vreinterpret_f16_s8
test_vreinterpret_f16_s8(int8x8_t a)7531 float16x4_t test_vreinterpret_f16_s8(int8x8_t a) {
7532 return vreinterpret_f16_s8(a);
7533 }
7534
7535 // CHECK-LABEL: test_vreinterpret_f16_s16
test_vreinterpret_f16_s16(int16x4_t a)7536 float16x4_t test_vreinterpret_f16_s16(int16x4_t a) {
7537 return vreinterpret_f16_s16(a);
7538 }
7539
7540 // CHECK-LABEL: test_vreinterpret_f16_s32
test_vreinterpret_f16_s32(int32x2_t a)7541 float16x4_t test_vreinterpret_f16_s32(int32x2_t a) {
7542 return vreinterpret_f16_s32(a);
7543 }
7544
7545 // CHECK-LABEL: test_vreinterpret_f16_s64
test_vreinterpret_f16_s64(int64x1_t a)7546 float16x4_t test_vreinterpret_f16_s64(int64x1_t a) {
7547 return vreinterpret_f16_s64(a);
7548 }
7549
7550 // CHECK-LABEL: test_vreinterpret_f16_u8
test_vreinterpret_f16_u8(uint8x8_t a)7551 float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) {
7552 return vreinterpret_f16_u8(a);
7553 }
7554
7555 // CHECK-LABEL: test_vreinterpret_f16_u16
test_vreinterpret_f16_u16(uint16x4_t a)7556 float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) {
7557 return vreinterpret_f16_u16(a);
7558 }
7559
7560 // CHECK-LABEL: test_vreinterpret_f16_u32
test_vreinterpret_f16_u32(uint32x2_t a)7561 float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) {
7562 return vreinterpret_f16_u32(a);
7563 }
7564
7565 // CHECK-LABEL: test_vreinterpret_f16_u64
test_vreinterpret_f16_u64(uint64x1_t a)7566 float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) {
7567 return vreinterpret_f16_u64(a);
7568 }
7569
7570 // CHECK-LABEL: test_vreinterpret_f16_f32
test_vreinterpret_f16_f32(float32x2_t a)7571 float16x4_t test_vreinterpret_f16_f32(float32x2_t a) {
7572 return vreinterpret_f16_f32(a);
7573 }
7574
7575 // CHECK-LABEL: test_vreinterpret_f16_p8
test_vreinterpret_f16_p8(poly8x8_t a)7576 float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) {
7577 return vreinterpret_f16_p8(a);
7578 }
7579
7580 // CHECK-LABEL: test_vreinterpret_f16_p16
test_vreinterpret_f16_p16(poly16x4_t a)7581 float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) {
7582 return vreinterpret_f16_p16(a);
7583 }
7584
7585 // CHECK-LABEL: test_vreinterpret_f32_s8
test_vreinterpret_f32_s8(int8x8_t a)7586 float32x2_t test_vreinterpret_f32_s8(int8x8_t a) {
7587 return vreinterpret_f32_s8(a);
7588 }
7589
7590 // CHECK-LABEL: test_vreinterpret_f32_s16
test_vreinterpret_f32_s16(int16x4_t a)7591 float32x2_t test_vreinterpret_f32_s16(int16x4_t a) {
7592 return vreinterpret_f32_s16(a);
7593 }
7594
7595 // CHECK-LABEL: test_vreinterpret_f32_s32
test_vreinterpret_f32_s32(int32x2_t a)7596 float32x2_t test_vreinterpret_f32_s32(int32x2_t a) {
7597 return vreinterpret_f32_s32(a);
7598 }
7599
7600 // CHECK-LABEL: test_vreinterpret_f32_s64
test_vreinterpret_f32_s64(int64x1_t a)7601 float32x2_t test_vreinterpret_f32_s64(int64x1_t a) {
7602 return vreinterpret_f32_s64(a);
7603 }
7604
7605 // CHECK-LABEL: test_vreinterpret_f32_u8
test_vreinterpret_f32_u8(uint8x8_t a)7606 float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) {
7607 return vreinterpret_f32_u8(a);
7608 }
7609
7610 // CHECK-LABEL: test_vreinterpret_f32_u16
test_vreinterpret_f32_u16(uint16x4_t a)7611 float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) {
7612 return vreinterpret_f32_u16(a);
7613 }
7614
7615 // CHECK-LABEL: test_vreinterpret_f32_u32
test_vreinterpret_f32_u32(uint32x2_t a)7616 float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) {
7617 return vreinterpret_f32_u32(a);
7618 }
7619
7620 // CHECK-LABEL: test_vreinterpret_f32_u64
test_vreinterpret_f32_u64(uint64x1_t a)7621 float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) {
7622 return vreinterpret_f32_u64(a);
7623 }
7624
7625 // CHECK-LABEL: test_vreinterpret_f32_f16
test_vreinterpret_f32_f16(float16x4_t a)7626 float32x2_t test_vreinterpret_f32_f16(float16x4_t a) {
7627 return vreinterpret_f32_f16(a);
7628 }
7629
7630 // CHECK-LABEL: test_vreinterpret_f32_p8
test_vreinterpret_f32_p8(poly8x8_t a)7631 float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) {
7632 return vreinterpret_f32_p8(a);
7633 }
7634
7635 // CHECK-LABEL: test_vreinterpret_f32_p16
test_vreinterpret_f32_p16(poly16x4_t a)7636 float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) {
7637 return vreinterpret_f32_p16(a);
7638 }
7639
7640 // CHECK-LABEL: test_vreinterpret_p8_s8
test_vreinterpret_p8_s8(int8x8_t a)7641 poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) {
7642 return vreinterpret_p8_s8(a);
7643 }
7644
7645 // CHECK-LABEL: test_vreinterpret_p8_s16
test_vreinterpret_p8_s16(int16x4_t a)7646 poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) {
7647 return vreinterpret_p8_s16(a);
7648 }
7649
7650 // CHECK-LABEL: test_vreinterpret_p8_s32
test_vreinterpret_p8_s32(int32x2_t a)7651 poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) {
7652 return vreinterpret_p8_s32(a);
7653 }
7654
7655 // CHECK-LABEL: test_vreinterpret_p8_s64
test_vreinterpret_p8_s64(int64x1_t a)7656 poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) {
7657 return vreinterpret_p8_s64(a);
7658 }
7659
7660 // CHECK-LABEL: test_vreinterpret_p8_u8
test_vreinterpret_p8_u8(uint8x8_t a)7661 poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) {
7662 return vreinterpret_p8_u8(a);
7663 }
7664
7665 // CHECK-LABEL: test_vreinterpret_p8_u16
test_vreinterpret_p8_u16(uint16x4_t a)7666 poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) {
7667 return vreinterpret_p8_u16(a);
7668 }
7669
7670 // CHECK-LABEL: test_vreinterpret_p8_u32
test_vreinterpret_p8_u32(uint32x2_t a)7671 poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) {
7672 return vreinterpret_p8_u32(a);
7673 }
7674
7675 // CHECK-LABEL: test_vreinterpret_p8_u64
test_vreinterpret_p8_u64(uint64x1_t a)7676 poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) {
7677 return vreinterpret_p8_u64(a);
7678 }
7679
7680 // CHECK-LABEL: test_vreinterpret_p8_f16
test_vreinterpret_p8_f16(float16x4_t a)7681 poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) {
7682 return vreinterpret_p8_f16(a);
7683 }
7684
7685 // CHECK-LABEL: test_vreinterpret_p8_f32
test_vreinterpret_p8_f32(float32x2_t a)7686 poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) {
7687 return vreinterpret_p8_f32(a);
7688 }
7689
7690 // CHECK-LABEL: test_vreinterpret_p8_p16
test_vreinterpret_p8_p16(poly16x4_t a)7691 poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) {
7692 return vreinterpret_p8_p16(a);
7693 }
7694
7695 // CHECK-LABEL: test_vreinterpret_p16_s8
test_vreinterpret_p16_s8(int8x8_t a)7696 poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) {
7697 return vreinterpret_p16_s8(a);
7698 }
7699
7700 // CHECK-LABEL: test_vreinterpret_p16_s16
test_vreinterpret_p16_s16(int16x4_t a)7701 poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) {
7702 return vreinterpret_p16_s16(a);
7703 }
7704
7705 // CHECK-LABEL: test_vreinterpret_p16_s32
test_vreinterpret_p16_s32(int32x2_t a)7706 poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) {
7707 return vreinterpret_p16_s32(a);
7708 }
7709
7710 // CHECK-LABEL: test_vreinterpret_p16_s64
test_vreinterpret_p16_s64(int64x1_t a)7711 poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) {
7712 return vreinterpret_p16_s64(a);
7713 }
7714
7715 // CHECK-LABEL: test_vreinterpret_p16_u8
test_vreinterpret_p16_u8(uint8x8_t a)7716 poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) {
7717 return vreinterpret_p16_u8(a);
7718 }
7719
7720 // CHECK-LABEL: test_vreinterpret_p16_u16
test_vreinterpret_p16_u16(uint16x4_t a)7721 poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) {
7722 return vreinterpret_p16_u16(a);
7723 }
7724
7725 // CHECK-LABEL: test_vreinterpret_p16_u32
test_vreinterpret_p16_u32(uint32x2_t a)7726 poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) {
7727 return vreinterpret_p16_u32(a);
7728 }
7729
7730 // CHECK-LABEL: test_vreinterpret_p16_u64
test_vreinterpret_p16_u64(uint64x1_t a)7731 poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) {
7732 return vreinterpret_p16_u64(a);
7733 }
7734
7735 // CHECK-LABEL: test_vreinterpret_p16_f16
test_vreinterpret_p16_f16(float16x4_t a)7736 poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) {
7737 return vreinterpret_p16_f16(a);
7738 }
7739
7740 // CHECK-LABEL: test_vreinterpret_p16_f32
test_vreinterpret_p16_f32(float32x2_t a)7741 poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) {
7742 return vreinterpret_p16_f32(a);
7743 }
7744
7745 // CHECK-LABEL: test_vreinterpret_p16_p8
test_vreinterpret_p16_p8(poly8x8_t a)7746 poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) {
7747 return vreinterpret_p16_p8(a);
7748 }
7749
7750 // CHECK-LABEL: test_vreinterpretq_s8_s16
test_vreinterpretq_s8_s16(int16x8_t a)7751 int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) {
7752 return vreinterpretq_s8_s16(a);
7753 }
7754
7755 // CHECK-LABEL: test_vreinterpretq_s8_s32
test_vreinterpretq_s8_s32(int32x4_t a)7756 int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) {
7757 return vreinterpretq_s8_s32(a);
7758 }
7759
7760 // CHECK-LABEL: test_vreinterpretq_s8_s64
test_vreinterpretq_s8_s64(int64x2_t a)7761 int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) {
7762 return vreinterpretq_s8_s64(a);
7763 }
7764
7765 // CHECK-LABEL: test_vreinterpretq_s8_u8
test_vreinterpretq_s8_u8(uint8x16_t a)7766 int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) {
7767 return vreinterpretq_s8_u8(a);
7768 }
7769
7770 // CHECK-LABEL: test_vreinterpretq_s8_u16
test_vreinterpretq_s8_u16(uint16x8_t a)7771 int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) {
7772 return vreinterpretq_s8_u16(a);
7773 }
7774
7775 // CHECK-LABEL: test_vreinterpretq_s8_u32
test_vreinterpretq_s8_u32(uint32x4_t a)7776 int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) {
7777 return vreinterpretq_s8_u32(a);
7778 }
7779
7780 // CHECK-LABEL: test_vreinterpretq_s8_u64
test_vreinterpretq_s8_u64(uint64x2_t a)7781 int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) {
7782 return vreinterpretq_s8_u64(a);
7783 }
7784
7785 // CHECK-LABEL: test_vreinterpretq_s8_f16
test_vreinterpretq_s8_f16(float16x8_t a)7786 int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) {
7787 return vreinterpretq_s8_f16(a);
7788 }
7789
7790 // CHECK-LABEL: test_vreinterpretq_s8_f32
test_vreinterpretq_s8_f32(float32x4_t a)7791 int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) {
7792 return vreinterpretq_s8_f32(a);
7793 }
7794
7795 // CHECK-LABEL: test_vreinterpretq_s8_p8
test_vreinterpretq_s8_p8(poly8x16_t a)7796 int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) {
7797 return vreinterpretq_s8_p8(a);
7798 }
7799
7800 // CHECK-LABEL: test_vreinterpretq_s8_p16
test_vreinterpretq_s8_p16(poly16x8_t a)7801 int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) {
7802 return vreinterpretq_s8_p16(a);
7803 }
7804
7805 // CHECK-LABEL: test_vreinterpretq_s16_s8
test_vreinterpretq_s16_s8(int8x16_t a)7806 int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) {
7807 return vreinterpretq_s16_s8(a);
7808 }
7809
7810 // CHECK-LABEL: test_vreinterpretq_s16_s32
test_vreinterpretq_s16_s32(int32x4_t a)7811 int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) {
7812 return vreinterpretq_s16_s32(a);
7813 }
7814
7815 // CHECK-LABEL: test_vreinterpretq_s16_s64
test_vreinterpretq_s16_s64(int64x2_t a)7816 int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) {
7817 return vreinterpretq_s16_s64(a);
7818 }
7819
7820 // CHECK-LABEL: test_vreinterpretq_s16_u8
test_vreinterpretq_s16_u8(uint8x16_t a)7821 int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) {
7822 return vreinterpretq_s16_u8(a);
7823 }
7824
7825 // CHECK-LABEL: test_vreinterpretq_s16_u16
test_vreinterpretq_s16_u16(uint16x8_t a)7826 int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) {
7827 return vreinterpretq_s16_u16(a);
7828 }
7829
7830 // CHECK-LABEL: test_vreinterpretq_s16_u32
test_vreinterpretq_s16_u32(uint32x4_t a)7831 int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) {
7832 return vreinterpretq_s16_u32(a);
7833 }
7834
7835 // CHECK-LABEL: test_vreinterpretq_s16_u64
test_vreinterpretq_s16_u64(uint64x2_t a)7836 int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) {
7837 return vreinterpretq_s16_u64(a);
7838 }
7839
7840 // CHECK-LABEL: test_vreinterpretq_s16_f16
test_vreinterpretq_s16_f16(float16x8_t a)7841 int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) {
7842 return vreinterpretq_s16_f16(a);
7843 }
7844
7845 // CHECK-LABEL: test_vreinterpretq_s16_f32
test_vreinterpretq_s16_f32(float32x4_t a)7846 int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) {
7847 return vreinterpretq_s16_f32(a);
7848 }
7849
7850 // CHECK-LABEL: test_vreinterpretq_s16_p8
test_vreinterpretq_s16_p8(poly8x16_t a)7851 int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) {
7852 return vreinterpretq_s16_p8(a);
7853 }
7854
7855 // CHECK-LABEL: test_vreinterpretq_s16_p16
test_vreinterpretq_s16_p16(poly16x8_t a)7856 int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) {
7857 return vreinterpretq_s16_p16(a);
7858 }
7859
7860 // CHECK-LABEL: test_vreinterpretq_s32_s8
test_vreinterpretq_s32_s8(int8x16_t a)7861 int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) {
7862 return vreinterpretq_s32_s8(a);
7863 }
7864
7865 // CHECK-LABEL: test_vreinterpretq_s32_s16
test_vreinterpretq_s32_s16(int16x8_t a)7866 int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) {
7867 return vreinterpretq_s32_s16(a);
7868 }
7869
7870 // CHECK-LABEL: test_vreinterpretq_s32_s64
test_vreinterpretq_s32_s64(int64x2_t a)7871 int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) {
7872 return vreinterpretq_s32_s64(a);
7873 }
7874
7875 // CHECK-LABEL: test_vreinterpretq_s32_u8
test_vreinterpretq_s32_u8(uint8x16_t a)7876 int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) {
7877 return vreinterpretq_s32_u8(a);
7878 }
7879
7880 // CHECK-LABEL: test_vreinterpretq_s32_u16
test_vreinterpretq_s32_u16(uint16x8_t a)7881 int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) {
7882 return vreinterpretq_s32_u16(a);
7883 }
7884
7885 // CHECK-LABEL: test_vreinterpretq_s32_u32
test_vreinterpretq_s32_u32(uint32x4_t a)7886 int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) {
7887 return vreinterpretq_s32_u32(a);
7888 }
7889
7890 // CHECK-LABEL: test_vreinterpretq_s32_u64
test_vreinterpretq_s32_u64(uint64x2_t a)7891 int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) {
7892 return vreinterpretq_s32_u64(a);
7893 }
7894
7895 // CHECK-LABEL: test_vreinterpretq_s32_f16
test_vreinterpretq_s32_f16(float16x8_t a)7896 int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) {
7897 return vreinterpretq_s32_f16(a);
7898 }
7899
7900 // CHECK-LABEL: test_vreinterpretq_s32_f32
test_vreinterpretq_s32_f32(float32x4_t a)7901 int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) {
7902 return vreinterpretq_s32_f32(a);
7903 }
7904
7905 // CHECK-LABEL: test_vreinterpretq_s32_p8
test_vreinterpretq_s32_p8(poly8x16_t a)7906 int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) {
7907 return vreinterpretq_s32_p8(a);
7908 }
7909
7910 // CHECK-LABEL: test_vreinterpretq_s32_p16
test_vreinterpretq_s32_p16(poly16x8_t a)7911 int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) {
7912 return vreinterpretq_s32_p16(a);
7913 }
7914
7915 // CHECK-LABEL: test_vreinterpretq_s64_s8
test_vreinterpretq_s64_s8(int8x16_t a)7916 int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) {
7917 return vreinterpretq_s64_s8(a);
7918 }
7919
7920 // CHECK-LABEL: test_vreinterpretq_s64_s16
test_vreinterpretq_s64_s16(int16x8_t a)7921 int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) {
7922 return vreinterpretq_s64_s16(a);
7923 }
7924
7925 // CHECK-LABEL: test_vreinterpretq_s64_s32
test_vreinterpretq_s64_s32(int32x4_t a)7926 int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) {
7927 return vreinterpretq_s64_s32(a);
7928 }
7929
7930 // CHECK-LABEL: test_vreinterpretq_s64_u8
test_vreinterpretq_s64_u8(uint8x16_t a)7931 int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) {
7932 return vreinterpretq_s64_u8(a);
7933 }
7934
7935 // CHECK-LABEL: test_vreinterpretq_s64_u16
test_vreinterpretq_s64_u16(uint16x8_t a)7936 int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) {
7937 return vreinterpretq_s64_u16(a);
7938 }
7939
7940 // CHECK-LABEL: test_vreinterpretq_s64_u32
test_vreinterpretq_s64_u32(uint32x4_t a)7941 int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) {
7942 return vreinterpretq_s64_u32(a);
7943 }
7944
7945 // CHECK-LABEL: test_vreinterpretq_s64_u64
test_vreinterpretq_s64_u64(uint64x2_t a)7946 int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) {
7947 return vreinterpretq_s64_u64(a);
7948 }
7949
7950 // CHECK-LABEL: test_vreinterpretq_s64_f16
test_vreinterpretq_s64_f16(float16x8_t a)7951 int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) {
7952 return vreinterpretq_s64_f16(a);
7953 }
7954
7955 // CHECK-LABEL: test_vreinterpretq_s64_f32
test_vreinterpretq_s64_f32(float32x4_t a)7956 int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) {
7957 return vreinterpretq_s64_f32(a);
7958 }
7959
7960 // CHECK-LABEL: test_vreinterpretq_s64_p8
test_vreinterpretq_s64_p8(poly8x16_t a)7961 int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) {
7962 return vreinterpretq_s64_p8(a);
7963 }
7964
7965 // CHECK-LABEL: test_vreinterpretq_s64_p16
test_vreinterpretq_s64_p16(poly16x8_t a)7966 int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) {
7967 return vreinterpretq_s64_p16(a);
7968 }
7969
7970 // CHECK-LABEL: test_vreinterpretq_u8_s8
test_vreinterpretq_u8_s8(int8x16_t a)7971 uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) {
7972 return vreinterpretq_u8_s8(a);
7973 }
7974
7975 // CHECK-LABEL: test_vreinterpretq_u8_s16
test_vreinterpretq_u8_s16(int16x8_t a)7976 uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) {
7977 return vreinterpretq_u8_s16(a);
7978 }
7979
7980 // CHECK-LABEL: test_vreinterpretq_u8_s32
test_vreinterpretq_u8_s32(int32x4_t a)7981 uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) {
7982 return vreinterpretq_u8_s32(a);
7983 }
7984
7985 // CHECK-LABEL: test_vreinterpretq_u8_s64
test_vreinterpretq_u8_s64(int64x2_t a)7986 uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) {
7987 return vreinterpretq_u8_s64(a);
7988 }
7989
7990 // CHECK-LABEL: test_vreinterpretq_u8_u16
test_vreinterpretq_u8_u16(uint16x8_t a)7991 uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) {
7992 return vreinterpretq_u8_u16(a);
7993 }
7994
7995 // CHECK-LABEL: test_vreinterpretq_u8_u32
test_vreinterpretq_u8_u32(uint32x4_t a)7996 uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) {
7997 return vreinterpretq_u8_u32(a);
7998 }
7999
8000 // CHECK-LABEL: test_vreinterpretq_u8_u64
test_vreinterpretq_u8_u64(uint64x2_t a)8001 uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) {
8002 return vreinterpretq_u8_u64(a);
8003 }
8004
8005 // CHECK-LABEL: test_vreinterpretq_u8_f16
test_vreinterpretq_u8_f16(float16x8_t a)8006 uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) {
8007 return vreinterpretq_u8_f16(a);
8008 }
8009
8010 // CHECK-LABEL: test_vreinterpretq_u8_f32
test_vreinterpretq_u8_f32(float32x4_t a)8011 uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) {
8012 return vreinterpretq_u8_f32(a);
8013 }
8014
8015 // CHECK-LABEL: test_vreinterpretq_u8_p8
test_vreinterpretq_u8_p8(poly8x16_t a)8016 uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) {
8017 return vreinterpretq_u8_p8(a);
8018 }
8019
8020 // CHECK-LABEL: test_vreinterpretq_u8_p16
test_vreinterpretq_u8_p16(poly16x8_t a)8021 uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) {
8022 return vreinterpretq_u8_p16(a);
8023 }
8024
8025 // CHECK-LABEL: test_vreinterpretq_u16_s8
test_vreinterpretq_u16_s8(int8x16_t a)8026 uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) {
8027 return vreinterpretq_u16_s8(a);
8028 }
8029
8030 // CHECK-LABEL: test_vreinterpretq_u16_s16
test_vreinterpretq_u16_s16(int16x8_t a)8031 uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) {
8032 return vreinterpretq_u16_s16(a);
8033 }
8034
8035 // CHECK-LABEL: test_vreinterpretq_u16_s32
test_vreinterpretq_u16_s32(int32x4_t a)8036 uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) {
8037 return vreinterpretq_u16_s32(a);
8038 }
8039
8040 // CHECK-LABEL: test_vreinterpretq_u16_s64
test_vreinterpretq_u16_s64(int64x2_t a)8041 uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) {
8042 return vreinterpretq_u16_s64(a);
8043 }
8044
8045 // CHECK-LABEL: test_vreinterpretq_u16_u8
test_vreinterpretq_u16_u8(uint8x16_t a)8046 uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) {
8047 return vreinterpretq_u16_u8(a);
8048 }
8049
8050 // CHECK-LABEL: test_vreinterpretq_u16_u32
test_vreinterpretq_u16_u32(uint32x4_t a)8051 uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) {
8052 return vreinterpretq_u16_u32(a);
8053 }
8054
8055 // CHECK-LABEL: test_vreinterpretq_u16_u64
test_vreinterpretq_u16_u64(uint64x2_t a)8056 uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) {
8057 return vreinterpretq_u16_u64(a);
8058 }
8059
8060 // CHECK-LABEL: test_vreinterpretq_u16_f16
test_vreinterpretq_u16_f16(float16x8_t a)8061 uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) {
8062 return vreinterpretq_u16_f16(a);
8063 }
8064
8065 // CHECK-LABEL: test_vreinterpretq_u16_f32
test_vreinterpretq_u16_f32(float32x4_t a)8066 uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) {
8067 return vreinterpretq_u16_f32(a);
8068 }
8069
8070 // CHECK-LABEL: test_vreinterpretq_u16_p8
test_vreinterpretq_u16_p8(poly8x16_t a)8071 uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) {
8072 return vreinterpretq_u16_p8(a);
8073 }
8074
8075 // CHECK-LABEL: test_vreinterpretq_u16_p16
test_vreinterpretq_u16_p16(poly16x8_t a)8076 uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) {
8077 return vreinterpretq_u16_p16(a);
8078 }
8079
8080 // CHECK-LABEL: test_vreinterpretq_u32_s8
test_vreinterpretq_u32_s8(int8x16_t a)8081 uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) {
8082 return vreinterpretq_u32_s8(a);
8083 }
8084
8085 // CHECK-LABEL: test_vreinterpretq_u32_s16
test_vreinterpretq_u32_s16(int16x8_t a)8086 uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) {
8087 return vreinterpretq_u32_s16(a);
8088 }
8089
8090 // CHECK-LABEL: test_vreinterpretq_u32_s32
test_vreinterpretq_u32_s32(int32x4_t a)8091 uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) {
8092 return vreinterpretq_u32_s32(a);
8093 }
8094
8095 // CHECK-LABEL: test_vreinterpretq_u32_s64
test_vreinterpretq_u32_s64(int64x2_t a)8096 uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) {
8097 return vreinterpretq_u32_s64(a);
8098 }
8099
8100 // CHECK-LABEL: test_vreinterpretq_u32_u8
test_vreinterpretq_u32_u8(uint8x16_t a)8101 uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) {
8102 return vreinterpretq_u32_u8(a);
8103 }
8104
8105 // CHECK-LABEL: test_vreinterpretq_u32_u16
test_vreinterpretq_u32_u16(uint16x8_t a)8106 uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) {
8107 return vreinterpretq_u32_u16(a);
8108 }
8109
8110 // CHECK-LABEL: test_vreinterpretq_u32_u64
test_vreinterpretq_u32_u64(uint64x2_t a)8111 uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) {
8112 return vreinterpretq_u32_u64(a);
8113 }
8114
8115 // CHECK-LABEL: test_vreinterpretq_u32_f16
test_vreinterpretq_u32_f16(float16x8_t a)8116 uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) {
8117 return vreinterpretq_u32_f16(a);
8118 }
8119
8120 // CHECK-LABEL: test_vreinterpretq_u32_f32
test_vreinterpretq_u32_f32(float32x4_t a)8121 uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) {
8122 return vreinterpretq_u32_f32(a);
8123 }
8124
8125 // CHECK-LABEL: test_vreinterpretq_u32_p8
test_vreinterpretq_u32_p8(poly8x16_t a)8126 uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) {
8127 return vreinterpretq_u32_p8(a);
8128 }
8129
8130 // CHECK-LABEL: test_vreinterpretq_u32_p16
test_vreinterpretq_u32_p16(poly16x8_t a)8131 uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) {
8132 return vreinterpretq_u32_p16(a);
8133 }
8134
8135 // CHECK-LABEL: test_vreinterpretq_u64_s8
test_vreinterpretq_u64_s8(int8x16_t a)8136 uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) {
8137 return vreinterpretq_u64_s8(a);
8138 }
8139
8140 // CHECK-LABEL: test_vreinterpretq_u64_s16
test_vreinterpretq_u64_s16(int16x8_t a)8141 uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) {
8142 return vreinterpretq_u64_s16(a);
8143 }
8144
8145 // CHECK-LABEL: test_vreinterpretq_u64_s32
test_vreinterpretq_u64_s32(int32x4_t a)8146 uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) {
8147 return vreinterpretq_u64_s32(a);
8148 }
8149
8150 // CHECK-LABEL: test_vreinterpretq_u64_s64
test_vreinterpretq_u64_s64(int64x2_t a)8151 uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) {
8152 return vreinterpretq_u64_s64(a);
8153 }
8154
8155 // CHECK-LABEL: test_vreinterpretq_u64_u8
test_vreinterpretq_u64_u8(uint8x16_t a)8156 uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) {
8157 return vreinterpretq_u64_u8(a);
8158 }
8159
8160 // CHECK-LABEL: test_vreinterpretq_u64_u16
test_vreinterpretq_u64_u16(uint16x8_t a)8161 uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) {
8162 return vreinterpretq_u64_u16(a);
8163 }
8164
8165 // CHECK-LABEL: test_vreinterpretq_u64_u32
test_vreinterpretq_u64_u32(uint32x4_t a)8166 uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) {
8167 return vreinterpretq_u64_u32(a);
8168 }
8169
8170 // CHECK-LABEL: test_vreinterpretq_u64_f16
test_vreinterpretq_u64_f16(float16x8_t a)8171 uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) {
8172 return vreinterpretq_u64_f16(a);
8173 }
8174
8175 // CHECK-LABEL: test_vreinterpretq_u64_f32
test_vreinterpretq_u64_f32(float32x4_t a)8176 uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) {
8177 return vreinterpretq_u64_f32(a);
8178 }
8179
8180 // CHECK-LABEL: test_vreinterpretq_u64_p8
test_vreinterpretq_u64_p8(poly8x16_t a)8181 uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) {
8182 return vreinterpretq_u64_p8(a);
8183 }
8184
8185 // CHECK-LABEL: test_vreinterpretq_u64_p16
test_vreinterpretq_u64_p16(poly16x8_t a)8186 uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) {
8187 return vreinterpretq_u64_p16(a);
8188 }
8189
8190 // CHECK-LABEL: test_vreinterpretq_f16_s8
test_vreinterpretq_f16_s8(int8x16_t a)8191 float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) {
8192 return vreinterpretq_f16_s8(a);
8193 }
8194
8195 // CHECK-LABEL: test_vreinterpretq_f16_s16
test_vreinterpretq_f16_s16(int16x8_t a)8196 float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) {
8197 return vreinterpretq_f16_s16(a);
8198 }
8199
8200 // CHECK-LABEL: test_vreinterpretq_f16_s32
test_vreinterpretq_f16_s32(int32x4_t a)8201 float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) {
8202 return vreinterpretq_f16_s32(a);
8203 }
8204
8205 // CHECK-LABEL: test_vreinterpretq_f16_s64
test_vreinterpretq_f16_s64(int64x2_t a)8206 float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) {
8207 return vreinterpretq_f16_s64(a);
8208 }
8209
8210 // CHECK-LABEL: test_vreinterpretq_f16_u8
test_vreinterpretq_f16_u8(uint8x16_t a)8211 float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) {
8212 return vreinterpretq_f16_u8(a);
8213 }
8214
8215 // CHECK-LABEL: test_vreinterpretq_f16_u16
test_vreinterpretq_f16_u16(uint16x8_t a)8216 float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) {
8217 return vreinterpretq_f16_u16(a);
8218 }
8219
8220 // CHECK-LABEL: test_vreinterpretq_f16_u32
test_vreinterpretq_f16_u32(uint32x4_t a)8221 float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) {
8222 return vreinterpretq_f16_u32(a);
8223 }
8224
8225 // CHECK-LABEL: test_vreinterpretq_f16_u64
test_vreinterpretq_f16_u64(uint64x2_t a)8226 float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) {
8227 return vreinterpretq_f16_u64(a);
8228 }
8229
8230 // CHECK-LABEL: test_vreinterpretq_f16_f32
test_vreinterpretq_f16_f32(float32x4_t a)8231 float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) {
8232 return vreinterpretq_f16_f32(a);
8233 }
8234
8235 // CHECK-LABEL: test_vreinterpretq_f16_p8
test_vreinterpretq_f16_p8(poly8x16_t a)8236 float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) {
8237 return vreinterpretq_f16_p8(a);
8238 }
8239
8240 // CHECK-LABEL: test_vreinterpretq_f16_p16
test_vreinterpretq_f16_p16(poly16x8_t a)8241 float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) {
8242 return vreinterpretq_f16_p16(a);
8243 }
8244
8245 // CHECK-LABEL: test_vreinterpretq_f32_s8
test_vreinterpretq_f32_s8(int8x16_t a)8246 float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) {
8247 return vreinterpretq_f32_s8(a);
8248 }
8249
8250 // CHECK-LABEL: test_vreinterpretq_f32_s16
test_vreinterpretq_f32_s16(int16x8_t a)8251 float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) {
8252 return vreinterpretq_f32_s16(a);
8253 }
8254
8255 // CHECK-LABEL: test_vreinterpretq_f32_s32
test_vreinterpretq_f32_s32(int32x4_t a)8256 float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) {
8257 return vreinterpretq_f32_s32(a);
8258 }
8259
8260 // CHECK-LABEL: test_vreinterpretq_f32_s64
test_vreinterpretq_f32_s64(int64x2_t a)8261 float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) {
8262 return vreinterpretq_f32_s64(a);
8263 }
8264
8265 // CHECK-LABEL: test_vreinterpretq_f32_u8
test_vreinterpretq_f32_u8(uint8x16_t a)8266 float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) {
8267 return vreinterpretq_f32_u8(a);
8268 }
8269
8270 // CHECK-LABEL: test_vreinterpretq_f32_u16
test_vreinterpretq_f32_u16(uint16x8_t a)8271 float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) {
8272 return vreinterpretq_f32_u16(a);
8273 }
8274
8275 // CHECK-LABEL: test_vreinterpretq_f32_u32
test_vreinterpretq_f32_u32(uint32x4_t a)8276 float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) {
8277 return vreinterpretq_f32_u32(a);
8278 }
8279
8280 // CHECK-LABEL: test_vreinterpretq_f32_u64
test_vreinterpretq_f32_u64(uint64x2_t a)8281 float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) {
8282 return vreinterpretq_f32_u64(a);
8283 }
8284
8285 // CHECK-LABEL: test_vreinterpretq_f32_f16
test_vreinterpretq_f32_f16(float16x8_t a)8286 float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) {
8287 return vreinterpretq_f32_f16(a);
8288 }
8289
8290 // CHECK-LABEL: test_vreinterpretq_f32_p8
test_vreinterpretq_f32_p8(poly8x16_t a)8291 float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) {
8292 return vreinterpretq_f32_p8(a);
8293 }
8294
8295 // CHECK-LABEL: test_vreinterpretq_f32_p16
test_vreinterpretq_f32_p16(poly16x8_t a)8296 float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) {
8297 return vreinterpretq_f32_p16(a);
8298 }
8299
8300 // CHECK-LABEL: test_vreinterpretq_p8_s8
test_vreinterpretq_p8_s8(int8x16_t a)8301 poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) {
8302 return vreinterpretq_p8_s8(a);
8303 }
8304
8305 // CHECK-LABEL: test_vreinterpretq_p8_s16
test_vreinterpretq_p8_s16(int16x8_t a)8306 poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) {
8307 return vreinterpretq_p8_s16(a);
8308 }
8309
8310 // CHECK-LABEL: test_vreinterpretq_p8_s32
test_vreinterpretq_p8_s32(int32x4_t a)8311 poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) {
8312 return vreinterpretq_p8_s32(a);
8313 }
8314
8315 // CHECK-LABEL: test_vreinterpretq_p8_s64
test_vreinterpretq_p8_s64(int64x2_t a)8316 poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) {
8317 return vreinterpretq_p8_s64(a);
8318 }
8319
8320 // CHECK-LABEL: test_vreinterpretq_p8_u8
test_vreinterpretq_p8_u8(uint8x16_t a)8321 poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) {
8322 return vreinterpretq_p8_u8(a);
8323 }
8324
8325 // CHECK-LABEL: test_vreinterpretq_p8_u16
test_vreinterpretq_p8_u16(uint16x8_t a)8326 poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) {
8327 return vreinterpretq_p8_u16(a);
8328 }
8329
8330 // CHECK-LABEL: test_vreinterpretq_p8_u32
test_vreinterpretq_p8_u32(uint32x4_t a)8331 poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) {
8332 return vreinterpretq_p8_u32(a);
8333 }
8334
8335 // CHECK-LABEL: test_vreinterpretq_p8_u64
test_vreinterpretq_p8_u64(uint64x2_t a)8336 poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) {
8337 return vreinterpretq_p8_u64(a);
8338 }
8339
8340 // CHECK-LABEL: test_vreinterpretq_p8_f16
test_vreinterpretq_p8_f16(float16x8_t a)8341 poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) {
8342 return vreinterpretq_p8_f16(a);
8343 }
8344
8345 // CHECK-LABEL: test_vreinterpretq_p8_f32
test_vreinterpretq_p8_f32(float32x4_t a)8346 poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) {
8347 return vreinterpretq_p8_f32(a);
8348 }
8349
8350 // CHECK-LABEL: test_vreinterpretq_p8_p16
test_vreinterpretq_p8_p16(poly16x8_t a)8351 poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) {
8352 return vreinterpretq_p8_p16(a);
8353 }
8354
8355 // CHECK-LABEL: test_vreinterpretq_p16_s8
test_vreinterpretq_p16_s8(int8x16_t a)8356 poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) {
8357 return vreinterpretq_p16_s8(a);
8358 }
8359
8360 // CHECK-LABEL: test_vreinterpretq_p16_s16
test_vreinterpretq_p16_s16(int16x8_t a)8361 poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) {
8362 return vreinterpretq_p16_s16(a);
8363 }
8364
8365 // CHECK-LABEL: test_vreinterpretq_p16_s32
test_vreinterpretq_p16_s32(int32x4_t a)8366 poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) {
8367 return vreinterpretq_p16_s32(a);
8368 }
8369
8370 // CHECK-LABEL: test_vreinterpretq_p16_s64
test_vreinterpretq_p16_s64(int64x2_t a)8371 poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) {
8372 return vreinterpretq_p16_s64(a);
8373 }
8374
8375 // CHECK-LABEL: test_vreinterpretq_p16_u8
test_vreinterpretq_p16_u8(uint8x16_t a)8376 poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) {
8377 return vreinterpretq_p16_u8(a);
8378 }
8379
8380 // CHECK-LABEL: test_vreinterpretq_p16_u16
test_vreinterpretq_p16_u16(uint16x8_t a)8381 poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) {
8382 return vreinterpretq_p16_u16(a);
8383 }
8384
8385 // CHECK-LABEL: test_vreinterpretq_p16_u32
test_vreinterpretq_p16_u32(uint32x4_t a)8386 poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) {
8387 return vreinterpretq_p16_u32(a);
8388 }
8389
8390 // CHECK-LABEL: test_vreinterpretq_p16_u64
test_vreinterpretq_p16_u64(uint64x2_t a)8391 poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) {
8392 return vreinterpretq_p16_u64(a);
8393 }
8394
8395 // CHECK-LABEL: test_vreinterpretq_p16_f16
test_vreinterpretq_p16_f16(float16x8_t a)8396 poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) {
8397 return vreinterpretq_p16_f16(a);
8398 }
8399
8400 // CHECK-LABEL: test_vreinterpretq_p16_f32
test_vreinterpretq_p16_f32(float32x4_t a)8401 poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) {
8402 return vreinterpretq_p16_f32(a);
8403 }
8404
8405 // CHECK-LABEL: test_vreinterpretq_p16_p8
test_vreinterpretq_p16_p8(poly8x16_t a)8406 poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) {
8407 return vreinterpretq_p16_p8(a);
8408 }
8409
8410
8411 // CHECK-LABEL: test_vrev16_s8
8412 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_s8(int8x8_t a)8413 int8x8_t test_vrev16_s8(int8x8_t a) {
8414 return vrev16_s8(a);
8415 }
8416
8417 // CHECK-LABEL: test_vrev16_u8
8418 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_u8(uint8x8_t a)8419 uint8x8_t test_vrev16_u8(uint8x8_t a) {
8420 return vrev16_u8(a);
8421 }
8422
8423 // CHECK-LABEL: test_vrev16_p8
8424 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_p8(poly8x8_t a)8425 poly8x8_t test_vrev16_p8(poly8x8_t a) {
8426 return vrev16_p8(a);
8427 }
8428
8429 // CHECK-LABEL: test_vrev16q_s8
8430 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_s8(int8x16_t a)8431 int8x16_t test_vrev16q_s8(int8x16_t a) {
8432 return vrev16q_s8(a);
8433 }
8434
8435 // CHECK-LABEL: test_vrev16q_u8
8436 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_u8(uint8x16_t a)8437 uint8x16_t test_vrev16q_u8(uint8x16_t a) {
8438 return vrev16q_u8(a);
8439 }
8440
8441 // CHECK-LABEL: test_vrev16q_p8
8442 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_p8(poly8x16_t a)8443 poly8x16_t test_vrev16q_p8(poly8x16_t a) {
8444 return vrev16q_p8(a);
8445 }
8446
8447
8448 // CHECK-LABEL: test_vrev32_s8
8449 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s8(int8x8_t a)8450 int8x8_t test_vrev32_s8(int8x8_t a) {
8451 return vrev32_s8(a);
8452 }
8453
8454 // CHECK-LABEL: test_vrev32_s16
8455 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s16(int16x4_t a)8456 int16x4_t test_vrev32_s16(int16x4_t a) {
8457 return vrev32_s16(a);
8458 }
8459
8460 // CHECK-LABEL: test_vrev32_u8
8461 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u8(uint8x8_t a)8462 uint8x8_t test_vrev32_u8(uint8x8_t a) {
8463 return vrev32_u8(a);
8464 }
8465
8466 // CHECK-LABEL: test_vrev32_u16
8467 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u16(uint16x4_t a)8468 uint16x4_t test_vrev32_u16(uint16x4_t a) {
8469 return vrev32_u16(a);
8470 }
8471
8472 // CHECK-LABEL: test_vrev32_p8
8473 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p8(poly8x8_t a)8474 poly8x8_t test_vrev32_p8(poly8x8_t a) {
8475 return vrev32_p8(a);
8476 }
8477
8478 // CHECK-LABEL: test_vrev32_p16
8479 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p16(poly16x4_t a)8480 poly16x4_t test_vrev32_p16(poly16x4_t a) {
8481 return vrev32_p16(a);
8482 }
8483
8484 // CHECK-LABEL: test_vrev32q_s8
8485 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s8(int8x16_t a)8486 int8x16_t test_vrev32q_s8(int8x16_t a) {
8487 return vrev32q_s8(a);
8488 }
8489
8490 // CHECK-LABEL: test_vrev32q_s16
8491 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s16(int16x8_t a)8492 int16x8_t test_vrev32q_s16(int16x8_t a) {
8493 return vrev32q_s16(a);
8494 }
8495
8496 // CHECK-LABEL: test_vrev32q_u8
8497 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u8(uint8x16_t a)8498 uint8x16_t test_vrev32q_u8(uint8x16_t a) {
8499 return vrev32q_u8(a);
8500 }
8501
8502 // CHECK-LABEL: test_vrev32q_u16
8503 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u16(uint16x8_t a)8504 uint16x8_t test_vrev32q_u16(uint16x8_t a) {
8505 return vrev32q_u16(a);
8506 }
8507
8508 // CHECK-LABEL: test_vrev32q_p8
8509 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p8(poly8x16_t a)8510 poly8x16_t test_vrev32q_p8(poly8x16_t a) {
8511 return vrev32q_p8(a);
8512 }
8513
8514 // CHECK-LABEL: test_vrev32q_p16
8515 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p16(poly16x8_t a)8516 poly16x8_t test_vrev32q_p16(poly16x8_t a) {
8517 return vrev32q_p16(a);
8518 }
8519
8520
8521 // CHECK-LABEL: test_vrev64_s8
8522 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s8(int8x8_t a)8523 int8x8_t test_vrev64_s8(int8x8_t a) {
8524 return vrev64_s8(a);
8525 }
8526
8527 // CHECK-LABEL: test_vrev64_s16
8528 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s16(int16x4_t a)8529 int16x4_t test_vrev64_s16(int16x4_t a) {
8530 return vrev64_s16(a);
8531 }
8532
8533 // CHECK-LABEL: test_vrev64_s32
8534 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s32(int32x2_t a)8535 int32x2_t test_vrev64_s32(int32x2_t a) {
8536 return vrev64_s32(a);
8537 }
8538
8539 // CHECK-LABEL: test_vrev64_u8
8540 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u8(uint8x8_t a)8541 uint8x8_t test_vrev64_u8(uint8x8_t a) {
8542 return vrev64_u8(a);
8543 }
8544
8545 // CHECK-LABEL: test_vrev64_u16
8546 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u16(uint16x4_t a)8547 uint16x4_t test_vrev64_u16(uint16x4_t a) {
8548 return vrev64_u16(a);
8549 }
8550
8551 // CHECK-LABEL: test_vrev64_u32
8552 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u32(uint32x2_t a)8553 uint32x2_t test_vrev64_u32(uint32x2_t a) {
8554 return vrev64_u32(a);
8555 }
8556
8557 // CHECK-LABEL: test_vrev64_p8
8558 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p8(poly8x8_t a)8559 poly8x8_t test_vrev64_p8(poly8x8_t a) {
8560 return vrev64_p8(a);
8561 }
8562
8563 // CHECK-LABEL: test_vrev64_p16
8564 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p16(poly16x4_t a)8565 poly16x4_t test_vrev64_p16(poly16x4_t a) {
8566 return vrev64_p16(a);
8567 }
8568
8569 // CHECK-LABEL: test_vrev64_f32
8570 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_f32(float32x2_t a)8571 float32x2_t test_vrev64_f32(float32x2_t a) {
8572 return vrev64_f32(a);
8573 }
8574
8575 // CHECK-LABEL: test_vrev64q_s8
8576 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s8(int8x16_t a)8577 int8x16_t test_vrev64q_s8(int8x16_t a) {
8578 return vrev64q_s8(a);
8579 }
8580
8581 // CHECK-LABEL: test_vrev64q_s16
8582 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s16(int16x8_t a)8583 int16x8_t test_vrev64q_s16(int16x8_t a) {
8584 return vrev64q_s16(a);
8585 }
8586
8587 // CHECK-LABEL: test_vrev64q_s32
8588 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s32(int32x4_t a)8589 int32x4_t test_vrev64q_s32(int32x4_t a) {
8590 return vrev64q_s32(a);
8591 }
8592
8593 // CHECK-LABEL: test_vrev64q_u8
8594 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u8(uint8x16_t a)8595 uint8x16_t test_vrev64q_u8(uint8x16_t a) {
8596 return vrev64q_u8(a);
8597 }
8598
8599 // CHECK-LABEL: test_vrev64q_u16
8600 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u16(uint16x8_t a)8601 uint16x8_t test_vrev64q_u16(uint16x8_t a) {
8602 return vrev64q_u16(a);
8603 }
8604
8605 // CHECK-LABEL: test_vrev64q_u32
8606 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u32(uint32x4_t a)8607 uint32x4_t test_vrev64q_u32(uint32x4_t a) {
8608 return vrev64q_u32(a);
8609 }
8610
8611 // CHECK-LABEL: test_vrev64q_p8
8612 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p8(poly8x16_t a)8613 poly8x16_t test_vrev64q_p8(poly8x16_t a) {
8614 return vrev64q_p8(a);
8615 }
8616
8617 // CHECK-LABEL: test_vrev64q_p16
8618 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p16(poly16x8_t a)8619 poly16x8_t test_vrev64q_p16(poly16x8_t a) {
8620 return vrev64q_p16(a);
8621 }
8622
8623 // CHECK-LABEL: test_vrev64q_f32
8624 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_f32(float32x4_t a)8625 float32x4_t test_vrev64q_f32(float32x4_t a) {
8626 return vrev64q_f32(a);
8627 }
8628
8629
8630 // CHECK-LABEL: test_vrhadd_s8
8631 // CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s8(int8x8_t a,int8x8_t b)8632 int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) {
8633 return vrhadd_s8(a, b);
8634 }
8635
8636 // CHECK-LABEL: test_vrhadd_s16
8637 // CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s16(int16x4_t a,int16x4_t b)8638 int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) {
8639 return vrhadd_s16(a, b);
8640 }
8641
8642 // CHECK-LABEL: test_vrhadd_s32
8643 // CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s32(int32x2_t a,int32x2_t b)8644 int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) {
8645 return vrhadd_s32(a, b);
8646 }
8647
8648 // CHECK-LABEL: test_vrhadd_u8
8649 // CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u8(uint8x8_t a,uint8x8_t b)8650 uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) {
8651 return vrhadd_u8(a, b);
8652 }
8653
8654 // CHECK-LABEL: test_vrhadd_u16
8655 // CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u16(uint16x4_t a,uint16x4_t b)8656 uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) {
8657 return vrhadd_u16(a, b);
8658 }
8659
8660 // CHECK-LABEL: test_vrhadd_u32
8661 // CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u32(uint32x2_t a,uint32x2_t b)8662 uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) {
8663 return vrhadd_u32(a, b);
8664 }
8665
8666 // CHECK-LABEL: test_vrhaddq_s8
8667 // CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s8(int8x16_t a,int8x16_t b)8668 int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) {
8669 return vrhaddq_s8(a, b);
8670 }
8671
8672 // CHECK-LABEL: test_vrhaddq_s16
8673 // CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s16(int16x8_t a,int16x8_t b)8674 int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) {
8675 return vrhaddq_s16(a, b);
8676 }
8677
8678 // CHECK-LABEL: test_vrhaddq_s32
8679 // CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s32(int32x4_t a,int32x4_t b)8680 int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) {
8681 return vrhaddq_s32(a, b);
8682 }
8683
8684 // CHECK-LABEL: test_vrhaddq_u8
8685 // CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u8(uint8x16_t a,uint8x16_t b)8686 uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) {
8687 return vrhaddq_u8(a, b);
8688 }
8689
8690 // CHECK-LABEL: test_vrhaddq_u16
8691 // CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u16(uint16x8_t a,uint16x8_t b)8692 uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) {
8693 return vrhaddq_u16(a, b);
8694 }
8695
8696 // CHECK-LABEL: test_vrhaddq_u32
8697 // CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u32(uint32x4_t a,uint32x4_t b)8698 uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) {
8699 return vrhaddq_u32(a, b);
8700 }
8701
8702
8703 // CHECK-LABEL: test_vrshl_s8
8704 // CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s8(int8x8_t a,int8x8_t b)8705 int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) {
8706 return vrshl_s8(a, b);
8707 }
8708
8709 // CHECK-LABEL: test_vrshl_s16
8710 // CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s16(int16x4_t a,int16x4_t b)8711 int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) {
8712 return vrshl_s16(a, b);
8713 }
8714
8715 // CHECK-LABEL: test_vrshl_s32
8716 // CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s32(int32x2_t a,int32x2_t b)8717 int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) {
8718 return vrshl_s32(a, b);
8719 }
8720
8721 // CHECK-LABEL: test_vrshl_s64
8722 // CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s64(int64x1_t a,int64x1_t b)8723 int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) {
8724 return vrshl_s64(a, b);
8725 }
8726
8727 // CHECK-LABEL: test_vrshl_u8
8728 // CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u8(uint8x8_t a,int8x8_t b)8729 uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) {
8730 return vrshl_u8(a, b);
8731 }
8732
8733 // CHECK-LABEL: test_vrshl_u16
8734 // CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u16(uint16x4_t a,int16x4_t b)8735 uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) {
8736 return vrshl_u16(a, b);
8737 }
8738
8739 // CHECK-LABEL: test_vrshl_u32
8740 // CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u32(uint32x2_t a,int32x2_t b)8741 uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) {
8742 return vrshl_u32(a, b);
8743 }
8744
8745 // CHECK-LABEL: test_vrshl_u64
8746 // CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u64(uint64x1_t a,int64x1_t b)8747 uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) {
8748 return vrshl_u64(a, b);
8749 }
8750
8751 // CHECK-LABEL: test_vrshlq_s8
8752 // CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s8(int8x16_t a,int8x16_t b)8753 int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) {
8754 return vrshlq_s8(a, b);
8755 }
8756
8757 // CHECK-LABEL: test_vrshlq_s16
8758 // CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s16(int16x8_t a,int16x8_t b)8759 int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) {
8760 return vrshlq_s16(a, b);
8761 }
8762
8763 // CHECK-LABEL: test_vrshlq_s32
8764 // CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s32(int32x4_t a,int32x4_t b)8765 int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) {
8766 return vrshlq_s32(a, b);
8767 }
8768
8769 // CHECK-LABEL: test_vrshlq_s64
8770 // CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s64(int64x2_t a,int64x2_t b)8771 int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) {
8772 return vrshlq_s64(a, b);
8773 }
8774
8775 // CHECK-LABEL: test_vrshlq_u8
8776 // CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u8(uint8x16_t a,int8x16_t b)8777 uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) {
8778 return vrshlq_u8(a, b);
8779 }
8780
8781 // CHECK-LABEL: test_vrshlq_u16
8782 // CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u16(uint16x8_t a,int16x8_t b)8783 uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) {
8784 return vrshlq_u16(a, b);
8785 }
8786
8787 // CHECK-LABEL: test_vrshlq_u32
8788 // CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u32(uint32x4_t a,int32x4_t b)8789 uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) {
8790 return vrshlq_u32(a, b);
8791 }
8792
8793 // CHECK-LABEL: test_vrshlq_u64
8794 // CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u64(uint64x2_t a,int64x2_t b)8795 uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) {
8796 return vrshlq_u64(a, b);
8797 }
8798
8799
8800 // CHECK-LABEL: test_vrshrn_n_s16
8801 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s16(int16x8_t a)8802 int8x8_t test_vrshrn_n_s16(int16x8_t a) {
8803 return vrshrn_n_s16(a, 1);
8804 }
8805
8806 // CHECK-LABEL: test_vrshrn_n_s32
8807 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s32(int32x4_t a)8808 int16x4_t test_vrshrn_n_s32(int32x4_t a) {
8809 return vrshrn_n_s32(a, 1);
8810 }
8811
8812 // CHECK-LABEL: test_vrshrn_n_s64
8813 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s64(int64x2_t a)8814 int32x2_t test_vrshrn_n_s64(int64x2_t a) {
8815 return vrshrn_n_s64(a, 1);
8816 }
8817
8818 // CHECK-LABEL: test_vrshrn_n_u16
8819 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u16(uint16x8_t a)8820 uint8x8_t test_vrshrn_n_u16(uint16x8_t a) {
8821 return vrshrn_n_u16(a, 1);
8822 }
8823
8824 // CHECK-LABEL: test_vrshrn_n_u32
8825 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u32(uint32x4_t a)8826 uint16x4_t test_vrshrn_n_u32(uint32x4_t a) {
8827 return vrshrn_n_u32(a, 1);
8828 }
8829
8830 // CHECK-LABEL: test_vrshrn_n_u64
8831 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u64(uint64x2_t a)8832 uint32x2_t test_vrshrn_n_u64(uint64x2_t a) {
8833 return vrshrn_n_u64(a, 1);
8834 }
8835
8836
8837 // CHECK-LABEL: test_vrshr_n_s8
8838 // CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s8(int8x8_t a)8839 int8x8_t test_vrshr_n_s8(int8x8_t a) {
8840 return vrshr_n_s8(a, 1);
8841 }
8842
8843 // CHECK-LABEL: test_vrshr_n_s16
8844 // CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s16(int16x4_t a)8845 int16x4_t test_vrshr_n_s16(int16x4_t a) {
8846 return vrshr_n_s16(a, 1);
8847 }
8848
8849 // CHECK-LABEL: test_vrshr_n_s32
8850 // CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s32(int32x2_t a)8851 int32x2_t test_vrshr_n_s32(int32x2_t a) {
8852 return vrshr_n_s32(a, 1);
8853 }
8854
8855 // CHECK-LABEL: test_vrshr_n_s64
8856 // CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s64(int64x1_t a)8857 int64x1_t test_vrshr_n_s64(int64x1_t a) {
8858 return vrshr_n_s64(a, 1);
8859 }
8860
8861 // CHECK-LABEL: test_vrshr_n_u8
8862 // CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u8(uint8x8_t a)8863 uint8x8_t test_vrshr_n_u8(uint8x8_t a) {
8864 return vrshr_n_u8(a, 1);
8865 }
8866
8867 // CHECK-LABEL: test_vrshr_n_u16
8868 // CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u16(uint16x4_t a)8869 uint16x4_t test_vrshr_n_u16(uint16x4_t a) {
8870 return vrshr_n_u16(a, 1);
8871 }
8872
8873 // CHECK-LABEL: test_vrshr_n_u32
8874 // CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u32(uint32x2_t a)8875 uint32x2_t test_vrshr_n_u32(uint32x2_t a) {
8876 return vrshr_n_u32(a, 1);
8877 }
8878
8879 // CHECK-LABEL: test_vrshr_n_u64
8880 // CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u64(uint64x1_t a)8881 uint64x1_t test_vrshr_n_u64(uint64x1_t a) {
8882 return vrshr_n_u64(a, 1);
8883 }
8884
8885 // CHECK-LABEL: test_vrshrq_n_s8
8886 // CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s8(int8x16_t a)8887 int8x16_t test_vrshrq_n_s8(int8x16_t a) {
8888 return vrshrq_n_s8(a, 1);
8889 }
8890
8891 // CHECK-LABEL: test_vrshrq_n_s16
8892 // CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s16(int16x8_t a)8893 int16x8_t test_vrshrq_n_s16(int16x8_t a) {
8894 return vrshrq_n_s16(a, 1);
8895 }
8896
8897 // CHECK-LABEL: test_vrshrq_n_s32
8898 // CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s32(int32x4_t a)8899 int32x4_t test_vrshrq_n_s32(int32x4_t a) {
8900 return vrshrq_n_s32(a, 1);
8901 }
8902
8903 // CHECK-LABEL: test_vrshrq_n_s64
8904 // CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s64(int64x2_t a)8905 int64x2_t test_vrshrq_n_s64(int64x2_t a) {
8906 return vrshrq_n_s64(a, 1);
8907 }
8908
8909 // CHECK-LABEL: test_vrshrq_n_u8
8910 // CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u8(uint8x16_t a)8911 uint8x16_t test_vrshrq_n_u8(uint8x16_t a) {
8912 return vrshrq_n_u8(a, 1);
8913 }
8914
8915 // CHECK-LABEL: test_vrshrq_n_u16
8916 // CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u16(uint16x8_t a)8917 uint16x8_t test_vrshrq_n_u16(uint16x8_t a) {
8918 return vrshrq_n_u16(a, 1);
8919 }
8920
8921 // CHECK-LABEL: test_vrshrq_n_u32
8922 // CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u32(uint32x4_t a)8923 uint32x4_t test_vrshrq_n_u32(uint32x4_t a) {
8924 return vrshrq_n_u32(a, 1);
8925 }
8926
8927 // CHECK-LABEL: test_vrshrq_n_u64
8928 // CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u64(uint64x2_t a)8929 uint64x2_t test_vrshrq_n_u64(uint64x2_t a) {
8930 return vrshrq_n_u64(a, 1);
8931 }
8932
8933
8934 // CHECK-LABEL: test_vrsqrte_f32
8935 // CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_f32(float32x2_t a)8936 float32x2_t test_vrsqrte_f32(float32x2_t a) {
8937 return vrsqrte_f32(a);
8938 }
8939
8940 // CHECK-LABEL: test_vrsqrte_u32
8941 // CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_u32(uint32x2_t a)8942 uint32x2_t test_vrsqrte_u32(uint32x2_t a) {
8943 return vrsqrte_u32(a);
8944 }
8945
8946 // CHECK-LABEL: test_vrsqrteq_f32
8947 // CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_f32(float32x4_t a)8948 float32x4_t test_vrsqrteq_f32(float32x4_t a) {
8949 return vrsqrteq_f32(a);
8950 }
8951
8952 // CHECK-LABEL: test_vrsqrteq_u32
8953 // CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_u32(uint32x4_t a)8954 uint32x4_t test_vrsqrteq_u32(uint32x4_t a) {
8955 return vrsqrteq_u32(a);
8956 }
8957
8958
8959 // CHECK-LABEL: test_vrsqrts_f32
8960 // CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrts_f32(float32x2_t a,float32x2_t b)8961 float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) {
8962 return vrsqrts_f32(a, b);
8963 }
8964
8965 // CHECK-LABEL: test_vrsqrtsq_f32
8966 // CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrtsq_f32(float32x4_t a,float32x4_t b)8967 float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) {
8968 return vrsqrtsq_f32(a, b);
8969 }
8970
8971
8972 // CHECK-LABEL: test_vrsra_n_s8
8973 // CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s8(int8x8_t a,int8x8_t b)8974 int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) {
8975 return vrsra_n_s8(a, b, 1);
8976 }
8977
8978 // CHECK-LABEL: test_vrsra_n_s16
8979 // CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s16(int16x4_t a,int16x4_t b)8980 int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) {
8981 return vrsra_n_s16(a, b, 1);
8982 }
8983
8984 // CHECK-LABEL: test_vrsra_n_s32
8985 // CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s32(int32x2_t a,int32x2_t b)8986 int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) {
8987 return vrsra_n_s32(a, b, 1);
8988 }
8989
8990 // CHECK-LABEL: test_vrsra_n_s64
8991 // CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s64(int64x1_t a,int64x1_t b)8992 int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) {
8993 return vrsra_n_s64(a, b, 1);
8994 }
8995
8996 // CHECK-LABEL: test_vrsra_n_u8
8997 // CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u8(uint8x8_t a,uint8x8_t b)8998 uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) {
8999 return vrsra_n_u8(a, b, 1);
9000 }
9001
9002 // CHECK-LABEL: test_vrsra_n_u16
9003 // CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u16(uint16x4_t a,uint16x4_t b)9004 uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) {
9005 return vrsra_n_u16(a, b, 1);
9006 }
9007
9008 // CHECK-LABEL: test_vrsra_n_u32
9009 // CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u32(uint32x2_t a,uint32x2_t b)9010 uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) {
9011 return vrsra_n_u32(a, b, 1);
9012 }
9013
9014 // CHECK-LABEL: test_vrsra_n_u64
9015 // CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u64(uint64x1_t a,uint64x1_t b)9016 uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) {
9017 return vrsra_n_u64(a, b, 1);
9018 }
9019
9020 // CHECK-LABEL: test_vrsraq_n_s8
9021 // CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s8(int8x16_t a,int8x16_t b)9022 int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) {
9023 return vrsraq_n_s8(a, b, 1);
9024 }
9025
9026 // CHECK-LABEL: test_vrsraq_n_s16
9027 // CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s16(int16x8_t a,int16x8_t b)9028 int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) {
9029 return vrsraq_n_s16(a, b, 1);
9030 }
9031
9032 // CHECK-LABEL: test_vrsraq_n_s32
9033 // CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s32(int32x4_t a,int32x4_t b)9034 int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) {
9035 return vrsraq_n_s32(a, b, 1);
9036 }
9037
9038 // CHECK-LABEL: test_vrsraq_n_s64
9039 // CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s64(int64x2_t a,int64x2_t b)9040 int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) {
9041 return vrsraq_n_s64(a, b, 1);
9042 }
9043
9044 // CHECK-LABEL: test_vrsraq_n_u8
9045 // CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u8(uint8x16_t a,uint8x16_t b)9046 uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9047 return vrsraq_n_u8(a, b, 1);
9048 }
9049
9050 // CHECK-LABEL: test_vrsraq_n_u16
9051 // CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u16(uint16x8_t a,uint16x8_t b)9052 uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9053 return vrsraq_n_u16(a, b, 1);
9054 }
9055
9056 // CHECK-LABEL: test_vrsraq_n_u32
9057 // CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u32(uint32x4_t a,uint32x4_t b)9058 uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9059 return vrsraq_n_u32(a, b, 1);
9060 }
9061
9062 // CHECK-LABEL: test_vrsraq_n_u64
9063 // CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u64(uint64x2_t a,uint64x2_t b)9064 uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9065 return vrsraq_n_u64(a, b, 1);
9066 }
9067
9068
9069 // CHECK-LABEL: test_vrsubhn_s16
9070 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s16(int16x8_t a,int16x8_t b)9071 int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) {
9072 return vrsubhn_s16(a, b);
9073 }
9074
9075 // CHECK-LABEL: test_vrsubhn_s32
9076 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s32(int32x4_t a,int32x4_t b)9077 int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) {
9078 return vrsubhn_s32(a, b);
9079 }
9080
9081 // CHECK-LABEL: test_vrsubhn_s64
9082 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s64(int64x2_t a,int64x2_t b)9083 int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) {
9084 return vrsubhn_s64(a, b);
9085 }
9086
9087 // CHECK-LABEL: test_vrsubhn_u16
9088 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u16(uint16x8_t a,uint16x8_t b)9089 uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) {
9090 return vrsubhn_u16(a, b);
9091 }
9092
9093 // CHECK-LABEL: test_vrsubhn_u32
9094 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u32(uint32x4_t a,uint32x4_t b)9095 uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) {
9096 return vrsubhn_u32(a, b);
9097 }
9098
9099 // CHECK-LABEL: test_vrsubhn_u64
9100 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u64(uint64x2_t a,uint64x2_t b)9101 uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) {
9102 return vrsubhn_u64(a, b);
9103 }
9104
9105
9106 // CHECK-LABEL: test_vset_lane_u8
9107 // CHECK: vmov
test_vset_lane_u8(uint8_t a,uint8x8_t b)9108 uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
9109 return vset_lane_u8(a, b, 7);
9110 }
9111
9112 // CHECK-LABEL: test_vset_lane_u16
9113 // CHECK: vmov
test_vset_lane_u16(uint16_t a,uint16x4_t b)9114 uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
9115 return vset_lane_u16(a, b, 3);
9116 }
9117
9118 // CHECK-LABEL: test_vset_lane_u32
9119 // CHECK: mov
test_vset_lane_u32(uint32_t a,uint32x2_t b)9120 uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
9121 return vset_lane_u32(a, b, 1);
9122 }
9123
9124 // CHECK-LABEL: test_vset_lane_s8
9125 // CHECK: vmov
test_vset_lane_s8(int8_t a,int8x8_t b)9126 int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) {
9127 return vset_lane_s8(a, b, 7);
9128 }
9129
9130 // CHECK-LABEL: test_vset_lane_s16
9131 // CHECK: vmov
test_vset_lane_s16(int16_t a,int16x4_t b)9132 int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) {
9133 return vset_lane_s16(a, b, 3);
9134 }
9135
9136 // CHECK-LABEL: test_vset_lane_s32
9137 // CHECK: mov
test_vset_lane_s32(int32_t a,int32x2_t b)9138 int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) {
9139 return vset_lane_s32(a, b, 1);
9140 }
9141
9142 // CHECK-LABEL: test_vset_lane_p8
9143 // CHECK: vmov
test_vset_lane_p8(poly8_t a,poly8x8_t b)9144 poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) {
9145 return vset_lane_p8(a, b, 7);
9146 }
9147
9148 // CHECK-LABEL: test_vset_lane_p16
9149 // CHECK: vmov
test_vset_lane_p16(poly16_t a,poly16x4_t b)9150 poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) {
9151 return vset_lane_p16(a, b, 3);
9152 }
9153
9154 // CHECK-LABEL: test_vset_lane_f32
9155 // CHECK: mov
test_vset_lane_f32(float32_t a,float32x2_t b)9156 float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
9157 return vset_lane_f32(a, b, 1);
9158 }
9159
9160 // CHECK-LABEL: test_vsetq_lane_u8
9161 // CHECK: vmov
test_vsetq_lane_u8(uint8_t a,uint8x16_t b)9162 uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
9163 return vsetq_lane_u8(a, b, 15);
9164 }
9165
9166 // CHECK-LABEL: test_vsetq_lane_u16
9167 // CHECK: vmov
test_vsetq_lane_u16(uint16_t a,uint16x8_t b)9168 uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
9169 return vsetq_lane_u16(a, b, 7);
9170 }
9171
9172 // CHECK-LABEL: test_vsetq_lane_u32
9173 // CHECK: vmov
test_vsetq_lane_u32(uint32_t a,uint32x4_t b)9174 uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
9175 return vsetq_lane_u32(a, b, 3);
9176 }
9177
9178 // CHECK-LABEL: test_vsetq_lane_s8
9179 // CHECK: vmov
test_vsetq_lane_s8(int8_t a,int8x16_t b)9180 int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) {
9181 return vsetq_lane_s8(a, b, 15);
9182 }
9183
9184 // CHECK-LABEL: test_vsetq_lane_s16
9185 // CHECK: vmov
test_vsetq_lane_s16(int16_t a,int16x8_t b)9186 int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) {
9187 return vsetq_lane_s16(a, b, 7);
9188 }
9189
9190 // CHECK-LABEL: test_vsetq_lane_s32
9191 // CHECK: vmov
test_vsetq_lane_s32(int32_t a,int32x4_t b)9192 int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) {
9193 return vsetq_lane_s32(a, b, 3);
9194 }
9195
9196 // CHECK-LABEL: test_vsetq_lane_p8
9197 // CHECK: vmov
test_vsetq_lane_p8(poly8_t a,poly8x16_t b)9198 poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) {
9199 return vsetq_lane_p8(a, b, 15);
9200 }
9201
9202 // CHECK-LABEL: test_vsetq_lane_p16
9203 // CHECK: vmov
test_vsetq_lane_p16(poly16_t a,poly16x8_t b)9204 poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) {
9205 return vsetq_lane_p16(a, b, 7);
9206 }
9207
9208 // CHECK-LABEL: test_vsetq_lane_f32
9209 // CHECK: vmov
test_vsetq_lane_f32(float32_t a,float32x4_t b)9210 float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
9211 return vsetq_lane_f32(a, b, 3);
9212 }
9213
9214 // CHECK-LABEL: test_vset_lane_s64
9215 // The optimizer is able to get rid of all moves now.
test_vset_lane_s64(int64_t a,int64x1_t b)9216 int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) {
9217 return vset_lane_s64(a, b, 0);
9218 }
9219
9220 // CHECK-LABEL: test_vset_lane_u64
9221 // The optimizer is able to get rid of all moves now.
test_vset_lane_u64(uint64_t a,uint64x1_t b)9222 uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) {
9223 return vset_lane_u64(a, b, 0);
9224 }
9225
9226 // CHECK-LABEL: test_vsetq_lane_s64
9227 // CHECK: vmov
test_vsetq_lane_s64(int64_t a,int64x2_t b)9228 int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
9229 return vsetq_lane_s64(a, b, 1);
9230 }
9231
9232 // CHECK-LABEL: test_vsetq_lane_u64
9233 // CHECK: vmov
test_vsetq_lane_u64(uint64_t a,uint64x2_t b)9234 uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) {
9235 return vsetq_lane_u64(a, b, 1);
9236 }
9237
9238
9239 // CHECK-LABEL: test_vshl_s8
9240 // CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s8(int8x8_t a,int8x8_t b)9241 int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) {
9242 return vshl_s8(a, b);
9243 }
9244
9245 // CHECK-LABEL: test_vshl_s16
9246 // CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s16(int16x4_t a,int16x4_t b)9247 int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) {
9248 return vshl_s16(a, b);
9249 }
9250
9251 // CHECK-LABEL: test_vshl_s32
9252 // CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s32(int32x2_t a,int32x2_t b)9253 int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) {
9254 return vshl_s32(a, b);
9255 }
9256
9257 // CHECK-LABEL: test_vshl_s64
9258 // CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s64(int64x1_t a,int64x1_t b)9259 int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) {
9260 return vshl_s64(a, b);
9261 }
9262
9263 // CHECK-LABEL: test_vshl_u8
9264 // CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u8(uint8x8_t a,int8x8_t b)9265 uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) {
9266 return vshl_u8(a, b);
9267 }
9268
9269 // CHECK-LABEL: test_vshl_u16
9270 // CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u16(uint16x4_t a,int16x4_t b)9271 uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) {
9272 return vshl_u16(a, b);
9273 }
9274
9275 // CHECK-LABEL: test_vshl_u32
9276 // CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u32(uint32x2_t a,int32x2_t b)9277 uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) {
9278 return vshl_u32(a, b);
9279 }
9280
9281 // CHECK-LABEL: test_vshl_u64
9282 // CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u64(uint64x1_t a,int64x1_t b)9283 uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) {
9284 return vshl_u64(a, b);
9285 }
9286
9287 // CHECK-LABEL: test_vshlq_s8
9288 // CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s8(int8x16_t a,int8x16_t b)9289 int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) {
9290 return vshlq_s8(a, b);
9291 }
9292
9293 // CHECK-LABEL: test_vshlq_s16
9294 // CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s16(int16x8_t a,int16x8_t b)9295 int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) {
9296 return vshlq_s16(a, b);
9297 }
9298
9299 // CHECK-LABEL: test_vshlq_s32
9300 // CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s32(int32x4_t a,int32x4_t b)9301 int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) {
9302 return vshlq_s32(a, b);
9303 }
9304
9305 // CHECK-LABEL: test_vshlq_s64
9306 // CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s64(int64x2_t a,int64x2_t b)9307 int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) {
9308 return vshlq_s64(a, b);
9309 }
9310
9311 // CHECK-LABEL: test_vshlq_u8
9312 // CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u8(uint8x16_t a,int8x16_t b)9313 uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) {
9314 return vshlq_u8(a, b);
9315 }
9316
9317 // CHECK-LABEL: test_vshlq_u16
9318 // CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u16(uint16x8_t a,int16x8_t b)9319 uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) {
9320 return vshlq_u16(a, b);
9321 }
9322
9323 // CHECK-LABEL: test_vshlq_u32
9324 // CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u32(uint32x4_t a,int32x4_t b)9325 uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) {
9326 return vshlq_u32(a, b);
9327 }
9328
9329 // CHECK-LABEL: test_vshlq_u64
9330 // CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u64(uint64x2_t a,int64x2_t b)9331 uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) {
9332 return vshlq_u64(a, b);
9333 }
9334
9335
9336 // CHECK-LABEL: test_vshll_n_s8
9337 // CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s8(int8x8_t a)9338 int16x8_t test_vshll_n_s8(int8x8_t a) {
9339 return vshll_n_s8(a, 1);
9340 }
9341
9342 // CHECK-LABEL: test_vshll_n_s16
9343 // CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s16(int16x4_t a)9344 int32x4_t test_vshll_n_s16(int16x4_t a) {
9345 return vshll_n_s16(a, 1);
9346 }
9347
9348 // CHECK-LABEL: test_vshll_n_s32
9349 // CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s32(int32x2_t a)9350 int64x2_t test_vshll_n_s32(int32x2_t a) {
9351 return vshll_n_s32(a, 1);
9352 }
9353
9354 // CHECK-LABEL: test_vshll_n_u8
9355 // CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u8(uint8x8_t a)9356 uint16x8_t test_vshll_n_u8(uint8x8_t a) {
9357 return vshll_n_u8(a, 1);
9358 }
9359
9360 // CHECK-LABEL: test_vshll_n_u16
9361 // CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u16(uint16x4_t a)9362 uint32x4_t test_vshll_n_u16(uint16x4_t a) {
9363 return vshll_n_u16(a, 1);
9364 }
9365
9366 // CHECK-LABEL: test_vshll_n_u32
9367 // CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u32(uint32x2_t a)9368 uint64x2_t test_vshll_n_u32(uint32x2_t a) {
9369 return vshll_n_u32(a, 1);
9370 }
9371
9372
9373 // CHECK-LABEL: test_vshl_n_s8
9374 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s8(int8x8_t a)9375 int8x8_t test_vshl_n_s8(int8x8_t a) {
9376 return vshl_n_s8(a, 1);
9377 }
9378
9379 // CHECK-LABEL: test_vshl_n_s16
9380 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s16(int16x4_t a)9381 int16x4_t test_vshl_n_s16(int16x4_t a) {
9382 return vshl_n_s16(a, 1);
9383 }
9384
9385 // CHECK-LABEL: test_vshl_n_s32
9386 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s32(int32x2_t a)9387 int32x2_t test_vshl_n_s32(int32x2_t a) {
9388 return vshl_n_s32(a, 1);
9389 }
9390
9391 // CHECK-LABEL: test_vshl_n_s64
9392 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s64(int64x1_t a)9393 int64x1_t test_vshl_n_s64(int64x1_t a) {
9394 return vshl_n_s64(a, 1);
9395 }
9396
9397 // CHECK-LABEL: test_vshl_n_u8
9398 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u8(uint8x8_t a)9399 uint8x8_t test_vshl_n_u8(uint8x8_t a) {
9400 return vshl_n_u8(a, 1);
9401 }
9402
9403 // CHECK-LABEL: test_vshl_n_u16
9404 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u16(uint16x4_t a)9405 uint16x4_t test_vshl_n_u16(uint16x4_t a) {
9406 return vshl_n_u16(a, 1);
9407 }
9408
9409 // CHECK-LABEL: test_vshl_n_u32
9410 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u32(uint32x2_t a)9411 uint32x2_t test_vshl_n_u32(uint32x2_t a) {
9412 return vshl_n_u32(a, 1);
9413 }
9414
9415 // CHECK-LABEL: test_vshl_n_u64
9416 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u64(uint64x1_t a)9417 uint64x1_t test_vshl_n_u64(uint64x1_t a) {
9418 return vshl_n_u64(a, 1);
9419 }
9420
9421 // CHECK-LABEL: test_vshlq_n_s8
9422 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s8(int8x16_t a)9423 int8x16_t test_vshlq_n_s8(int8x16_t a) {
9424 return vshlq_n_s8(a, 1);
9425 }
9426
9427 // CHECK-LABEL: test_vshlq_n_s16
9428 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s16(int16x8_t a)9429 int16x8_t test_vshlq_n_s16(int16x8_t a) {
9430 return vshlq_n_s16(a, 1);
9431 }
9432
9433 // CHECK-LABEL: test_vshlq_n_s32
9434 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s32(int32x4_t a)9435 int32x4_t test_vshlq_n_s32(int32x4_t a) {
9436 return vshlq_n_s32(a, 1);
9437 }
9438
9439 // CHECK-LABEL: test_vshlq_n_s64
9440 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s64(int64x2_t a)9441 int64x2_t test_vshlq_n_s64(int64x2_t a) {
9442 return vshlq_n_s64(a, 1);
9443 }
9444
9445 // CHECK-LABEL: test_vshlq_n_u8
9446 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u8(uint8x16_t a)9447 uint8x16_t test_vshlq_n_u8(uint8x16_t a) {
9448 return vshlq_n_u8(a, 1);
9449 }
9450
9451 // CHECK-LABEL: test_vshlq_n_u16
9452 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u16(uint16x8_t a)9453 uint16x8_t test_vshlq_n_u16(uint16x8_t a) {
9454 return vshlq_n_u16(a, 1);
9455 }
9456
9457 // CHECK-LABEL: test_vshlq_n_u32
9458 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u32(uint32x4_t a)9459 uint32x4_t test_vshlq_n_u32(uint32x4_t a) {
9460 return vshlq_n_u32(a, 1);
9461 }
9462
9463 // CHECK-LABEL: test_vshlq_n_u64
9464 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u64(uint64x2_t a)9465 uint64x2_t test_vshlq_n_u64(uint64x2_t a) {
9466 return vshlq_n_u64(a, 1);
9467 }
9468
9469
9470 // CHECK-LABEL: test_vshrn_n_s16
9471 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s16(int16x8_t a)9472 int8x8_t test_vshrn_n_s16(int16x8_t a) {
9473 return vshrn_n_s16(a, 1);
9474 }
9475
9476 // CHECK-LABEL: test_vshrn_n_s32
9477 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s32(int32x4_t a)9478 int16x4_t test_vshrn_n_s32(int32x4_t a) {
9479 return vshrn_n_s32(a, 1);
9480 }
9481
9482 // CHECK-LABEL: test_vshrn_n_s64
9483 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s64(int64x2_t a)9484 int32x2_t test_vshrn_n_s64(int64x2_t a) {
9485 return vshrn_n_s64(a, 1);
9486 }
9487
9488 // CHECK-LABEL: test_vshrn_n_u16
9489 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u16(uint16x8_t a)9490 uint8x8_t test_vshrn_n_u16(uint16x8_t a) {
9491 return vshrn_n_u16(a, 1);
9492 }
9493
9494 // CHECK-LABEL: test_vshrn_n_u32
9495 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u32(uint32x4_t a)9496 uint16x4_t test_vshrn_n_u32(uint32x4_t a) {
9497 return vshrn_n_u32(a, 1);
9498 }
9499
9500 // CHECK-LABEL: test_vshrn_n_u64
9501 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u64(uint64x2_t a)9502 uint32x2_t test_vshrn_n_u64(uint64x2_t a) {
9503 return vshrn_n_u64(a, 1);
9504 }
9505
9506
9507 // CHECK-LABEL: test_vshr_n_s8
9508 // CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s8(int8x8_t a)9509 int8x8_t test_vshr_n_s8(int8x8_t a) {
9510 return vshr_n_s8(a, 1);
9511 }
9512
9513 // CHECK-LABEL: test_vshr_n_s16
9514 // CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s16(int16x4_t a)9515 int16x4_t test_vshr_n_s16(int16x4_t a) {
9516 return vshr_n_s16(a, 1);
9517 }
9518
9519 // CHECK-LABEL: test_vshr_n_s32
9520 // CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s32(int32x2_t a)9521 int32x2_t test_vshr_n_s32(int32x2_t a) {
9522 return vshr_n_s32(a, 1);
9523 }
9524
9525 // CHECK-LABEL: test_vshr_n_s64
9526 // CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s64(int64x1_t a)9527 int64x1_t test_vshr_n_s64(int64x1_t a) {
9528 return vshr_n_s64(a, 1);
9529 }
9530
9531 // CHECK-LABEL: test_vshr_n_u8
9532 // CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u8(uint8x8_t a)9533 uint8x8_t test_vshr_n_u8(uint8x8_t a) {
9534 return vshr_n_u8(a, 1);
9535 }
9536
9537 // CHECK-LABEL: test_vshr_n_u16
9538 // CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u16(uint16x4_t a)9539 uint16x4_t test_vshr_n_u16(uint16x4_t a) {
9540 return vshr_n_u16(a, 1);
9541 }
9542
9543 // CHECK-LABEL: test_vshr_n_u32
9544 // CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u32(uint32x2_t a)9545 uint32x2_t test_vshr_n_u32(uint32x2_t a) {
9546 return vshr_n_u32(a, 1);
9547 }
9548
9549 // CHECK-LABEL: test_vshr_n_u64
9550 // CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u64(uint64x1_t a)9551 uint64x1_t test_vshr_n_u64(uint64x1_t a) {
9552 return vshr_n_u64(a, 1);
9553 }
9554
9555 // CHECK-LABEL: test_vshrq_n_s8
9556 // CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s8(int8x16_t a)9557 int8x16_t test_vshrq_n_s8(int8x16_t a) {
9558 return vshrq_n_s8(a, 1);
9559 }
9560
9561 // CHECK-LABEL: test_vshrq_n_s16
9562 // CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s16(int16x8_t a)9563 int16x8_t test_vshrq_n_s16(int16x8_t a) {
9564 return vshrq_n_s16(a, 1);
9565 }
9566
9567 // CHECK-LABEL: test_vshrq_n_s32
9568 // CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s32(int32x4_t a)9569 int32x4_t test_vshrq_n_s32(int32x4_t a) {
9570 return vshrq_n_s32(a, 1);
9571 }
9572
9573 // CHECK-LABEL: test_vshrq_n_s64
9574 // CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s64(int64x2_t a)9575 int64x2_t test_vshrq_n_s64(int64x2_t a) {
9576 return vshrq_n_s64(a, 1);
9577 }
9578
9579 // CHECK-LABEL: test_vshrq_n_u8
9580 // CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u8(uint8x16_t a)9581 uint8x16_t test_vshrq_n_u8(uint8x16_t a) {
9582 return vshrq_n_u8(a, 1);
9583 }
9584
9585 // CHECK-LABEL: test_vshrq_n_u16
9586 // CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u16(uint16x8_t a)9587 uint16x8_t test_vshrq_n_u16(uint16x8_t a) {
9588 return vshrq_n_u16(a, 1);
9589 }
9590
9591 // CHECK-LABEL: test_vshrq_n_u32
9592 // CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u32(uint32x4_t a)9593 uint32x4_t test_vshrq_n_u32(uint32x4_t a) {
9594 return vshrq_n_u32(a, 1);
9595 }
9596
9597 // CHECK-LABEL: test_vshrq_n_u64
9598 // CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u64(uint64x2_t a)9599 uint64x2_t test_vshrq_n_u64(uint64x2_t a) {
9600 return vshrq_n_u64(a, 1);
9601 }
9602
9603
9604 // CHECK-LABEL: test_vsli_n_s8
9605 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s8(int8x8_t a,int8x8_t b)9606 int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) {
9607 return vsli_n_s8(a, b, 1);
9608 }
9609
9610 // CHECK-LABEL: test_vsli_n_s16
9611 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s16(int16x4_t a,int16x4_t b)9612 int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) {
9613 return vsli_n_s16(a, b, 1);
9614 }
9615
9616 // CHECK-LABEL: test_vsli_n_s32
9617 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s32(int32x2_t a,int32x2_t b)9618 int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) {
9619 return vsli_n_s32(a, b, 1);
9620 }
9621
9622 // CHECK-LABEL: test_vsli_n_s64
9623 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s64(int64x1_t a,int64x1_t b)9624 int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) {
9625 return vsli_n_s64(a, b, 1);
9626 }
9627
9628 // CHECK-LABEL: test_vsli_n_u8
9629 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u8(uint8x8_t a,uint8x8_t b)9630 uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) {
9631 return vsli_n_u8(a, b, 1);
9632 }
9633
9634 // CHECK-LABEL: test_vsli_n_u16
9635 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u16(uint16x4_t a,uint16x4_t b)9636 uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) {
9637 return vsli_n_u16(a, b, 1);
9638 }
9639
9640 // CHECK-LABEL: test_vsli_n_u32
9641 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u32(uint32x2_t a,uint32x2_t b)9642 uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) {
9643 return vsli_n_u32(a, b, 1);
9644 }
9645
9646 // CHECK-LABEL: test_vsli_n_u64
9647 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u64(uint64x1_t a,uint64x1_t b)9648 uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) {
9649 return vsli_n_u64(a, b, 1);
9650 }
9651
9652 // CHECK-LABEL: test_vsli_n_p8
9653 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p8(poly8x8_t a,poly8x8_t b)9654 poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) {
9655 return vsli_n_p8(a, b, 1);
9656 }
9657
9658 // CHECK-LABEL: test_vsli_n_p16
9659 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p16(poly16x4_t a,poly16x4_t b)9660 poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) {
9661 return vsli_n_p16(a, b, 1);
9662 }
9663
9664 // CHECK-LABEL: test_vsliq_n_s8
9665 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s8(int8x16_t a,int8x16_t b)9666 int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) {
9667 return vsliq_n_s8(a, b, 1);
9668 }
9669
9670 // CHECK-LABEL: test_vsliq_n_s16
9671 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s16(int16x8_t a,int16x8_t b)9672 int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) {
9673 return vsliq_n_s16(a, b, 1);
9674 }
9675
9676 // CHECK-LABEL: test_vsliq_n_s32
9677 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s32(int32x4_t a,int32x4_t b)9678 int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) {
9679 return vsliq_n_s32(a, b, 1);
9680 }
9681
9682 // CHECK-LABEL: test_vsliq_n_s64
9683 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s64(int64x2_t a,int64x2_t b)9684 int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) {
9685 return vsliq_n_s64(a, b, 1);
9686 }
9687
9688 // CHECK-LABEL: test_vsliq_n_u8
9689 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u8(uint8x16_t a,uint8x16_t b)9690 uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) {
9691 return vsliq_n_u8(a, b, 1);
9692 }
9693
9694 // CHECK-LABEL: test_vsliq_n_u16
9695 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u16(uint16x8_t a,uint16x8_t b)9696 uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) {
9697 return vsliq_n_u16(a, b, 1);
9698 }
9699
9700 // CHECK-LABEL: test_vsliq_n_u32
9701 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u32(uint32x4_t a,uint32x4_t b)9702 uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) {
9703 return vsliq_n_u32(a, b, 1);
9704 }
9705
9706 // CHECK-LABEL: test_vsliq_n_u64
9707 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u64(uint64x2_t a,uint64x2_t b)9708 uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) {
9709 return vsliq_n_u64(a, b, 1);
9710 }
9711
9712 // CHECK-LABEL: test_vsliq_n_p8
9713 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p8(poly8x16_t a,poly8x16_t b)9714 poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) {
9715 return vsliq_n_p8(a, b, 1);
9716 }
9717
9718 // CHECK-LABEL: test_vsliq_n_p16
9719 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p16(poly16x8_t a,poly16x8_t b)9720 poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) {
9721 return vsliq_n_p16(a, b, 1);
9722 }
9723
9724
9725 // CHECK-LABEL: test_vsra_n_s8
9726 // CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s8(int8x8_t a,int8x8_t b)9727 int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) {
9728 return vsra_n_s8(a, b, 1);
9729 }
9730
9731 // CHECK-LABEL: test_vsra_n_s16
9732 // CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s16(int16x4_t a,int16x4_t b)9733 int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) {
9734 return vsra_n_s16(a, b, 1);
9735 }
9736
9737 // CHECK-LABEL: test_vsra_n_s32
9738 // CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s32(int32x2_t a,int32x2_t b)9739 int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) {
9740 return vsra_n_s32(a, b, 1);
9741 }
9742
9743 // CHECK-LABEL: test_vsra_n_s64
9744 // CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s64(int64x1_t a,int64x1_t b)9745 int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) {
9746 return vsra_n_s64(a, b, 1);
9747 }
9748
9749 // CHECK-LABEL: test_vsra_n_u8
9750 // CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u8(uint8x8_t a,uint8x8_t b)9751 uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) {
9752 return vsra_n_u8(a, b, 1);
9753 }
9754
9755 // CHECK-LABEL: test_vsra_n_u16
9756 // CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u16(uint16x4_t a,uint16x4_t b)9757 uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) {
9758 return vsra_n_u16(a, b, 1);
9759 }
9760
9761 // CHECK-LABEL: test_vsra_n_u32
9762 // CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u32(uint32x2_t a,uint32x2_t b)9763 uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) {
9764 return vsra_n_u32(a, b, 1);
9765 }
9766
9767 // CHECK-LABEL: test_vsra_n_u64
9768 // CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u64(uint64x1_t a,uint64x1_t b)9769 uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) {
9770 return vsra_n_u64(a, b, 1);
9771 }
9772
9773 // CHECK-LABEL: test_vsraq_n_s8
9774 // CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s8(int8x16_t a,int8x16_t b)9775 int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) {
9776 return vsraq_n_s8(a, b, 1);
9777 }
9778
9779 // CHECK-LABEL: test_vsraq_n_s16
9780 // CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s16(int16x8_t a,int16x8_t b)9781 int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) {
9782 return vsraq_n_s16(a, b, 1);
9783 }
9784
9785 // CHECK-LABEL: test_vsraq_n_s32
9786 // CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s32(int32x4_t a,int32x4_t b)9787 int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) {
9788 return vsraq_n_s32(a, b, 1);
9789 }
9790
9791 // CHECK-LABEL: test_vsraq_n_s64
9792 // CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s64(int64x2_t a,int64x2_t b)9793 int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) {
9794 return vsraq_n_s64(a, b, 1);
9795 }
9796
9797 // CHECK-LABEL: test_vsraq_n_u8
9798 // CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u8(uint8x16_t a,uint8x16_t b)9799 uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9800 return vsraq_n_u8(a, b, 1);
9801 }
9802
9803 // CHECK-LABEL: test_vsraq_n_u16
9804 // CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u16(uint16x8_t a,uint16x8_t b)9805 uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9806 return vsraq_n_u16(a, b, 1);
9807 }
9808
9809 // CHECK-LABEL: test_vsraq_n_u32
9810 // CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u32(uint32x4_t a,uint32x4_t b)9811 uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9812 return vsraq_n_u32(a, b, 1);
9813 }
9814
9815 // CHECK-LABEL: test_vsraq_n_u64
9816 // CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u64(uint64x2_t a,uint64x2_t b)9817 uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9818 return vsraq_n_u64(a, b, 1);
9819 }
9820
9821
9822 // CHECK-LABEL: test_vsri_n_s8
9823 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s8(int8x8_t a,int8x8_t b)9824 int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) {
9825 return vsri_n_s8(a, b, 1);
9826 }
9827
9828 // CHECK-LABEL: test_vsri_n_s16
9829 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s16(int16x4_t a,int16x4_t b)9830 int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) {
9831 return vsri_n_s16(a, b, 1);
9832 }
9833
9834 // CHECK-LABEL: test_vsri_n_s32
9835 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s32(int32x2_t a,int32x2_t b)9836 int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) {
9837 return vsri_n_s32(a, b, 1);
9838 }
9839
9840 // CHECK-LABEL: test_vsri_n_s64
9841 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s64(int64x1_t a,int64x1_t b)9842 int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) {
9843 return vsri_n_s64(a, b, 1);
9844 }
9845
9846 // CHECK-LABEL: test_vsri_n_u8
9847 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u8(uint8x8_t a,uint8x8_t b)9848 uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) {
9849 return vsri_n_u8(a, b, 1);
9850 }
9851
9852 // CHECK-LABEL: test_vsri_n_u16
9853 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u16(uint16x4_t a,uint16x4_t b)9854 uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) {
9855 return vsri_n_u16(a, b, 1);
9856 }
9857
9858 // CHECK-LABEL: test_vsri_n_u32
9859 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u32(uint32x2_t a,uint32x2_t b)9860 uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) {
9861 return vsri_n_u32(a, b, 1);
9862 }
9863
9864 // CHECK-LABEL: test_vsri_n_u64
9865 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u64(uint64x1_t a,uint64x1_t b)9866 uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) {
9867 return vsri_n_u64(a, b, 1);
9868 }
9869
9870 // CHECK-LABEL: test_vsri_n_p8
9871 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p8(poly8x8_t a,poly8x8_t b)9872 poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) {
9873 return vsri_n_p8(a, b, 1);
9874 }
9875
9876 // CHECK-LABEL: test_vsri_n_p16
9877 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p16(poly16x4_t a,poly16x4_t b)9878 poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) {
9879 return vsri_n_p16(a, b, 1);
9880 }
9881
9882 // CHECK-LABEL: test_vsriq_n_s8
9883 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s8(int8x16_t a,int8x16_t b)9884 int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) {
9885 return vsriq_n_s8(a, b, 1);
9886 }
9887
9888 // CHECK-LABEL: test_vsriq_n_s16
9889 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s16(int16x8_t a,int16x8_t b)9890 int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) {
9891 return vsriq_n_s16(a, b, 1);
9892 }
9893
9894 // CHECK-LABEL: test_vsriq_n_s32
9895 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s32(int32x4_t a,int32x4_t b)9896 int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) {
9897 return vsriq_n_s32(a, b, 1);
9898 }
9899
9900 // CHECK-LABEL: test_vsriq_n_s64
9901 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s64(int64x2_t a,int64x2_t b)9902 int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) {
9903 return vsriq_n_s64(a, b, 1);
9904 }
9905
9906 // CHECK-LABEL: test_vsriq_n_u8
9907 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u8(uint8x16_t a,uint8x16_t b)9908 uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) {
9909 return vsriq_n_u8(a, b, 1);
9910 }
9911
9912 // CHECK-LABEL: test_vsriq_n_u16
9913 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u16(uint16x8_t a,uint16x8_t b)9914 uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) {
9915 return vsriq_n_u16(a, b, 1);
9916 }
9917
9918 // CHECK-LABEL: test_vsriq_n_u32
9919 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u32(uint32x4_t a,uint32x4_t b)9920 uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) {
9921 return vsriq_n_u32(a, b, 1);
9922 }
9923
9924 // CHECK-LABEL: test_vsriq_n_u64
9925 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u64(uint64x2_t a,uint64x2_t b)9926 uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) {
9927 return vsriq_n_u64(a, b, 1);
9928 }
9929
9930 // CHECK-LABEL: test_vsriq_n_p8
9931 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p8(poly8x16_t a,poly8x16_t b)9932 poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) {
9933 return vsriq_n_p8(a, b, 1);
9934 }
9935
9936 // CHECK-LABEL: test_vsriq_n_p16
9937 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p16(poly16x8_t a,poly16x8_t b)9938 poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) {
9939 return vsriq_n_p16(a, b, 1);
9940 }
9941
9942
9943 // CHECK-LABEL: test_vst1q_u8
9944 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u8(uint8_t * a,uint8x16_t b)9945 void test_vst1q_u8(uint8_t * a, uint8x16_t b) {
9946 vst1q_u8(a, b);
9947 }
9948
9949 // CHECK-LABEL: test_vst1q_u16
9950 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u16(uint16_t * a,uint16x8_t b)9951 void test_vst1q_u16(uint16_t * a, uint16x8_t b) {
9952 vst1q_u16(a, b);
9953 }
9954
9955 // CHECK-LABEL: test_vst1q_u32
9956 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u32(uint32_t * a,uint32x4_t b)9957 void test_vst1q_u32(uint32_t * a, uint32x4_t b) {
9958 vst1q_u32(a, b);
9959 }
9960
9961 // CHECK-LABEL: test_vst1q_u64
9962 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_u64(uint64_t * a,uint64x2_t b)9963 void test_vst1q_u64(uint64_t * a, uint64x2_t b) {
9964 vst1q_u64(a, b);
9965 }
9966
9967 // CHECK-LABEL: test_vst1q_s8
9968 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s8(int8_t * a,int8x16_t b)9969 void test_vst1q_s8(int8_t * a, int8x16_t b) {
9970 vst1q_s8(a, b);
9971 }
9972
9973 // CHECK-LABEL: test_vst1q_s16
9974 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s16(int16_t * a,int16x8_t b)9975 void test_vst1q_s16(int16_t * a, int16x8_t b) {
9976 vst1q_s16(a, b);
9977 }
9978
9979 // CHECK-LABEL: test_vst1q_s32
9980 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s32(int32_t * a,int32x4_t b)9981 void test_vst1q_s32(int32_t * a, int32x4_t b) {
9982 vst1q_s32(a, b);
9983 }
9984
9985 // CHECK-LABEL: test_vst1q_s64
9986 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_s64(int64_t * a,int64x2_t b)9987 void test_vst1q_s64(int64_t * a, int64x2_t b) {
9988 vst1q_s64(a, b);
9989 }
9990
9991 // CHECK-LABEL: test_vst1q_f16
9992 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f16(float16_t * a,float16x8_t b)9993 void test_vst1q_f16(float16_t * a, float16x8_t b) {
9994 vst1q_f16(a, b);
9995 }
9996
9997 // CHECK-LABEL: test_vst1q_f32
9998 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f32(float32_t * a,float32x4_t b)9999 void test_vst1q_f32(float32_t * a, float32x4_t b) {
10000 vst1q_f32(a, b);
10001 }
10002
10003 // CHECK-LABEL: test_vst1q_p8
10004 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p8(poly8_t * a,poly8x16_t b)10005 void test_vst1q_p8(poly8_t * a, poly8x16_t b) {
10006 vst1q_p8(a, b);
10007 }
10008
10009 // CHECK-LABEL: test_vst1q_p16
10010 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p16(poly16_t * a,poly16x8_t b)10011 void test_vst1q_p16(poly16_t * a, poly16x8_t b) {
10012 vst1q_p16(a, b);
10013 }
10014
10015 // CHECK-LABEL: test_vst1_u8
10016 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u8(uint8_t * a,uint8x8_t b)10017 void test_vst1_u8(uint8_t * a, uint8x8_t b) {
10018 vst1_u8(a, b);
10019 }
10020
10021 // CHECK-LABEL: test_vst1_u16
10022 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u16(uint16_t * a,uint16x4_t b)10023 void test_vst1_u16(uint16_t * a, uint16x4_t b) {
10024 vst1_u16(a, b);
10025 }
10026
10027 // CHECK-LABEL: test_vst1_u32
10028 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u32(uint32_t * a,uint32x2_t b)10029 void test_vst1_u32(uint32_t * a, uint32x2_t b) {
10030 vst1_u32(a, b);
10031 }
10032
10033 // CHECK-LABEL: test_vst1_u64
10034 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_u64(uint64_t * a,uint64x1_t b)10035 void test_vst1_u64(uint64_t * a, uint64x1_t b) {
10036 vst1_u64(a, b);
10037 }
10038
10039 // CHECK-LABEL: test_vst1_s8
10040 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s8(int8_t * a,int8x8_t b)10041 void test_vst1_s8(int8_t * a, int8x8_t b) {
10042 vst1_s8(a, b);
10043 }
10044
10045 // CHECK-LABEL: test_vst1_s16
10046 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s16(int16_t * a,int16x4_t b)10047 void test_vst1_s16(int16_t * a, int16x4_t b) {
10048 vst1_s16(a, b);
10049 }
10050
10051 // CHECK-LABEL: test_vst1_s32
10052 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s32(int32_t * a,int32x2_t b)10053 void test_vst1_s32(int32_t * a, int32x2_t b) {
10054 vst1_s32(a, b);
10055 }
10056
10057 // CHECK-LABEL: test_vst1_s64
10058 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_s64(int64_t * a,int64x1_t b)10059 void test_vst1_s64(int64_t * a, int64x1_t b) {
10060 vst1_s64(a, b);
10061 }
10062
10063 // CHECK-LABEL: test_vst1_f16
10064 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f16(float16_t * a,float16x4_t b)10065 void test_vst1_f16(float16_t * a, float16x4_t b) {
10066 vst1_f16(a, b);
10067 }
10068
10069 // CHECK-LABEL: test_vst1_f32
10070 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f32(float32_t * a,float32x2_t b)10071 void test_vst1_f32(float32_t * a, float32x2_t b) {
10072 vst1_f32(a, b);
10073 }
10074
10075 // CHECK-LABEL: test_vst1_p8
10076 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p8(poly8_t * a,poly8x8_t b)10077 void test_vst1_p8(poly8_t * a, poly8x8_t b) {
10078 vst1_p8(a, b);
10079 }
10080
10081 // CHECK-LABEL: test_vst1_p16
10082 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p16(poly16_t * a,poly16x4_t b)10083 void test_vst1_p16(poly16_t * a, poly16x4_t b) {
10084 vst1_p16(a, b);
10085 }
10086
10087
10088 // CHECK-LABEL: test_vst1q_lane_u8
10089 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_u8(uint8_t * a,uint8x16_t b)10090 void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) {
10091 vst1q_lane_u8(a, b, 15);
10092 }
10093
10094 // CHECK-LABEL: test_vst1q_lane_u16
10095 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_u16(uint16_t * a,uint16x8_t b)10096 void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) {
10097 vst1q_lane_u16(a, b, 7);
10098 }
10099
10100 // CHECK-LABEL: test_vst1q_lane_u32
10101 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_u32(uint32_t * a,uint32x4_t b)10102 void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) {
10103 vst1q_lane_u32(a, b, 3);
10104 }
10105
10106 // CHECK-LABEL: test_vst1q_lane_u64
10107 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_u64(uint64_t * a,uint64x2_t b)10108 void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) {
10109 vst1q_lane_u64(a, b, 1);
10110 }
10111
10112 // CHECK-LABEL: test_vst1q_lane_s8
10113 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_s8(int8_t * a,int8x16_t b)10114 void test_vst1q_lane_s8(int8_t * a, int8x16_t b) {
10115 vst1q_lane_s8(a, b, 15);
10116 }
10117
10118 // CHECK-LABEL: test_vst1q_lane_s16
10119 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_s16(int16_t * a,int16x8_t b)10120 void test_vst1q_lane_s16(int16_t * a, int16x8_t b) {
10121 vst1q_lane_s16(a, b, 7);
10122 }
10123
10124 // CHECK-LABEL: test_vst1q_lane_s32
10125 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_s32(int32_t * a,int32x4_t b)10126 void test_vst1q_lane_s32(int32_t * a, int32x4_t b) {
10127 vst1q_lane_s32(a, b, 3);
10128 }
10129
10130 // CHECK-LABEL: test_vst1q_lane_s64
10131 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_s64(int64_t * a,int64x2_t b)10132 void test_vst1q_lane_s64(int64_t * a, int64x2_t b) {
10133 vst1q_lane_s64(a, b, 1);
10134 }
10135
10136 // CHECK-LABEL: test_vst1q_lane_f16
10137 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_f16(float16_t * a,float16x8_t b)10138 void test_vst1q_lane_f16(float16_t * a, float16x8_t b) {
10139 vst1q_lane_f16(a, b, 7);
10140 }
10141
10142 // CHECK-LABEL: test_vst1q_lane_f32
10143 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_f32(float32_t * a,float32x4_t b)10144 void test_vst1q_lane_f32(float32_t * a, float32x4_t b) {
10145 vst1q_lane_f32(a, b, 3);
10146 }
10147
10148 // CHECK-LABEL: test_vst1q_lane_p8
10149 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_p8(poly8_t * a,poly8x16_t b)10150 void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) {
10151 vst1q_lane_p8(a, b, 15);
10152 }
10153
10154 // CHECK-LABEL: test_vst1q_lane_p16
10155 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_p16(poly16_t * a,poly16x8_t b)10156 void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) {
10157 vst1q_lane_p16(a, b, 7);
10158 }
10159
10160 // CHECK-LABEL: test_vst1_lane_u8
10161 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_u8(uint8_t * a,uint8x8_t b)10162 void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) {
10163 vst1_lane_u8(a, b, 7);
10164 }
10165
10166 // CHECK-LABEL: test_vst1_lane_u16
10167 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_u16(uint16_t * a,uint16x4_t b)10168 void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) {
10169 vst1_lane_u16(a, b, 3);
10170 }
10171
10172 // CHECK-LABEL: test_vst1_lane_u32
10173 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_u32(uint32_t * a,uint32x2_t b)10174 void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) {
10175 vst1_lane_u32(a, b, 1);
10176 }
10177
10178 // CHECK-LABEL: test_vst1_lane_u64
10179 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_u64(uint64_t * a,uint64x1_t b)10180 void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) {
10181 vst1_lane_u64(a, b, 0);
10182 }
10183
10184 // CHECK-LABEL: test_vst1_lane_s8
10185 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_s8(int8_t * a,int8x8_t b)10186 void test_vst1_lane_s8(int8_t * a, int8x8_t b) {
10187 vst1_lane_s8(a, b, 7);
10188 }
10189
10190 // CHECK-LABEL: test_vst1_lane_s16
10191 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_s16(int16_t * a,int16x4_t b)10192 void test_vst1_lane_s16(int16_t * a, int16x4_t b) {
10193 vst1_lane_s16(a, b, 3);
10194 }
10195
10196 // CHECK-LABEL: test_vst1_lane_s32
10197 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_s32(int32_t * a,int32x2_t b)10198 void test_vst1_lane_s32(int32_t * a, int32x2_t b) {
10199 vst1_lane_s32(a, b, 1);
10200 }
10201
10202 // CHECK-LABEL: test_vst1_lane_s64
10203 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_s64(int64_t * a,int64x1_t b)10204 void test_vst1_lane_s64(int64_t * a, int64x1_t b) {
10205 vst1_lane_s64(a, b, 0);
10206 }
10207
10208 // CHECK-LABEL: test_vst1_lane_f16
10209 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_f16(float16_t * a,float16x4_t b)10210 void test_vst1_lane_f16(float16_t * a, float16x4_t b) {
10211 vst1_lane_f16(a, b, 3);
10212 }
10213
10214 // CHECK-LABEL: test_vst1_lane_f32
10215 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_f32(float32_t * a,float32x2_t b)10216 void test_vst1_lane_f32(float32_t * a, float32x2_t b) {
10217 vst1_lane_f32(a, b, 1);
10218 }
10219
10220 // CHECK-LABEL: test_vst1_lane_p8
10221 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_p8(poly8_t * a,poly8x8_t b)10222 void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) {
10223 vst1_lane_p8(a, b, 7);
10224 }
10225
10226 // CHECK-LABEL: test_vst1_lane_p16
10227 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_p16(poly16_t * a,poly16x4_t b)10228 void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) {
10229 vst1_lane_p16(a, b, 3);
10230 }
10231
10232
10233 // CHECK-LABEL: test_vst2q_u8
10234 // 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)10235 void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) {
10236 vst2q_u8(a, b);
10237 }
10238
10239 // CHECK-LABEL: test_vst2q_u16
10240 // 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)10241 void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) {
10242 vst2q_u16(a, b);
10243 }
10244
10245 // CHECK-LABEL: test_vst2q_u32
10246 // 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)10247 void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) {
10248 vst2q_u32(a, b);
10249 }
10250
10251 // CHECK-LABEL: test_vst2q_s8
10252 // 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)10253 void test_vst2q_s8(int8_t * a, int8x16x2_t b) {
10254 vst2q_s8(a, b);
10255 }
10256
10257 // CHECK-LABEL: test_vst2q_s16
10258 // 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)10259 void test_vst2q_s16(int16_t * a, int16x8x2_t b) {
10260 vst2q_s16(a, b);
10261 }
10262
10263 // CHECK-LABEL: test_vst2q_s32
10264 // 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)10265 void test_vst2q_s32(int32_t * a, int32x4x2_t b) {
10266 vst2q_s32(a, b);
10267 }
10268
10269 // CHECK-LABEL: test_vst2q_f16
10270 // 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)10271 void test_vst2q_f16(float16_t * a, float16x8x2_t b) {
10272 vst2q_f16(a, b);
10273 }
10274
10275 // CHECK-LABEL: test_vst2q_f32
10276 // 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)10277 void test_vst2q_f32(float32_t * a, float32x4x2_t b) {
10278 vst2q_f32(a, b);
10279 }
10280
10281 // CHECK-LABEL: test_vst2q_p8
10282 // 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)10283 void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) {
10284 vst2q_p8(a, b);
10285 }
10286
10287 // CHECK-LABEL: test_vst2q_p16
10288 // 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)10289 void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) {
10290 vst2q_p16(a, b);
10291 }
10292
10293 // CHECK-LABEL: test_vst2_u8
10294 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u8(uint8_t * a,uint8x8x2_t b)10295 void test_vst2_u8(uint8_t * a, uint8x8x2_t b) {
10296 vst2_u8(a, b);
10297 }
10298
10299 // CHECK-LABEL: test_vst2_u16
10300 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u16(uint16_t * a,uint16x4x2_t b)10301 void test_vst2_u16(uint16_t * a, uint16x4x2_t b) {
10302 vst2_u16(a, b);
10303 }
10304
10305 // CHECK-LABEL: test_vst2_u32
10306 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u32(uint32_t * a,uint32x2x2_t b)10307 void test_vst2_u32(uint32_t * a, uint32x2x2_t b) {
10308 vst2_u32(a, b);
10309 }
10310
10311 // CHECK-LABEL: test_vst2_u64
10312 // CHECK: vst1.64
test_vst2_u64(uint64_t * a,uint64x1x2_t b)10313 void test_vst2_u64(uint64_t * a, uint64x1x2_t b) {
10314 vst2_u64(a, b);
10315 }
10316
10317 // CHECK-LABEL: test_vst2_s8
10318 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s8(int8_t * a,int8x8x2_t b)10319 void test_vst2_s8(int8_t * a, int8x8x2_t b) {
10320 vst2_s8(a, b);
10321 }
10322
10323 // CHECK-LABEL: test_vst2_s16
10324 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s16(int16_t * a,int16x4x2_t b)10325 void test_vst2_s16(int16_t * a, int16x4x2_t b) {
10326 vst2_s16(a, b);
10327 }
10328
10329 // CHECK-LABEL: test_vst2_s32
10330 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s32(int32_t * a,int32x2x2_t b)10331 void test_vst2_s32(int32_t * a, int32x2x2_t b) {
10332 vst2_s32(a, b);
10333 }
10334
10335 // CHECK-LABEL: test_vst2_s64
10336 // CHECK: vst1.64
test_vst2_s64(int64_t * a,int64x1x2_t b)10337 void test_vst2_s64(int64_t * a, int64x1x2_t b) {
10338 vst2_s64(a, b);
10339 }
10340
10341 // CHECK-LABEL: test_vst2_f16
10342 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f16(float16_t * a,float16x4x2_t b)10343 void test_vst2_f16(float16_t * a, float16x4x2_t b) {
10344 vst2_f16(a, b);
10345 }
10346
10347 // CHECK-LABEL: test_vst2_f32
10348 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f32(float32_t * a,float32x2x2_t b)10349 void test_vst2_f32(float32_t * a, float32x2x2_t b) {
10350 vst2_f32(a, b);
10351 }
10352
10353 // CHECK-LABEL: test_vst2_p8
10354 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p8(poly8_t * a,poly8x8x2_t b)10355 void test_vst2_p8(poly8_t * a, poly8x8x2_t b) {
10356 vst2_p8(a, b);
10357 }
10358
10359 // CHECK-LABEL: test_vst2_p16
10360 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p16(poly16_t * a,poly16x4x2_t b)10361 void test_vst2_p16(poly16_t * a, poly16x4x2_t b) {
10362 vst2_p16(a, b);
10363 }
10364
10365
10366 // CHECK-LABEL: test_vst2q_lane_u16
10367 // 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)10368 void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) {
10369 vst2q_lane_u16(a, b, 7);
10370 }
10371
10372 // CHECK-LABEL: test_vst2q_lane_u32
10373 // 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)10374 void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) {
10375 vst2q_lane_u32(a, b, 3);
10376 }
10377
10378 // CHECK-LABEL: test_vst2q_lane_s16
10379 // 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)10380 void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) {
10381 vst2q_lane_s16(a, b, 7);
10382 }
10383
10384 // CHECK-LABEL: test_vst2q_lane_s32
10385 // 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)10386 void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) {
10387 vst2q_lane_s32(a, b, 3);
10388 }
10389
10390 // CHECK-LABEL: test_vst2q_lane_f16
10391 // 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)10392 void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) {
10393 vst2q_lane_f16(a, b, 7);
10394 }
10395
10396 // CHECK-LABEL: test_vst2q_lane_f32
10397 // 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)10398 void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) {
10399 vst2q_lane_f32(a, b, 3);
10400 }
10401
10402 // CHECK-LABEL: test_vst2q_lane_p16
10403 // 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)10404 void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) {
10405 vst2q_lane_p16(a, b, 7);
10406 }
10407
10408 // CHECK-LABEL: test_vst2_lane_u8
10409 // 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)10410 void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) {
10411 vst2_lane_u8(a, b, 7);
10412 }
10413
10414 // CHECK-LABEL: test_vst2_lane_u16
10415 // 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)10416 void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) {
10417 vst2_lane_u16(a, b, 3);
10418 }
10419
10420 // CHECK-LABEL: test_vst2_lane_u32
10421 // 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)10422 void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) {
10423 vst2_lane_u32(a, b, 1);
10424 }
10425
10426 // CHECK-LABEL: test_vst2_lane_s8
10427 // 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)10428 void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) {
10429 vst2_lane_s8(a, b, 7);
10430 }
10431
10432 // CHECK-LABEL: test_vst2_lane_s16
10433 // 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)10434 void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) {
10435 vst2_lane_s16(a, b, 3);
10436 }
10437
10438 // CHECK-LABEL: test_vst2_lane_s32
10439 // 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)10440 void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) {
10441 vst2_lane_s32(a, b, 1);
10442 }
10443
10444 // CHECK-LABEL: test_vst2_lane_f16
10445 // 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)10446 void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) {
10447 vst2_lane_f16(a, b, 3);
10448 }
10449
10450 // CHECK-LABEL: test_vst2_lane_f32
10451 // 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)10452 void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) {
10453 vst2_lane_f32(a, b, 1);
10454 }
10455
10456 // CHECK-LABEL: test_vst2_lane_p8
10457 // 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)10458 void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) {
10459 vst2_lane_p8(a, b, 7);
10460 }
10461
10462 // CHECK-LABEL: test_vst2_lane_p16
10463 // 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)10464 void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) {
10465 vst2_lane_p16(a, b, 3);
10466 }
10467
10468
10469 // CHECK-LABEL: test_vst3q_u8
10470 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u8(uint8_t * a,uint8x16x3_t b)10471 void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) {
10472 vst3q_u8(a, b);
10473 }
10474
10475 // CHECK-LABEL: test_vst3q_u16
10476 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u16(uint16_t * a,uint16x8x3_t b)10477 void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) {
10478 vst3q_u16(a, b);
10479 }
10480
10481 // CHECK-LABEL: test_vst3q_u32
10482 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u32(uint32_t * a,uint32x4x3_t b)10483 void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) {
10484 vst3q_u32(a, b);
10485 }
10486
10487 // CHECK-LABEL: test_vst3q_s8
10488 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s8(int8_t * a,int8x16x3_t b)10489 void test_vst3q_s8(int8_t * a, int8x16x3_t b) {
10490 vst3q_s8(a, b);
10491 }
10492
10493 // CHECK-LABEL: test_vst3q_s16
10494 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s16(int16_t * a,int16x8x3_t b)10495 void test_vst3q_s16(int16_t * a, int16x8x3_t b) {
10496 vst3q_s16(a, b);
10497 }
10498
10499 // CHECK-LABEL: test_vst3q_s32
10500 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s32(int32_t * a,int32x4x3_t b)10501 void test_vst3q_s32(int32_t * a, int32x4x3_t b) {
10502 vst3q_s32(a, b);
10503 }
10504
10505 // CHECK-LABEL: test_vst3q_f16
10506 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f16(float16_t * a,float16x8x3_t b)10507 void test_vst3q_f16(float16_t * a, float16x8x3_t b) {
10508 vst3q_f16(a, b);
10509 }
10510
10511 // CHECK-LABEL: test_vst3q_f32
10512 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f32(float32_t * a,float32x4x3_t b)10513 void test_vst3q_f32(float32_t * a, float32x4x3_t b) {
10514 vst3q_f32(a, b);
10515 }
10516
10517 // CHECK-LABEL: test_vst3q_p8
10518 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p8(poly8_t * a,poly8x16x3_t b)10519 void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) {
10520 vst3q_p8(a, b);
10521 }
10522
10523 // CHECK-LABEL: test_vst3q_p16
10524 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p16(poly16_t * a,poly16x8x3_t b)10525 void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) {
10526 vst3q_p16(a, b);
10527 }
10528
10529 // CHECK-LABEL: test_vst3_u8
10530 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u8(uint8_t * a,uint8x8x3_t b)10531 void test_vst3_u8(uint8_t * a, uint8x8x3_t b) {
10532 vst3_u8(a, b);
10533 }
10534
10535 // CHECK-LABEL: test_vst3_u16
10536 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u16(uint16_t * a,uint16x4x3_t b)10537 void test_vst3_u16(uint16_t * a, uint16x4x3_t b) {
10538 vst3_u16(a, b);
10539 }
10540
10541 // CHECK-LABEL: test_vst3_u32
10542 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u32(uint32_t * a,uint32x2x3_t b)10543 void test_vst3_u32(uint32_t * a, uint32x2x3_t b) {
10544 vst3_u32(a, b);
10545 }
10546
10547 // CHECK-LABEL: test_vst3_u64
10548 // CHECK: vst1.64
test_vst3_u64(uint64_t * a,uint64x1x3_t b)10549 void test_vst3_u64(uint64_t * a, uint64x1x3_t b) {
10550 vst3_u64(a, b);
10551 }
10552
10553 // CHECK-LABEL: test_vst3_s8
10554 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s8(int8_t * a,int8x8x3_t b)10555 void test_vst3_s8(int8_t * a, int8x8x3_t b) {
10556 vst3_s8(a, b);
10557 }
10558
10559 // CHECK-LABEL: test_vst3_s16
10560 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s16(int16_t * a,int16x4x3_t b)10561 void test_vst3_s16(int16_t * a, int16x4x3_t b) {
10562 vst3_s16(a, b);
10563 }
10564
10565 // CHECK-LABEL: test_vst3_s32
10566 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s32(int32_t * a,int32x2x3_t b)10567 void test_vst3_s32(int32_t * a, int32x2x3_t b) {
10568 vst3_s32(a, b);
10569 }
10570
10571 // CHECK-LABEL: test_vst3_s64
10572 // CHECK: vst1.64
test_vst3_s64(int64_t * a,int64x1x3_t b)10573 void test_vst3_s64(int64_t * a, int64x1x3_t b) {
10574 vst3_s64(a, b);
10575 }
10576
10577 // CHECK-LABEL: test_vst3_f16
10578 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f16(float16_t * a,float16x4x3_t b)10579 void test_vst3_f16(float16_t * a, float16x4x3_t b) {
10580 vst3_f16(a, b);
10581 }
10582
10583 // CHECK-LABEL: test_vst3_f32
10584 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f32(float32_t * a,float32x2x3_t b)10585 void test_vst3_f32(float32_t * a, float32x2x3_t b) {
10586 vst3_f32(a, b);
10587 }
10588
10589 // CHECK-LABEL: test_vst3_p8
10590 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p8(poly8_t * a,poly8x8x3_t b)10591 void test_vst3_p8(poly8_t * a, poly8x8x3_t b) {
10592 vst3_p8(a, b);
10593 }
10594
10595 // CHECK-LABEL: test_vst3_p16
10596 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p16(poly16_t * a,poly16x4x3_t b)10597 void test_vst3_p16(poly16_t * a, poly16x4x3_t b) {
10598 vst3_p16(a, b);
10599 }
10600
10601
10602 // CHECK-LABEL: test_vst3q_lane_u16
10603 // 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)10604 void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) {
10605 vst3q_lane_u16(a, b, 7);
10606 }
10607
10608 // CHECK-LABEL: test_vst3q_lane_u32
10609 // 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)10610 void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) {
10611 vst3q_lane_u32(a, b, 3);
10612 }
10613
10614 // CHECK-LABEL: test_vst3q_lane_s16
10615 // 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)10616 void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) {
10617 vst3q_lane_s16(a, b, 7);
10618 }
10619
10620 // CHECK-LABEL: test_vst3q_lane_s32
10621 // 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)10622 void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) {
10623 vst3q_lane_s32(a, b, 3);
10624 }
10625
10626 // CHECK-LABEL: test_vst3q_lane_f16
10627 // 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)10628 void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) {
10629 vst3q_lane_f16(a, b, 7);
10630 }
10631
10632 // CHECK-LABEL: test_vst3q_lane_f32
10633 // 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)10634 void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) {
10635 vst3q_lane_f32(a, b, 3);
10636 }
10637
10638 // CHECK-LABEL: test_vst3q_lane_p16
10639 // 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)10640 void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) {
10641 vst3q_lane_p16(a, b, 7);
10642 }
10643
10644 // CHECK-LABEL: test_vst3_lane_u8
10645 // 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)10646 void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) {
10647 vst3_lane_u8(a, b, 7);
10648 }
10649
10650 // CHECK-LABEL: test_vst3_lane_u16
10651 // 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)10652 void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) {
10653 vst3_lane_u16(a, b, 3);
10654 }
10655
10656 // CHECK-LABEL: test_vst3_lane_u32
10657 // 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)10658 void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) {
10659 vst3_lane_u32(a, b, 1);
10660 }
10661
10662 // CHECK-LABEL: test_vst3_lane_s8
10663 // 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)10664 void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) {
10665 vst3_lane_s8(a, b, 7);
10666 }
10667
10668 // CHECK-LABEL: test_vst3_lane_s16
10669 // 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)10670 void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) {
10671 vst3_lane_s16(a, b, 3);
10672 }
10673
10674 // CHECK-LABEL: test_vst3_lane_s32
10675 // 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)10676 void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) {
10677 vst3_lane_s32(a, b, 1);
10678 }
10679
10680 // CHECK-LABEL: test_vst3_lane_f16
10681 // 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)10682 void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) {
10683 vst3_lane_f16(a, b, 3);
10684 }
10685
10686 // CHECK-LABEL: test_vst3_lane_f32
10687 // 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)10688 void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) {
10689 vst3_lane_f32(a, b, 1);
10690 }
10691
10692 // CHECK-LABEL: test_vst3_lane_p8
10693 // 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)10694 void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) {
10695 vst3_lane_p8(a, b, 7);
10696 }
10697
10698 // CHECK-LABEL: test_vst3_lane_p16
10699 // 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)10700 void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) {
10701 vst3_lane_p16(a, b, 3);
10702 }
10703
10704
10705 // CHECK-LABEL: test_vst4q_u8
10706 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u8(uint8_t * a,uint8x16x4_t b)10707 void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) {
10708 vst4q_u8(a, b);
10709 }
10710
10711 // CHECK-LABEL: test_vst4q_u16
10712 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u16(uint16_t * a,uint16x8x4_t b)10713 void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) {
10714 vst4q_u16(a, b);
10715 }
10716
10717 // CHECK-LABEL: test_vst4q_u32
10718 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u32(uint32_t * a,uint32x4x4_t b)10719 void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) {
10720 vst4q_u32(a, b);
10721 }
10722
10723 // CHECK-LABEL: test_vst4q_s8
10724 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s8(int8_t * a,int8x16x4_t b)10725 void test_vst4q_s8(int8_t * a, int8x16x4_t b) {
10726 vst4q_s8(a, b);
10727 }
10728
10729 // CHECK-LABEL: test_vst4q_s16
10730 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s16(int16_t * a,int16x8x4_t b)10731 void test_vst4q_s16(int16_t * a, int16x8x4_t b) {
10732 vst4q_s16(a, b);
10733 }
10734
10735 // CHECK-LABEL: test_vst4q_s32
10736 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s32(int32_t * a,int32x4x4_t b)10737 void test_vst4q_s32(int32_t * a, int32x4x4_t b) {
10738 vst4q_s32(a, b);
10739 }
10740
10741 // CHECK-LABEL: test_vst4q_f16
10742 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f16(float16_t * a,float16x8x4_t b)10743 void test_vst4q_f16(float16_t * a, float16x8x4_t b) {
10744 vst4q_f16(a, b);
10745 }
10746
10747 // CHECK-LABEL: test_vst4q_f32
10748 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f32(float32_t * a,float32x4x4_t b)10749 void test_vst4q_f32(float32_t * a, float32x4x4_t b) {
10750 vst4q_f32(a, b);
10751 }
10752
10753 // CHECK-LABEL: test_vst4q_p8
10754 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p8(poly8_t * a,poly8x16x4_t b)10755 void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) {
10756 vst4q_p8(a, b);
10757 }
10758
10759 // CHECK-LABEL: test_vst4q_p16
10760 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p16(poly16_t * a,poly16x8x4_t b)10761 void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) {
10762 vst4q_p16(a, b);
10763 }
10764
10765 // CHECK-LABEL: test_vst4_u8
10766 // 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)10767 void test_vst4_u8(uint8_t * a, uint8x8x4_t b) {
10768 vst4_u8(a, b);
10769 }
10770
10771 // CHECK-LABEL: test_vst4_u16
10772 // 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)10773 void test_vst4_u16(uint16_t * a, uint16x4x4_t b) {
10774 vst4_u16(a, b);
10775 }
10776
10777 // CHECK-LABEL: test_vst4_u32
10778 // 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)10779 void test_vst4_u32(uint32_t * a, uint32x2x4_t b) {
10780 vst4_u32(a, b);
10781 }
10782
10783 // CHECK-LABEL: test_vst4_u64
10784 // CHECK: vst1.64
test_vst4_u64(uint64_t * a,uint64x1x4_t b)10785 void test_vst4_u64(uint64_t * a, uint64x1x4_t b) {
10786 vst4_u64(a, b);
10787 }
10788
10789 // CHECK-LABEL: test_vst4_s8
10790 // 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)10791 void test_vst4_s8(int8_t * a, int8x8x4_t b) {
10792 vst4_s8(a, b);
10793 }
10794
10795 // CHECK-LABEL: test_vst4_s16
10796 // 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)10797 void test_vst4_s16(int16_t * a, int16x4x4_t b) {
10798 vst4_s16(a, b);
10799 }
10800
10801 // CHECK-LABEL: test_vst4_s32
10802 // 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)10803 void test_vst4_s32(int32_t * a, int32x2x4_t b) {
10804 vst4_s32(a, b);
10805 }
10806
10807 // CHECK-LABEL: test_vst4_s64
10808 // CHECK: vst1.64
test_vst4_s64(int64_t * a,int64x1x4_t b)10809 void test_vst4_s64(int64_t * a, int64x1x4_t b) {
10810 vst4_s64(a, b);
10811 }
10812
10813 // CHECK-LABEL: test_vst4_f16
10814 // 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)10815 void test_vst4_f16(float16_t * a, float16x4x4_t b) {
10816 vst4_f16(a, b);
10817 }
10818
10819 // CHECK-LABEL: test_vst4_f32
10820 // 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)10821 void test_vst4_f32(float32_t * a, float32x2x4_t b) {
10822 vst4_f32(a, b);
10823 }
10824
10825 // CHECK-LABEL: test_vst4_p8
10826 // 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)10827 void test_vst4_p8(poly8_t * a, poly8x8x4_t b) {
10828 vst4_p8(a, b);
10829 }
10830
10831 // CHECK-LABEL: test_vst4_p16
10832 // 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)10833 void test_vst4_p16(poly16_t * a, poly16x4x4_t b) {
10834 vst4_p16(a, b);
10835 }
10836
10837
10838 // CHECK-LABEL: test_vst4q_lane_u16
10839 // 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)10840 void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) {
10841 vst4q_lane_u16(a, b, 7);
10842 }
10843
10844 // CHECK-LABEL: test_vst4q_lane_u32
10845 // 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)10846 void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) {
10847 vst4q_lane_u32(a, b, 3);
10848 }
10849
10850 // CHECK-LABEL: test_vst4q_lane_s16
10851 // 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)10852 void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) {
10853 vst4q_lane_s16(a, b, 7);
10854 }
10855
10856 // CHECK-LABEL: test_vst4q_lane_s32
10857 // 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)10858 void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) {
10859 vst4q_lane_s32(a, b, 3);
10860 }
10861
10862 // CHECK-LABEL: test_vst4q_lane_f16
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_f16(float16_t * a,float16x8x4_t b)10864 void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) {
10865 vst4q_lane_f16(a, b, 7);
10866 }
10867
10868 // CHECK-LABEL: test_vst4q_lane_f32
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_f32(float32_t * a,float32x4x4_t b)10870 void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) {
10871 vst4q_lane_f32(a, b, 3);
10872 }
10873
10874 // CHECK-LABEL: test_vst4q_lane_p16
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_p16(poly16_t * a,poly16x8x4_t b)10876 void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) {
10877 vst4q_lane_p16(a, b, 7);
10878 }
10879
10880 // CHECK-LABEL: test_vst4_lane_u8
10881 // 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)10882 void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) {
10883 vst4_lane_u8(a, b, 7);
10884 }
10885
10886 // CHECK-LABEL: test_vst4_lane_u16
10887 // 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)10888 void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) {
10889 vst4_lane_u16(a, b, 3);
10890 }
10891
10892 // CHECK-LABEL: test_vst4_lane_u32
10893 // 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)10894 void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) {
10895 vst4_lane_u32(a, b, 1);
10896 }
10897
10898 // CHECK-LABEL: test_vst4_lane_s8
10899 // 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)10900 void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) {
10901 vst4_lane_s8(a, b, 7);
10902 }
10903
10904 // CHECK-LABEL: test_vst4_lane_s16
10905 // 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)10906 void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) {
10907 vst4_lane_s16(a, b, 3);
10908 }
10909
10910 // CHECK-LABEL: test_vst4_lane_s32
10911 // 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)10912 void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) {
10913 vst4_lane_s32(a, b, 1);
10914 }
10915
10916 // CHECK-LABEL: test_vst4_lane_f16
10917 // 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)10918 void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) {
10919 vst4_lane_f16(a, b, 3);
10920 }
10921
10922 // CHECK-LABEL: test_vst4_lane_f32
10923 // 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)10924 void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) {
10925 vst4_lane_f32(a, b, 1);
10926 }
10927
10928 // CHECK-LABEL: test_vst4_lane_p8
10929 // 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)10930 void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) {
10931 vst4_lane_p8(a, b, 7);
10932 }
10933
10934 // CHECK-LABEL: test_vst4_lane_p16
10935 // 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)10936 void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) {
10937 vst4_lane_p16(a, b, 3);
10938 }
10939
10940
10941 // CHECK-LABEL: test_vsub_s8
10942 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s8(int8x8_t a,int8x8_t b)10943 int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) {
10944 return vsub_s8(a, b);
10945 }
10946
10947 // CHECK-LABEL: test_vsub_s16
10948 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s16(int16x4_t a,int16x4_t b)10949 int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) {
10950 return vsub_s16(a, b);
10951 }
10952
10953 // CHECK-LABEL: test_vsub_s32
10954 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s32(int32x2_t a,int32x2_t b)10955 int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) {
10956 return vsub_s32(a, b);
10957 }
10958
10959 // CHECK-LABEL: test_vsub_s64
10960 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s64(int64x1_t a,int64x1_t b)10961 int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) {
10962 return vsub_s64(a, b);
10963 }
10964
10965 // CHECK-LABEL: test_vsub_f32
10966 // CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_f32(float32x2_t a,float32x2_t b)10967 float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) {
10968 return vsub_f32(a, b);
10969 }
10970
10971 // CHECK-LABEL: test_vsub_u8
10972 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u8(uint8x8_t a,uint8x8_t b)10973 uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) {
10974 return vsub_u8(a, b);
10975 }
10976
10977 // CHECK-LABEL: test_vsub_u16
10978 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u16(uint16x4_t a,uint16x4_t b)10979 uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) {
10980 return vsub_u16(a, b);
10981 }
10982
10983 // CHECK-LABEL: test_vsub_u32
10984 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u32(uint32x2_t a,uint32x2_t b)10985 uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) {
10986 return vsub_u32(a, b);
10987 }
10988
10989 // CHECK-LABEL: test_vsub_u64
10990 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u64(uint64x1_t a,uint64x1_t b)10991 uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) {
10992 return vsub_u64(a, b);
10993 }
10994
10995 // CHECK-LABEL: test_vsubq_s8
10996 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s8(int8x16_t a,int8x16_t b)10997 int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) {
10998 return vsubq_s8(a, b);
10999 }
11000
11001 // CHECK-LABEL: test_vsubq_s16
11002 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s16(int16x8_t a,int16x8_t b)11003 int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) {
11004 return vsubq_s16(a, b);
11005 }
11006
11007 // CHECK-LABEL: test_vsubq_s32
11008 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s32(int32x4_t a,int32x4_t b)11009 int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) {
11010 return vsubq_s32(a, b);
11011 }
11012
11013 // CHECK-LABEL: test_vsubq_s64
11014 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s64(int64x2_t a,int64x2_t b)11015 int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) {
11016 return vsubq_s64(a, b);
11017 }
11018
11019 // CHECK-LABEL: test_vsubq_f32
11020 // CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_f32(float32x4_t a,float32x4_t b)11021 float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) {
11022 return vsubq_f32(a, b);
11023 }
11024
11025 // CHECK-LABEL: test_vsubq_u8
11026 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u8(uint8x16_t a,uint8x16_t b)11027 uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) {
11028 return vsubq_u8(a, b);
11029 }
11030
11031 // CHECK-LABEL: test_vsubq_u16
11032 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u16(uint16x8_t a,uint16x8_t b)11033 uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) {
11034 return vsubq_u16(a, b);
11035 }
11036
11037 // CHECK-LABEL: test_vsubq_u32
11038 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u32(uint32x4_t a,uint32x4_t b)11039 uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) {
11040 return vsubq_u32(a, b);
11041 }
11042
11043 // CHECK-LABEL: test_vsubq_u64
11044 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u64(uint64x2_t a,uint64x2_t b)11045 uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) {
11046 return vsubq_u64(a, b);
11047 }
11048
11049
11050 // CHECK-LABEL: test_vsubhn_s16
11051 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s16(int16x8_t a,int16x8_t b)11052 int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) {
11053 return vsubhn_s16(a, b);
11054 }
11055
11056 // CHECK-LABEL: test_vsubhn_s32
11057 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s32(int32x4_t a,int32x4_t b)11058 int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) {
11059 return vsubhn_s32(a, b);
11060 }
11061
11062 // CHECK-LABEL: test_vsubhn_s64
11063 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s64(int64x2_t a,int64x2_t b)11064 int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) {
11065 return vsubhn_s64(a, b);
11066 }
11067
11068 // CHECK-LABEL: test_vsubhn_u16
11069 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u16(uint16x8_t a,uint16x8_t b)11070 uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) {
11071 return vsubhn_u16(a, b);
11072 }
11073
11074 // CHECK-LABEL: test_vsubhn_u32
11075 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u32(uint32x4_t a,uint32x4_t b)11076 uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) {
11077 return vsubhn_u32(a, b);
11078 }
11079
11080 // CHECK-LABEL: test_vsubhn_u64
11081 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u64(uint64x2_t a,uint64x2_t b)11082 uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) {
11083 return vsubhn_u64(a, b);
11084 }
11085
11086
11087 // CHECK-LABEL: test_vsubl_s8
11088 // CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s8(int8x8_t a,int8x8_t b)11089 int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) {
11090 return vsubl_s8(a, b);
11091 }
11092
11093 // CHECK-LABEL: test_vsubl_s16
11094 // CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s16(int16x4_t a,int16x4_t b)11095 int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) {
11096 return vsubl_s16(a, b);
11097 }
11098
11099 // CHECK-LABEL: test_vsubl_s32
11100 // CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s32(int32x2_t a,int32x2_t b)11101 int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) {
11102 return vsubl_s32(a, b);
11103 }
11104
11105 // CHECK-LABEL: test_vsubl_u8
11106 // CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u8(uint8x8_t a,uint8x8_t b)11107 uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) {
11108 return vsubl_u8(a, b);
11109 }
11110
11111 // CHECK-LABEL: test_vsubl_u16
11112 // CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u16(uint16x4_t a,uint16x4_t b)11113 uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) {
11114 return vsubl_u16(a, b);
11115 }
11116
11117 // CHECK-LABEL: test_vsubl_u32
11118 // CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u32(uint32x2_t a,uint32x2_t b)11119 uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) {
11120 return vsubl_u32(a, b);
11121 }
11122
11123
11124 // CHECK-LABEL: test_vsubw_s8
11125 // CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s8(int16x8_t a,int8x8_t b)11126 int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) {
11127 return vsubw_s8(a, b);
11128 }
11129
11130 // CHECK-LABEL: test_vsubw_s16
11131 // CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s16(int32x4_t a,int16x4_t b)11132 int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) {
11133 return vsubw_s16(a, b);
11134 }
11135
11136 // CHECK-LABEL: test_vsubw_s32
11137 // CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s32(int64x2_t a,int32x2_t b)11138 int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) {
11139 return vsubw_s32(a, b);
11140 }
11141
11142 // CHECK-LABEL: test_vsubw_u8
11143 // CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u8(uint16x8_t a,uint8x8_t b)11144 uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) {
11145 return vsubw_u8(a, b);
11146 }
11147
11148 // CHECK-LABEL: test_vsubw_u16
11149 // CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u16(uint32x4_t a,uint16x4_t b)11150 uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) {
11151 return vsubw_u16(a, b);
11152 }
11153
11154 // CHECK-LABEL: test_vsubw_u32
11155 // CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u32(uint64x2_t a,uint32x2_t b)11156 uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) {
11157 return vsubw_u32(a, b);
11158 }
11159
11160
11161 // CHECK-LABEL: test_vtbl1_u8
11162 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_u8(uint8x8_t a,uint8x8_t b)11163 uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) {
11164 return vtbl1_u8(a, b);
11165 }
11166
11167 // CHECK-LABEL: test_vtbl1_s8
11168 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_s8(int8x8_t a,int8x8_t b)11169 int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) {
11170 return vtbl1_s8(a, b);
11171 }
11172
11173 // CHECK-LABEL: test_vtbl1_p8
11174 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_p8(poly8x8_t a,uint8x8_t b)11175 poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) {
11176 return vtbl1_p8(a, b);
11177 }
11178
11179
11180 // CHECK-LABEL: test_vtbl2_u8
11181 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_u8(uint8x8x2_t a,uint8x8_t b)11182 uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) {
11183 return vtbl2_u8(a, b);
11184 }
11185
11186 // CHECK-LABEL: test_vtbl2_s8
11187 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_s8(int8x8x2_t a,int8x8_t b)11188 int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) {
11189 return vtbl2_s8(a, b);
11190 }
11191
11192 // CHECK-LABEL: test_vtbl2_p8
11193 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_p8(poly8x8x2_t a,uint8x8_t b)11194 poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) {
11195 return vtbl2_p8(a, b);
11196 }
11197
11198
11199 // CHECK-LABEL: test_vtbl3_u8
11200 // 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)11201 uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) {
11202 return vtbl3_u8(a, b);
11203 }
11204
11205 // CHECK-LABEL: test_vtbl3_s8
11206 // 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)11207 int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) {
11208 return vtbl3_s8(a, b);
11209 }
11210
11211 // CHECK-LABEL: test_vtbl3_p8
11212 // 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)11213 poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) {
11214 return vtbl3_p8(a, b);
11215 }
11216
11217
11218 // CHECK-LABEL: test_vtbl4_u8
11219 // 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)11220 uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) {
11221 return vtbl4_u8(a, b);
11222 }
11223
11224 // CHECK-LABEL: test_vtbl4_s8
11225 // 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)11226 int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) {
11227 return vtbl4_s8(a, b);
11228 }
11229
11230 // CHECK-LABEL: test_vtbl4_p8
11231 // 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)11232 poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) {
11233 return vtbl4_p8(a, b);
11234 }
11235
11236
11237 // CHECK-LABEL: test_vtbx1_u8
11238 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)11239 uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
11240 return vtbx1_u8(a, b, c);
11241 }
11242
11243 // CHECK-LABEL: test_vtbx1_s8
11244 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_s8(int8x8_t a,int8x8_t b,int8x8_t c)11245 int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
11246 return vtbx1_s8(a, b, c);
11247 }
11248
11249 // CHECK-LABEL: test_vtbx1_p8
11250 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_p8(poly8x8_t a,poly8x8_t b,uint8x8_t c)11251 poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) {
11252 return vtbx1_p8(a, b, c);
11253 }
11254
11255
11256 // CHECK-LABEL: test_vtbx2_u8
11257 // 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)11258 uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) {
11259 return vtbx2_u8(a, b, c);
11260 }
11261
11262 // CHECK-LABEL: test_vtbx2_s8
11263 // 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)11264 int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) {
11265 return vtbx2_s8(a, b, c);
11266 }
11267
11268 // CHECK-LABEL: test_vtbx2_p8
11269 // 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)11270 poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) {
11271 return vtbx2_p8(a, b, c);
11272 }
11273
11274
11275 // CHECK-LABEL: test_vtbx3_u8
11276 // 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)11277 uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) {
11278 return vtbx3_u8(a, b, c);
11279 }
11280
11281 // CHECK-LABEL: test_vtbx3_s8
11282 // 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)11283 int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) {
11284 return vtbx3_s8(a, b, c);
11285 }
11286
11287 // CHECK-LABEL: test_vtbx3_p8
11288 // 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)11289 poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) {
11290 return vtbx3_p8(a, b, c);
11291 }
11292
11293
11294 // CHECK-LABEL: test_vtbx4_u8
11295 // 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)11296 uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) {
11297 return vtbx4_u8(a, b, c);
11298 }
11299
11300 // CHECK-LABEL: test_vtbx4_s8
11301 // 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)11302 int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) {
11303 return vtbx4_s8(a, b, c);
11304 }
11305
11306 // CHECK-LABEL: test_vtbx4_p8
11307 // 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)11308 poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) {
11309 return vtbx4_p8(a, b, c);
11310 }
11311
11312
11313 // CHECK-LABEL: test_vtrn_s8
11314 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s8(int8x8_t a,int8x8_t b)11315 int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) {
11316 return vtrn_s8(a, b);
11317 }
11318
11319 // CHECK-LABEL: test_vtrn_s16
11320 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s16(int16x4_t a,int16x4_t b)11321 int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) {
11322 return vtrn_s16(a, b);
11323 }
11324
11325 // CHECK-LABEL: test_vtrn_s32
11326 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s32(int32x2_t a,int32x2_t b)11327 int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
11328 return vtrn_s32(a, b);
11329 }
11330
11331 // CHECK-LABEL: test_vtrn_u8
11332 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u8(uint8x8_t a,uint8x8_t b)11333 uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
11334 return vtrn_u8(a, b);
11335 }
11336
11337 // CHECK-LABEL: test_vtrn_u16
11338 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u16(uint16x4_t a,uint16x4_t b)11339 uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
11340 return vtrn_u16(a, b);
11341 }
11342
11343 // CHECK-LABEL: test_vtrn_u32
11344 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u32(uint32x2_t a,uint32x2_t b)11345 uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) {
11346 return vtrn_u32(a, b);
11347 }
11348
11349 // CHECK-LABEL: test_vtrn_f32
11350 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_f32(float32x2_t a,float32x2_t b)11351 float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) {
11352 return vtrn_f32(a, b);
11353 }
11354
11355 // CHECK-LABEL: test_vtrn_p8
11356 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p8(poly8x8_t a,poly8x8_t b)11357 poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) {
11358 return vtrn_p8(a, b);
11359 }
11360
11361 // CHECK-LABEL: test_vtrn_p16
11362 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p16(poly16x4_t a,poly16x4_t b)11363 poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) {
11364 return vtrn_p16(a, b);
11365 }
11366
11367 // CHECK-LABEL: test_vtrnq_s8
11368 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s8(int8x16_t a,int8x16_t b)11369 int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) {
11370 return vtrnq_s8(a, b);
11371 }
11372
11373 // CHECK-LABEL: test_vtrnq_s16
11374 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s16(int16x8_t a,int16x8_t b)11375 int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
11376 return vtrnq_s16(a, b);
11377 }
11378
11379 // CHECK-LABEL: test_vtrnq_s32
11380 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s32(int32x4_t a,int32x4_t b)11381 int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) {
11382 return vtrnq_s32(a, b);
11383 }
11384
11385 // CHECK-LABEL: test_vtrnq_u8
11386 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u8(uint8x16_t a,uint8x16_t b)11387 uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
11388 return vtrnq_u8(a, b);
11389 }
11390
11391 // CHECK-LABEL: test_vtrnq_u16
11392 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u16(uint16x8_t a,uint16x8_t b)11393 uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) {
11394 return vtrnq_u16(a, b);
11395 }
11396
11397 // CHECK-LABEL: test_vtrnq_u32
11398 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u32(uint32x4_t a,uint32x4_t b)11399 uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
11400 return vtrnq_u32(a, b);
11401 }
11402
11403 // CHECK-LABEL: test_vtrnq_f32
11404 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_f32(float32x4_t a,float32x4_t b)11405 float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) {
11406 return vtrnq_f32(a, b);
11407 }
11408
11409 // CHECK-LABEL: test_vtrnq_p8
11410 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p8(poly8x16_t a,poly8x16_t b)11411 poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) {
11412 return vtrnq_p8(a, b);
11413 }
11414
11415 // CHECK-LABEL: test_vtrnq_p16
11416 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p16(poly16x8_t a,poly16x8_t b)11417 poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) {
11418 return vtrnq_p16(a, b);
11419 }
11420
11421
11422 // CHECK-LABEL: test_vtst_s8
11423 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s8(int8x8_t a,int8x8_t b)11424 uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) {
11425 return vtst_s8(a, b);
11426 }
11427
11428 // CHECK-LABEL: test_vtst_s16
11429 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s16(int16x4_t a,int16x4_t b)11430 uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) {
11431 return vtst_s16(a, b);
11432 }
11433
11434 // CHECK-LABEL: test_vtst_s32
11435 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s32(int32x2_t a,int32x2_t b)11436 uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) {
11437 return vtst_s32(a, b);
11438 }
11439
11440 // CHECK-LABEL: test_vtst_u8
11441 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u8(uint8x8_t a,uint8x8_t b)11442 uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) {
11443 return vtst_u8(a, b);
11444 }
11445
11446 // CHECK-LABEL: test_vtst_u16
11447 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u16(uint16x4_t a,uint16x4_t b)11448 uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) {
11449 return vtst_u16(a, b);
11450 }
11451
11452 // CHECK-LABEL: test_vtst_u32
11453 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u32(uint32x2_t a,uint32x2_t b)11454 uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) {
11455 return vtst_u32(a, b);
11456 }
11457
11458 // CHECK-LABEL: test_vtst_p8
11459 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p8(poly8x8_t a,poly8x8_t b)11460 uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) {
11461 return vtst_p8(a, b);
11462 }
11463
11464 // CHECK-LABEL: test_vtst_p16
11465 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p16(poly16x4_t a,poly16x4_t b)11466 uint16x4_t test_vtst_p16(poly16x4_t a, poly16x4_t b) {
11467 return vtst_p16(a, b);
11468 }
11469
11470 // CHECK-LABEL: test_vtstq_s8
11471 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s8(int8x16_t a,int8x16_t b)11472 uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) {
11473 return vtstq_s8(a, b);
11474 }
11475
11476 // CHECK-LABEL: test_vtstq_s16
11477 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s16(int16x8_t a,int16x8_t b)11478 uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) {
11479 return vtstq_s16(a, b);
11480 }
11481
11482 // CHECK-LABEL: test_vtstq_s32
11483 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s32(int32x4_t a,int32x4_t b)11484 uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) {
11485 return vtstq_s32(a, b);
11486 }
11487
11488 // CHECK-LABEL: test_vtstq_u8
11489 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u8(uint8x16_t a,uint8x16_t b)11490 uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) {
11491 return vtstq_u8(a, b);
11492 }
11493
11494 // CHECK-LABEL: test_vtstq_u16
11495 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u16(uint16x8_t a,uint16x8_t b)11496 uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) {
11497 return vtstq_u16(a, b);
11498 }
11499
11500 // CHECK-LABEL: test_vtstq_u32
11501 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u32(uint32x4_t a,uint32x4_t b)11502 uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) {
11503 return vtstq_u32(a, b);
11504 }
11505
11506 // CHECK-LABEL: test_vtstq_p8
11507 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p8(poly8x16_t a,poly8x16_t b)11508 uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) {
11509 return vtstq_p8(a, b);
11510 }
11511
11512 // CHECK-LABEL: test_vtstq_p16
11513 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p16(poly16x8_t a,poly16x8_t b)11514 uint16x8_t test_vtstq_p16(poly16x8_t a, poly16x8_t b) {
11515 return vtstq_p16(a, b);
11516 }
11517
11518
11519 // CHECK-LABEL: test_vuzp_s8
11520 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s8(int8x8_t a,int8x8_t b)11521 int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) {
11522 return vuzp_s8(a, b);
11523 }
11524
11525 // CHECK-LABEL: test_vuzp_s16
11526 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s16(int16x4_t a,int16x4_t b)11527 int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) {
11528 return vuzp_s16(a, b);
11529 }
11530
11531 // CHECK-LABEL: test_vuzp_s32
11532 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s32(int32x2_t a,int32x2_t b)11533 int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) {
11534 return vuzp_s32(a, b);
11535 }
11536
11537 // CHECK-LABEL: test_vuzp_u8
11538 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u8(uint8x8_t a,uint8x8_t b)11539 uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) {
11540 return vuzp_u8(a, b);
11541 }
11542
11543 // CHECK-LABEL: test_vuzp_u16
11544 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u16(uint16x4_t a,uint16x4_t b)11545 uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) {
11546 return vuzp_u16(a, b);
11547 }
11548
11549 // CHECK-LABEL: test_vuzp_u32
11550 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u32(uint32x2_t a,uint32x2_t b)11551 uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) {
11552 return vuzp_u32(a, b);
11553 }
11554
11555 // CHECK-LABEL: test_vuzp_f32
11556 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_f32(float32x2_t a,float32x2_t b)11557 float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) {
11558 return vuzp_f32(a, b);
11559 }
11560
11561 // CHECK-LABEL: test_vuzp_p8
11562 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p8(poly8x8_t a,poly8x8_t b)11563 poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) {
11564 return vuzp_p8(a, b);
11565 }
11566
11567 // CHECK-LABEL: test_vuzp_p16
11568 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p16(poly16x4_t a,poly16x4_t b)11569 poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) {
11570 return vuzp_p16(a, b);
11571 }
11572
11573 // CHECK-LABEL: test_vuzpq_s8
11574 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s8(int8x16_t a,int8x16_t b)11575 int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) {
11576 return vuzpq_s8(a, b);
11577 }
11578
11579 // CHECK-LABEL: test_vuzpq_s16
11580 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s16(int16x8_t a,int16x8_t b)11581 int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) {
11582 return vuzpq_s16(a, b);
11583 }
11584
11585 // CHECK-LABEL: test_vuzpq_s32
11586 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s32(int32x4_t a,int32x4_t b)11587 int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) {
11588 return vuzpq_s32(a, b);
11589 }
11590
11591 // CHECK-LABEL: test_vuzpq_u8
11592 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u8(uint8x16_t a,uint8x16_t b)11593 uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) {
11594 return vuzpq_u8(a, b);
11595 }
11596
11597 // CHECK-LABEL: test_vuzpq_u16
11598 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u16(uint16x8_t a,uint16x8_t b)11599 uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) {
11600 return vuzpq_u16(a, b);
11601 }
11602
11603 // CHECK-LABEL: test_vuzpq_u32
11604 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u32(uint32x4_t a,uint32x4_t b)11605 uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) {
11606 return vuzpq_u32(a, b);
11607 }
11608
11609 // CHECK-LABEL: test_vuzpq_f32
11610 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_f32(float32x4_t a,float32x4_t b)11611 float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) {
11612 return vuzpq_f32(a, b);
11613 }
11614
11615 // CHECK-LABEL: test_vuzpq_p8
11616 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p8(poly8x16_t a,poly8x16_t b)11617 poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) {
11618 return vuzpq_p8(a, b);
11619 }
11620
11621 // CHECK-LABEL: test_vuzpq_p16
11622 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p16(poly16x8_t a,poly16x8_t b)11623 poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) {
11624 return vuzpq_p16(a, b);
11625 }
11626
11627
11628 // CHECK-LABEL: test_vzip_s8
11629 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s8(int8x8_t a,int8x8_t b)11630 int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) {
11631 return vzip_s8(a, b);
11632 }
11633
11634 // CHECK-LABEL: test_vzip_s16
11635 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s16(int16x4_t a,int16x4_t b)11636 int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) {
11637 return vzip_s16(a, b);
11638 }
11639
11640 // CHECK-LABEL: test_vzip_s32
11641 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s32(int32x2_t a,int32x2_t b)11642 int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) {
11643 return vzip_s32(a, b);
11644 }
11645
11646 // CHECK-LABEL: test_vzip_u8
11647 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u8(uint8x8_t a,uint8x8_t b)11648 uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) {
11649 return vzip_u8(a, b);
11650 }
11651
11652 // CHECK-LABEL: test_vzip_u16
11653 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u16(uint16x4_t a,uint16x4_t b)11654 uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) {
11655 return vzip_u16(a, b);
11656 }
11657
11658 // CHECK-LABEL: test_vzip_u32
11659 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u32(uint32x2_t a,uint32x2_t b)11660 uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) {
11661 return vzip_u32(a, b);
11662 }
11663
11664 // CHECK-LABEL: test_vzip_f32
11665 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_f32(float32x2_t a,float32x2_t b)11666 float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) {
11667 return vzip_f32(a, b);
11668 }
11669
11670 // CHECK-LABEL: test_vzip_p8
11671 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p8(poly8x8_t a,poly8x8_t b)11672 poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) {
11673 return vzip_p8(a, b);
11674 }
11675
11676 // CHECK-LABEL: test_vzip_p16
11677 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p16(poly16x4_t a,poly16x4_t b)11678 poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) {
11679 return vzip_p16(a, b);
11680 }
11681
11682 // CHECK-LABEL: test_vzipq_s8
11683 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s8(int8x16_t a,int8x16_t b)11684 int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) {
11685 return vzipq_s8(a, b);
11686 }
11687
11688 // CHECK-LABEL: test_vzipq_s16
11689 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s16(int16x8_t a,int16x8_t b)11690 int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) {
11691 return vzipq_s16(a, b);
11692 }
11693
11694 // CHECK-LABEL: test_vzipq_s32
11695 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s32(int32x4_t a,int32x4_t b)11696 int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) {
11697 return vzipq_s32(a, b);
11698 }
11699
11700 // CHECK-LABEL: test_vzipq_u8
11701 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u8(uint8x16_t a,uint8x16_t b)11702 uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) {
11703 return vzipq_u8(a, b);
11704 }
11705
11706 // CHECK-LABEL: test_vzipq_u16
11707 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u16(uint16x8_t a,uint16x8_t b)11708 uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) {
11709 return vzipq_u16(a, b);
11710 }
11711
11712 // CHECK-LABEL: test_vzipq_u32
11713 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u32(uint32x4_t a,uint32x4_t b)11714 uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) {
11715 return vzipq_u32(a, b);
11716 }
11717
11718 // CHECK-LABEL: test_vzipq_f32
11719 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_f32(float32x4_t a,float32x4_t b)11720 float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) {
11721 return vzipq_f32(a, b);
11722 }
11723
11724 // CHECK-LABEL: test_vzipq_p8
11725 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p8(poly8x16_t a,poly8x16_t b)11726 poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) {
11727 return vzipq_p8(a, b);
11728 }
11729
11730 // CHECK-LABEL: test_vzipq_p16
11731 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p16(poly16x8_t a,poly16x8_t b)11732 poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) {
11733 return vzipq_p16(a, b);
11734 }
11735
11736
11737