1 // RUN: %clang_cc1 -triple thumbv7s-apple-darwin -target-abi apcs-gnu\
2 // RUN: -target-cpu swift -ffreestanding -Os -S -o - %s\
3 // RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-SWIFT
4 // RUN: %clang_cc1 -triple armv8-linux-gnu \
5 // RUN: -target-cpu cortex-a57 -mfloat-abi soft -ffreestanding -Os -S -o - %s\
6 // RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-A57
7
8 // REQUIRES: long_tests
9
10 #include <arm_neon.h>
11
12 // CHECK-LABEL: test_vaba_s8
13 // CHECK: vaba.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s8(int8x8_t a,int8x8_t b,int8x8_t c)14 int8x8_t test_vaba_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
15 return vaba_s8(a, b, c);
16 }
17
18 // CHECK-LABEL: test_vaba_s16
19 // CHECK: vaba.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s16(int16x4_t a,int16x4_t b,int16x4_t c)20 int16x4_t test_vaba_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
21 return vaba_s16(a, b, c);
22 }
23
24 // CHECK-LABEL: test_vaba_s32
25 // CHECK: vaba.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_s32(int32x2_t a,int32x2_t b,int32x2_t c)26 int32x2_t test_vaba_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
27 return vaba_s32(a, b, c);
28 }
29
30 // CHECK-LABEL: test_vaba_u8
31 // CHECK: vaba.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)32 uint8x8_t test_vaba_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
33 return vaba_u8(a, b, c);
34 }
35
36 // CHECK-LABEL: test_vaba_u16
37 // CHECK: vaba.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)38 uint16x4_t test_vaba_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
39 return vaba_u16(a, b, c);
40 }
41
42 // CHECK-LABEL: test_vaba_u32
43 // CHECK: vaba.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaba_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)44 uint32x2_t test_vaba_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
45 return vaba_u32(a, b, c);
46 }
47
48 // CHECK-LABEL: test_vabaq_s8
49 // CHECK: vaba.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)50 int8x16_t test_vabaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
51 return vabaq_s8(a, b, c);
52 }
53
54 // CHECK-LABEL: test_vabaq_s16
55 // CHECK: vaba.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)56 int16x8_t test_vabaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
57 return vabaq_s16(a, b, c);
58 }
59
60 // CHECK-LABEL: test_vabaq_s32
61 // CHECK: vaba.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)62 int32x4_t test_vabaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
63 return vabaq_s32(a, b, c);
64 }
65
66 // CHECK-LABEL: test_vabaq_u8
67 // CHECK: vaba.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)68 uint8x16_t test_vabaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
69 return vabaq_u8(a, b, c);
70 }
71
72 // CHECK-LABEL: test_vabaq_u16
73 // CHECK: vaba.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)74 uint16x8_t test_vabaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
75 return vabaq_u16(a, b, c);
76 }
77
78 // CHECK-LABEL: test_vabaq_u32
79 // CHECK: vaba.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)80 uint32x4_t test_vabaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
81 return vabaq_u32(a, b, c);
82 }
83
84
85 // CHECK-LABEL: test_vabal_s8
86 // CHECK: vabal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s8(int16x8_t a,int8x8_t b,int8x8_t c)87 int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
88 return vabal_s8(a, b, c);
89 }
90
91 // CHECK-LABEL: test_vabal_s16
92 // CHECK: vabal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s16(int32x4_t a,int16x4_t b,int16x4_t c)93 int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
94 return vabal_s16(a, b, c);
95 }
96
97 // CHECK-LABEL: test_vabal_s32
98 // CHECK: vabal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_s32(int64x2_t a,int32x2_t b,int32x2_t c)99 int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
100 return vabal_s32(a, b, c);
101 }
102
103 // CHECK-LABEL: test_vabal_u8
104 // CHECK: vabal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)105 uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
106 return vabal_u8(a, b, c);
107 }
108
109 // CHECK-LABEL: test_vabal_u16
110 // CHECK: vabal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)111 uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
112 return vabal_u16(a, b, c);
113 }
114
115 // CHECK-LABEL: test_vabal_u32
116 // CHECK: vabal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)117 uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
118 return vabal_u32(a, b, c);
119 }
120
121
122 // CHECK-LABEL: test_vabd_s8
123 // CHECK: vabd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s8(int8x8_t a,int8x8_t b)124 int8x8_t test_vabd_s8(int8x8_t a, int8x8_t b) {
125 return vabd_s8(a, b);
126 }
127
128 // CHECK-LABEL: test_vabd_s16
129 // CHECK: vabd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s16(int16x4_t a,int16x4_t b)130 int16x4_t test_vabd_s16(int16x4_t a, int16x4_t b) {
131 return vabd_s16(a, b);
132 }
133
134 // CHECK-LABEL: test_vabd_s32
135 // CHECK: vabd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_s32(int32x2_t a,int32x2_t b)136 int32x2_t test_vabd_s32(int32x2_t a, int32x2_t b) {
137 return vabd_s32(a, b);
138 }
139
140 // CHECK-LABEL: test_vabd_u8
141 // CHECK: vabd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u8(uint8x8_t a,uint8x8_t b)142 uint8x8_t test_vabd_u8(uint8x8_t a, uint8x8_t b) {
143 return vabd_u8(a, b);
144 }
145
146 // CHECK-LABEL: test_vabd_u16
147 // CHECK: vabd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u16(uint16x4_t a,uint16x4_t b)148 uint16x4_t test_vabd_u16(uint16x4_t a, uint16x4_t b) {
149 return vabd_u16(a, b);
150 }
151
152 // CHECK-LABEL: test_vabd_u32
153 // CHECK: vabd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_u32(uint32x2_t a,uint32x2_t b)154 uint32x2_t test_vabd_u32(uint32x2_t a, uint32x2_t b) {
155 return vabd_u32(a, b);
156 }
157
158 // CHECK-LABEL: test_vabd_f32
159 // CHECK: vabd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabd_f32(float32x2_t a,float32x2_t b)160 float32x2_t test_vabd_f32(float32x2_t a, float32x2_t b) {
161 return vabd_f32(a, b);
162 }
163
164 // CHECK-LABEL: test_vabdq_s8
165 // CHECK: vabd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s8(int8x16_t a,int8x16_t b)166 int8x16_t test_vabdq_s8(int8x16_t a, int8x16_t b) {
167 return vabdq_s8(a, b);
168 }
169
170 // CHECK-LABEL: test_vabdq_s16
171 // CHECK: vabd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s16(int16x8_t a,int16x8_t b)172 int16x8_t test_vabdq_s16(int16x8_t a, int16x8_t b) {
173 return vabdq_s16(a, b);
174 }
175
176 // CHECK-LABEL: test_vabdq_s32
177 // CHECK: vabd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_s32(int32x4_t a,int32x4_t b)178 int32x4_t test_vabdq_s32(int32x4_t a, int32x4_t b) {
179 return vabdq_s32(a, b);
180 }
181
182 // CHECK-LABEL: test_vabdq_u8
183 // CHECK: vabd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u8(uint8x16_t a,uint8x16_t b)184 uint8x16_t test_vabdq_u8(uint8x16_t a, uint8x16_t b) {
185 return vabdq_u8(a, b);
186 }
187
188 // CHECK-LABEL: test_vabdq_u16
189 // CHECK: vabd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u16(uint16x8_t a,uint16x8_t b)190 uint16x8_t test_vabdq_u16(uint16x8_t a, uint16x8_t b) {
191 return vabdq_u16(a, b);
192 }
193
194 // CHECK-LABEL: test_vabdq_u32
195 // CHECK: vabd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_u32(uint32x4_t a,uint32x4_t b)196 uint32x4_t test_vabdq_u32(uint32x4_t a, uint32x4_t b) {
197 return vabdq_u32(a, b);
198 }
199
200 // CHECK-LABEL: test_vabdq_f32
201 // CHECK: vabd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vabdq_f32(float32x4_t a,float32x4_t b)202 float32x4_t test_vabdq_f32(float32x4_t a, float32x4_t b) {
203 return vabdq_f32(a, b);
204 }
205
206
207 // CHECK-LABEL: test_vabdl_s8
208 // CHECK: vabdl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s8(int8x8_t a,int8x8_t b)209 int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) {
210 return vabdl_s8(a, b);
211 }
212
213 // CHECK-LABEL: test_vabdl_s16
214 // CHECK: vabdl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s16(int16x4_t a,int16x4_t b)215 int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) {
216 return vabdl_s16(a, b);
217 }
218
219 // CHECK-LABEL: test_vabdl_s32
220 // CHECK: vabdl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_s32(int32x2_t a,int32x2_t b)221 int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) {
222 return vabdl_s32(a, b);
223 }
224
225 // CHECK-LABEL: test_vabdl_u8
226 // CHECK: vabdl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u8(uint8x8_t a,uint8x8_t b)227 uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) {
228 return vabdl_u8(a, b);
229 }
230
231 // CHECK-LABEL: test_vabdl_u16
232 // CHECK: vabdl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u16(uint16x4_t a,uint16x4_t b)233 uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) {
234 return vabdl_u16(a, b);
235 }
236
237 // CHECK-LABEL: test_vabdl_u32
238 // CHECK: vabdl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vabdl_u32(uint32x2_t a,uint32x2_t b)239 uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) {
240 return vabdl_u32(a, b);
241 }
242
243
244 // CHECK-LABEL: test_vabs_s8
245 // CHECK: vabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s8(int8x8_t a)246 int8x8_t test_vabs_s8(int8x8_t a) {
247 return vabs_s8(a);
248 }
249
250 // CHECK-LABEL: test_vabs_s16
251 // CHECK: vabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s16(int16x4_t a)252 int16x4_t test_vabs_s16(int16x4_t a) {
253 return vabs_s16(a);
254 }
255
256 // CHECK-LABEL: test_vabs_s32
257 // CHECK: vabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_s32(int32x2_t a)258 int32x2_t test_vabs_s32(int32x2_t a) {
259 return vabs_s32(a);
260 }
261
262 // CHECK-LABEL: test_vabs_f32
263 // CHECK: vabs.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vabs_f32(float32x2_t a)264 float32x2_t test_vabs_f32(float32x2_t a) {
265 return vabs_f32(a);
266 }
267
268 // CHECK-LABEL: test_vabsq_s8
269 // CHECK: vabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s8(int8x16_t a)270 int8x16_t test_vabsq_s8(int8x16_t a) {
271 return vabsq_s8(a);
272 }
273
274 // CHECK-LABEL: test_vabsq_s16
275 // CHECK: vabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s16(int16x8_t a)276 int16x8_t test_vabsq_s16(int16x8_t a) {
277 return vabsq_s16(a);
278 }
279
280 // CHECK-LABEL: test_vabsq_s32
281 // CHECK: vabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_s32(int32x4_t a)282 int32x4_t test_vabsq_s32(int32x4_t a) {
283 return vabsq_s32(a);
284 }
285
286 // CHECK-LABEL: test_vabsq_f32
287 // CHECK: vabs.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vabsq_f32(float32x4_t a)288 float32x4_t test_vabsq_f32(float32x4_t a) {
289 return vabsq_f32(a);
290 }
291
292
293 // CHECK-LABEL: test_vadd_s8
294 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s8(int8x8_t a,int8x8_t b)295 int8x8_t test_vadd_s8(int8x8_t a, int8x8_t b) {
296 return vadd_s8(a, b);
297 }
298
299 // CHECK-LABEL: test_vadd_s16
300 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s16(int16x4_t a,int16x4_t b)301 int16x4_t test_vadd_s16(int16x4_t a, int16x4_t b) {
302 return vadd_s16(a, b);
303 }
304
305 // CHECK-LABEL: test_vadd_s32
306 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s32(int32x2_t a,int32x2_t b)307 int32x2_t test_vadd_s32(int32x2_t a, int32x2_t b) {
308 return vadd_s32(a, b);
309 }
310
311 // CHECK-LABEL: test_vadd_s64
312 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_s64(int64x1_t a,int64x1_t b)313 int64x1_t test_vadd_s64(int64x1_t a, int64x1_t b) {
314 return vadd_s64(a, b);
315 }
316
317 // CHECK-LABEL: test_vadd_f32
318 // CHECK: vadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_f32(float32x2_t a,float32x2_t b)319 float32x2_t test_vadd_f32(float32x2_t a, float32x2_t b) {
320 return vadd_f32(a, b);
321 }
322
323 // CHECK-LABEL: test_vadd_u8
324 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u8(uint8x8_t a,uint8x8_t b)325 uint8x8_t test_vadd_u8(uint8x8_t a, uint8x8_t b) {
326 return vadd_u8(a, b);
327 }
328
329 // CHECK-LABEL: test_vadd_u16
330 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u16(uint16x4_t a,uint16x4_t b)331 uint16x4_t test_vadd_u16(uint16x4_t a, uint16x4_t b) {
332 return vadd_u16(a, b);
333 }
334
335 // CHECK-LABEL: test_vadd_u32
336 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u32(uint32x2_t a,uint32x2_t b)337 uint32x2_t test_vadd_u32(uint32x2_t a, uint32x2_t b) {
338 return vadd_u32(a, b);
339 }
340
341 // CHECK-LABEL: test_vadd_u64
342 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vadd_u64(uint64x1_t a,uint64x1_t b)343 uint64x1_t test_vadd_u64(uint64x1_t a, uint64x1_t b) {
344 return vadd_u64(a, b);
345 }
346
347 // CHECK-LABEL: test_vaddq_s8
348 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s8(int8x16_t a,int8x16_t b)349 int8x16_t test_vaddq_s8(int8x16_t a, int8x16_t b) {
350 return vaddq_s8(a, b);
351 }
352
353 // CHECK-LABEL: test_vaddq_s16
354 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s16(int16x8_t a,int16x8_t b)355 int16x8_t test_vaddq_s16(int16x8_t a, int16x8_t b) {
356 return vaddq_s16(a, b);
357 }
358
359 // CHECK-LABEL: test_vaddq_s32
360 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s32(int32x4_t a,int32x4_t b)361 int32x4_t test_vaddq_s32(int32x4_t a, int32x4_t b) {
362 return vaddq_s32(a, b);
363 }
364
365 // CHECK-LABEL: test_vaddq_s64
366 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_s64(int64x2_t a,int64x2_t b)367 int64x2_t test_vaddq_s64(int64x2_t a, int64x2_t b) {
368 return vaddq_s64(a, b);
369 }
370
371 // CHECK-LABEL: test_vaddq_f32
372 // CHECK: vadd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_f32(float32x4_t a,float32x4_t b)373 float32x4_t test_vaddq_f32(float32x4_t a, float32x4_t b) {
374 return vaddq_f32(a, b);
375 }
376
377 // CHECK-LABEL: test_vaddq_u8
378 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u8(uint8x16_t a,uint8x16_t b)379 uint8x16_t test_vaddq_u8(uint8x16_t a, uint8x16_t b) {
380 return vaddq_u8(a, b);
381 }
382
383 // CHECK-LABEL: test_vaddq_u16
384 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u16(uint16x8_t a,uint16x8_t b)385 uint16x8_t test_vaddq_u16(uint16x8_t a, uint16x8_t b) {
386 return vaddq_u16(a, b);
387 }
388
389 // CHECK-LABEL: test_vaddq_u32
390 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u32(uint32x4_t a,uint32x4_t b)391 uint32x4_t test_vaddq_u32(uint32x4_t a, uint32x4_t b) {
392 return vaddq_u32(a, b);
393 }
394
395 // CHECK-LABEL: test_vaddq_u64
396 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddq_u64(uint64x2_t a,uint64x2_t b)397 uint64x2_t test_vaddq_u64(uint64x2_t a, uint64x2_t b) {
398 return vaddq_u64(a, b);
399 }
400
401
402 // CHECK-LABEL: test_vaddhn_s16
403 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s16(int16x8_t a,int16x8_t b)404 int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) {
405 return vaddhn_s16(a, b);
406 }
407
408 // CHECK-LABEL: test_vaddhn_s32
409 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s32(int32x4_t a,int32x4_t b)410 int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) {
411 return vaddhn_s32(a, b);
412 }
413
414 // CHECK-LABEL: test_vaddhn_s64
415 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_s64(int64x2_t a,int64x2_t b)416 int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) {
417 return vaddhn_s64(a, b);
418 }
419
420 // CHECK-LABEL: test_vaddhn_u16
421 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u16(uint16x8_t a,uint16x8_t b)422 uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) {
423 return vaddhn_u16(a, b);
424 }
425
426 // CHECK-LABEL: test_vaddhn_u32
427 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u32(uint32x4_t a,uint32x4_t b)428 uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) {
429 return vaddhn_u32(a, b);
430 }
431
432 // CHECK-LABEL: test_vaddhn_u64
433 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vaddhn_u64(uint64x2_t a,uint64x2_t b)434 uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) {
435 return vaddhn_u64(a, b);
436 }
437
438
439 // CHECK-LABEL: test_vaddl_s8
440 // CHECK: vaddl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s8(int8x8_t a,int8x8_t b)441 int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) {
442 return vaddl_s8(a, b);
443 }
444
445 // CHECK-LABEL: test_vaddl_s16
446 // CHECK: vaddl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s16(int16x4_t a,int16x4_t b)447 int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) {
448 return vaddl_s16(a, b);
449 }
450
451 // CHECK-LABEL: test_vaddl_s32
452 // CHECK: vaddl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_s32(int32x2_t a,int32x2_t b)453 int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) {
454 return vaddl_s32(a, b);
455 }
456
457 // CHECK-LABEL: test_vaddl_u8
458 // CHECK: vaddl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u8(uint8x8_t a,uint8x8_t b)459 uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) {
460 return vaddl_u8(a, b);
461 }
462
463 // CHECK-LABEL: test_vaddl_u16
464 // CHECK: vaddl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u16(uint16x4_t a,uint16x4_t b)465 uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) {
466 return vaddl_u16(a, b);
467 }
468
469 // CHECK-LABEL: test_vaddl_u32
470 // CHECK: vaddl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vaddl_u32(uint32x2_t a,uint32x2_t b)471 uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) {
472 return vaddl_u32(a, b);
473 }
474
475
476 // CHECK-LABEL: test_vaddw_s8
477 // CHECK: vaddw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s8(int16x8_t a,int8x8_t b)478 int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) {
479 return vaddw_s8(a, b);
480 }
481
482 // CHECK-LABEL: test_vaddw_s16
483 // CHECK: vaddw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s16(int32x4_t a,int16x4_t b)484 int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) {
485 return vaddw_s16(a, b);
486 }
487
488 // CHECK-LABEL: test_vaddw_s32
489 // CHECK: vaddw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_s32(int64x2_t a,int32x2_t b)490 int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) {
491 return vaddw_s32(a, b);
492 }
493
494 // CHECK-LABEL: test_vaddw_u8
495 // CHECK: vaddw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u8(uint16x8_t a,uint8x8_t b)496 uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) {
497 return vaddw_u8(a, b);
498 }
499
500 // CHECK-LABEL: test_vaddw_u16
501 // CHECK: vaddw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u16(uint32x4_t a,uint16x4_t b)502 uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) {
503 return vaddw_u16(a, b);
504 }
505
506 // CHECK-LABEL: test_vaddw_u32
507 // CHECK: vaddw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vaddw_u32(uint64x2_t a,uint32x2_t b)508 uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) {
509 return vaddw_u32(a, b);
510 }
511
512
513 // CHECK-LABEL: test_vand_s8
514 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s8(int8x8_t a,int8x8_t b)515 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
516 return vand_s8(a, b);
517 }
518
519 // CHECK-LABEL: test_vand_s16
520 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s16(int16x4_t a,int16x4_t b)521 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
522 return vand_s16(a, b);
523 }
524
525 // CHECK-LABEL: test_vand_s32
526 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s32(int32x2_t a,int32x2_t b)527 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
528 return vand_s32(a, b);
529 }
530
531 // CHECK-LABEL: test_vand_s64
532 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_s64(int64x1_t a,int64x1_t b)533 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
534 return vand_s64(a, b);
535 }
536
537 // CHECK-LABEL: test_vand_u8
538 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u8(uint8x8_t a,uint8x8_t b)539 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
540 return vand_u8(a, b);
541 }
542
543 // CHECK-LABEL: test_vand_u16
544 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u16(uint16x4_t a,uint16x4_t b)545 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
546 return vand_u16(a, b);
547 }
548
549 // CHECK-LABEL: test_vand_u32
550 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u32(uint32x2_t a,uint32x2_t b)551 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
552 return vand_u32(a, b);
553 }
554
555 // CHECK-LABEL: test_vand_u64
556 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vand_u64(uint64x1_t a,uint64x1_t b)557 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
558 return vand_u64(a, b);
559 }
560
561 // CHECK-LABEL: test_vandq_s8
562 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s8(int8x16_t a,int8x16_t b)563 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
564 return vandq_s8(a, b);
565 }
566
567 // CHECK-LABEL: test_vandq_s16
568 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s16(int16x8_t a,int16x8_t b)569 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
570 return vandq_s16(a, b);
571 }
572
573 // CHECK-LABEL: test_vandq_s32
574 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s32(int32x4_t a,int32x4_t b)575 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
576 return vandq_s32(a, b);
577 }
578
579 // CHECK-LABEL: test_vandq_s64
580 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_s64(int64x2_t a,int64x2_t b)581 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
582 return vandq_s64(a, b);
583 }
584
585 // CHECK-LABEL: test_vandq_u8
586 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u8(uint8x16_t a,uint8x16_t b)587 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
588 return vandq_u8(a, b);
589 }
590
591 // CHECK-LABEL: test_vandq_u16
592 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u16(uint16x8_t a,uint16x8_t b)593 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
594 return vandq_u16(a, b);
595 }
596
597 // CHECK-LABEL: test_vandq_u32
598 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u32(uint32x4_t a,uint32x4_t b)599 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
600 return vandq_u32(a, b);
601 }
602
603 // CHECK-LABEL: test_vandq_u64
604 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vandq_u64(uint64x2_t a,uint64x2_t b)605 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
606 return vandq_u64(a, b);
607 }
608
609
610 // CHECK-LABEL: test_vbic_s8
611 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s8(int8x8_t a,int8x8_t b)612 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
613 return vbic_s8(a, b);
614 }
615
616 // CHECK-LABEL: test_vbic_s16
617 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s16(int16x4_t a,int16x4_t b)618 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
619 return vbic_s16(a, b);
620 }
621
622 // CHECK-LABEL: test_vbic_s32
623 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s32(int32x2_t a,int32x2_t b)624 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
625 return vbic_s32(a, b);
626 }
627
628 // CHECK-LABEL: test_vbic_s64
629 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_s64(int64x1_t a,int64x1_t b)630 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
631 return vbic_s64(a, b);
632 }
633
634 // CHECK-LABEL: test_vbic_u8
635 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u8(uint8x8_t a,uint8x8_t b)636 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
637 return vbic_u8(a, b);
638 }
639
640 // CHECK-LABEL: test_vbic_u16
641 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u16(uint16x4_t a,uint16x4_t b)642 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
643 return vbic_u16(a, b);
644 }
645
646 // CHECK-LABEL: test_vbic_u32
647 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u32(uint32x2_t a,uint32x2_t b)648 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
649 return vbic_u32(a, b);
650 }
651
652 // CHECK-LABEL: test_vbic_u64
653 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbic_u64(uint64x1_t a,uint64x1_t b)654 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
655 return vbic_u64(a, b);
656 }
657
658 // CHECK-LABEL: test_vbicq_s8
659 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s8(int8x16_t a,int8x16_t b)660 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
661 return vbicq_s8(a, b);
662 }
663
664 // CHECK-LABEL: test_vbicq_s16
665 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s16(int16x8_t a,int16x8_t b)666 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
667 return vbicq_s16(a, b);
668 }
669
670 // CHECK-LABEL: test_vbicq_s32
671 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s32(int32x4_t a,int32x4_t b)672 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
673 return vbicq_s32(a, b);
674 }
675
676 // CHECK-LABEL: test_vbicq_s64
677 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_s64(int64x2_t a,int64x2_t b)678 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
679 return vbicq_s64(a, b);
680 }
681
682 // CHECK-LABEL: test_vbicq_u8
683 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u8(uint8x16_t a,uint8x16_t b)684 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
685 return vbicq_u8(a, b);
686 }
687
688 // CHECK-LABEL: test_vbicq_u16
689 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u16(uint16x8_t a,uint16x8_t b)690 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
691 return vbicq_u16(a, b);
692 }
693
694 // CHECK-LABEL: test_vbicq_u32
695 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u32(uint32x4_t a,uint32x4_t b)696 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
697 return vbicq_u32(a, b);
698 }
699
700 // CHECK-LABEL: test_vbicq_u64
701 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbicq_u64(uint64x2_t a,uint64x2_t b)702 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
703 return vbicq_u64(a, b);
704 }
705
706
707 // CHECK-LABEL: test_vbsl_s8
708 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s8(uint8x8_t a,int8x8_t b,int8x8_t c)709 int8x8_t test_vbsl_s8(uint8x8_t a, int8x8_t b, int8x8_t c) {
710 return vbsl_s8(a, b, c);
711 }
712
713 // CHECK-LABEL: test_vbsl_s16
714 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s16(uint16x4_t a,int16x4_t b,int16x4_t c)715 int16x4_t test_vbsl_s16(uint16x4_t a, int16x4_t b, int16x4_t c) {
716 return vbsl_s16(a, b, c);
717 }
718
719 // CHECK-LABEL: test_vbsl_s32
720 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s32(uint32x2_t a,int32x2_t b,int32x2_t c)721 int32x2_t test_vbsl_s32(uint32x2_t a, int32x2_t b, int32x2_t c) {
722 return vbsl_s32(a, b, c);
723 }
724
725 // CHECK-LABEL: test_vbsl_s64
726 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_s64(uint64x1_t a,int64x1_t b,int64x1_t c)727 int64x1_t test_vbsl_s64(uint64x1_t a, int64x1_t b, int64x1_t c) {
728 return vbsl_s64(a, b, c);
729 }
730
731 // CHECK-LABEL: test_vbsl_u8
732 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)733 uint8x8_t test_vbsl_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
734 return vbsl_u8(a, b, c);
735 }
736
737 // CHECK-LABEL: test_vbsl_u16
738 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)739 uint16x4_t test_vbsl_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
740 return vbsl_u16(a, b, c);
741 }
742
743 // CHECK-LABEL: test_vbsl_u32
744 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)745 uint32x2_t test_vbsl_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
746 return vbsl_u32(a, b, c);
747 }
748
749 // CHECK-LABEL: test_vbsl_u64
750 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_u64(uint64x1_t a,uint64x1_t b,uint64x1_t c)751 uint64x1_t test_vbsl_u64(uint64x1_t a, uint64x1_t b, uint64x1_t c) {
752 return vbsl_u64(a, b, c);
753 }
754
755 // CHECK-LABEL: test_vbsl_f32
756 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_f32(uint32x2_t a,float32x2_t b,float32x2_t c)757 float32x2_t test_vbsl_f32(uint32x2_t a, float32x2_t b, float32x2_t c) {
758 return vbsl_f32(a, b, c);
759 }
760
761 // CHECK-LABEL: test_vbsl_p8
762 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p8(uint8x8_t a,poly8x8_t b,poly8x8_t c)763 poly8x8_t test_vbsl_p8(uint8x8_t a, poly8x8_t b, poly8x8_t c) {
764 return vbsl_p8(a, b, c);
765 }
766
767 // CHECK-LABEL: test_vbsl_p16
768 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vbsl_p16(uint16x4_t a,poly16x4_t b,poly16x4_t c)769 poly16x4_t test_vbsl_p16(uint16x4_t a, poly16x4_t b, poly16x4_t c) {
770 return vbsl_p16(a, b, c);
771 }
772
773 // CHECK-LABEL: test_vbslq_s8
774 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s8(uint8x16_t a,int8x16_t b,int8x16_t c)775 int8x16_t test_vbslq_s8(uint8x16_t a, int8x16_t b, int8x16_t c) {
776 return vbslq_s8(a, b, c);
777 }
778
779 // CHECK-LABEL: test_vbslq_s16
780 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s16(uint16x8_t a,int16x8_t b,int16x8_t c)781 int16x8_t test_vbslq_s16(uint16x8_t a, int16x8_t b, int16x8_t c) {
782 return vbslq_s16(a, b, c);
783 }
784
785 // CHECK-LABEL: test_vbslq_s32
786 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s32(uint32x4_t a,int32x4_t b,int32x4_t c)787 int32x4_t test_vbslq_s32(uint32x4_t a, int32x4_t b, int32x4_t c) {
788 return vbslq_s32(a, b, c);
789 }
790
791 // CHECK-LABEL: test_vbslq_s64
792 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_s64(uint64x2_t a,int64x2_t b,int64x2_t c)793 int64x2_t test_vbslq_s64(uint64x2_t a, int64x2_t b, int64x2_t c) {
794 return vbslq_s64(a, b, c);
795 }
796
797 // CHECK-LABEL: test_vbslq_u8
798 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)799 uint8x16_t test_vbslq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
800 return vbslq_u8(a, b, c);
801 }
802
803 // CHECK-LABEL: test_vbslq_u16
804 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)805 uint16x8_t test_vbslq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
806 return vbslq_u16(a, b, c);
807 }
808
809 // CHECK-LABEL: test_vbslq_u32
810 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)811 uint32x4_t test_vbslq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
812 return vbslq_u32(a, b, c);
813 }
814
815 // CHECK-LABEL: test_vbslq_u64
816 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_u64(uint64x2_t a,uint64x2_t b,uint64x2_t c)817 uint64x2_t test_vbslq_u64(uint64x2_t a, uint64x2_t b, uint64x2_t c) {
818 return vbslq_u64(a, b, c);
819 }
820
821 // CHECK-LABEL: test_vbslq_f32
822 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_f32(uint32x4_t a,float32x4_t b,float32x4_t c)823 float32x4_t test_vbslq_f32(uint32x4_t a, float32x4_t b, float32x4_t c) {
824 return vbslq_f32(a, b, c);
825 }
826
827 // CHECK-LABEL: test_vbslq_p8
828 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p8(uint8x16_t a,poly8x16_t b,poly8x16_t c)829 poly8x16_t test_vbslq_p8(uint8x16_t a, poly8x16_t b, poly8x16_t c) {
830 return vbslq_p8(a, b, c);
831 }
832
833 // CHECK-LABEL: test_vbslq_p16
834 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vbslq_p16(uint16x8_t a,poly16x8_t b,poly16x8_t c)835 poly16x8_t test_vbslq_p16(uint16x8_t a, poly16x8_t b, poly16x8_t c) {
836 return vbslq_p16(a, b, c);
837 }
838
839
840 // CHECK-LABEL: test_vcage_f32
841 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcage_f32(float32x2_t a,float32x2_t b)842 uint32x2_t test_vcage_f32(float32x2_t a, float32x2_t b) {
843 return vcage_f32(a, b);
844 }
845
846 // CHECK-LABEL: test_vcageq_f32
847 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcageq_f32(float32x4_t a,float32x4_t b)848 uint32x4_t test_vcageq_f32(float32x4_t a, float32x4_t b) {
849 return vcageq_f32(a, b);
850 }
851
852
853 // CHECK-LABEL: test_vcagt_f32
854 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcagt_f32(float32x2_t a,float32x2_t b)855 uint32x2_t test_vcagt_f32(float32x2_t a, float32x2_t b) {
856 return vcagt_f32(a, b);
857 }
858
859 // CHECK-LABEL: test_vcagtq_f32
860 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcagtq_f32(float32x4_t a,float32x4_t b)861 uint32x4_t test_vcagtq_f32(float32x4_t a, float32x4_t b) {
862 return vcagtq_f32(a, b);
863 }
864
865
866 // CHECK-LABEL: test_vcale_f32
867 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcale_f32(float32x2_t a,float32x2_t b)868 uint32x2_t test_vcale_f32(float32x2_t a, float32x2_t b) {
869 return vcale_f32(a, b);
870 }
871
872 // CHECK-LABEL: test_vcaleq_f32
873 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaleq_f32(float32x4_t a,float32x4_t b)874 uint32x4_t test_vcaleq_f32(float32x4_t a, float32x4_t b) {
875 return vcaleq_f32(a, b);
876 }
877
878
879 // CHECK-LABEL: test_vcalt_f32
880 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcalt_f32(float32x2_t a,float32x2_t b)881 uint32x2_t test_vcalt_f32(float32x2_t a, float32x2_t b) {
882 return vcalt_f32(a, b);
883 }
884
885 // CHECK-LABEL: test_vcaltq_f32
886 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcaltq_f32(float32x4_t a,float32x4_t b)887 uint32x4_t test_vcaltq_f32(float32x4_t a, float32x4_t b) {
888 return vcaltq_f32(a, b);
889 }
890
891
892 // CHECK-LABEL: test_vceq_s8
893 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s8(int8x8_t a,int8x8_t b)894 uint8x8_t test_vceq_s8(int8x8_t a, int8x8_t b) {
895 return vceq_s8(a, b);
896 }
897
898 // CHECK-LABEL: test_vceq_s16
899 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s16(int16x4_t a,int16x4_t b)900 uint16x4_t test_vceq_s16(int16x4_t a, int16x4_t b) {
901 return vceq_s16(a, b);
902 }
903
904 // CHECK-LABEL: test_vceq_s32
905 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_s32(int32x2_t a,int32x2_t b)906 uint32x2_t test_vceq_s32(int32x2_t a, int32x2_t b) {
907 return vceq_s32(a, b);
908 }
909
910 // CHECK-LABEL: test_vceq_f32
911 // CHECK: vceq.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_f32(float32x2_t a,float32x2_t b)912 uint32x2_t test_vceq_f32(float32x2_t a, float32x2_t b) {
913 return vceq_f32(a, b);
914 }
915
916 // CHECK-LABEL: test_vceq_u8
917 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u8(uint8x8_t a,uint8x8_t b)918 uint8x8_t test_vceq_u8(uint8x8_t a, uint8x8_t b) {
919 return vceq_u8(a, b);
920 }
921
922 // CHECK-LABEL: test_vceq_u16
923 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u16(uint16x4_t a,uint16x4_t b)924 uint16x4_t test_vceq_u16(uint16x4_t a, uint16x4_t b) {
925 return vceq_u16(a, b);
926 }
927
928 // CHECK-LABEL: test_vceq_u32
929 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_u32(uint32x2_t a,uint32x2_t b)930 uint32x2_t test_vceq_u32(uint32x2_t a, uint32x2_t b) {
931 return vceq_u32(a, b);
932 }
933
934 // CHECK-LABEL: test_vceq_p8
935 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vceq_p8(poly8x8_t a,poly8x8_t b)936 uint8x8_t test_vceq_p8(poly8x8_t a, poly8x8_t b) {
937 return vceq_p8(a, b);
938 }
939
940 // CHECK-LABEL: test_vceqq_s8
941 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s8(int8x16_t a,int8x16_t b)942 uint8x16_t test_vceqq_s8(int8x16_t a, int8x16_t b) {
943 return vceqq_s8(a, b);
944 }
945
946 // CHECK-LABEL: test_vceqq_s16
947 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s16(int16x8_t a,int16x8_t b)948 uint16x8_t test_vceqq_s16(int16x8_t a, int16x8_t b) {
949 return vceqq_s16(a, b);
950 }
951
952 // CHECK-LABEL: test_vceqq_s32
953 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_s32(int32x4_t a,int32x4_t b)954 uint32x4_t test_vceqq_s32(int32x4_t a, int32x4_t b) {
955 return vceqq_s32(a, b);
956 }
957
958 // CHECK-LABEL: test_vceqq_f32
959 // CHECK: vceq.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_f32(float32x4_t a,float32x4_t b)960 uint32x4_t test_vceqq_f32(float32x4_t a, float32x4_t b) {
961 return vceqq_f32(a, b);
962 }
963
964 // CHECK-LABEL: test_vceqq_u8
965 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u8(uint8x16_t a,uint8x16_t b)966 uint8x16_t test_vceqq_u8(uint8x16_t a, uint8x16_t b) {
967 return vceqq_u8(a, b);
968 }
969
970 // CHECK-LABEL: test_vceqq_u16
971 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u16(uint16x8_t a,uint16x8_t b)972 uint16x8_t test_vceqq_u16(uint16x8_t a, uint16x8_t b) {
973 return vceqq_u16(a, b);
974 }
975
976 // CHECK-LABEL: test_vceqq_u32
977 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_u32(uint32x4_t a,uint32x4_t b)978 uint32x4_t test_vceqq_u32(uint32x4_t a, uint32x4_t b) {
979 return vceqq_u32(a, b);
980 }
981
982 // CHECK-LABEL: test_vceqq_p8
983 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vceqq_p8(poly8x16_t a,poly8x16_t b)984 uint8x16_t test_vceqq_p8(poly8x16_t a, poly8x16_t b) {
985 return vceqq_p8(a, b);
986 }
987
988
989 // CHECK-LABEL: test_vcge_s8
990 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s8(int8x8_t a,int8x8_t b)991 uint8x8_t test_vcge_s8(int8x8_t a, int8x8_t b) {
992 return vcge_s8(a, b);
993 }
994
995 // CHECK-LABEL: test_vcge_s16
996 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s16(int16x4_t a,int16x4_t b)997 uint16x4_t test_vcge_s16(int16x4_t a, int16x4_t b) {
998 return vcge_s16(a, b);
999 }
1000
1001 // CHECK-LABEL: test_vcge_s32
1002 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_s32(int32x2_t a,int32x2_t b)1003 uint32x2_t test_vcge_s32(int32x2_t a, int32x2_t b) {
1004 return vcge_s32(a, b);
1005 }
1006
1007 // CHECK-LABEL: test_vcge_f32
1008 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_f32(float32x2_t a,float32x2_t b)1009 uint32x2_t test_vcge_f32(float32x2_t a, float32x2_t b) {
1010 return vcge_f32(a, b);
1011 }
1012
1013 // CHECK-LABEL: test_vcge_u8
1014 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u8(uint8x8_t a,uint8x8_t b)1015 uint8x8_t test_vcge_u8(uint8x8_t a, uint8x8_t b) {
1016 return vcge_u8(a, b);
1017 }
1018
1019 // CHECK-LABEL: test_vcge_u16
1020 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u16(uint16x4_t a,uint16x4_t b)1021 uint16x4_t test_vcge_u16(uint16x4_t a, uint16x4_t b) {
1022 return vcge_u16(a, b);
1023 }
1024
1025 // CHECK-LABEL: test_vcge_u32
1026 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcge_u32(uint32x2_t a,uint32x2_t b)1027 uint32x2_t test_vcge_u32(uint32x2_t a, uint32x2_t b) {
1028 return vcge_u32(a, b);
1029 }
1030
1031 // CHECK-LABEL: test_vcgeq_s8
1032 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s8(int8x16_t a,int8x16_t b)1033 uint8x16_t test_vcgeq_s8(int8x16_t a, int8x16_t b) {
1034 return vcgeq_s8(a, b);
1035 }
1036
1037 // CHECK-LABEL: test_vcgeq_s16
1038 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s16(int16x8_t a,int16x8_t b)1039 uint16x8_t test_vcgeq_s16(int16x8_t a, int16x8_t b) {
1040 return vcgeq_s16(a, b);
1041 }
1042
1043 // CHECK-LABEL: test_vcgeq_s32
1044 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_s32(int32x4_t a,int32x4_t b)1045 uint32x4_t test_vcgeq_s32(int32x4_t a, int32x4_t b) {
1046 return vcgeq_s32(a, b);
1047 }
1048
1049 // CHECK-LABEL: test_vcgeq_f32
1050 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_f32(float32x4_t a,float32x4_t b)1051 uint32x4_t test_vcgeq_f32(float32x4_t a, float32x4_t b) {
1052 return vcgeq_f32(a, b);
1053 }
1054
1055 // CHECK-LABEL: test_vcgeq_u8
1056 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u8(uint8x16_t a,uint8x16_t b)1057 uint8x16_t test_vcgeq_u8(uint8x16_t a, uint8x16_t b) {
1058 return vcgeq_u8(a, b);
1059 }
1060
1061 // CHECK-LABEL: test_vcgeq_u16
1062 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u16(uint16x8_t a,uint16x8_t b)1063 uint16x8_t test_vcgeq_u16(uint16x8_t a, uint16x8_t b) {
1064 return vcgeq_u16(a, b);
1065 }
1066
1067 // CHECK-LABEL: test_vcgeq_u32
1068 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgeq_u32(uint32x4_t a,uint32x4_t b)1069 uint32x4_t test_vcgeq_u32(uint32x4_t a, uint32x4_t b) {
1070 return vcgeq_u32(a, b);
1071 }
1072
1073
1074 // CHECK-LABEL: test_vcgt_s8
1075 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s8(int8x8_t a,int8x8_t b)1076 uint8x8_t test_vcgt_s8(int8x8_t a, int8x8_t b) {
1077 return vcgt_s8(a, b);
1078 }
1079
1080 // CHECK-LABEL: test_vcgt_s16
1081 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s16(int16x4_t a,int16x4_t b)1082 uint16x4_t test_vcgt_s16(int16x4_t a, int16x4_t b) {
1083 return vcgt_s16(a, b);
1084 }
1085
1086 // CHECK-LABEL: test_vcgt_s32
1087 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_s32(int32x2_t a,int32x2_t b)1088 uint32x2_t test_vcgt_s32(int32x2_t a, int32x2_t b) {
1089 return vcgt_s32(a, b);
1090 }
1091
1092 // CHECK-LABEL: test_vcgt_f32
1093 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_f32(float32x2_t a,float32x2_t b)1094 uint32x2_t test_vcgt_f32(float32x2_t a, float32x2_t b) {
1095 return vcgt_f32(a, b);
1096 }
1097
1098 // CHECK-LABEL: test_vcgt_u8
1099 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u8(uint8x8_t a,uint8x8_t b)1100 uint8x8_t test_vcgt_u8(uint8x8_t a, uint8x8_t b) {
1101 return vcgt_u8(a, b);
1102 }
1103
1104 // CHECK-LABEL: test_vcgt_u16
1105 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u16(uint16x4_t a,uint16x4_t b)1106 uint16x4_t test_vcgt_u16(uint16x4_t a, uint16x4_t b) {
1107 return vcgt_u16(a, b);
1108 }
1109
1110 // CHECK-LABEL: test_vcgt_u32
1111 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcgt_u32(uint32x2_t a,uint32x2_t b)1112 uint32x2_t test_vcgt_u32(uint32x2_t a, uint32x2_t b) {
1113 return vcgt_u32(a, b);
1114 }
1115
1116 // CHECK-LABEL: test_vcgtq_s8
1117 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s8(int8x16_t a,int8x16_t b)1118 uint8x16_t test_vcgtq_s8(int8x16_t a, int8x16_t b) {
1119 return vcgtq_s8(a, b);
1120 }
1121
1122 // CHECK-LABEL: test_vcgtq_s16
1123 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s16(int16x8_t a,int16x8_t b)1124 uint16x8_t test_vcgtq_s16(int16x8_t a, int16x8_t b) {
1125 return vcgtq_s16(a, b);
1126 }
1127
1128 // CHECK-LABEL: test_vcgtq_s32
1129 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_s32(int32x4_t a,int32x4_t b)1130 uint32x4_t test_vcgtq_s32(int32x4_t a, int32x4_t b) {
1131 return vcgtq_s32(a, b);
1132 }
1133
1134 // CHECK-LABEL: test_vcgtq_f32
1135 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_f32(float32x4_t a,float32x4_t b)1136 uint32x4_t test_vcgtq_f32(float32x4_t a, float32x4_t b) {
1137 return vcgtq_f32(a, b);
1138 }
1139
1140 // CHECK-LABEL: test_vcgtq_u8
1141 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u8(uint8x16_t a,uint8x16_t b)1142 uint8x16_t test_vcgtq_u8(uint8x16_t a, uint8x16_t b) {
1143 return vcgtq_u8(a, b);
1144 }
1145
1146 // CHECK-LABEL: test_vcgtq_u16
1147 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u16(uint16x8_t a,uint16x8_t b)1148 uint16x8_t test_vcgtq_u16(uint16x8_t a, uint16x8_t b) {
1149 return vcgtq_u16(a, b);
1150 }
1151
1152 // CHECK-LABEL: test_vcgtq_u32
1153 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcgtq_u32(uint32x4_t a,uint32x4_t b)1154 uint32x4_t test_vcgtq_u32(uint32x4_t a, uint32x4_t b) {
1155 return vcgtq_u32(a, b);
1156 }
1157
1158
1159 // CHECK-LABEL: test_vcle_s8
1160 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s8(int8x8_t a,int8x8_t b)1161 uint8x8_t test_vcle_s8(int8x8_t a, int8x8_t b) {
1162 return vcle_s8(a, b);
1163 }
1164
1165 // CHECK-LABEL: test_vcle_s16
1166 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s16(int16x4_t a,int16x4_t b)1167 uint16x4_t test_vcle_s16(int16x4_t a, int16x4_t b) {
1168 return vcle_s16(a, b);
1169 }
1170
1171 // CHECK-LABEL: test_vcle_s32
1172 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_s32(int32x2_t a,int32x2_t b)1173 uint32x2_t test_vcle_s32(int32x2_t a, int32x2_t b) {
1174 return vcle_s32(a, b);
1175 }
1176
1177 // CHECK-LABEL: test_vcle_f32
1178 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_f32(float32x2_t a,float32x2_t b)1179 uint32x2_t test_vcle_f32(float32x2_t a, float32x2_t b) {
1180 return vcle_f32(a, b);
1181 }
1182
1183 // CHECK-LABEL: test_vcle_u8
1184 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u8(uint8x8_t a,uint8x8_t b)1185 uint8x8_t test_vcle_u8(uint8x8_t a, uint8x8_t b) {
1186 return vcle_u8(a, b);
1187 }
1188
1189 // CHECK-LABEL: test_vcle_u16
1190 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u16(uint16x4_t a,uint16x4_t b)1191 uint16x4_t test_vcle_u16(uint16x4_t a, uint16x4_t b) {
1192 return vcle_u16(a, b);
1193 }
1194
1195 // CHECK-LABEL: test_vcle_u32
1196 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vcle_u32(uint32x2_t a,uint32x2_t b)1197 uint32x2_t test_vcle_u32(uint32x2_t a, uint32x2_t b) {
1198 return vcle_u32(a, b);
1199 }
1200
1201 // CHECK-LABEL: test_vcleq_s8
1202 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s8(int8x16_t a,int8x16_t b)1203 uint8x16_t test_vcleq_s8(int8x16_t a, int8x16_t b) {
1204 return vcleq_s8(a, b);
1205 }
1206
1207 // CHECK-LABEL: test_vcleq_s16
1208 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s16(int16x8_t a,int16x8_t b)1209 uint16x8_t test_vcleq_s16(int16x8_t a, int16x8_t b) {
1210 return vcleq_s16(a, b);
1211 }
1212
1213 // CHECK-LABEL: test_vcleq_s32
1214 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_s32(int32x4_t a,int32x4_t b)1215 uint32x4_t test_vcleq_s32(int32x4_t a, int32x4_t b) {
1216 return vcleq_s32(a, b);
1217 }
1218
1219 // CHECK-LABEL: test_vcleq_f32
1220 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_f32(float32x4_t a,float32x4_t b)1221 uint32x4_t test_vcleq_f32(float32x4_t a, float32x4_t b) {
1222 return vcleq_f32(a, b);
1223 }
1224
1225 // CHECK-LABEL: test_vcleq_u8
1226 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u8(uint8x16_t a,uint8x16_t b)1227 uint8x16_t test_vcleq_u8(uint8x16_t a, uint8x16_t b) {
1228 return vcleq_u8(a, b);
1229 }
1230
1231 // CHECK-LABEL: test_vcleq_u16
1232 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u16(uint16x8_t a,uint16x8_t b)1233 uint16x8_t test_vcleq_u16(uint16x8_t a, uint16x8_t b) {
1234 return vcleq_u16(a, b);
1235 }
1236
1237 // CHECK-LABEL: test_vcleq_u32
1238 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcleq_u32(uint32x4_t a,uint32x4_t b)1239 uint32x4_t test_vcleq_u32(uint32x4_t a, uint32x4_t b) {
1240 return vcleq_u32(a, b);
1241 }
1242
1243
1244 // CHECK-LABEL: test_vcls_s8
1245 // CHECK: vcls.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s8(int8x8_t a)1246 int8x8_t test_vcls_s8(int8x8_t a) {
1247 return vcls_s8(a);
1248 }
1249
1250 // CHECK-LABEL: test_vcls_s16
1251 // CHECK: vcls.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s16(int16x4_t a)1252 int16x4_t test_vcls_s16(int16x4_t a) {
1253 return vcls_s16(a);
1254 }
1255
1256 // CHECK-LABEL: test_vcls_s32
1257 // CHECK: vcls.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcls_s32(int32x2_t a)1258 int32x2_t test_vcls_s32(int32x2_t a) {
1259 return vcls_s32(a);
1260 }
1261
1262 // CHECK-LABEL: test_vclsq_s8
1263 // CHECK: vcls.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s8(int8x16_t a)1264 int8x16_t test_vclsq_s8(int8x16_t a) {
1265 return vclsq_s8(a);
1266 }
1267
1268 // CHECK-LABEL: test_vclsq_s16
1269 // CHECK: vcls.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s16(int16x8_t a)1270 int16x8_t test_vclsq_s16(int16x8_t a) {
1271 return vclsq_s16(a);
1272 }
1273
1274 // CHECK-LABEL: test_vclsq_s32
1275 // CHECK: vcls.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclsq_s32(int32x4_t a)1276 int32x4_t test_vclsq_s32(int32x4_t a) {
1277 return vclsq_s32(a);
1278 }
1279
1280
1281 // CHECK-LABEL: test_vclt_s8
1282 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s8(int8x8_t a,int8x8_t b)1283 uint8x8_t test_vclt_s8(int8x8_t a, int8x8_t b) {
1284 return vclt_s8(a, b);
1285 }
1286
1287 // CHECK-LABEL: test_vclt_s16
1288 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s16(int16x4_t a,int16x4_t b)1289 uint16x4_t test_vclt_s16(int16x4_t a, int16x4_t b) {
1290 return vclt_s16(a, b);
1291 }
1292
1293 // CHECK-LABEL: test_vclt_s32
1294 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_s32(int32x2_t a,int32x2_t b)1295 uint32x2_t test_vclt_s32(int32x2_t a, int32x2_t b) {
1296 return vclt_s32(a, b);
1297 }
1298
1299 // CHECK-LABEL: test_vclt_f32
1300 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_f32(float32x2_t a,float32x2_t b)1301 uint32x2_t test_vclt_f32(float32x2_t a, float32x2_t b) {
1302 return vclt_f32(a, b);
1303 }
1304
1305 // CHECK-LABEL: test_vclt_u8
1306 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u8(uint8x8_t a,uint8x8_t b)1307 uint8x8_t test_vclt_u8(uint8x8_t a, uint8x8_t b) {
1308 return vclt_u8(a, b);
1309 }
1310
1311 // CHECK-LABEL: test_vclt_u16
1312 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u16(uint16x4_t a,uint16x4_t b)1313 uint16x4_t test_vclt_u16(uint16x4_t a, uint16x4_t b) {
1314 return vclt_u16(a, b);
1315 }
1316
1317 // CHECK-LABEL: test_vclt_u32
1318 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vclt_u32(uint32x2_t a,uint32x2_t b)1319 uint32x2_t test_vclt_u32(uint32x2_t a, uint32x2_t b) {
1320 return vclt_u32(a, b);
1321 }
1322
1323 // CHECK-LABEL: test_vcltq_s8
1324 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s8(int8x16_t a,int8x16_t b)1325 uint8x16_t test_vcltq_s8(int8x16_t a, int8x16_t b) {
1326 return vcltq_s8(a, b);
1327 }
1328
1329 // CHECK-LABEL: test_vcltq_s16
1330 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s16(int16x8_t a,int16x8_t b)1331 uint16x8_t test_vcltq_s16(int16x8_t a, int16x8_t b) {
1332 return vcltq_s16(a, b);
1333 }
1334
1335 // CHECK-LABEL: test_vcltq_s32
1336 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_s32(int32x4_t a,int32x4_t b)1337 uint32x4_t test_vcltq_s32(int32x4_t a, int32x4_t b) {
1338 return vcltq_s32(a, b);
1339 }
1340
1341 // CHECK-LABEL: test_vcltq_f32
1342 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_f32(float32x4_t a,float32x4_t b)1343 uint32x4_t test_vcltq_f32(float32x4_t a, float32x4_t b) {
1344 return vcltq_f32(a, b);
1345 }
1346
1347 // CHECK-LABEL: test_vcltq_u8
1348 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u8(uint8x16_t a,uint8x16_t b)1349 uint8x16_t test_vcltq_u8(uint8x16_t a, uint8x16_t b) {
1350 return vcltq_u8(a, b);
1351 }
1352
1353 // CHECK-LABEL: test_vcltq_u16
1354 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u16(uint16x8_t a,uint16x8_t b)1355 uint16x8_t test_vcltq_u16(uint16x8_t a, uint16x8_t b) {
1356 return vcltq_u16(a, b);
1357 }
1358
1359 // CHECK-LABEL: test_vcltq_u32
1360 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vcltq_u32(uint32x4_t a,uint32x4_t b)1361 uint32x4_t test_vcltq_u32(uint32x4_t a, uint32x4_t b) {
1362 return vcltq_u32(a, b);
1363 }
1364
1365
1366 // CHECK-LABEL: test_vclz_s8
1367 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s8(int8x8_t a)1368 int8x8_t test_vclz_s8(int8x8_t a) {
1369 return vclz_s8(a);
1370 }
1371
1372 // CHECK-LABEL: test_vclz_s16
1373 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s16(int16x4_t a)1374 int16x4_t test_vclz_s16(int16x4_t a) {
1375 return vclz_s16(a);
1376 }
1377
1378 // CHECK-LABEL: test_vclz_s32
1379 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_s32(int32x2_t a)1380 int32x2_t test_vclz_s32(int32x2_t a) {
1381 return vclz_s32(a);
1382 }
1383
1384 // CHECK-LABEL: test_vclz_u8
1385 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u8(uint8x8_t a)1386 uint8x8_t test_vclz_u8(uint8x8_t a) {
1387 return vclz_u8(a);
1388 }
1389
1390 // CHECK-LABEL: test_vclz_u16
1391 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u16(uint16x4_t a)1392 uint16x4_t test_vclz_u16(uint16x4_t a) {
1393 return vclz_u16(a);
1394 }
1395
1396 // CHECK-LABEL: test_vclz_u32
1397 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
test_vclz_u32(uint32x2_t a)1398 uint32x2_t test_vclz_u32(uint32x2_t a) {
1399 return vclz_u32(a);
1400 }
1401
1402 // CHECK-LABEL: test_vclzq_s8
1403 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s8(int8x16_t a)1404 int8x16_t test_vclzq_s8(int8x16_t a) {
1405 return vclzq_s8(a);
1406 }
1407
1408 // CHECK-LABEL: test_vclzq_s16
1409 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s16(int16x8_t a)1410 int16x8_t test_vclzq_s16(int16x8_t a) {
1411 return vclzq_s16(a);
1412 }
1413
1414 // CHECK-LABEL: test_vclzq_s32
1415 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_s32(int32x4_t a)1416 int32x4_t test_vclzq_s32(int32x4_t a) {
1417 return vclzq_s32(a);
1418 }
1419
1420 // CHECK-LABEL: test_vclzq_u8
1421 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u8(uint8x16_t a)1422 uint8x16_t test_vclzq_u8(uint8x16_t a) {
1423 return vclzq_u8(a);
1424 }
1425
1426 // CHECK-LABEL: test_vclzq_u16
1427 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u16(uint16x8_t a)1428 uint16x8_t test_vclzq_u16(uint16x8_t a) {
1429 return vclzq_u16(a);
1430 }
1431
1432 // CHECK-LABEL: test_vclzq_u32
1433 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
test_vclzq_u32(uint32x4_t a)1434 uint32x4_t test_vclzq_u32(uint32x4_t a) {
1435 return vclzq_u32(a);
1436 }
1437
1438
1439 // CHECK-LABEL: test_vcnt_u8
1440 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_u8(uint8x8_t a)1441 uint8x8_t test_vcnt_u8(uint8x8_t a) {
1442 return vcnt_u8(a);
1443 }
1444
1445 // CHECK-LABEL: test_vcnt_s8
1446 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_s8(int8x8_t a)1447 int8x8_t test_vcnt_s8(int8x8_t a) {
1448 return vcnt_s8(a);
1449 }
1450
1451 // CHECK-LABEL: test_vcnt_p8
1452 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vcnt_p8(poly8x8_t a)1453 poly8x8_t test_vcnt_p8(poly8x8_t a) {
1454 return vcnt_p8(a);
1455 }
1456
1457 // CHECK-LABEL: test_vcntq_u8
1458 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_u8(uint8x16_t a)1459 uint8x16_t test_vcntq_u8(uint8x16_t a) {
1460 return vcntq_u8(a);
1461 }
1462
1463 // CHECK-LABEL: test_vcntq_s8
1464 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_s8(int8x16_t a)1465 int8x16_t test_vcntq_s8(int8x16_t a) {
1466 return vcntq_s8(a);
1467 }
1468
1469 // CHECK-LABEL: test_vcntq_p8
1470 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vcntq_p8(poly8x16_t a)1471 poly8x16_t test_vcntq_p8(poly8x16_t a) {
1472 return vcntq_p8(a);
1473 }
1474
1475
1476 // CHECK-LABEL: test_vcombine_s8
1477 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1478 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s8(int8x8_t a,int8x8_t b)1479 int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) {
1480 return vcombine_s8(a, b);
1481 }
1482
1483 // CHECK-LABEL: test_vcombine_s16
1484 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1485 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s16(int16x4_t a,int16x4_t b)1486 int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) {
1487 return vcombine_s16(a, b);
1488 }
1489
1490 // CHECK-LABEL: test_vcombine_s32
1491 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1492 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s32(int32x2_t a,int32x2_t b)1493 int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) {
1494 return vcombine_s32(a, b);
1495 }
1496
1497 // CHECK-LABEL: test_vcombine_s64
1498 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1499 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_s64(int64x1_t a,int64x1_t b)1500 int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) {
1501 return vcombine_s64(a, b);
1502 }
1503
1504 // CHECK-LABEL: test_vcombine_f16
1505 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1506 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_f16(float16x4_t a,float16x4_t b)1507 float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) {
1508 return vcombine_f16(a, b);
1509 }
1510
1511 // CHECK-LABEL: test_vcombine_f32
1512 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1513 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_f32(float32x2_t a,float32x2_t b)1514 float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) {
1515 return vcombine_f32(a, b);
1516 }
1517
1518 // CHECK-LABEL: test_vcombine_u8
1519 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1520 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u8(uint8x8_t a,uint8x8_t b)1521 uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) {
1522 return vcombine_u8(a, b);
1523 }
1524
1525 // CHECK-LABEL: test_vcombine_u16
1526 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1527 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u16(uint16x4_t a,uint16x4_t b)1528 uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) {
1529 return vcombine_u16(a, b);
1530 }
1531
1532 // CHECK-LABEL: test_vcombine_u32
1533 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1534 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u32(uint32x2_t a,uint32x2_t b)1535 uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) {
1536 return vcombine_u32(a, b);
1537 }
1538
1539 // CHECK-LABEL: test_vcombine_u64
1540 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1541 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_u64(uint64x1_t a,uint64x1_t b)1542 uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) {
1543 return vcombine_u64(a, b);
1544 }
1545
1546 // CHECK-LABEL: test_vcombine_p8
1547 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1548 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_p8(poly8x8_t a,poly8x8_t b)1549 poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) {
1550 return vcombine_p8(a, b);
1551 }
1552
1553 // CHECK-LABEL: test_vcombine_p16
1554 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
1555 // CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}}
test_vcombine_p16(poly16x4_t a,poly16x4_t b)1556 poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) {
1557 return vcombine_p16(a, b);
1558 }
1559
1560
1561 // CHECK-LABEL: test_vcreate_s8
1562 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1563 // CHECK: vclz.i8 d{{[0-9]+}}, [[REG]]
test_vcreate_s8(uint64_t a)1564 int8x8_t test_vcreate_s8(uint64_t a) {
1565 return vclz_s8(vcreate_s8(a));
1566 }
1567
1568 // CHECK-LABEL: test_vcreate_s16
1569 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1570 // CHECK: vclz.i16 d{{[0-9]+}}, [[REG]]
test_vcreate_s16(uint64_t a)1571 int16x4_t test_vcreate_s16(uint64_t a) {
1572 return vclz_s16(vcreate_s16(a));
1573 }
1574
1575 // CHECK-LABEL: test_vcreate_s32
1576 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1577 // CHECK: vclz.i32 d{{[0-9]+}}, [[REG]]
test_vcreate_s32(uint64_t a)1578 int32x2_t test_vcreate_s32(uint64_t a) {
1579 return vclz_s32(vcreate_s32(a));
1580 }
1581
1582 // CHECK-LABEL: test_vcreate_f16
test_vcreate_f16(uint64_t a)1583 float16x4_t test_vcreate_f16(uint64_t a) {
1584 return vcreate_f16(a);
1585 }
1586
1587 // CHECK-LABEL: test_vcreate_f32
test_vcreate_f32(uint64_t a)1588 float32x2_t test_vcreate_f32(uint64_t a) {
1589 return vcreate_f32(a);
1590 }
1591
1592 // CHECK-LABEL: test_vcreate_u8
1593 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1594 // CHECK: vclz.i8 d{{[0-9]+}}, [[REG]]
test_vcreate_u8(uint64_t a)1595 uint8x8_t test_vcreate_u8(uint64_t a) {
1596 return vclz_s8(vcreate_u8(a));
1597 }
1598
1599 // CHECK-LABEL: test_vcreate_u16
1600 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1601 // CHECK: vclz.i16 d{{[0-9]+}}, [[REG]]
test_vcreate_u16(uint64_t a)1602 uint16x4_t test_vcreate_u16(uint64_t a) {
1603 return vclz_s16(vcreate_u16(a));
1604 }
1605
1606 // CHECK-LABEL: test_vcreate_u32
1607 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1608 // CHECK: vclz.i32 d{{[0-9]+}}, [[REG]]
test_vcreate_u32(uint64_t a)1609 uint32x2_t test_vcreate_u32(uint64_t a) {
1610 return vclz_s32(vcreate_u32(a));
1611 }
1612
1613
1614 // We have two ways of lowering that. Either with one 'vmov d, r, r' or
1615 // with two 'vmov d[],r'. LLVM does the latter. We may want to be less
1616 // strict about the matching pattern if it starts causing problem.
1617 // CHECK-LABEL: test_vcreate_u64
1618 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
1619 // CHECK: vmov.32 [[REG]][1], r1
test_vcreate_u64(uint64_t a)1620 uint64x1_t test_vcreate_u64(uint64_t a) {
1621 uint64x1_t tmp = vcreate_u64(a);
1622 return vadd_u64(tmp, tmp);
1623
1624 }
1625
1626 // CHECK-LABEL: test_vcreate_p8
1627 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
1628 // CHECK: vcnt.8 d{{[0-9]+}}, [[REG]]
test_vcreate_p8(uint64_t a)1629 poly8x8_t test_vcreate_p8(uint64_t a) {
1630 return vcnt_p8(vcreate_p8(a));
1631 }
1632
1633 // CHECK-LABEL: test_vcreate_p16
1634 // CHECK: vmov [[REG:d[0-9]+]], r0, r1
test_vcreate_p16(uint64_t a)1635 poly16x4_t test_vcreate_p16(uint64_t a) {
1636 poly16x4_t tmp = vcreate_p16(a);
1637 return vbsl_p16(tmp, tmp, tmp);
1638 }
1639
1640 // CHECK-LABEL: test_vcreate_s64
1641 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
1642 // CHECK: vmov.32 [[REG]][1], r1
test_vcreate_s64(uint64_t a)1643 int64x1_t test_vcreate_s64(uint64_t a) {
1644 int64x1_t tmp = vcreate_s64(a);
1645 return vadd_s64(tmp, tmp);
1646 }
1647
1648
1649 // CHECK-LABEL: test_vcvt_f16_f32
1650 // CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}}
test_vcvt_f16_f32(float32x4_t a)1651 float16x4_t test_vcvt_f16_f32(float32x4_t a) {
1652 return vcvt_f16_f32(a);
1653 }
1654
1655
1656 // CHECK-LABEL: test_vcvt_f32_s32
1657 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_s32(int32x2_t a)1658 float32x2_t test_vcvt_f32_s32(int32x2_t a) {
1659 return vcvt_f32_s32(a);
1660 }
1661
1662 // CHECK-LABEL: test_vcvt_f32_u32
1663 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_f32_u32(uint32x2_t a)1664 float32x2_t test_vcvt_f32_u32(uint32x2_t a) {
1665 return vcvt_f32_u32(a);
1666 }
1667
1668 // CHECK-LABEL: test_vcvtq_f32_s32
1669 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_s32(int32x4_t a)1670 float32x4_t test_vcvtq_f32_s32(int32x4_t a) {
1671 return vcvtq_f32_s32(a);
1672 }
1673
1674 // CHECK-LABEL: test_vcvtq_f32_u32
1675 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_f32_u32(uint32x4_t a)1676 float32x4_t test_vcvtq_f32_u32(uint32x4_t a) {
1677 return vcvtq_f32_u32(a);
1678 }
1679
1680
1681 // CHECK-LABEL: test_vcvt_f32_f16
1682 // CHECK: vcvt.f32.f16
test_vcvt_f32_f16(float16x4_t a)1683 float32x4_t test_vcvt_f32_f16(float16x4_t a) {
1684 return vcvt_f32_f16(a);
1685 }
1686
1687
1688 // CHECK-LABEL: test_vcvt_n_f32_s32
1689 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_s32(int32x2_t a)1690 float32x2_t test_vcvt_n_f32_s32(int32x2_t a) {
1691 return vcvt_n_f32_s32(a, 1);
1692 }
1693
1694 // CHECK-LABEL: test_vcvt_n_f32_u32
1695 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_f32_u32(uint32x2_t a)1696 float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) {
1697 return vcvt_n_f32_u32(a, 1);
1698 }
1699
1700 // CHECK-LABEL: test_vcvtq_n_f32_s32
1701 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_s32(int32x4_t a)1702 float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) {
1703 return vcvtq_n_f32_s32(a, 3);
1704 }
1705
1706 // CHECK-LABEL: test_vcvtq_n_f32_u32
1707 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_f32_u32(uint32x4_t a)1708 float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) {
1709 return vcvtq_n_f32_u32(a, 3);
1710 }
1711
1712
1713 // CHECK-LABEL: test_vcvt_n_s32_f32
1714 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_s32_f32(float32x2_t a)1715 int32x2_t test_vcvt_n_s32_f32(float32x2_t a) {
1716 return vcvt_n_s32_f32(a, 1);
1717 }
1718
1719 // CHECK-LABEL: test_vcvtq_n_s32_f32
1720 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_s32_f32(float32x4_t a)1721 int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) {
1722 return vcvtq_n_s32_f32(a, 3);
1723 }
1724
1725
1726 // CHECK-LABEL: test_vcvt_n_u32_f32
1727 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vcvt_n_u32_f32(float32x2_t a)1728 uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) {
1729 return vcvt_n_u32_f32(a, 1);
1730 }
1731
1732 // CHECK-LABEL: test_vcvtq_n_u32_f32
1733 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vcvtq_n_u32_f32(float32x4_t a)1734 uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) {
1735 return vcvtq_n_u32_f32(a, 3);
1736 }
1737
1738
1739 // CHECK-LABEL: test_vcvt_s32_f32
1740 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_s32_f32(float32x2_t a)1741 int32x2_t test_vcvt_s32_f32(float32x2_t a) {
1742 return vcvt_s32_f32(a);
1743 }
1744
1745 // CHECK-LABEL: test_vcvtq_s32_f32
1746 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_s32_f32(float32x4_t a)1747 int32x4_t test_vcvtq_s32_f32(float32x4_t a) {
1748 return vcvtq_s32_f32(a);
1749 }
1750
1751
1752 // CHECK-LABEL: test_vcvt_u32_f32
1753 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vcvt_u32_f32(float32x2_t a)1754 uint32x2_t test_vcvt_u32_f32(float32x2_t a) {
1755 return vcvt_u32_f32(a);
1756 }
1757
1758 // CHECK-LABEL: test_vcvtq_u32_f32
1759 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vcvtq_u32_f32(float32x4_t a)1760 uint32x4_t test_vcvtq_u32_f32(float32x4_t a) {
1761 return vcvtq_u32_f32(a);
1762 }
1763
1764
1765 // CHECK-LABEL: test_vdup_lane_u8
1766 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u8(uint8x8_t a)1767 uint8x8_t test_vdup_lane_u8(uint8x8_t a) {
1768 return vdup_lane_u8(a, 7);
1769 }
1770
1771 // CHECK-LABEL: test_vdup_lane_u16
1772 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u16(uint16x4_t a)1773 uint16x4_t test_vdup_lane_u16(uint16x4_t a) {
1774 return vdup_lane_u16(a, 3);
1775 }
1776
1777 // CHECK-LABEL: test_vdup_lane_u32
1778 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_u32(uint32x2_t a)1779 uint32x2_t test_vdup_lane_u32(uint32x2_t a) {
1780 return vdup_lane_u32(a, 1);
1781 }
1782
1783 // CHECK-LABEL: test_vdup_lane_s8
1784 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s8(int8x8_t a)1785 int8x8_t test_vdup_lane_s8(int8x8_t a) {
1786 return vdup_lane_s8(a, 7);
1787 }
1788
1789 // CHECK-LABEL: test_vdup_lane_s16
1790 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s16(int16x4_t a)1791 int16x4_t test_vdup_lane_s16(int16x4_t a) {
1792 return vdup_lane_s16(a, 3);
1793 }
1794
1795 // CHECK-LABEL: test_vdup_lane_s32
1796 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_s32(int32x2_t a)1797 int32x2_t test_vdup_lane_s32(int32x2_t a) {
1798 return vdup_lane_s32(a, 1);
1799 }
1800
1801 // CHECK-LABEL: test_vdup_lane_p8
1802 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p8(poly8x8_t a)1803 poly8x8_t test_vdup_lane_p8(poly8x8_t a) {
1804 return vdup_lane_p8(a, 7);
1805 }
1806
1807 // CHECK-LABEL: test_vdup_lane_p16
1808 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_p16(poly16x4_t a)1809 poly16x4_t test_vdup_lane_p16(poly16x4_t a) {
1810 return vdup_lane_p16(a, 3);
1811 }
1812
1813 // CHECK-LABEL: test_vdup_lane_f32
1814 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdup_lane_f32(float32x2_t a)1815 float32x2_t test_vdup_lane_f32(float32x2_t a) {
1816 return vdup_lane_f32(a, 1);
1817 }
1818
1819 // CHECK-LABEL: test_vdupq_lane_u8
1820 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u8(uint8x8_t a)1821 uint8x16_t test_vdupq_lane_u8(uint8x8_t a) {
1822 return vdupq_lane_u8(a, 7);
1823 }
1824
1825 // CHECK-LABEL: test_vdupq_lane_u16
1826 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u16(uint16x4_t a)1827 uint16x8_t test_vdupq_lane_u16(uint16x4_t a) {
1828 return vdupq_lane_u16(a, 3);
1829 }
1830
1831 // CHECK-LABEL: test_vdupq_lane_u32
1832 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_u32(uint32x2_t a)1833 uint32x4_t test_vdupq_lane_u32(uint32x2_t a) {
1834 return vdupq_lane_u32(a, 1);
1835 }
1836
1837 // CHECK-LABEL: test_vdupq_lane_s8
1838 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s8(int8x8_t a)1839 int8x16_t test_vdupq_lane_s8(int8x8_t a) {
1840 return vdupq_lane_s8(a, 7);
1841 }
1842
1843 // CHECK-LABEL: test_vdupq_lane_s16
1844 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s16(int16x4_t a)1845 int16x8_t test_vdupq_lane_s16(int16x4_t a) {
1846 return vdupq_lane_s16(a, 3);
1847 }
1848
1849 // CHECK-LABEL: test_vdupq_lane_s32
1850 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_s32(int32x2_t a)1851 int32x4_t test_vdupq_lane_s32(int32x2_t a) {
1852 return vdupq_lane_s32(a, 1);
1853 }
1854
1855 // CHECK-LABEL: test_vdupq_lane_p8
1856 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p8(poly8x8_t a)1857 poly8x16_t test_vdupq_lane_p8(poly8x8_t a) {
1858 return vdupq_lane_p8(a, 7);
1859 }
1860
1861 // CHECK-LABEL: test_vdupq_lane_p16
1862 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_p16(poly16x4_t a)1863 poly16x8_t test_vdupq_lane_p16(poly16x4_t a) {
1864 return vdupq_lane_p16(a, 3);
1865 }
1866
1867 // CHECK-LABEL: test_vdupq_lane_f32
1868 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vdupq_lane_f32(float32x2_t a)1869 float32x4_t test_vdupq_lane_f32(float32x2_t a) {
1870 return vdupq_lane_f32(a, 1);
1871 }
1872
1873 // CHECK-LABEL: test_vdup_lane_s64
test_vdup_lane_s64(int64x1_t a)1874 int64x1_t test_vdup_lane_s64(int64x1_t a) {
1875 return vdup_lane_s64(a, 0);
1876 }
1877
1878 // CHECK-LABEL: test_vdup_lane_u64
test_vdup_lane_u64(uint64x1_t a)1879 uint64x1_t test_vdup_lane_u64(uint64x1_t a) {
1880 return vdup_lane_u64(a, 0);
1881 }
1882
1883 // CHECK-LABEL: test_vdupq_lane_s64
1884 // CHECK: {{vmov|vdup}}
test_vdupq_lane_s64(int64x1_t a)1885 int64x2_t test_vdupq_lane_s64(int64x1_t a) {
1886 return vdupq_lane_s64(a, 0);
1887 }
1888
1889 // CHECK-LABEL: test_vdupq_lane_u64
1890 // CHECK: {{vmov|vdup}}
test_vdupq_lane_u64(uint64x1_t a)1891 uint64x2_t test_vdupq_lane_u64(uint64x1_t a) {
1892 return vdupq_lane_u64(a, 0);
1893 }
1894
1895
1896 // CHECK-LABEL: test_vdup_n_u8
1897 // CHECK: vmov
test_vdup_n_u8(uint8_t a)1898 uint8x8_t test_vdup_n_u8(uint8_t a) {
1899 return vdup_n_u8(a);
1900 }
1901
1902 // CHECK-LABEL: test_vdup_n_u16
1903 // CHECK: vmov
test_vdup_n_u16(uint16_t a)1904 uint16x4_t test_vdup_n_u16(uint16_t a) {
1905 return vdup_n_u16(a);
1906 }
1907
1908 // CHECK-LABEL: test_vdup_n_u32
1909 // CHECK: mov
test_vdup_n_u32(uint32_t a)1910 uint32x2_t test_vdup_n_u32(uint32_t a) {
1911 return vdup_n_u32(a);
1912 }
1913
1914 // CHECK-LABEL: test_vdup_n_s8
1915 // CHECK: vmov
test_vdup_n_s8(int8_t a)1916 int8x8_t test_vdup_n_s8(int8_t a) {
1917 return vdup_n_s8(a);
1918 }
1919
1920 // CHECK-LABEL: test_vdup_n_s16
1921 // CHECK: vmov
test_vdup_n_s16(int16_t a)1922 int16x4_t test_vdup_n_s16(int16_t a) {
1923 return vdup_n_s16(a);
1924 }
1925
1926 // CHECK-LABEL: test_vdup_n_s32
1927 // CHECK: mov
test_vdup_n_s32(int32_t a)1928 int32x2_t test_vdup_n_s32(int32_t a) {
1929 return vdup_n_s32(a);
1930 }
1931
1932 // CHECK-LABEL: test_vdup_n_p8
1933 // CHECK: vmov
test_vdup_n_p8(poly8_t a)1934 poly8x8_t test_vdup_n_p8(poly8_t a) {
1935 return vdup_n_p8(a);
1936 }
1937
1938 // CHECK-LABEL: test_vdup_n_p16
1939 // CHECK: vmov
test_vdup_n_p16(poly16_t a)1940 poly16x4_t test_vdup_n_p16(poly16_t a) {
1941 return vdup_n_p16(a);
1942 }
1943
1944 // CHECK-LABEL: test_vdup_n_f16
1945 // CHECK: vld1.16 {{{d[0-9]+\[\]}}}
test_vdup_n_f16(float16_t * a)1946 float16x4_t test_vdup_n_f16(float16_t *a) {
1947 return vdup_n_f16(*a);
1948 }
1949
1950 // CHECK-LABEL: test_vdup_n_f32
1951 // CHECK: mov
test_vdup_n_f32(float32_t a)1952 float32x2_t test_vdup_n_f32(float32_t a) {
1953 return vdup_n_f32(a);
1954 }
1955
1956 // CHECK-LABEL: test_vdupq_n_u8
1957 // CHECK: vmov
test_vdupq_n_u8(uint8_t a)1958 uint8x16_t test_vdupq_n_u8(uint8_t a) {
1959 return vdupq_n_u8(a);
1960 }
1961
1962 // CHECK-LABEL: test_vdupq_n_u16
1963 // CHECK: vmov
test_vdupq_n_u16(uint16_t a)1964 uint16x8_t test_vdupq_n_u16(uint16_t a) {
1965 return vdupq_n_u16(a);
1966 }
1967
1968 // CHECK-LABEL: test_vdupq_n_u32
1969 // CHECK: vmov
test_vdupq_n_u32(uint32_t a)1970 uint32x4_t test_vdupq_n_u32(uint32_t a) {
1971 return vdupq_n_u32(a);
1972 }
1973
1974 // CHECK-LABEL: test_vdupq_n_s8
1975 // CHECK: vmov
test_vdupq_n_s8(int8_t a)1976 int8x16_t test_vdupq_n_s8(int8_t a) {
1977 return vdupq_n_s8(a);
1978 }
1979
1980 // CHECK-LABEL: test_vdupq_n_s16
1981 // CHECK: vmov
test_vdupq_n_s16(int16_t a)1982 int16x8_t test_vdupq_n_s16(int16_t a) {
1983 return vdupq_n_s16(a);
1984 }
1985
1986 // CHECK-LABEL: test_vdupq_n_s32
1987 // CHECK: vmov
test_vdupq_n_s32(int32_t a)1988 int32x4_t test_vdupq_n_s32(int32_t a) {
1989 return vdupq_n_s32(a);
1990 }
1991
1992 // CHECK-LABEL: test_vdupq_n_p8
1993 // CHECK: vmov
test_vdupq_n_p8(poly8_t a)1994 poly8x16_t test_vdupq_n_p8(poly8_t a) {
1995 return vdupq_n_p8(a);
1996 }
1997
1998 // CHECK-LABEL: test_vdupq_n_p16
1999 // CHECK: vmov
test_vdupq_n_p16(poly16_t a)2000 poly16x8_t test_vdupq_n_p16(poly16_t a) {
2001 return vdupq_n_p16(a);
2002 }
2003
2004 // CHECK-LABEL: test_vdupq_n_f16
2005 // CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}}
test_vdupq_n_f16(float16_t * a)2006 float16x8_t test_vdupq_n_f16(float16_t *a) {
2007 return vdupq_n_f16(*a);
2008 }
2009
2010 // CHECK-LABEL: test_vdupq_n_f32
2011 // CHECK: vmov
test_vdupq_n_f32(float32_t a)2012 float32x4_t test_vdupq_n_f32(float32_t a) {
2013 return vdupq_n_f32(a);
2014 }
2015
2016 // CHECK-LABEL: test_vdup_n_s64
2017 // CHECK: vmov
test_vdup_n_s64(int64_t a)2018 int64x1_t test_vdup_n_s64(int64_t a) {
2019 int64x1_t tmp = vdup_n_s64(a);
2020 return vadd_s64(tmp, tmp);
2021 }
2022
2023 // CHECK-LABEL: test_vdup_n_u64
2024 // CHECK: vmov
test_vdup_n_u64(uint64_t a)2025 uint64x1_t test_vdup_n_u64(uint64_t a) {
2026 int64x1_t tmp = vdup_n_u64(a);
2027 return vadd_s64(tmp, tmp);
2028
2029 }
2030
2031 // CHECK-LABEL: test_vdupq_n_s64
2032 // CHECK: vmov
test_vdupq_n_s64(int64_t a)2033 int64x2_t test_vdupq_n_s64(int64_t a) {
2034 int64x2_t tmp = vdupq_n_s64(a);
2035 return vaddq_s64(tmp, tmp);
2036 }
2037
2038 // CHECK-LABEL: test_vdupq_n_u64
2039 // CHECK: vmov
test_vdupq_n_u64(uint64_t a)2040 uint64x2_t test_vdupq_n_u64(uint64_t a) {
2041 int64x2_t tmp = vdupq_n_u64(a);
2042 return vaddq_u64(tmp, tmp);
2043 }
2044
2045
2046 // CHECK-LABEL: test_veor_s8
2047 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s8(int8x8_t a,int8x8_t b)2048 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
2049 return veor_s8(a, b);
2050 }
2051
2052 // CHECK-LABEL: test_veor_s16
2053 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s16(int16x4_t a,int16x4_t b)2054 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
2055 return veor_s16(a, b);
2056 }
2057
2058 // CHECK-LABEL: test_veor_s32
2059 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s32(int32x2_t a,int32x2_t b)2060 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
2061 return veor_s32(a, b);
2062 }
2063
2064 // CHECK-LABEL: test_veor_s64
2065 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_s64(int64x1_t a,int64x1_t b)2066 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
2067 return veor_s64(a, b);
2068 }
2069
2070 // CHECK-LABEL: test_veor_u8
2071 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u8(uint8x8_t a,uint8x8_t b)2072 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
2073 return veor_u8(a, b);
2074 }
2075
2076 // CHECK-LABEL: test_veor_u16
2077 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u16(uint16x4_t a,uint16x4_t b)2078 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
2079 return veor_u16(a, b);
2080 }
2081
2082 // CHECK-LABEL: test_veor_u32
2083 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u32(uint32x2_t a,uint32x2_t b)2084 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
2085 return veor_u32(a, b);
2086 }
2087
2088 // CHECK-LABEL: test_veor_u64
2089 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_veor_u64(uint64x1_t a,uint64x1_t b)2090 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
2091 return veor_u64(a, b);
2092 }
2093
2094 // CHECK-LABEL: test_veorq_s8
2095 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s8(int8x16_t a,int8x16_t b)2096 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
2097 return veorq_s8(a, b);
2098 }
2099
2100 // CHECK-LABEL: test_veorq_s16
2101 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s16(int16x8_t a,int16x8_t b)2102 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
2103 return veorq_s16(a, b);
2104 }
2105
2106 // CHECK-LABEL: test_veorq_s32
2107 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s32(int32x4_t a,int32x4_t b)2108 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
2109 return veorq_s32(a, b);
2110 }
2111
2112 // CHECK-LABEL: test_veorq_s64
2113 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_s64(int64x2_t a,int64x2_t b)2114 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
2115 return veorq_s64(a, b);
2116 }
2117
2118 // CHECK-LABEL: test_veorq_u8
2119 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u8(uint8x16_t a,uint8x16_t b)2120 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
2121 return veorq_u8(a, b);
2122 }
2123
2124 // CHECK-LABEL: test_veorq_u16
2125 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u16(uint16x8_t a,uint16x8_t b)2126 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
2127 return veorq_u16(a, b);
2128 }
2129
2130 // CHECK-LABEL: test_veorq_u32
2131 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u32(uint32x4_t a,uint32x4_t b)2132 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
2133 return veorq_u32(a, b);
2134 }
2135
2136 // CHECK-LABEL: test_veorq_u64
2137 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_veorq_u64(uint64x2_t a,uint64x2_t b)2138 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
2139 return veorq_u64(a, b);
2140 }
2141
2142
2143 // CHECK-LABEL: test_vext_s8
2144 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s8(int8x8_t a,int8x8_t b)2145 int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) {
2146 return vext_s8(a, b, 7);
2147 }
2148
2149 // CHECK-LABEL: test_vext_u8
2150 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u8(uint8x8_t a,uint8x8_t b)2151 uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) {
2152 return vext_u8(a, b, 7);
2153 }
2154
2155 // CHECK-LABEL: test_vext_p8
2156 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p8(poly8x8_t a,poly8x8_t b)2157 poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) {
2158 return vext_p8(a, b, 7);
2159 }
2160
2161 // CHECK-LABEL: test_vext_s16
2162 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s16(int16x4_t a,int16x4_t b)2163 int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) {
2164 return vext_s16(a, b, 3);
2165 }
2166
2167 // CHECK-LABEL: test_vext_u16
2168 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u16(uint16x4_t a,uint16x4_t b)2169 uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) {
2170 return vext_u16(a, b, 3);
2171 }
2172
2173 // CHECK-LABEL: test_vext_p16
2174 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_p16(poly16x4_t a,poly16x4_t b)2175 poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) {
2176 return vext_p16(a, b, 3);
2177 }
2178
2179 // CHECK-LABEL: test_vext_s32
2180 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_s32(int32x2_t a,int32x2_t b)2181 int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) {
2182 return vext_s32(a, b, 1);
2183 }
2184
2185 // CHECK-LABEL: test_vext_u32
2186 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_u32(uint32x2_t a,uint32x2_t b)2187 uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) {
2188 return vext_u32(a, b, 1);
2189 }
2190
2191 // CHECK-LABEL: test_vext_s64
test_vext_s64(int64x1_t a,int64x1_t b)2192 int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) {
2193 return vext_s64(a, b, 0);
2194 }
2195
2196 // CHECK-LABEL: test_vext_u64
test_vext_u64(uint64x1_t a,uint64x1_t b)2197 uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) {
2198 return vext_u64(a, b, 0);
2199 }
2200
2201 // CHECK-LABEL: test_vext_f32
2202 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vext_f32(float32x2_t a,float32x2_t b)2203 float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) {
2204 return vext_f32(a, b, 1);
2205 }
2206
2207 // CHECK-LABEL: test_vextq_s8
2208 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s8(int8x16_t a,int8x16_t b)2209 int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) {
2210 return vextq_s8(a, b, 15);
2211 }
2212
2213 // CHECK-LABEL: test_vextq_u8
2214 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u8(uint8x16_t a,uint8x16_t b)2215 uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) {
2216 return vextq_u8(a, b, 15);
2217 }
2218
2219 // CHECK-LABEL: test_vextq_p8
2220 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p8(poly8x16_t a,poly8x16_t b)2221 poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
2222 return vextq_p8(a, b, 15);
2223 }
2224
2225 // CHECK-LABEL: test_vextq_s16
2226 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s16(int16x8_t a,int16x8_t b)2227 int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) {
2228 return vextq_s16(a, b, 7);
2229 }
2230
2231 // CHECK-LABEL: test_vextq_u16
2232 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u16(uint16x8_t a,uint16x8_t b)2233 uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) {
2234 return vextq_u16(a, b, 7);
2235 }
2236
2237 // CHECK-LABEL: test_vextq_p16
2238 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_p16(poly16x8_t a,poly16x8_t b)2239 poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) {
2240 return vextq_p16(a, b, 7);
2241 }
2242
2243 // CHECK-LABEL: test_vextq_s32
2244 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_s32(int32x4_t a,int32x4_t b)2245 int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) {
2246 return vextq_s32(a, b, 3);
2247 }
2248
2249 // CHECK-LABEL: test_vextq_u32
2250 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_u32(uint32x4_t a,uint32x4_t b)2251 uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) {
2252 return vextq_u32(a, b, 3);
2253 }
2254
2255 // CHECK-LABEL: test_vextq_s64
2256 // CHECK: {{vmov|vdup}}
test_vextq_s64(int64x2_t a,int64x2_t b)2257 int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) {
2258 return vextq_s64(a, b, 1);
2259 }
2260
2261 // CHECK-LABEL: test_vextq_u64
2262 // CHECK: {{vmov|vdup}}
test_vextq_u64(uint64x2_t a,uint64x2_t b)2263 uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) {
2264 return vextq_u64(a, b, 1);
2265 }
2266
2267 // CHECK-LABEL: test_vextq_f32
2268 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vextq_f32(float32x4_t a,float32x4_t b)2269 float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) {
2270 return vextq_f32(a, b, 3);
2271 }
2272
2273
2274 // CHECK-LABEL: test_vfma_f32
2275 // CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vfma_f32(float32x2_t a,float32x2_t b,float32x2_t c)2276 float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
2277 return vfma_f32(a, b, c);
2278 }
2279
2280 // CHECK-LABEL: test_vfmaq_f32
2281 // CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vfmaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)2282 float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
2283 return vfmaq_f32(a, b, c);
2284 }
2285
2286
2287 // CHECK-LABEL: test_vget_high_s8
test_vget_high_s8(int8x16_t a)2288 int8x8_t test_vget_high_s8(int8x16_t a) {
2289 return vget_high_s8(a);
2290 }
2291
2292 // CHECK-LABEL: test_vget_high_s16
test_vget_high_s16(int16x8_t a)2293 int16x4_t test_vget_high_s16(int16x8_t a) {
2294 return vget_high_s16(a);
2295 }
2296
2297 // CHECK-LABEL: test_vget_high_s32
test_vget_high_s32(int32x4_t a)2298 int32x2_t test_vget_high_s32(int32x4_t a) {
2299 return vget_high_s32(a);
2300 }
2301
2302 // CHECK-LABEL: test_vget_high_s64
test_vget_high_s64(int64x2_t a)2303 int64x1_t test_vget_high_s64(int64x2_t a) {
2304 return vget_high_s64(a);
2305 }
2306
2307 // CHECK-LABEL: test_vget_high_f16
test_vget_high_f16(float16x8_t a)2308 float16x4_t test_vget_high_f16(float16x8_t a) {
2309 return vget_high_f16(a);
2310 }
2311
2312 // CHECK-LABEL: test_vget_high_f32
test_vget_high_f32(float32x4_t a)2313 float32x2_t test_vget_high_f32(float32x4_t a) {
2314 return vget_high_f32(a);
2315 }
2316
2317 // CHECK-LABEL: test_vget_high_u8
test_vget_high_u8(uint8x16_t a)2318 uint8x8_t test_vget_high_u8(uint8x16_t a) {
2319 return vget_high_u8(a);
2320 }
2321
2322 // CHECK-LABEL: test_vget_high_u16
test_vget_high_u16(uint16x8_t a)2323 uint16x4_t test_vget_high_u16(uint16x8_t a) {
2324 return vget_high_u16(a);
2325 }
2326
2327 // CHECK-LABEL: test_vget_high_u32
test_vget_high_u32(uint32x4_t a)2328 uint32x2_t test_vget_high_u32(uint32x4_t a) {
2329 return vget_high_u32(a);
2330 }
2331
2332 // CHECK-LABEL: test_vget_high_u64
test_vget_high_u64(uint64x2_t a)2333 uint64x1_t test_vget_high_u64(uint64x2_t a) {
2334 return vget_high_u64(a);
2335 }
2336
2337 // CHECK-LABEL: test_vget_high_p8
test_vget_high_p8(poly8x16_t a)2338 poly8x8_t test_vget_high_p8(poly8x16_t a) {
2339 return vget_high_p8(a);
2340 }
2341
2342 // CHECK-LABEL: test_vget_high_p16
test_vget_high_p16(poly16x8_t a)2343 poly16x4_t test_vget_high_p16(poly16x8_t a) {
2344 return vget_high_p16(a);
2345 }
2346
2347
2348 // CHECK-LABEL: test_vget_lane_u8
2349 // CHECK: vmov
test_vget_lane_u8(uint8x8_t a)2350 uint8_t test_vget_lane_u8(uint8x8_t a) {
2351 return vget_lane_u8(a, 7);
2352 }
2353
2354 // CHECK-LABEL: test_vget_lane_u16
2355 // CHECK: vmov
test_vget_lane_u16(uint16x4_t a)2356 uint16_t test_vget_lane_u16(uint16x4_t a) {
2357 return vget_lane_u16(a, 3);
2358 }
2359
2360 // CHECK-LABEL: test_vget_lane_u32
2361 // CHECK: mov
test_vget_lane_u32(uint32x2_t a)2362 uint32_t test_vget_lane_u32(uint32x2_t a) {
2363 return vget_lane_u32(a, 1);
2364 }
2365
2366 // CHECK-LABEL: test_vget_lane_s8
2367 // CHECK: vmov
test_vget_lane_s8(int8x8_t a)2368 int8_t test_vget_lane_s8(int8x8_t a) {
2369 return vget_lane_s8(a, 7);
2370 }
2371
2372 // CHECK-LABEL: test_vget_lane_s16
2373 // CHECK: vmov
test_vget_lane_s16(int16x4_t a)2374 int16_t test_vget_lane_s16(int16x4_t a) {
2375 return vget_lane_s16(a, 3);
2376 }
2377
2378 // CHECK-LABEL: test_vget_lane_s32
2379 // CHECK: mov
test_vget_lane_s32(int32x2_t a)2380 int32_t test_vget_lane_s32(int32x2_t a) {
2381 return vget_lane_s32(a, 1);
2382 }
2383
2384 // CHECK-LABEL: test_vget_lane_p8
2385 // CHECK: vmov
test_vget_lane_p8(poly8x8_t a)2386 poly8_t test_vget_lane_p8(poly8x8_t a) {
2387 return vget_lane_p8(a, 7);
2388 }
2389
2390 // CHECK-LABEL: test_vget_lane_p16
2391 // CHECK: vmov
test_vget_lane_p16(poly16x4_t a)2392 poly16_t test_vget_lane_p16(poly16x4_t a) {
2393 return vget_lane_p16(a, 3);
2394 }
2395
2396 // CHECK-LABEL: test_vget_lane_f32
2397 // CHECK: vmov
test_vget_lane_f32(float32x2_t a)2398 float32_t test_vget_lane_f32(float32x2_t a) {
2399 return vget_lane_f32(a, 1);
2400 }
2401
2402 // CHECK-LABEL: test_vget_lane_f16
2403 // CHECK: vmov
test_vget_lane_f16(float16x4_t a)2404 float32_t test_vget_lane_f16(float16x4_t a) {
2405 return vget_lane_f16(a, 1);
2406 }
2407
2408 // CHECK-LABEL: test_vgetq_lane_u8
2409 // CHECK: vmov
test_vgetq_lane_u8(uint8x16_t a)2410 uint8_t test_vgetq_lane_u8(uint8x16_t a) {
2411 return vgetq_lane_u8(a, 15);
2412 }
2413
2414 // CHECK-LABEL: test_vgetq_lane_u16
2415 // CHECK: vmov
test_vgetq_lane_u16(uint16x8_t a)2416 uint16_t test_vgetq_lane_u16(uint16x8_t a) {
2417 return vgetq_lane_u16(a, 7);
2418 }
2419
2420 // CHECK-LABEL: test_vgetq_lane_u32
2421 // CHECK: vmov
test_vgetq_lane_u32(uint32x4_t a)2422 uint32_t test_vgetq_lane_u32(uint32x4_t a) {
2423 return vgetq_lane_u32(a, 3);
2424 }
2425
2426 // CHECK-LABEL: test_vgetq_lane_s8
2427 // CHECK: vmov
test_vgetq_lane_s8(int8x16_t a)2428 int8_t test_vgetq_lane_s8(int8x16_t a) {
2429 return vgetq_lane_s8(a, 15);
2430 }
2431
2432 // CHECK-LABEL: test_vgetq_lane_s16
2433 // CHECK: vmov
test_vgetq_lane_s16(int16x8_t a)2434 int16_t test_vgetq_lane_s16(int16x8_t a) {
2435 return vgetq_lane_s16(a, 7);
2436 }
2437
2438 // CHECK-LABEL: test_vgetq_lane_s32
2439 // CHECK: vmov
test_vgetq_lane_s32(int32x4_t a)2440 int32_t test_vgetq_lane_s32(int32x4_t a) {
2441 return vgetq_lane_s32(a, 3);
2442 }
2443
2444 // CHECK-LABEL: test_vgetq_lane_p8
2445 // CHECK: vmov
test_vgetq_lane_p8(poly8x16_t a)2446 poly8_t test_vgetq_lane_p8(poly8x16_t a) {
2447 return vgetq_lane_p8(a, 15);
2448 }
2449
2450 // CHECK-LABEL: test_vgetq_lane_p16
2451 // CHECK: vmov
test_vgetq_lane_p16(poly16x8_t a)2452 poly16_t test_vgetq_lane_p16(poly16x8_t a) {
2453 return vgetq_lane_p16(a, 7);
2454 }
2455
2456 // CHECK-LABEL: test_vgetq_lane_f32
2457 // CHECK: vmov
test_vgetq_lane_f32(float32x4_t a)2458 float32_t test_vgetq_lane_f32(float32x4_t a) {
2459 return vgetq_lane_f32(a, 3);
2460 }
2461
2462 // CHECK-LABEL: test_vgetq_lane_f16
2463 // CHECK: vmov
test_vgetq_lane_f16(float16x8_t a)2464 float32_t test_vgetq_lane_f16(float16x8_t a) {
2465 return vgetq_lane_f16(a, 3);
2466 }
2467
2468 // CHECK-LABEL: test_vget_lane_s64
2469 // The optimizer is able to remove all moves now.
test_vget_lane_s64(int64x1_t a)2470 int64_t test_vget_lane_s64(int64x1_t a) {
2471 return vget_lane_s64(a, 0);
2472 }
2473
2474 // CHECK-LABEL: test_vget_lane_u64
2475 // The optimizer is able to remove all moves now.
test_vget_lane_u64(uint64x1_t a)2476 uint64_t test_vget_lane_u64(uint64x1_t a) {
2477 return vget_lane_u64(a, 0);
2478 }
2479
2480 // CHECK-LABEL: test_vgetq_lane_s64
2481 // CHECK: vmov
test_vgetq_lane_s64(int64x2_t a)2482 int64_t test_vgetq_lane_s64(int64x2_t a) {
2483 return vgetq_lane_s64(a, 1);
2484 }
2485
2486 // CHECK-LABEL: test_vgetq_lane_u64
2487 // CHECK: vmov
test_vgetq_lane_u64(uint64x2_t a)2488 uint64_t test_vgetq_lane_u64(uint64x2_t a) {
2489 return vgetq_lane_u64(a, 1);
2490 }
2491
2492
2493 // CHECK-LABEL: test_vget_low_s8
test_vget_low_s8(int8x16_t a)2494 int8x8_t test_vget_low_s8(int8x16_t a) {
2495 return vget_low_s8(a);
2496 }
2497
2498 // CHECK-LABEL: test_vget_low_s16
test_vget_low_s16(int16x8_t a)2499 int16x4_t test_vget_low_s16(int16x8_t a) {
2500 return vget_low_s16(a);
2501 }
2502
2503 // CHECK-LABEL: test_vget_low_s32
test_vget_low_s32(int32x4_t a)2504 int32x2_t test_vget_low_s32(int32x4_t a) {
2505 return vget_low_s32(a);
2506 }
2507
2508 // CHECK-LABEL: test_vget_low_s64
test_vget_low_s64(int64x2_t a)2509 int64x1_t test_vget_low_s64(int64x2_t a) {
2510 return vget_low_s64(a);
2511 }
2512
2513 // CHECK-LABEL: test_vget_low_f16
test_vget_low_f16(float16x8_t a)2514 float16x4_t test_vget_low_f16(float16x8_t a) {
2515 return vget_low_f16(a);
2516 }
2517
2518 // CHECK-LABEL: test_vget_low_f32
test_vget_low_f32(float32x4_t a)2519 float32x2_t test_vget_low_f32(float32x4_t a) {
2520 return vget_low_f32(a);
2521 }
2522
2523 // CHECK-LABEL: test_vget_low_u8
test_vget_low_u8(uint8x16_t a)2524 uint8x8_t test_vget_low_u8(uint8x16_t a) {
2525 return vget_low_u8(a);
2526 }
2527
2528 // CHECK-LABEL: test_vget_low_u16
test_vget_low_u16(uint16x8_t a)2529 uint16x4_t test_vget_low_u16(uint16x8_t a) {
2530 return vget_low_u16(a);
2531 }
2532
2533 // CHECK-LABEL: test_vget_low_u32
test_vget_low_u32(uint32x4_t a)2534 uint32x2_t test_vget_low_u32(uint32x4_t a) {
2535 return vget_low_u32(a);
2536 }
2537
2538 // CHECK-LABEL: test_vget_low_u64
test_vget_low_u64(uint64x2_t a)2539 uint64x1_t test_vget_low_u64(uint64x2_t a) {
2540 return vget_low_u64(a);
2541 }
2542
2543 // CHECK-LABEL: test_vget_low_p8
test_vget_low_p8(poly8x16_t a)2544 poly8x8_t test_vget_low_p8(poly8x16_t a) {
2545 return vget_low_p8(a);
2546 }
2547
2548 // CHECK-LABEL: test_vget_low_p16
test_vget_low_p16(poly16x8_t a)2549 poly16x4_t test_vget_low_p16(poly16x8_t a) {
2550 return vget_low_p16(a);
2551 }
2552
2553
2554 // CHECK-LABEL: test_vhadd_s8
2555 // CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s8(int8x8_t a,int8x8_t b)2556 int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) {
2557 return vhadd_s8(a, b);
2558 }
2559
2560 // CHECK-LABEL: test_vhadd_s16
2561 // CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s16(int16x4_t a,int16x4_t b)2562 int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) {
2563 return vhadd_s16(a, b);
2564 }
2565
2566 // CHECK-LABEL: test_vhadd_s32
2567 // CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_s32(int32x2_t a,int32x2_t b)2568 int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) {
2569 return vhadd_s32(a, b);
2570 }
2571
2572 // CHECK-LABEL: test_vhadd_u8
2573 // CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u8(uint8x8_t a,uint8x8_t b)2574 uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) {
2575 return vhadd_u8(a, b);
2576 }
2577
2578 // CHECK-LABEL: test_vhadd_u16
2579 // CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u16(uint16x4_t a,uint16x4_t b)2580 uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) {
2581 return vhadd_u16(a, b);
2582 }
2583
2584 // CHECK-LABEL: test_vhadd_u32
2585 // CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhadd_u32(uint32x2_t a,uint32x2_t b)2586 uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) {
2587 return vhadd_u32(a, b);
2588 }
2589
2590 // CHECK-LABEL: test_vhaddq_s8
2591 // CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s8(int8x16_t a,int8x16_t b)2592 int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) {
2593 return vhaddq_s8(a, b);
2594 }
2595
2596 // CHECK-LABEL: test_vhaddq_s16
2597 // CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s16(int16x8_t a,int16x8_t b)2598 int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) {
2599 return vhaddq_s16(a, b);
2600 }
2601
2602 // CHECK-LABEL: test_vhaddq_s32
2603 // CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_s32(int32x4_t a,int32x4_t b)2604 int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) {
2605 return vhaddq_s32(a, b);
2606 }
2607
2608 // CHECK-LABEL: test_vhaddq_u8
2609 // CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u8(uint8x16_t a,uint8x16_t b)2610 uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) {
2611 return vhaddq_u8(a, b);
2612 }
2613
2614 // CHECK-LABEL: test_vhaddq_u16
2615 // CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u16(uint16x8_t a,uint16x8_t b)2616 uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) {
2617 return vhaddq_u16(a, b);
2618 }
2619
2620 // CHECK-LABEL: test_vhaddq_u32
2621 // CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhaddq_u32(uint32x4_t a,uint32x4_t b)2622 uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) {
2623 return vhaddq_u32(a, b);
2624 }
2625
2626
2627 // CHECK-LABEL: test_vhsub_s8
2628 // CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s8(int8x8_t a,int8x8_t b)2629 int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) {
2630 return vhsub_s8(a, b);
2631 }
2632
2633 // CHECK-LABEL: test_vhsub_s16
2634 // CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s16(int16x4_t a,int16x4_t b)2635 int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) {
2636 return vhsub_s16(a, b);
2637 }
2638
2639 // CHECK-LABEL: test_vhsub_s32
2640 // CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_s32(int32x2_t a,int32x2_t b)2641 int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) {
2642 return vhsub_s32(a, b);
2643 }
2644
2645 // CHECK-LABEL: test_vhsub_u8
2646 // CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u8(uint8x8_t a,uint8x8_t b)2647 uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) {
2648 return vhsub_u8(a, b);
2649 }
2650
2651 // CHECK-LABEL: test_vhsub_u16
2652 // CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u16(uint16x4_t a,uint16x4_t b)2653 uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) {
2654 return vhsub_u16(a, b);
2655 }
2656
2657 // CHECK-LABEL: test_vhsub_u32
2658 // CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vhsub_u32(uint32x2_t a,uint32x2_t b)2659 uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) {
2660 return vhsub_u32(a, b);
2661 }
2662
2663 // CHECK-LABEL: test_vhsubq_s8
2664 // CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s8(int8x16_t a,int8x16_t b)2665 int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) {
2666 return vhsubq_s8(a, b);
2667 }
2668
2669 // CHECK-LABEL: test_vhsubq_s16
2670 // CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s16(int16x8_t a,int16x8_t b)2671 int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) {
2672 return vhsubq_s16(a, b);
2673 }
2674
2675 // CHECK-LABEL: test_vhsubq_s32
2676 // CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_s32(int32x4_t a,int32x4_t b)2677 int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) {
2678 return vhsubq_s32(a, b);
2679 }
2680
2681 // CHECK-LABEL: test_vhsubq_u8
2682 // CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u8(uint8x16_t a,uint8x16_t b)2683 uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) {
2684 return vhsubq_u8(a, b);
2685 }
2686
2687 // CHECK-LABEL: test_vhsubq_u16
2688 // CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u16(uint16x8_t a,uint16x8_t b)2689 uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) {
2690 return vhsubq_u16(a, b);
2691 }
2692
2693 // CHECK-LABEL: test_vhsubq_u32
2694 // CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vhsubq_u32(uint32x4_t a,uint32x4_t b)2695 uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) {
2696 return vhsubq_u32(a, b);
2697 }
2698
2699
2700 // CHECK-LABEL: test_vld1q_u8
2701 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u8(uint8_t const * a)2702 uint8x16_t test_vld1q_u8(uint8_t const * a) {
2703 return vld1q_u8(a);
2704 }
2705
2706 // CHECK-LABEL: test_vld1q_u16
2707 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u16(uint16_t const * a)2708 uint16x8_t test_vld1q_u16(uint16_t const * a) {
2709 return vld1q_u16(a);
2710 }
2711
2712 // CHECK-LABEL: test_vld1q_u32
2713 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_u32(uint32_t const * a)2714 uint32x4_t test_vld1q_u32(uint32_t const * a) {
2715 return vld1q_u32(a);
2716 }
2717
2718 // CHECK-LABEL: test_vld1q_u64
2719 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_u64(uint64_t const * a)2720 uint64x2_t test_vld1q_u64(uint64_t const * a) {
2721 return vld1q_u64(a);
2722 }
2723
2724 // CHECK-LABEL: test_vld1q_s8
2725 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s8(int8_t const * a)2726 int8x16_t test_vld1q_s8(int8_t const * a) {
2727 return vld1q_s8(a);
2728 }
2729
2730 // CHECK-LABEL: test_vld1q_s16
2731 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s16(int16_t const * a)2732 int16x8_t test_vld1q_s16(int16_t const * a) {
2733 return vld1q_s16(a);
2734 }
2735
2736 // CHECK-LABEL: test_vld1q_s32
2737 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_s32(int32_t const * a)2738 int32x4_t test_vld1q_s32(int32_t const * a) {
2739 return vld1q_s32(a);
2740 }
2741
2742 // CHECK-LABEL: test_vld1q_s64
2743 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1q_s64(int64_t const * a)2744 int64x2_t test_vld1q_s64(int64_t const * a) {
2745 return vld1q_s64(a);
2746 }
2747
2748 // CHECK-LABEL: test_vld1q_f16
2749 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f16(float16_t const * a)2750 float16x8_t test_vld1q_f16(float16_t const * a) {
2751 return vld1q_f16(a);
2752 }
2753
2754 // CHECK-LABEL: test_vld1q_f32
2755 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_f32(float32_t const * a)2756 float32x4_t test_vld1q_f32(float32_t const * a) {
2757 return vld1q_f32(a);
2758 }
2759
2760 // CHECK-LABEL: test_vld1q_p8
2761 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p8(poly8_t const * a)2762 poly8x16_t test_vld1q_p8(poly8_t const * a) {
2763 return vld1q_p8(a);
2764 }
2765
2766 // CHECK-LABEL: test_vld1q_p16
2767 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1q_p16(poly16_t const * a)2768 poly16x8_t test_vld1q_p16(poly16_t const * a) {
2769 return vld1q_p16(a);
2770 }
2771
2772 // CHECK-LABEL: test_vld1_u8
2773 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u8(uint8_t const * a)2774 uint8x8_t test_vld1_u8(uint8_t const * a) {
2775 return vld1_u8(a);
2776 }
2777
2778 // CHECK-LABEL: test_vld1_u16
2779 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u16(uint16_t const * a)2780 uint16x4_t test_vld1_u16(uint16_t const * a) {
2781 return vld1_u16(a);
2782 }
2783
2784 // CHECK-LABEL: test_vld1_u32
2785 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_u32(uint32_t const * a)2786 uint32x2_t test_vld1_u32(uint32_t const * a) {
2787 return vld1_u32(a);
2788 }
2789
2790 // CHECK-LABEL: test_vld1_u64
2791 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_u64(uint64_t const * a)2792 uint64x1_t test_vld1_u64(uint64_t const * a) {
2793 return vld1_u64(a);
2794 }
2795
2796 // CHECK-LABEL: test_vld1_s8
2797 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s8(int8_t const * a)2798 int8x8_t test_vld1_s8(int8_t const * a) {
2799 return vld1_s8(a);
2800 }
2801
2802 // CHECK-LABEL: test_vld1_s16
2803 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s16(int16_t const * a)2804 int16x4_t test_vld1_s16(int16_t const * a) {
2805 return vld1_s16(a);
2806 }
2807
2808 // CHECK-LABEL: test_vld1_s32
2809 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_s32(int32_t const * a)2810 int32x2_t test_vld1_s32(int32_t const * a) {
2811 return vld1_s32(a);
2812 }
2813
2814 // CHECK-LABEL: test_vld1_s64
2815 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vld1_s64(int64_t const * a)2816 int64x1_t test_vld1_s64(int64_t const * a) {
2817 return vld1_s64(a);
2818 }
2819
2820 // CHECK-LABEL: test_vld1_f16
2821 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f16(float16_t const * a)2822 float16x4_t test_vld1_f16(float16_t const * a) {
2823 return vld1_f16(a);
2824 }
2825
2826 // CHECK-LABEL: test_vld1_f32
2827 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_f32(float32_t const * a)2828 float32x2_t test_vld1_f32(float32_t const * a) {
2829 return vld1_f32(a);
2830 }
2831
2832 // CHECK-LABEL: test_vld1_p8
2833 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p8(poly8_t const * a)2834 poly8x8_t test_vld1_p8(poly8_t const * a) {
2835 return vld1_p8(a);
2836 }
2837
2838 // CHECK-LABEL: test_vld1_p16
2839 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld1_p16(poly16_t const * a)2840 poly16x4_t test_vld1_p16(poly16_t const * a) {
2841 return vld1_p16(a);
2842 }
2843
2844
2845 // CHECK-LABEL: test_vld1q_dup_u8
2846 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_u8(uint8_t const * a)2847 uint8x16_t test_vld1q_dup_u8(uint8_t const * a) {
2848 return vld1q_dup_u8(a);
2849 }
2850
2851 // CHECK-LABEL: test_vld1q_dup_u16
2852 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_u16(uint16_t const * a)2853 uint16x8_t test_vld1q_dup_u16(uint16_t const * a) {
2854 return vld1q_dup_u16(a);
2855 }
2856
2857 // CHECK-LABEL: test_vld1q_dup_u32
2858 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_u32(uint32_t const * a)2859 uint32x4_t test_vld1q_dup_u32(uint32_t const * a) {
2860 return vld1q_dup_u32(a);
2861 }
2862
2863 // CHECK-LABEL: test_vld1q_dup_u64
2864 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_u64(uint64_t const * a)2865 uint64x2_t test_vld1q_dup_u64(uint64_t const * a) {
2866 return vld1q_dup_u64(a);
2867 }
2868
2869 // CHECK-LABEL: test_vld1q_dup_s8
2870 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_s8(int8_t const * a)2871 int8x16_t test_vld1q_dup_s8(int8_t const * a) {
2872 return vld1q_dup_s8(a);
2873 }
2874
2875 // CHECK-LABEL: test_vld1q_dup_s16
2876 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_s16(int16_t const * a)2877 int16x8_t test_vld1q_dup_s16(int16_t const * a) {
2878 return vld1q_dup_s16(a);
2879 }
2880
2881 // CHECK-LABEL: test_vld1q_dup_s32
2882 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_s32(int32_t const * a)2883 int32x4_t test_vld1q_dup_s32(int32_t const * a) {
2884 return vld1q_dup_s32(a);
2885 }
2886
2887 // CHECK-LABEL: test_vld1q_dup_s64
2888 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_dup_s64(int64_t const * a)2889 int64x2_t test_vld1q_dup_s64(int64_t const * a) {
2890 return vld1q_dup_s64(a);
2891 }
2892
2893 // CHECK-LABEL: test_vld1q_dup_f16
2894 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_f16(float16_t const * a)2895 float16x8_t test_vld1q_dup_f16(float16_t const * a) {
2896 return vld1q_dup_f16(a);
2897 }
2898
2899 // CHECK-LABEL: test_vld1q_dup_f32
2900 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1q_dup_f32(float32_t const * a)2901 float32x4_t test_vld1q_dup_f32(float32_t const * a) {
2902 return vld1q_dup_f32(a);
2903 }
2904
2905 // CHECK-LABEL: test_vld1q_dup_p8
2906 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1q_dup_p8(poly8_t const * a)2907 poly8x16_t test_vld1q_dup_p8(poly8_t const * a) {
2908 return vld1q_dup_p8(a);
2909 }
2910
2911 // CHECK-LABEL: test_vld1q_dup_p16
2912 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1q_dup_p16(poly16_t const * a)2913 poly16x8_t test_vld1q_dup_p16(poly16_t const * a) {
2914 return vld1q_dup_p16(a);
2915 }
2916
2917 // CHECK-LABEL: test_vld1_dup_u8
2918 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_u8(uint8_t const * a)2919 uint8x8_t test_vld1_dup_u8(uint8_t const * a) {
2920 return vld1_dup_u8(a);
2921 }
2922
2923 // CHECK-LABEL: test_vld1_dup_u16
2924 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_u16(uint16_t const * a)2925 uint16x4_t test_vld1_dup_u16(uint16_t const * a) {
2926 return vld1_dup_u16(a);
2927 }
2928
2929 // CHECK-LABEL: test_vld1_dup_u32
2930 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_u32(uint32_t const * a)2931 uint32x2_t test_vld1_dup_u32(uint32_t const * a) {
2932 return vld1_dup_u32(a);
2933 }
2934
2935 // CHECK-LABEL: test_vld1_dup_u64
2936 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_u64(uint64_t const * a)2937 uint64x1_t test_vld1_dup_u64(uint64_t const * a) {
2938 return vld1_dup_u64(a);
2939 }
2940
2941 // CHECK-LABEL: test_vld1_dup_s8
2942 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_s8(int8_t const * a)2943 int8x8_t test_vld1_dup_s8(int8_t const * a) {
2944 return vld1_dup_s8(a);
2945 }
2946
2947 // CHECK-LABEL: test_vld1_dup_s16
2948 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_s16(int16_t const * a)2949 int16x4_t test_vld1_dup_s16(int16_t const * a) {
2950 return vld1_dup_s16(a);
2951 }
2952
2953 // CHECK-LABEL: test_vld1_dup_s32
2954 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_s32(int32_t const * a)2955 int32x2_t test_vld1_dup_s32(int32_t const * a) {
2956 return vld1_dup_s32(a);
2957 }
2958
2959 // CHECK-LABEL: test_vld1_dup_s64
2960 // CHECK: {{ldr|vldr|vmov}}
test_vld1_dup_s64(int64_t const * a)2961 int64x1_t test_vld1_dup_s64(int64_t const * a) {
2962 return vld1_dup_s64(a);
2963 }
2964
2965 // CHECK-LABEL: test_vld1_dup_f16
2966 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_f16(float16_t const * a)2967 float16x4_t test_vld1_dup_f16(float16_t const * a) {
2968 return vld1_dup_f16(a);
2969 }
2970
2971 // CHECK-LABEL: test_vld1_dup_f32
2972 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
test_vld1_dup_f32(float32_t const * a)2973 float32x2_t test_vld1_dup_f32(float32_t const * a) {
2974 return vld1_dup_f32(a);
2975 }
2976
2977 // CHECK-LABEL: test_vld1_dup_p8
2978 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld1_dup_p8(poly8_t const * a)2979 poly8x8_t test_vld1_dup_p8(poly8_t const * a) {
2980 return vld1_dup_p8(a);
2981 }
2982
2983 // CHECK-LABEL: test_vld1_dup_p16
2984 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
test_vld1_dup_p16(poly16_t const * a)2985 poly16x4_t test_vld1_dup_p16(poly16_t const * a) {
2986 return vld1_dup_p16(a);
2987 }
2988
2989
2990 // CHECK-LABEL: test_vld1q_lane_u8
2991 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_u8(uint8_t const * a,uint8x16_t b)2992 uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) {
2993 return vld1q_lane_u8(a, b, 15);
2994 }
2995
2996 // CHECK-LABEL: test_vld1q_lane_u16
2997 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_u16(uint16_t const * a,uint16x8_t b)2998 uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) {
2999 return vld1q_lane_u16(a, b, 7);
3000 }
3001
3002 // CHECK-LABEL: test_vld1q_lane_u32
3003 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_u32(uint32_t const * a,uint32x4_t b)3004 uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) {
3005 return vld1q_lane_u32(a, b, 3);
3006 }
3007
3008 // CHECK-LABEL: test_vld1q_lane_u64
3009 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_u64(uint64_t const * a,uint64x2_t b)3010 uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) {
3011 return vld1q_lane_u64(a, b, 1);
3012 }
3013
3014 // CHECK-LABEL: test_vld1q_lane_s8
3015 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_s8(int8_t const * a,int8x16_t b)3016 int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) {
3017 return vld1q_lane_s8(a, b, 15);
3018 }
3019
3020 // CHECK-LABEL: test_vld1q_lane_s16
3021 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_s16(int16_t const * a,int16x8_t b)3022 int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) {
3023 return vld1q_lane_s16(a, b, 7);
3024 }
3025
3026 // CHECK-LABEL: test_vld1q_lane_s32
3027 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_s32(int32_t const * a,int32x4_t b)3028 int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) {
3029 return vld1q_lane_s32(a, b, 3);
3030 }
3031
3032 // CHECK-LABEL: test_vld1q_lane_s64
3033 // CHECK: {{ldr|vldr|vmov}}
test_vld1q_lane_s64(int64_t const * a,int64x2_t b)3034 int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) {
3035 return vld1q_lane_s64(a, b, 1);
3036 }
3037
3038 // CHECK-LABEL: test_vld1q_lane_f16
3039 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_f16(float16_t const * a,float16x8_t b)3040 float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) {
3041 return vld1q_lane_f16(a, b, 7);
3042 }
3043
3044 // CHECK-LABEL: test_vld1q_lane_f32
3045 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1q_lane_f32(float32_t const * a,float32x4_t b)3046 float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) {
3047 return vld1q_lane_f32(a, b, 3);
3048 }
3049
3050 // CHECK-LABEL: test_vld1q_lane_p8
3051 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1q_lane_p8(poly8_t const * a,poly8x16_t b)3052 poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) {
3053 return vld1q_lane_p8(a, b, 15);
3054 }
3055
3056 // CHECK-LABEL: test_vld1q_lane_p16
3057 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1q_lane_p16(poly16_t const * a,poly16x8_t b)3058 poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) {
3059 return vld1q_lane_p16(a, b, 7);
3060 }
3061
3062 // CHECK-LABEL: test_vld1_lane_u8
3063 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_u8(uint8_t const * a,uint8x8_t b)3064 uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) {
3065 return vld1_lane_u8(a, b, 7);
3066 }
3067
3068 // CHECK-LABEL: test_vld1_lane_u16
3069 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_u16(uint16_t const * a,uint16x4_t b)3070 uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) {
3071 return vld1_lane_u16(a, b, 3);
3072 }
3073
3074 // CHECK-LABEL: test_vld1_lane_u32
3075 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_u32(uint32_t const * a,uint32x2_t b)3076 uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) {
3077 return vld1_lane_u32(a, b, 1);
3078 }
3079
3080 // CHECK-LABEL: test_vld1_lane_u64
3081 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_u64(uint64_t const * a,uint64x1_t b)3082 uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) {
3083 return vld1_lane_u64(a, b, 0);
3084 }
3085
3086 // CHECK-LABEL: test_vld1_lane_s8
3087 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_s8(int8_t const * a,int8x8_t b)3088 int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) {
3089 return vld1_lane_s8(a, b, 7);
3090 }
3091
3092 // CHECK-LABEL: test_vld1_lane_s16
3093 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_s16(int16_t const * a,int16x4_t b)3094 int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) {
3095 return vld1_lane_s16(a, b, 3);
3096 }
3097
3098 // CHECK-LABEL: test_vld1_lane_s32
3099 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_s32(int32_t const * a,int32x2_t b)3100 int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) {
3101 return vld1_lane_s32(a, b, 1);
3102 }
3103
3104 // CHECK-LABEL: test_vld1_lane_s64
3105 // CHECK: {{ldr|vldr|vmov}}
test_vld1_lane_s64(int64_t const * a,int64x1_t b)3106 int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) {
3107 return vld1_lane_s64(a, b, 0);
3108 }
3109
3110 // CHECK-LABEL: test_vld1_lane_f16
3111 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_f16(float16_t const * a,float16x4_t b)3112 float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) {
3113 return vld1_lane_f16(a, b, 3);
3114 }
3115
3116 // CHECK-LABEL: test_vld1_lane_f32
3117 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vld1_lane_f32(float32_t const * a,float32x2_t b)3118 float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) {
3119 return vld1_lane_f32(a, b, 1);
3120 }
3121
3122 // CHECK-LABEL: test_vld1_lane_p8
3123 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld1_lane_p8(poly8_t const * a,poly8x8_t b)3124 poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) {
3125 return vld1_lane_p8(a, b, 7);
3126 }
3127
3128 // CHECK-LABEL: test_vld1_lane_p16
3129 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vld1_lane_p16(poly16_t const * a,poly16x4_t b)3130 poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) {
3131 return vld1_lane_p16(a, b, 3);
3132 }
3133
3134
3135 // CHECK-LABEL: test_vld2q_u8
3136 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u8(uint8_t const * a)3137 uint8x16x2_t test_vld2q_u8(uint8_t const * a) {
3138 return vld2q_u8(a);
3139 }
3140
3141 // CHECK-LABEL: test_vld2q_u16
3142 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u16(uint16_t const * a)3143 uint16x8x2_t test_vld2q_u16(uint16_t const * a) {
3144 return vld2q_u16(a);
3145 }
3146
3147 // CHECK-LABEL: test_vld2q_u32
3148 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_u32(uint32_t const * a)3149 uint32x4x2_t test_vld2q_u32(uint32_t const * a) {
3150 return vld2q_u32(a);
3151 }
3152
3153 // CHECK-LABEL: test_vld2q_s8
3154 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s8(int8_t const * a)3155 int8x16x2_t test_vld2q_s8(int8_t const * a) {
3156 return vld2q_s8(a);
3157 }
3158
3159 // CHECK-LABEL: test_vld2q_s16
3160 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s16(int16_t const * a)3161 int16x8x2_t test_vld2q_s16(int16_t const * a) {
3162 return vld2q_s16(a);
3163 }
3164
3165 // CHECK-LABEL: test_vld2q_s32
3166 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_s32(int32_t const * a)3167 int32x4x2_t test_vld2q_s32(int32_t const * a) {
3168 return vld2q_s32(a);
3169 }
3170
3171 // CHECK-LABEL: test_vld2q_f16
3172 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_f16(float16_t const * a)3173 float16x8x2_t test_vld2q_f16(float16_t const * a) {
3174 return vld2q_f16(a);
3175 }
3176
3177 // CHECK-LABEL: test_vld2q_f32
3178 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_f32(float32_t const * a)3179 float32x4x2_t test_vld2q_f32(float32_t const * a) {
3180 return vld2q_f32(a);
3181 }
3182
3183 // CHECK-LABEL: test_vld2q_p8
3184 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_p8(poly8_t const * a)3185 poly8x16x2_t test_vld2q_p8(poly8_t const * a) {
3186 return vld2q_p8(a);
3187 }
3188
3189 // CHECK-LABEL: test_vld2q_p16
3190 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2q_p16(poly16_t const * a)3191 poly16x8x2_t test_vld2q_p16(poly16_t const * a) {
3192 return vld2q_p16(a);
3193 }
3194
3195 // CHECK-LABEL: test_vld2_u8
3196 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u8(uint8_t const * a)3197 uint8x8x2_t test_vld2_u8(uint8_t const * a) {
3198 return vld2_u8(a);
3199 }
3200
3201 // CHECK-LABEL: test_vld2_u16
3202 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u16(uint16_t const * a)3203 uint16x4x2_t test_vld2_u16(uint16_t const * a) {
3204 return vld2_u16(a);
3205 }
3206
3207 // CHECK-LABEL: test_vld2_u32
3208 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_u32(uint32_t const * a)3209 uint32x2x2_t test_vld2_u32(uint32_t const * a) {
3210 return vld2_u32(a);
3211 }
3212
3213 // CHECK-LABEL: test_vld2_u64
3214 // CHECK: vld1.64
test_vld2_u64(uint64_t const * a)3215 uint64x1x2_t test_vld2_u64(uint64_t const * a) {
3216 return vld2_u64(a);
3217 }
3218
3219 // CHECK-LABEL: test_vld2_s8
3220 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s8(int8_t const * a)3221 int8x8x2_t test_vld2_s8(int8_t const * a) {
3222 return vld2_s8(a);
3223 }
3224
3225 // CHECK-LABEL: test_vld2_s16
3226 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s16(int16_t const * a)3227 int16x4x2_t test_vld2_s16(int16_t const * a) {
3228 return vld2_s16(a);
3229 }
3230
3231 // CHECK-LABEL: test_vld2_s32
3232 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_s32(int32_t const * a)3233 int32x2x2_t test_vld2_s32(int32_t const * a) {
3234 return vld2_s32(a);
3235 }
3236
3237 // CHECK-LABEL: test_vld2_s64
3238 // CHECK: vld1.64
test_vld2_s64(int64_t const * a)3239 int64x1x2_t test_vld2_s64(int64_t const * a) {
3240 return vld2_s64(a);
3241 }
3242
3243 // CHECK-LABEL: test_vld2_f16
3244 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f16(float16_t const * a)3245 float16x4x2_t test_vld2_f16(float16_t const * a) {
3246 return vld2_f16(a);
3247 }
3248
3249 // CHECK-LABEL: test_vld2_f32
3250 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_f32(float32_t const * a)3251 float32x2x2_t test_vld2_f32(float32_t const * a) {
3252 return vld2_f32(a);
3253 }
3254
3255 // CHECK-LABEL: test_vld2_p8
3256 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p8(poly8_t const * a)3257 poly8x8x2_t test_vld2_p8(poly8_t const * a) {
3258 return vld2_p8(a);
3259 }
3260
3261 // CHECK-LABEL: test_vld2_p16
3262 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld2_p16(poly16_t const * a)3263 poly16x4x2_t test_vld2_p16(poly16_t const * a) {
3264 return vld2_p16(a);
3265 }
3266
3267
3268 // CHECK-LABEL: test_vld2_dup_u8
3269 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u8(uint8_t const * a)3270 uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) {
3271 return vld2_dup_u8(a);
3272 }
3273
3274 // CHECK-LABEL: test_vld2_dup_u16
3275 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u16(uint16_t const * a)3276 uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) {
3277 return vld2_dup_u16(a);
3278 }
3279
3280 // CHECK-LABEL: test_vld2_dup_u32
3281 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_u32(uint32_t const * a)3282 uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) {
3283 return vld2_dup_u32(a);
3284 }
3285
3286 // CHECK-LABEL: test_vld2_dup_u64
3287 // CHECK: vld1.64
test_vld2_dup_u64(uint64_t const * a)3288 uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) {
3289 return vld2_dup_u64(a);
3290 }
3291
3292 // CHECK-LABEL: test_vld2_dup_s8
3293 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s8(int8_t const * a)3294 int8x8x2_t test_vld2_dup_s8(int8_t const * a) {
3295 return vld2_dup_s8(a);
3296 }
3297
3298 // CHECK-LABEL: test_vld2_dup_s16
3299 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s16(int16_t const * a)3300 int16x4x2_t test_vld2_dup_s16(int16_t const * a) {
3301 return vld2_dup_s16(a);
3302 }
3303
3304 // CHECK-LABEL: test_vld2_dup_s32
3305 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_s32(int32_t const * a)3306 int32x2x2_t test_vld2_dup_s32(int32_t const * a) {
3307 return vld2_dup_s32(a);
3308 }
3309
3310 // CHECK-LABEL: test_vld2_dup_s64
3311 // CHECK: vld1.64
test_vld2_dup_s64(int64_t const * a)3312 int64x1x2_t test_vld2_dup_s64(int64_t const * a) {
3313 return vld2_dup_s64(a);
3314 }
3315
3316 // CHECK-LABEL: test_vld2_dup_f16
3317 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f16(float16_t const * a)3318 float16x4x2_t test_vld2_dup_f16(float16_t const * a) {
3319 return vld2_dup_f16(a);
3320 }
3321
3322 // CHECK-LABEL: test_vld2_dup_f32
3323 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_f32(float32_t const * a)3324 float32x2x2_t test_vld2_dup_f32(float32_t const * a) {
3325 return vld2_dup_f32(a);
3326 }
3327
3328 // CHECK-LABEL: test_vld2_dup_p8
3329 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p8(poly8_t const * a)3330 poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) {
3331 return vld2_dup_p8(a);
3332 }
3333
3334 // CHECK-LABEL: test_vld2_dup_p16
3335 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld2_dup_p16(poly16_t const * a)3336 poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) {
3337 return vld2_dup_p16(a);
3338 }
3339
3340
3341 // CHECK-LABEL: test_vld2q_lane_u16
3342 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_u16(uint16_t const * a,uint16x8x2_t b)3343 uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) {
3344 return vld2q_lane_u16(a, b, 7);
3345 }
3346
3347 // CHECK-LABEL: test_vld2q_lane_u32
3348 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_u32(uint32_t const * a,uint32x4x2_t b)3349 uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) {
3350 return vld2q_lane_u32(a, b, 3);
3351 }
3352
3353 // CHECK-LABEL: test_vld2q_lane_s16
3354 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_s16(int16_t const * a,int16x8x2_t b)3355 int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) {
3356 return vld2q_lane_s16(a, b, 7);
3357 }
3358
3359 // CHECK-LABEL: test_vld2q_lane_s32
3360 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_s32(int32_t const * a,int32x4x2_t b)3361 int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) {
3362 return vld2q_lane_s32(a, b, 3);
3363 }
3364
3365 // CHECK-LABEL: test_vld2q_lane_f16
3366 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_f16(float16_t const * a,float16x8x2_t b)3367 float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) {
3368 return vld2q_lane_f16(a, b, 7);
3369 }
3370
3371 // CHECK-LABEL: test_vld2q_lane_f32
3372 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_f32(float32_t const * a,float32x4x2_t b)3373 float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) {
3374 return vld2q_lane_f32(a, b, 3);
3375 }
3376
3377 // CHECK-LABEL: test_vld2q_lane_p16
3378 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2q_lane_p16(poly16_t const * a,poly16x8x2_t b)3379 poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) {
3380 return vld2q_lane_p16(a, b, 7);
3381 }
3382
3383 // CHECK-LABEL: test_vld2_lane_u8
3384 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u8(uint8_t const * a,uint8x8x2_t b)3385 uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) {
3386 return vld2_lane_u8(a, b, 7);
3387 }
3388
3389 // CHECK-LABEL: test_vld2_lane_u16
3390 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u16(uint16_t const * a,uint16x4x2_t b)3391 uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) {
3392 return vld2_lane_u16(a, b, 3);
3393 }
3394
3395 // CHECK-LABEL: test_vld2_lane_u32
3396 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_u32(uint32_t const * a,uint32x2x2_t b)3397 uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) {
3398 return vld2_lane_u32(a, b, 1);
3399 }
3400
3401 // CHECK-LABEL: test_vld2_lane_s8
3402 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s8(int8_t const * a,int8x8x2_t b)3403 int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) {
3404 return vld2_lane_s8(a, b, 7);
3405 }
3406
3407 // CHECK-LABEL: test_vld2_lane_s16
3408 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s16(int16_t const * a,int16x4x2_t b)3409 int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) {
3410 return vld2_lane_s16(a, b, 3);
3411 }
3412
3413 // CHECK-LABEL: test_vld2_lane_s32
3414 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_s32(int32_t const * a,int32x2x2_t b)3415 int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) {
3416 return vld2_lane_s32(a, b, 1);
3417 }
3418
3419 // CHECK-LABEL: test_vld2_lane_f16
3420 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_f16(float16_t const * a,float16x4x2_t b)3421 float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) {
3422 return vld2_lane_f16(a, b, 3);
3423 }
3424
3425 // CHECK-LABEL: test_vld2_lane_f32
3426 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_f32(float32_t const * a,float32x2x2_t b)3427 float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) {
3428 return vld2_lane_f32(a, b, 1);
3429 }
3430
3431 // CHECK-LABEL: test_vld2_lane_p8
3432 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_p8(poly8_t const * a,poly8x8x2_t b)3433 poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) {
3434 return vld2_lane_p8(a, b, 7);
3435 }
3436
3437 // CHECK-LABEL: test_vld2_lane_p16
3438 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld2_lane_p16(poly16_t const * a,poly16x4x2_t b)3439 poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) {
3440 return vld2_lane_p16(a, b, 3);
3441 }
3442
3443
3444 // CHECK-LABEL: test_vld3q_u8
3445 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u8(uint8_t const * a)3446 uint8x16x3_t test_vld3q_u8(uint8_t const * a) {
3447 return vld3q_u8(a);
3448 }
3449
3450 // CHECK-LABEL: test_vld3q_u16
3451 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u16(uint16_t const * a)3452 uint16x8x3_t test_vld3q_u16(uint16_t const * a) {
3453 return vld3q_u16(a);
3454 }
3455
3456 // CHECK-LABEL: test_vld3q_u32
3457 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_u32(uint32_t const * a)3458 uint32x4x3_t test_vld3q_u32(uint32_t const * a) {
3459 return vld3q_u32(a);
3460 }
3461
3462 // CHECK-LABEL: test_vld3q_s8
3463 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s8(int8_t const * a)3464 int8x16x3_t test_vld3q_s8(int8_t const * a) {
3465 return vld3q_s8(a);
3466 }
3467
3468 // CHECK-LABEL: test_vld3q_s16
3469 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s16(int16_t const * a)3470 int16x8x3_t test_vld3q_s16(int16_t const * a) {
3471 return vld3q_s16(a);
3472 }
3473
3474 // CHECK-LABEL: test_vld3q_s32
3475 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_s32(int32_t const * a)3476 int32x4x3_t test_vld3q_s32(int32_t const * a) {
3477 return vld3q_s32(a);
3478 }
3479
3480 // CHECK-LABEL: test_vld3q_f16
3481 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f16(float16_t const * a)3482 float16x8x3_t test_vld3q_f16(float16_t const * a) {
3483 return vld3q_f16(a);
3484 }
3485
3486 // CHECK-LABEL: test_vld3q_f32
3487 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_f32(float32_t const * a)3488 float32x4x3_t test_vld3q_f32(float32_t const * a) {
3489 return vld3q_f32(a);
3490 }
3491
3492 // CHECK-LABEL: test_vld3q_p8
3493 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p8(poly8_t const * a)3494 poly8x16x3_t test_vld3q_p8(poly8_t const * a) {
3495 return vld3q_p8(a);
3496 }
3497
3498 // CHECK-LABEL: test_vld3q_p16
3499 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld3q_p16(poly16_t const * a)3500 poly16x8x3_t test_vld3q_p16(poly16_t const * a) {
3501 return vld3q_p16(a);
3502 }
3503
3504 // CHECK-LABEL: test_vld3_u8
3505 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u8(uint8_t const * a)3506 uint8x8x3_t test_vld3_u8(uint8_t const * a) {
3507 return vld3_u8(a);
3508 }
3509
3510 // CHECK-LABEL: test_vld3_u16
3511 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u16(uint16_t const * a)3512 uint16x4x3_t test_vld3_u16(uint16_t const * a) {
3513 return vld3_u16(a);
3514 }
3515
3516 // CHECK-LABEL: test_vld3_u32
3517 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_u32(uint32_t const * a)3518 uint32x2x3_t test_vld3_u32(uint32_t const * a) {
3519 return vld3_u32(a);
3520 }
3521
3522 // CHECK-LABEL: test_vld3_u64
3523 // CHECK: vld1.64
test_vld3_u64(uint64_t const * a)3524 uint64x1x3_t test_vld3_u64(uint64_t const * a) {
3525 return vld3_u64(a);
3526 }
3527
3528 // CHECK-LABEL: test_vld3_s8
3529 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s8(int8_t const * a)3530 int8x8x3_t test_vld3_s8(int8_t const * a) {
3531 return vld3_s8(a);
3532 }
3533
3534 // CHECK-LABEL: test_vld3_s16
3535 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s16(int16_t const * a)3536 int16x4x3_t test_vld3_s16(int16_t const * a) {
3537 return vld3_s16(a);
3538 }
3539
3540 // CHECK-LABEL: test_vld3_s32
3541 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_s32(int32_t const * a)3542 int32x2x3_t test_vld3_s32(int32_t const * a) {
3543 return vld3_s32(a);
3544 }
3545
3546 // CHECK-LABEL: test_vld3_s64
3547 // CHECK: vld1.64
test_vld3_s64(int64_t const * a)3548 int64x1x3_t test_vld3_s64(int64_t const * a) {
3549 return vld3_s64(a);
3550 }
3551
3552 // CHECK-LABEL: test_vld3_f16
3553 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f16(float16_t const * a)3554 float16x4x3_t test_vld3_f16(float16_t const * a) {
3555 return vld3_f16(a);
3556 }
3557
3558 // CHECK-LABEL: test_vld3_f32
3559 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_f32(float32_t const * a)3560 float32x2x3_t test_vld3_f32(float32_t const * a) {
3561 return vld3_f32(a);
3562 }
3563
3564 // CHECK-LABEL: test_vld3_p8
3565 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p8(poly8_t const * a)3566 poly8x8x3_t test_vld3_p8(poly8_t const * a) {
3567 return vld3_p8(a);
3568 }
3569
3570 // CHECK-LABEL: test_vld3_p16
3571 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld3_p16(poly16_t const * a)3572 poly16x4x3_t test_vld3_p16(poly16_t const * a) {
3573 return vld3_p16(a);
3574 }
3575
3576
3577 // CHECK-LABEL: test_vld3_dup_u8
3578 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u8(uint8_t const * a)3579 uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) {
3580 return vld3_dup_u8(a);
3581 }
3582
3583 // CHECK-LABEL: test_vld3_dup_u16
3584 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u16(uint16_t const * a)3585 uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) {
3586 return vld3_dup_u16(a);
3587 }
3588
3589 // CHECK-LABEL: test_vld3_dup_u32
3590 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_u32(uint32_t const * a)3591 uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) {
3592 return vld3_dup_u32(a);
3593 }
3594
3595 // CHECK-LABEL: test_vld3_dup_u64
3596 // CHECK: vld1.64
test_vld3_dup_u64(uint64_t const * a)3597 uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) {
3598 return vld3_dup_u64(a);
3599 }
3600
3601 // CHECK-LABEL: test_vld3_dup_s8
3602 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s8(int8_t const * a)3603 int8x8x3_t test_vld3_dup_s8(int8_t const * a) {
3604 return vld3_dup_s8(a);
3605 }
3606
3607 // CHECK-LABEL: test_vld3_dup_s16
3608 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s16(int16_t const * a)3609 int16x4x3_t test_vld3_dup_s16(int16_t const * a) {
3610 return vld3_dup_s16(a);
3611 }
3612
3613 // CHECK-LABEL: test_vld3_dup_s32
3614 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_s32(int32_t const * a)3615 int32x2x3_t test_vld3_dup_s32(int32_t const * a) {
3616 return vld3_dup_s32(a);
3617 }
3618
3619 // CHECK-LABEL: test_vld3_dup_s64
3620 // CHECK: vld1.64
test_vld3_dup_s64(int64_t const * a)3621 int64x1x3_t test_vld3_dup_s64(int64_t const * a) {
3622 return vld3_dup_s64(a);
3623 }
3624
3625 // CHECK-LABEL: test_vld3_dup_f16
3626 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f16(float16_t const * a)3627 float16x4x3_t test_vld3_dup_f16(float16_t const * a) {
3628 return vld3_dup_f16(a);
3629 }
3630
3631 // CHECK-LABEL: test_vld3_dup_f32
3632 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_f32(float32_t const * a)3633 float32x2x3_t test_vld3_dup_f32(float32_t const * a) {
3634 return vld3_dup_f32(a);
3635 }
3636
3637 // CHECK-LABEL: test_vld3_dup_p8
3638 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p8(poly8_t const * a)3639 poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) {
3640 return vld3_dup_p8(a);
3641 }
3642
3643 // CHECK-LABEL: test_vld3_dup_p16
3644 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld3_dup_p16(poly16_t const * a)3645 poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) {
3646 return vld3_dup_p16(a);
3647 }
3648
3649
3650 // CHECK-LABEL: test_vld3q_lane_u16
3651 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_u16(uint16_t const * a,uint16x8x3_t b)3652 uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) {
3653 return vld3q_lane_u16(a, b, 7);
3654 }
3655
3656 // CHECK-LABEL: test_vld3q_lane_u32
3657 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_u32(uint32_t const * a,uint32x4x3_t b)3658 uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) {
3659 return vld3q_lane_u32(a, b, 3);
3660 }
3661
3662 // CHECK-LABEL: test_vld3q_lane_s16
3663 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_s16(int16_t const * a,int16x8x3_t b)3664 int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) {
3665 return vld3q_lane_s16(a, b, 7);
3666 }
3667
3668 // CHECK-LABEL: test_vld3q_lane_s32
3669 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_s32(int32_t const * a,int32x4x3_t b)3670 int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) {
3671 return vld3q_lane_s32(a, b, 3);
3672 }
3673
3674 // CHECK-LABEL: test_vld3q_lane_f16
3675 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_f16(float16_t const * a,float16x8x3_t b)3676 float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) {
3677 return vld3q_lane_f16(a, b, 7);
3678 }
3679
3680 // CHECK-LABEL: test_vld3q_lane_f32
3681 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_f32(float32_t const * a,float32x4x3_t b)3682 float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) {
3683 return vld3q_lane_f32(a, b, 3);
3684 }
3685
3686 // CHECK-LABEL: test_vld3q_lane_p16
3687 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld3q_lane_p16(poly16_t const * a,poly16x8x3_t b)3688 poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) {
3689 return vld3q_lane_p16(a, b, 7);
3690 }
3691
3692 // CHECK-LABEL: test_vld3_lane_u8
3693 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u8(uint8_t const * a,uint8x8x3_t b)3694 uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) {
3695 return vld3_lane_u8(a, b, 7);
3696 }
3697
3698 // CHECK-LABEL: test_vld3_lane_u16
3699 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u16(uint16_t const * a,uint16x4x3_t b)3700 uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) {
3701 return vld3_lane_u16(a, b, 3);
3702 }
3703
3704 // CHECK-LABEL: test_vld3_lane_u32
3705 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_u32(uint32_t const * a,uint32x2x3_t b)3706 uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) {
3707 return vld3_lane_u32(a, b, 1);
3708 }
3709
3710 // CHECK-LABEL: test_vld3_lane_s8
3711 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s8(int8_t const * a,int8x8x3_t b)3712 int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) {
3713 return vld3_lane_s8(a, b, 7);
3714 }
3715
3716 // CHECK-LABEL: test_vld3_lane_s16
3717 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s16(int16_t const * a,int16x4x3_t b)3718 int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) {
3719 return vld3_lane_s16(a, b, 3);
3720 }
3721
3722 // CHECK-LABEL: test_vld3_lane_s32
3723 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_s32(int32_t const * a,int32x2x3_t b)3724 int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) {
3725 return vld3_lane_s32(a, b, 1);
3726 }
3727
3728 // CHECK-LABEL: test_vld3_lane_f16
3729 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_f16(float16_t const * a,float16x4x3_t b)3730 float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) {
3731 return vld3_lane_f16(a, b, 3);
3732 }
3733
3734 // CHECK-LABEL: test_vld3_lane_f32
3735 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_f32(float32_t const * a,float32x2x3_t b)3736 float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) {
3737 return vld3_lane_f32(a, b, 1);
3738 }
3739
3740 // CHECK-LABEL: test_vld3_lane_p8
3741 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_p8(poly8_t const * a,poly8x8x3_t b)3742 poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) {
3743 return vld3_lane_p8(a, b, 7);
3744 }
3745
3746 // CHECK-LABEL: test_vld3_lane_p16
3747 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld3_lane_p16(poly16_t const * a,poly16x4x3_t b)3748 poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) {
3749 return vld3_lane_p16(a, b, 3);
3750 }
3751
3752
3753 // CHECK-LABEL: test_vld4q_u8
3754 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u8(uint8_t const * a)3755 uint8x16x4_t test_vld4q_u8(uint8_t const * a) {
3756 return vld4q_u8(a);
3757 }
3758
3759 // CHECK-LABEL: test_vld4q_u16
3760 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u16(uint16_t const * a)3761 uint16x8x4_t test_vld4q_u16(uint16_t const * a) {
3762 return vld4q_u16(a);
3763 }
3764
3765 // CHECK-LABEL: test_vld4q_u32
3766 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_u32(uint32_t const * a)3767 uint32x4x4_t test_vld4q_u32(uint32_t const * a) {
3768 return vld4q_u32(a);
3769 }
3770
3771 // CHECK-LABEL: test_vld4q_s8
3772 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s8(int8_t const * a)3773 int8x16x4_t test_vld4q_s8(int8_t const * a) {
3774 return vld4q_s8(a);
3775 }
3776
3777 // CHECK-LABEL: test_vld4q_s16
3778 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s16(int16_t const * a)3779 int16x8x4_t test_vld4q_s16(int16_t const * a) {
3780 return vld4q_s16(a);
3781 }
3782
3783 // CHECK-LABEL: test_vld4q_s32
3784 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_s32(int32_t const * a)3785 int32x4x4_t test_vld4q_s32(int32_t const * a) {
3786 return vld4q_s32(a);
3787 }
3788
3789 // CHECK-LABEL: test_vld4q_f16
3790 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f16(float16_t const * a)3791 float16x8x4_t test_vld4q_f16(float16_t const * a) {
3792 return vld4q_f16(a);
3793 }
3794
3795 // CHECK-LABEL: test_vld4q_f32
3796 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_f32(float32_t const * a)3797 float32x4x4_t test_vld4q_f32(float32_t const * a) {
3798 return vld4q_f32(a);
3799 }
3800
3801 // CHECK-LABEL: test_vld4q_p8
3802 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p8(poly8_t const * a)3803 poly8x16x4_t test_vld4q_p8(poly8_t const * a) {
3804 return vld4q_p8(a);
3805 }
3806
3807 // CHECK-LABEL: test_vld4q_p16
3808 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vld4q_p16(poly16_t const * a)3809 poly16x8x4_t test_vld4q_p16(poly16_t const * a) {
3810 return vld4q_p16(a);
3811 }
3812
3813 // CHECK-LABEL: test_vld4_u8
3814 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u8(uint8_t const * a)3815 uint8x8x4_t test_vld4_u8(uint8_t const * a) {
3816 return vld4_u8(a);
3817 }
3818
3819 // CHECK-LABEL: test_vld4_u16
3820 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u16(uint16_t const * a)3821 uint16x4x4_t test_vld4_u16(uint16_t const * a) {
3822 return vld4_u16(a);
3823 }
3824
3825 // CHECK-LABEL: test_vld4_u32
3826 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_u32(uint32_t const * a)3827 uint32x2x4_t test_vld4_u32(uint32_t const * a) {
3828 return vld4_u32(a);
3829 }
3830
3831 // CHECK-LABEL: test_vld4_u64
3832 // CHECK: vld1.64
test_vld4_u64(uint64_t const * a)3833 uint64x1x4_t test_vld4_u64(uint64_t const * a) {
3834 return vld4_u64(a);
3835 }
3836
3837 // CHECK-LABEL: test_vld4_s8
3838 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s8(int8_t const * a)3839 int8x8x4_t test_vld4_s8(int8_t const * a) {
3840 return vld4_s8(a);
3841 }
3842
3843 // CHECK-LABEL: test_vld4_s16
3844 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s16(int16_t const * a)3845 int16x4x4_t test_vld4_s16(int16_t const * a) {
3846 return vld4_s16(a);
3847 }
3848
3849 // CHECK-LABEL: test_vld4_s32
3850 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_s32(int32_t const * a)3851 int32x2x4_t test_vld4_s32(int32_t const * a) {
3852 return vld4_s32(a);
3853 }
3854
3855 // CHECK-LABEL: test_vld4_s64
3856 // CHECK: vld1.64
test_vld4_s64(int64_t const * a)3857 int64x1x4_t test_vld4_s64(int64_t const * a) {
3858 return vld4_s64(a);
3859 }
3860
3861 // CHECK-LABEL: test_vld4_f16
3862 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_f16(float16_t const * a)3863 float16x4x4_t test_vld4_f16(float16_t const * a) {
3864 return vld4_f16(a);
3865 }
3866
3867 // CHECK-LABEL: test_vld4_f32
3868 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_f32(float32_t const * a)3869 float32x2x4_t test_vld4_f32(float32_t const * a) {
3870 return vld4_f32(a);
3871 }
3872
3873 // CHECK-LABEL: test_vld4_p8
3874 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_p8(poly8_t const * a)3875 poly8x8x4_t test_vld4_p8(poly8_t const * a) {
3876 return vld4_p8(a);
3877 }
3878
3879 // CHECK-LABEL: test_vld4_p16
3880 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vld4_p16(poly16_t const * a)3881 poly16x4x4_t test_vld4_p16(poly16_t const * a) {
3882 return vld4_p16(a);
3883 }
3884
3885
3886 // CHECK-LABEL: test_vld4_dup_u8
3887 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u8(uint8_t const * a)3888 uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) {
3889 return vld4_dup_u8(a);
3890 }
3891
3892 // CHECK-LABEL: test_vld4_dup_u16
3893 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u16(uint16_t const * a)3894 uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) {
3895 return vld4_dup_u16(a);
3896 }
3897
3898 // CHECK-LABEL: test_vld4_dup_u32
3899 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_u32(uint32_t const * a)3900 uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) {
3901 return vld4_dup_u32(a);
3902 }
3903
3904 // CHECK-LABEL: test_vld4_dup_u64
3905 // CHECK: vld1.64
test_vld4_dup_u64(uint64_t const * a)3906 uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) {
3907 return vld4_dup_u64(a);
3908 }
3909
3910 // CHECK-LABEL: test_vld4_dup_s8
3911 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s8(int8_t const * a)3912 int8x8x4_t test_vld4_dup_s8(int8_t const * a) {
3913 return vld4_dup_s8(a);
3914 }
3915
3916 // CHECK-LABEL: test_vld4_dup_s16
3917 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s16(int16_t const * a)3918 int16x4x4_t test_vld4_dup_s16(int16_t const * a) {
3919 return vld4_dup_s16(a);
3920 }
3921
3922 // CHECK-LABEL: test_vld4_dup_s32
3923 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_s32(int32_t const * a)3924 int32x2x4_t test_vld4_dup_s32(int32_t const * a) {
3925 return vld4_dup_s32(a);
3926 }
3927
3928 // CHECK-LABEL: test_vld4_dup_s64
3929 // CHECK: vld1.64
test_vld4_dup_s64(int64_t const * a)3930 int64x1x4_t test_vld4_dup_s64(int64_t const * a) {
3931 return vld4_dup_s64(a);
3932 }
3933
3934 // CHECK-LABEL: test_vld4_dup_f16
3935 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_f16(float16_t const * a)3936 float16x4x4_t test_vld4_dup_f16(float16_t const * a) {
3937 return vld4_dup_f16(a);
3938 }
3939
3940 // CHECK-LABEL: test_vld4_dup_f32
3941 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_f32(float32_t const * a)3942 float32x2x4_t test_vld4_dup_f32(float32_t const * a) {
3943 return vld4_dup_f32(a);
3944 }
3945
3946 // CHECK-LABEL: test_vld4_dup_p8
3947 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_p8(poly8_t const * a)3948 poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) {
3949 return vld4_dup_p8(a);
3950 }
3951
3952 // CHECK-LABEL: test_vld4_dup_p16
3953 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
test_vld4_dup_p16(poly16_t const * a)3954 poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) {
3955 return vld4_dup_p16(a);
3956 }
3957
3958
3959 // CHECK-LABEL: test_vld4q_lane_u16
3960 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_u16(uint16_t const * a,uint16x8x4_t b)3961 uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) {
3962 return vld4q_lane_u16(a, b, 7);
3963 }
3964
3965 // CHECK-LABEL: test_vld4q_lane_u32
3966 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_u32(uint32_t const * a,uint32x4x4_t b)3967 uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) {
3968 return vld4q_lane_u32(a, b, 3);
3969 }
3970
3971 // CHECK-LABEL: test_vld4q_lane_s16
3972 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_s16(int16_t const * a,int16x8x4_t b)3973 int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) {
3974 return vld4q_lane_s16(a, b, 7);
3975 }
3976
3977 // CHECK-LABEL: test_vld4q_lane_s32
3978 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_s32(int32_t const * a,int32x4x4_t b)3979 int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) {
3980 return vld4q_lane_s32(a, b, 3);
3981 }
3982
3983 // CHECK-LABEL: test_vld4q_lane_f16
3984 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_f16(float16_t const * a,float16x8x4_t b)3985 float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) {
3986 return vld4q_lane_f16(a, b, 7);
3987 }
3988
3989 // CHECK-LABEL: test_vld4q_lane_f32
3990 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_f32(float32_t const * a,float32x4x4_t b)3991 float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) {
3992 return vld4q_lane_f32(a, b, 3);
3993 }
3994
3995 // CHECK-LABEL: test_vld4q_lane_p16
3996 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vld4q_lane_p16(poly16_t const * a,poly16x8x4_t b)3997 poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) {
3998 return vld4q_lane_p16(a, b, 7);
3999 }
4000
4001 // CHECK-LABEL: test_vld4_lane_u8
4002 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u8(uint8_t const * a,uint8x8x4_t b)4003 uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) {
4004 return vld4_lane_u8(a, b, 7);
4005 }
4006
4007 // CHECK-LABEL: test_vld4_lane_u16
4008 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u16(uint16_t const * a,uint16x4x4_t b)4009 uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) {
4010 return vld4_lane_u16(a, b, 3);
4011 }
4012
4013 // CHECK-LABEL: test_vld4_lane_u32
4014 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_u32(uint32_t const * a,uint32x2x4_t b)4015 uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) {
4016 return vld4_lane_u32(a, b, 1);
4017 }
4018
4019 // CHECK-LABEL: test_vld4_lane_s8
4020 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s8(int8_t const * a,int8x8x4_t b)4021 int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) {
4022 return vld4_lane_s8(a, b, 7);
4023 }
4024
4025 // CHECK-LABEL: test_vld4_lane_s16
4026 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s16(int16_t const * a,int16x4x4_t b)4027 int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) {
4028 return vld4_lane_s16(a, b, 3);
4029 }
4030
4031 // CHECK-LABEL: test_vld4_lane_s32
4032 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_s32(int32_t const * a,int32x2x4_t b)4033 int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) {
4034 return vld4_lane_s32(a, b, 1);
4035 }
4036
4037 // CHECK-LABEL: test_vld4_lane_f16
4038 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_f16(float16_t const * a,float16x4x4_t b)4039 float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) {
4040 return vld4_lane_f16(a, b, 3);
4041 }
4042
4043 // CHECK-LABEL: test_vld4_lane_f32
4044 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_f32(float32_t const * a,float32x2x4_t b)4045 float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) {
4046 return vld4_lane_f32(a, b, 1);
4047 }
4048
4049 // CHECK-LABEL: test_vld4_lane_p8
4050 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_p8(poly8_t const * a,poly8x8x4_t b)4051 poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) {
4052 return vld4_lane_p8(a, b, 7);
4053 }
4054
4055 // CHECK-LABEL: test_vld4_lane_p16
4056 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vld4_lane_p16(poly16_t const * a,poly16x4x4_t b)4057 poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) {
4058 return vld4_lane_p16(a, b, 3);
4059 }
4060
4061
4062 // CHECK-LABEL: test_vmax_s8
4063 // CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s8(int8x8_t a,int8x8_t b)4064 int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) {
4065 return vmax_s8(a, b);
4066 }
4067
4068 // CHECK-LABEL: test_vmax_s16
4069 // CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s16(int16x4_t a,int16x4_t b)4070 int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) {
4071 return vmax_s16(a, b);
4072 }
4073
4074 // CHECK-LABEL: test_vmax_s32
4075 // CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_s32(int32x2_t a,int32x2_t b)4076 int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) {
4077 return vmax_s32(a, b);
4078 }
4079
4080 // CHECK-LABEL: test_vmax_u8
4081 // CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u8(uint8x8_t a,uint8x8_t b)4082 uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) {
4083 return vmax_u8(a, b);
4084 }
4085
4086 // CHECK-LABEL: test_vmax_u16
4087 // CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u16(uint16x4_t a,uint16x4_t b)4088 uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) {
4089 return vmax_u16(a, b);
4090 }
4091
4092 // CHECK-LABEL: test_vmax_u32
4093 // CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_u32(uint32x2_t a,uint32x2_t b)4094 uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) {
4095 return vmax_u32(a, b);
4096 }
4097
4098 // CHECK-LABEL: test_vmax_f32
4099 // CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmax_f32(float32x2_t a,float32x2_t b)4100 float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) {
4101 return vmax_f32(a, b);
4102 }
4103
4104 // CHECK-LABEL: test_vmaxq_s8
4105 // CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s8(int8x16_t a,int8x16_t b)4106 int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) {
4107 return vmaxq_s8(a, b);
4108 }
4109
4110 // CHECK-LABEL: test_vmaxq_s16
4111 // CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s16(int16x8_t a,int16x8_t b)4112 int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) {
4113 return vmaxq_s16(a, b);
4114 }
4115
4116 // CHECK-LABEL: test_vmaxq_s32
4117 // CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_s32(int32x4_t a,int32x4_t b)4118 int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) {
4119 return vmaxq_s32(a, b);
4120 }
4121
4122 // CHECK-LABEL: test_vmaxq_u8
4123 // CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u8(uint8x16_t a,uint8x16_t b)4124 uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) {
4125 return vmaxq_u8(a, b);
4126 }
4127
4128 // CHECK-LABEL: test_vmaxq_u16
4129 // CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u16(uint16x8_t a,uint16x8_t b)4130 uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) {
4131 return vmaxq_u16(a, b);
4132 }
4133
4134 // CHECK-LABEL: test_vmaxq_u32
4135 // CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_u32(uint32x4_t a,uint32x4_t b)4136 uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) {
4137 return vmaxq_u32(a, b);
4138 }
4139
4140 // CHECK-LABEL: test_vmaxq_f32
4141 // CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmaxq_f32(float32x4_t a,float32x4_t b)4142 float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) {
4143 return vmaxq_f32(a, b);
4144 }
4145
4146
4147 // CHECK-LABEL: test_vmin_s8
4148 // CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s8(int8x8_t a,int8x8_t b)4149 int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) {
4150 return vmin_s8(a, b);
4151 }
4152
4153 // CHECK-LABEL: test_vmin_s16
4154 // CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s16(int16x4_t a,int16x4_t b)4155 int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) {
4156 return vmin_s16(a, b);
4157 }
4158
4159 // CHECK-LABEL: test_vmin_s32
4160 // CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_s32(int32x2_t a,int32x2_t b)4161 int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) {
4162 return vmin_s32(a, b);
4163 }
4164
4165 // CHECK-LABEL: test_vmin_u8
4166 // CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u8(uint8x8_t a,uint8x8_t b)4167 uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) {
4168 return vmin_u8(a, b);
4169 }
4170
4171 // CHECK-LABEL: test_vmin_u16
4172 // CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u16(uint16x4_t a,uint16x4_t b)4173 uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) {
4174 return vmin_u16(a, b);
4175 }
4176
4177 // CHECK-LABEL: test_vmin_u32
4178 // CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_u32(uint32x2_t a,uint32x2_t b)4179 uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) {
4180 return vmin_u32(a, b);
4181 }
4182
4183 // CHECK-LABEL: test_vmin_f32
4184 // CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmin_f32(float32x2_t a,float32x2_t b)4185 float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) {
4186 return vmin_f32(a, b);
4187 }
4188
4189 // CHECK-LABEL: test_vminq_s8
4190 // CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s8(int8x16_t a,int8x16_t b)4191 int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) {
4192 return vminq_s8(a, b);
4193 }
4194
4195 // CHECK-LABEL: test_vminq_s16
4196 // CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s16(int16x8_t a,int16x8_t b)4197 int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) {
4198 return vminq_s16(a, b);
4199 }
4200
4201 // CHECK-LABEL: test_vminq_s32
4202 // CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_s32(int32x4_t a,int32x4_t b)4203 int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) {
4204 return vminq_s32(a, b);
4205 }
4206
4207 // CHECK-LABEL: test_vminq_u8
4208 // CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u8(uint8x16_t a,uint8x16_t b)4209 uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) {
4210 return vminq_u8(a, b);
4211 }
4212
4213 // CHECK-LABEL: test_vminq_u16
4214 // CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u16(uint16x8_t a,uint16x8_t b)4215 uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) {
4216 return vminq_u16(a, b);
4217 }
4218
4219 // CHECK-LABEL: test_vminq_u32
4220 // CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_u32(uint32x4_t a,uint32x4_t b)4221 uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) {
4222 return vminq_u32(a, b);
4223 }
4224
4225 // CHECK-LABEL: test_vminq_f32
4226 // CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vminq_f32(float32x4_t a,float32x4_t b)4227 float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) {
4228 return vminq_f32(a, b);
4229 }
4230
4231
4232 // CHECK-LABEL: test_vmla_s8
4233 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)4234 int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4235 return vmla_s8(a, b, c);
4236 }
4237
4238 // CHECK-LABEL: test_vmla_s16
4239 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)4240 int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4241 return vmla_s16(a, b, c);
4242 }
4243
4244 // CHECK-LABEL: test_vmla_s32
4245 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)4246 int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4247 return vmla_s32(a, b, c);
4248 }
4249
4250 // CHECK-LABEL: test_vmla_f32
4251 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4252 // CHECK-SWIFT: vadd.f32
4253 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_f32(float32x2_t a,float32x2_t b,float32x2_t c)4254 float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4255 return vmla_f32(a, b, c);
4256 }
4257
4258 // CHECK-LABEL: test_vmla_u8
4259 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4260 uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4261 return vmla_u8(a, b, c);
4262 }
4263
4264 // CHECK-LABEL: test_vmla_u16
4265 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4266 uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4267 return vmla_u16(a, b, c);
4268 }
4269
4270 // CHECK-LABEL: test_vmla_u32
4271 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4272 uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4273 return vmla_u32(a, b, c);
4274 }
4275
4276 // CHECK-LABEL: test_vmlaq_s8
4277 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4278 int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4279 return vmlaq_s8(a, b, c);
4280 }
4281
4282 // CHECK-LABEL: test_vmlaq_s16
4283 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4284 int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4285 return vmlaq_s16(a, b, c);
4286 }
4287
4288 // CHECK-LABEL: test_vmlaq_s32
4289 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4290 int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4291 return vmlaq_s32(a, b, c);
4292 }
4293
4294 // CHECK-LABEL: test_vmlaq_f32
4295 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4296 // CHECK-SWIFT: vadd.f32
4297 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4298 float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4299 return vmlaq_f32(a, b, c);
4300 }
4301
4302 // CHECK-LABEL: test_vmlaq_u8
4303 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4304 uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4305 return vmlaq_u8(a, b, c);
4306 }
4307
4308 // CHECK-LABEL: test_vmlaq_u16
4309 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4310 uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4311 return vmlaq_u16(a, b, c);
4312 }
4313
4314 // CHECK-LABEL: test_vmlaq_u32
4315 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4316 uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4317 return vmlaq_u32(a, b, c);
4318 }
4319
4320
4321 // CHECK-LABEL: test_vmlal_s8
4322 // CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)4323 int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4324 return vmlal_s8(a, b, c);
4325 }
4326
4327 // CHECK-LABEL: test_vmlal_s16
4328 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)4329 int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4330 return vmlal_s16(a, b, c);
4331 }
4332
4333 // CHECK-LABEL: test_vmlal_s32
4334 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)4335 int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4336 return vmlal_s32(a, b, c);
4337 }
4338
4339 // CHECK-LABEL: test_vmlal_u8
4340 // CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4341 uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4342 return vmlal_u8(a, b, c);
4343 }
4344
4345 // CHECK-LABEL: test_vmlal_u16
4346 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4347 uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4348 return vmlal_u16(a, b, c);
4349 }
4350
4351 // CHECK-LABEL: test_vmlal_u32
4352 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4353 uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4354 return vmlal_u32(a, b, c);
4355 }
4356
4357
4358 // CHECK-LABEL: test_vmlal_lane_s16
4359 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)4360 int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4361 return vmlal_lane_s16(a, b, c, 3);
4362 }
4363
4364 // CHECK-LABEL: test_vmlal_lane_s32
4365 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)4366 int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4367 return vmlal_lane_s32(a, b, c, 1);
4368 }
4369
4370 // CHECK-LABEL: test_vmlal_lane_u16
4371 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4372 uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4373 return vmlal_lane_u16(a, b, c, 3);
4374 }
4375
4376 // CHECK-LABEL: test_vmlal_lane_u32
4377 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlal_lane_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4378 uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4379 return vmlal_lane_u32(a, b, c, 1);
4380 }
4381
4382
4383 // CHECK-LABEL: test_vmlal_n_s16
4384 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)4385 int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4386 return vmlal_n_s16(a, b, c);
4387 }
4388
4389 // CHECK-LABEL: test_vmlal_n_s32
4390 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)4391 int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4392 return vmlal_n_s32(a, b, c);
4393 }
4394
4395 // CHECK-LABEL: test_vmlal_n_u16
4396 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)4397 uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4398 return vmlal_n_u16(a, b, c);
4399 }
4400
4401 // CHECK-LABEL: test_vmlal_n_u32
4402 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlal_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)4403 uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4404 return vmlal_n_u32(a, b, c);
4405 }
4406
4407
4408 // CHECK-LABEL: test_vmla_lane_s16
4409 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_s16(int16x4_t a,int16x4_t b,int16x4_t c)4410 int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4411 return vmla_lane_s16(a, b, c, 3);
4412 }
4413
4414 // CHECK-LABEL: test_vmla_lane_s32
4415 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_s32(int32x2_t a,int32x2_t b,int32x2_t c)4416 int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4417 return vmla_lane_s32(a, b, c, 1);
4418 }
4419
4420 // CHECK-LABEL: test_vmla_lane_u16
4421 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4422 uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4423 return vmla_lane_u16(a, b, c, 3);
4424 }
4425
4426 // CHECK-LABEL: test_vmla_lane_u32
4427 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4428 uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4429 return vmla_lane_u32(a, b, c, 1);
4430 }
4431
4432 // CHECK-LABEL: test_vmla_lane_f32
4433 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4434 // CHECK-SWIFT: vadd.f32
4435 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmla_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4436 float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4437 return vmla_lane_f32(a, b, c, 1);
4438 }
4439
4440 // CHECK-LABEL: test_vmlaq_lane_s16
4441 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t c)4442 int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4443 return vmlaq_lane_s16(a, b, c, 3);
4444 }
4445
4446 // CHECK-LABEL: test_vmlaq_lane_s32
4447 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t c)4448 int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4449 return vmlaq_lane_s32(a, b, c, 1);
4450 }
4451
4452 // CHECK-LABEL: test_vmlaq_lane_u16
4453 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t c)4454 uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4455 return vmlaq_lane_u16(a, b, c, 3);
4456 }
4457
4458 // CHECK-LABEL: test_vmlaq_lane_u32
4459 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t c)4460 uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4461 return vmlaq_lane_u32(a, b, c, 1);
4462 }
4463
4464 // CHECK-LABEL: test_vmlaq_lane_f32
4465 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4466 // CHECK-SWIFT: vadd.f32
4467 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlaq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4468 float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4469 return vmlaq_lane_f32(a, b, c, 1);
4470 }
4471
4472
4473 // CHECK-LABEL: test_vmla_n_s16
4474 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_s16(int16x4_t a,int16x4_t b,int16_t c)4475 int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4476 return vmla_n_s16(a, b, c);
4477 }
4478
4479 // CHECK-LABEL: test_vmla_n_s32
4480 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_s32(int32x2_t a,int32x2_t b,int32_t c)4481 int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4482 return vmla_n_s32(a, b, c);
4483 }
4484
4485 // CHECK-LABEL: test_vmla_n_u16
4486 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)4487 uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4488 return vmla_n_u16(a, b, c);
4489 }
4490
4491 // CHECK-LABEL: test_vmla_n_u32
4492 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)4493 uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4494 return vmla_n_u32(a, b, c);
4495 }
4496
4497 // CHECK-LABEL: test_vmla_n_f32
4498 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4499 // CHECK-SWIFT: vadd.f32
4500 // CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmla_n_f32(float32x2_t a,float32x2_t b,float32_t c)4501 float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4502 return vmla_n_f32(a, b, c);
4503 }
4504
4505 // CHECK-LABEL: test_vmlaq_n_s16
4506 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_s16(int16x8_t a,int16x8_t b,int16_t c)4507 int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4508 return vmlaq_n_s16(a, b, c);
4509 }
4510
4511 // CHECK-LABEL: test_vmlaq_n_s32
4512 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_s32(int32x4_t a,int32x4_t b,int32_t c)4513 int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4514 return vmlaq_n_s32(a, b, c);
4515 }
4516
4517 // CHECK-LABEL: test_vmlaq_n_u16
4518 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)4519 uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4520 return vmlaq_n_u16(a, b, c);
4521 }
4522
4523 // CHECK-LABEL: test_vmlaq_n_u32
4524 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)4525 uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4526 return vmlaq_n_u32(a, b, c);
4527 }
4528
4529 // CHECK-LABEL: test_vmlaq_n_f32
4530 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4531 // CHECK-SWIFT: vadd.f32
4532 // CHECK-A57: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]},
4533 // CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlaq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4534 float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4535 return vmlaq_n_f32(a, b, c);
4536 }
4537
4538
4539 // CHECK-LABEL: test_vmls_s8
4540 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)4541 int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
4542 return vmls_s8(a, b, c);
4543 }
4544
4545 // CHECK-LABEL: test_vmls_s16
4546 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)4547 int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4548 return vmls_s16(a, b, c);
4549 }
4550
4551 // CHECK-LABEL: test_vmls_s32
4552 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)4553 int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4554 return vmls_s32(a, b, c);
4555 }
4556
4557 // CHECK-LABEL: test_vmls_f32
4558 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4559 // CHECK-SWIFT: vsub.f32
4560 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_f32(float32x2_t a,float32x2_t b,float32x2_t c)4561 float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4562 return vmls_f32(a, b, c);
4563 }
4564
4565 // CHECK-LABEL: test_vmls_u8
4566 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)4567 uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
4568 return vmls_u8(a, b, c);
4569 }
4570
4571 // CHECK-LABEL: test_vmls_u16
4572 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4573 uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4574 return vmls_u16(a, b, c);
4575 }
4576
4577 // CHECK-LABEL: test_vmls_u32
4578 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4579 uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4580 return vmls_u32(a, b, c);
4581 }
4582
4583 // CHECK-LABEL: test_vmlsq_s8
4584 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)4585 int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
4586 return vmlsq_s8(a, b, c);
4587 }
4588
4589 // CHECK-LABEL: test_vmlsq_s16
4590 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)4591 int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
4592 return vmlsq_s16(a, b, c);
4593 }
4594
4595 // CHECK-LABEL: test_vmlsq_s32
4596 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)4597 int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
4598 return vmlsq_s32(a, b, c);
4599 }
4600
4601 // CHECK-LABEL: test_vmlsq_f32
4602 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
4603 // CHECK-SWIFT: vsub.f32
4604 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_f32(float32x4_t a,float32x4_t b,float32x4_t c)4605 float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
4606 return vmlsq_f32(a, b, c);
4607 }
4608
4609 // CHECK-LABEL: test_vmlsq_u8
4610 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)4611 uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
4612 return vmlsq_u8(a, b, c);
4613 }
4614
4615 // CHECK-LABEL: test_vmlsq_u16
4616 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)4617 uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
4618 return vmlsq_u16(a, b, c);
4619 }
4620
4621 // CHECK-LABEL: test_vmlsq_u32
4622 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)4623 uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
4624 return vmlsq_u32(a, b, c);
4625 }
4626
4627
4628 // CHECK-LABEL: test_vmlsl_s8
4629 // CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)4630 int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
4631 return vmlsl_s8(a, b, c);
4632 }
4633
4634 // CHECK-LABEL: test_vmlsl_s16
4635 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)4636 int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4637 return vmlsl_s16(a, b, c);
4638 }
4639
4640 // CHECK-LABEL: test_vmlsl_s32
4641 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)4642 int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4643 return vmlsl_s32(a, b, c);
4644 }
4645
4646 // CHECK-LABEL: test_vmlsl_u8
4647 // CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)4648 uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
4649 return vmlsl_u8(a, b, c);
4650 }
4651
4652 // CHECK-LABEL: test_vmlsl_u16
4653 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4654 uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4655 return vmlsl_u16(a, b, c);
4656 }
4657
4658 // CHECK-LABEL: test_vmlsl_u32
4659 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4660 uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4661 return vmlsl_u32(a, b, c);
4662 }
4663
4664
4665 // CHECK-LABEL: test_vmlsl_lane_s16
4666 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)4667 int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
4668 return vmlsl_lane_s16(a, b, c, 3);
4669 }
4670
4671 // CHECK-LABEL: test_vmlsl_lane_s32
4672 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)4673 int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
4674 return vmlsl_lane_s32(a, b, c, 1);
4675 }
4676
4677 // CHECK-LABEL: test_vmlsl_lane_u16
4678 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)4679 uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
4680 return vmlsl_lane_u16(a, b, c, 3);
4681 }
4682
4683 // CHECK-LABEL: test_vmlsl_lane_u32
4684 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsl_lane_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)4685 uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
4686 return vmlsl_lane_u32(a, b, c, 1);
4687 }
4688
4689
4690 // CHECK-LABEL: test_vmlsl_n_s16
4691 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)4692 int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
4693 return vmlsl_n_s16(a, b, c);
4694 }
4695
4696 // CHECK-LABEL: test_vmlsl_n_s32
4697 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)4698 int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
4699 return vmlsl_n_s32(a, b, c);
4700 }
4701
4702 // CHECK-LABEL: test_vmlsl_n_u16
4703 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)4704 uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
4705 return vmlsl_n_u16(a, b, c);
4706 }
4707
4708 // CHECK-LABEL: test_vmlsl_n_u32
4709 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmlsl_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)4710 uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
4711 return vmlsl_n_u32(a, b, c);
4712 }
4713
4714
4715 // CHECK-LABEL: test_vmls_lane_s16
4716 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_s16(int16x4_t a,int16x4_t b,int16x4_t c)4717 int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
4718 return vmls_lane_s16(a, b, c, 3);
4719 }
4720
4721 // CHECK-LABEL: test_vmls_lane_s32
4722 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_s32(int32x2_t a,int32x2_t b,int32x2_t c)4723 int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
4724 return vmls_lane_s32(a, b, c, 1);
4725 }
4726
4727 // CHECK-LABEL: test_vmls_lane_u16
4728 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)4729 uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
4730 return vmls_lane_u16(a, b, c, 3);
4731 }
4732
4733 // CHECK-LABEL: test_vmls_lane_u32
4734 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)4735 uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
4736 return vmls_lane_u32(a, b, c, 1);
4737 }
4738
4739 // CHECK-LABEL: test_vmls_lane_f32
4740 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4741 // CHECK-SWIFT: vsub.f32
4742 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmls_lane_f32(float32x2_t a,float32x2_t b,float32x2_t c)4743 float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
4744 return vmls_lane_f32(a, b, c, 1);
4745 }
4746
4747 // CHECK-LABEL: test_vmlsq_lane_s16
4748 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t c)4749 int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
4750 return vmlsq_lane_s16(a, b, c, 3);
4751 }
4752
4753 // CHECK-LABEL: test_vmlsq_lane_s32
4754 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t c)4755 int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
4756 return vmlsq_lane_s32(a, b, c, 1);
4757 }
4758
4759 // CHECK-LABEL: test_vmlsq_lane_u16
4760 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t c)4761 uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
4762 return vmlsq_lane_u16(a, b, c, 3);
4763 }
4764
4765 // CHECK-LABEL: test_vmlsq_lane_u32
4766 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t c)4767 uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
4768 return vmlsq_lane_u32(a, b, c, 1);
4769 }
4770
4771 // CHECK-LABEL: test_vmlsq_lane_f32
4772 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
4773 // CHECK-SWIFT: vsub.f32
4774 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmlsq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t c)4775 float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
4776 return vmlsq_lane_f32(a, b, c, 1);
4777 }
4778
4779
4780 // CHECK-LABEL: test_vmls_n_s16
4781 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_s16(int16x4_t a,int16x4_t b,int16_t c)4782 int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
4783 return vmls_n_s16(a, b, c);
4784 }
4785
4786 // CHECK-LABEL: test_vmls_n_s32
4787 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_s32(int32x2_t a,int32x2_t b,int32_t c)4788 int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
4789 return vmls_n_s32(a, b, c);
4790 }
4791
4792 // CHECK-LABEL: test_vmls_n_u16
4793 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)4794 uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
4795 return vmls_n_u16(a, b, c);
4796 }
4797
4798 // CHECK-LABEL: test_vmls_n_u32
4799 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)4800 uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
4801 return vmls_n_u32(a, b, c);
4802 }
4803
4804 // CHECK-LABEL: test_vmls_n_f32
4805 // CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
4806 // CHECK-SWIFT: vsub.f32
4807 // CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmls_n_f32(float32x2_t a,float32x2_t b,float32_t c)4808 float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
4809 return vmls_n_f32(a, b, c);
4810 }
4811
4812 // CHECK-LABEL: test_vmlsq_n_s16
4813 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_s16(int16x8_t a,int16x8_t b,int16_t c)4814 int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
4815 return vmlsq_n_s16(a, b, c);
4816 }
4817
4818 // CHECK-LABEL: test_vmlsq_n_s32
4819 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_s32(int32x4_t a,int32x4_t b,int32_t c)4820 int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
4821 return vmlsq_n_s32(a, b, c);
4822 }
4823
4824 // CHECK-LABEL: test_vmlsq_n_u16
4825 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)4826 uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
4827 return vmlsq_n_u16(a, b, c);
4828 }
4829
4830 // CHECK-LABEL: test_vmlsq_n_u32
4831 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)4832 uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
4833 return vmlsq_n_u32(a, b, c);
4834 }
4835
4836 // CHECK-LABEL: test_vmlsq_n_f32
4837 // CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
4838 // CHECK-SWIFT: vsub.f32
4839 // CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmlsq_n_f32(float32x4_t a,float32x4_t b,float32_t c)4840 float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
4841 return vmlsq_n_f32(a, b, c);
4842 }
4843
4844
4845 // CHECK-LABEL: test_vmovl_s8
4846 // CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s8(int8x8_t a)4847 int16x8_t test_vmovl_s8(int8x8_t a) {
4848 return vmovl_s8(a);
4849 }
4850
4851 // CHECK-LABEL: test_vmovl_s16
4852 // CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s16(int16x4_t a)4853 int32x4_t test_vmovl_s16(int16x4_t a) {
4854 return vmovl_s16(a);
4855 }
4856
4857 // CHECK-LABEL: test_vmovl_s32
4858 // CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_s32(int32x2_t a)4859 int64x2_t test_vmovl_s32(int32x2_t a) {
4860 return vmovl_s32(a);
4861 }
4862
4863 // CHECK-LABEL: test_vmovl_u8
4864 // CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u8(uint8x8_t a)4865 uint16x8_t test_vmovl_u8(uint8x8_t a) {
4866 return vmovl_u8(a);
4867 }
4868
4869 // CHECK-LABEL: test_vmovl_u16
4870 // CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u16(uint16x4_t a)4871 uint32x4_t test_vmovl_u16(uint16x4_t a) {
4872 return vmovl_u16(a);
4873 }
4874
4875 // CHECK-LABEL: test_vmovl_u32
4876 // CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}}
test_vmovl_u32(uint32x2_t a)4877 uint64x2_t test_vmovl_u32(uint32x2_t a) {
4878 return vmovl_u32(a);
4879 }
4880
4881
4882 // CHECK-LABEL: test_vmovn_s16
4883 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s16(int16x8_t a)4884 int8x8_t test_vmovn_s16(int16x8_t a) {
4885 return vmovn_s16(a);
4886 }
4887
4888 // CHECK-LABEL: test_vmovn_s32
4889 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s32(int32x4_t a)4890 int16x4_t test_vmovn_s32(int32x4_t a) {
4891 return vmovn_s32(a);
4892 }
4893
4894 // CHECK-LABEL: test_vmovn_s64
4895 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_s64(int64x2_t a)4896 int32x2_t test_vmovn_s64(int64x2_t a) {
4897 return vmovn_s64(a);
4898 }
4899
4900 // CHECK-LABEL: test_vmovn_u16
4901 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u16(uint16x8_t a)4902 uint8x8_t test_vmovn_u16(uint16x8_t a) {
4903 return vmovn_u16(a);
4904 }
4905
4906 // CHECK-LABEL: test_vmovn_u32
4907 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u32(uint32x4_t a)4908 uint16x4_t test_vmovn_u32(uint32x4_t a) {
4909 return vmovn_u32(a);
4910 }
4911
4912 // CHECK-LABEL: test_vmovn_u64
4913 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
test_vmovn_u64(uint64x2_t a)4914 uint32x2_t test_vmovn_u64(uint64x2_t a) {
4915 return vmovn_u64(a);
4916 }
4917
4918
4919 // CHECK-LABEL: test_vmov_n_u8
4920 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u8(uint8_t a)4921 uint8x8_t test_vmov_n_u8(uint8_t a) {
4922 return vmov_n_u8(a);
4923 }
4924
4925 // CHECK-LABEL: test_vmov_n_u16
4926 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_u16(uint16_t a)4927 uint16x4_t test_vmov_n_u16(uint16_t a) {
4928 return vmov_n_u16(a);
4929 }
4930
4931 // CHECK-LABEL: test_vmov_n_u32
4932 // CHECK: mov {{r[0-9]+}}
test_vmov_n_u32(uint32_t a)4933 uint32x2_t test_vmov_n_u32(uint32_t a) {
4934 return vmov_n_u32(a);
4935 }
4936
4937 // CHECK-LABEL: test_vmov_n_s8
4938 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s8(int8_t a)4939 int8x8_t test_vmov_n_s8(int8_t a) {
4940 return vmov_n_s8(a);
4941 }
4942
4943 // CHECK-LABEL: test_vmov_n_s16
4944 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_s16(int16_t a)4945 int16x4_t test_vmov_n_s16(int16_t a) {
4946 return vmov_n_s16(a);
4947 }
4948
4949 // CHECK-LABEL: test_vmov_n_s32
4950 // CHECK: mov {{r[0-9]+}}
test_vmov_n_s32(int32_t a)4951 int32x2_t test_vmov_n_s32(int32_t a) {
4952 return vmov_n_s32(a);
4953 }
4954
4955 // CHECK-LABEL: test_vmov_n_p8
4956 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p8(poly8_t a)4957 poly8x8_t test_vmov_n_p8(poly8_t a) {
4958 return vmov_n_p8(a);
4959 }
4960
4961 // CHECK-LABEL: test_vmov_n_p16
4962 // CHECK: vmov {{r[0-9]+}}
test_vmov_n_p16(poly16_t a)4963 poly16x4_t test_vmov_n_p16(poly16_t a) {
4964 return vmov_n_p16(a);
4965 }
4966
4967 // CHECK-LABEL: test_vmov_n_f16
4968 // CHECK: vld1.16 {{{d[0-9]+\[\]}}}
test_vmov_n_f16(float16_t * a)4969 float16x4_t test_vmov_n_f16(float16_t *a) {
4970 return vmov_n_f16(*a);
4971 }
4972
4973 // CHECK-LABEL: test_vmov_n_f32
4974 // CHECK: mov {{r[0-9]+}}
test_vmov_n_f32(float32_t a)4975 float32x2_t test_vmov_n_f32(float32_t a) {
4976 return vmov_n_f32(a);
4977 }
4978
4979 // CHECK-LABEL: test_vmovq_n_u8
4980 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u8(uint8_t a)4981 uint8x16_t test_vmovq_n_u8(uint8_t a) {
4982 return vmovq_n_u8(a);
4983 }
4984
4985 // CHECK-LABEL: test_vmovq_n_u16
4986 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u16(uint16_t a)4987 uint16x8_t test_vmovq_n_u16(uint16_t a) {
4988 return vmovq_n_u16(a);
4989 }
4990
4991 // CHECK-LABEL: test_vmovq_n_u32
4992 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u32(uint32_t a)4993 uint32x4_t test_vmovq_n_u32(uint32_t a) {
4994 return vmovq_n_u32(a);
4995 }
4996
4997 // CHECK-LABEL: test_vmovq_n_s8
4998 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s8(int8_t a)4999 int8x16_t test_vmovq_n_s8(int8_t a) {
5000 return vmovq_n_s8(a);
5001 }
5002
5003 // CHECK-LABEL: test_vmovq_n_s16
5004 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s16(int16_t a)5005 int16x8_t test_vmovq_n_s16(int16_t a) {
5006 return vmovq_n_s16(a);
5007 }
5008
5009 // CHECK-LABEL: test_vmovq_n_s32
5010 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s32(int32_t a)5011 int32x4_t test_vmovq_n_s32(int32_t a) {
5012 return vmovq_n_s32(a);
5013 }
5014
5015 // CHECK-LABEL: test_vmovq_n_p8
5016 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p8(poly8_t a)5017 poly8x16_t test_vmovq_n_p8(poly8_t a) {
5018 return vmovq_n_p8(a);
5019 }
5020
5021 // CHECK-LABEL: test_vmovq_n_p16
5022 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_p16(poly16_t a)5023 poly16x8_t test_vmovq_n_p16(poly16_t a) {
5024 return vmovq_n_p16(a);
5025 }
5026
5027 // CHECK-LABEL: test_vmovq_n_f16
5028 // CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}}
test_vmovq_n_f16(float16_t * a)5029 float16x8_t test_vmovq_n_f16(float16_t *a) {
5030 return vmovq_n_f16(*a);
5031 }
5032
5033 // CHECK-LABEL: test_vmovq_n_f32
5034 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_f32(float32_t a)5035 float32x4_t test_vmovq_n_f32(float32_t a) {
5036 return vmovq_n_f32(a);
5037 }
5038
5039 // CHECK-LABEL: test_vmov_n_s64
5040 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5041 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_s64(int64_t a)5042 int64x1_t test_vmov_n_s64(int64_t a) {
5043 int64x1_t tmp = vmov_n_s64(a);
5044 return vadd_s64(tmp, tmp);
5045 }
5046
5047 // CHECK-LABEL: test_vmov_n_u64
5048 // CHECK: vmov.32 [[REG:d[0-9]+]][0], r0
5049 // CHECK: vmov.32 [[REG]][1], r1
test_vmov_n_u64(uint64_t a)5050 uint64x1_t test_vmov_n_u64(uint64_t a) {
5051 uint64x1_t tmp = vmov_n_u64(a);
5052 return vadd_u64(tmp, tmp);
5053 }
5054
5055 // CHECK-LABEL: test_vmovq_n_s64
5056 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_s64(int64_t a)5057 int64x2_t test_vmovq_n_s64(int64_t a) {
5058 return vmovq_n_s64(a);
5059 }
5060
5061 // CHECK-LABEL: test_vmovq_n_u64
5062 // CHECK: vmov {{r[0-9]+}}
test_vmovq_n_u64(uint64_t a)5063 uint64x2_t test_vmovq_n_u64(uint64_t a) {
5064 return vmovq_n_u64(a);
5065 }
5066
5067
5068 // CHECK-LABEL: test_vmul_s8
5069 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s8(int8x8_t a,int8x8_t b)5070 int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) {
5071 return vmul_s8(a, b);
5072 }
5073
5074 // CHECK-LABEL: test_vmul_s16
5075 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s16(int16x4_t a,int16x4_t b)5076 int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) {
5077 return vmul_s16(a, b);
5078 }
5079
5080 // CHECK-LABEL: test_vmul_s32
5081 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_s32(int32x2_t a,int32x2_t b)5082 int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) {
5083 return vmul_s32(a, b);
5084 }
5085
5086 // CHECK-LABEL: test_vmul_f32
5087 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_f32(float32x2_t a,float32x2_t b)5088 float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) {
5089 return vmul_f32(a, b);
5090 }
5091
5092 // CHECK-LABEL: test_vmul_u8
5093 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u8(uint8x8_t a,uint8x8_t b)5094 uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) {
5095 return vmul_u8(a, b);
5096 }
5097
5098 // CHECK-LABEL: test_vmul_u16
5099 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u16(uint16x4_t a,uint16x4_t b)5100 uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) {
5101 return vmul_u16(a, b);
5102 }
5103
5104 // CHECK-LABEL: test_vmul_u32
5105 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_u32(uint32x2_t a,uint32x2_t b)5106 uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) {
5107 return vmul_u32(a, b);
5108 }
5109
5110 // CHECK-LABEL: test_vmulq_s8
5111 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s8(int8x16_t a,int8x16_t b)5112 int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) {
5113 return vmulq_s8(a, b);
5114 }
5115
5116 // CHECK-LABEL: test_vmulq_s16
5117 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s16(int16x8_t a,int16x8_t b)5118 int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) {
5119 return vmulq_s16(a, b);
5120 }
5121
5122 // CHECK-LABEL: test_vmulq_s32
5123 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_s32(int32x4_t a,int32x4_t b)5124 int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) {
5125 return vmulq_s32(a, b);
5126 }
5127
5128 // CHECK-LABEL: test_vmulq_f32
5129 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_f32(float32x4_t a,float32x4_t b)5130 float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) {
5131 return vmulq_f32(a, b);
5132 }
5133
5134 // CHECK-LABEL: test_vmulq_u8
5135 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u8(uint8x16_t a,uint8x16_t b)5136 uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) {
5137 return vmulq_u8(a, b);
5138 }
5139
5140 // CHECK-LABEL: test_vmulq_u16
5141 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u16(uint16x8_t a,uint16x8_t b)5142 uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) {
5143 return vmulq_u16(a, b);
5144 }
5145
5146 // CHECK-LABEL: test_vmulq_u32
5147 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_u32(uint32x4_t a,uint32x4_t b)5148 uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) {
5149 return vmulq_u32(a, b);
5150 }
5151
5152
5153 // CHECK-LABEL: test_vmull_s8
5154 // CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s8(int8x8_t a,int8x8_t b)5155 int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) {
5156 return vmull_s8(a, b);
5157 }
5158
5159 // CHECK-LABEL: test_vmull_s16
5160 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s16(int16x4_t a,int16x4_t b)5161 int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) {
5162 return vmull_s16(a, b);
5163 }
5164
5165 // CHECK-LABEL: test_vmull_s32
5166 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_s32(int32x2_t a,int32x2_t b)5167 int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) {
5168 return vmull_s32(a, b);
5169 }
5170
5171 // CHECK-LABEL: test_vmull_u8
5172 // CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u8(uint8x8_t a,uint8x8_t b)5173 uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) {
5174 return vmull_u8(a, b);
5175 }
5176
5177 // CHECK-LABEL: test_vmull_u16
5178 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u16(uint16x4_t a,uint16x4_t b)5179 uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) {
5180 return vmull_u16(a, b);
5181 }
5182
5183 // CHECK-LABEL: test_vmull_u32
5184 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_u32(uint32x2_t a,uint32x2_t b)5185 uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) {
5186 return vmull_u32(a, b);
5187 }
5188
5189 // CHECK-LABEL: test_vmull_p8
5190 // CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_p8(poly8x8_t a,poly8x8_t b)5191 poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) {
5192 return vmull_p8(a, b);
5193 }
5194
5195
5196 // CHECK-LABEL: test_vmull_lane_s16
5197 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s16(int16x4_t a,int16x4_t b)5198 int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) {
5199 return vmull_lane_s16(a, b, 3);
5200 }
5201
5202 // CHECK-LABEL: test_vmull_lane_s32
5203 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_s32(int32x2_t a,int32x2_t b)5204 int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) {
5205 return vmull_lane_s32(a, b, 1);
5206 }
5207
5208 // CHECK-LABEL: test_vmull_lane_u16
5209 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u16(uint16x4_t a,uint16x4_t b)5210 uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) {
5211 return vmull_lane_u16(a, b, 3);
5212 }
5213
5214 // CHECK-LABEL: test_vmull_lane_u32
5215 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmull_lane_u32(uint32x2_t a,uint32x2_t b)5216 uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) {
5217 return vmull_lane_u32(a, b, 1);
5218 }
5219
5220
5221 // CHECK-LABEL: test_vmull_n_s16
5222 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s16(int16x4_t a,int16_t b)5223 int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
5224 return vmull_n_s16(a, b);
5225 }
5226
5227 // CHECK-LABEL: test_vmull_n_s32
5228 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_s32(int32x2_t a,int32_t b)5229 int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
5230 return vmull_n_s32(a, b);
5231 }
5232
5233 // CHECK-LABEL: test_vmull_n_u16
5234 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u16(uint16x4_t a,uint16_t b)5235 uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
5236 return vmull_n_u16(a, b);
5237 }
5238
5239 // CHECK-LABEL: test_vmull_n_u32
5240 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmull_n_u32(uint32x2_t a,uint32_t b)5241 uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
5242 return vmull_n_u32(a, b);
5243 }
5244
5245
5246 // CHECK-LABEL: test_vmul_p8
5247 // CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_p8(poly8x8_t a,poly8x8_t b)5248 poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) {
5249 return vmul_p8(a, b);
5250 }
5251
5252 // CHECK-LABEL: test_vmulq_p8
5253 // CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_p8(poly8x16_t a,poly8x16_t b)5254 poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) {
5255 return vmulq_p8(a, b);
5256 }
5257
5258
5259 // CHECK-LABEL: test_vmul_lane_s16
5260 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s16(int16x4_t a,int16x4_t b)5261 int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) {
5262 return vmul_lane_s16(a, b, 3);
5263 }
5264
5265 // CHECK-LABEL: test_vmul_lane_s32
5266 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_s32(int32x2_t a,int32x2_t b)5267 int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) {
5268 return vmul_lane_s32(a, b, 1);
5269 }
5270
5271 // CHECK-LABEL: test_vmul_lane_f32
5272 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_f32(float32x2_t a,float32x2_t b)5273 float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) {
5274 return vmul_lane_f32(a, b, 1);
5275 }
5276
5277 // CHECK-LABEL: test_vmul_lane_u16
5278 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u16(uint16x4_t a,uint16x4_t b)5279 uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) {
5280 return vmul_lane_u16(a, b, 3);
5281 }
5282
5283 // CHECK-LABEL: test_vmul_lane_u32
5284 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmul_lane_u32(uint32x2_t a,uint32x2_t b)5285 uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) {
5286 return vmul_lane_u32(a, b, 1);
5287 }
5288
5289 // CHECK-LABEL: test_vmulq_lane_s16
5290 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s16(int16x8_t a,int16x4_t b)5291 int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) {
5292 return vmulq_lane_s16(a, b, 3);
5293 }
5294
5295 // CHECK-LABEL: test_vmulq_lane_s32
5296 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_s32(int32x4_t a,int32x2_t b)5297 int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) {
5298 return vmulq_lane_s32(a, b, 1);
5299 }
5300
5301 // CHECK-LABEL: test_vmulq_lane_f32
5302 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_f32(float32x4_t a,float32x2_t b)5303 float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) {
5304 return vmulq_lane_f32(a, b, 1);
5305 }
5306
5307 // CHECK-LABEL: test_vmulq_lane_u16
5308 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u16(uint16x8_t a,uint16x4_t b)5309 uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) {
5310 return vmulq_lane_u16(a, b, 3);
5311 }
5312
5313 // CHECK-LABEL: test_vmulq_lane_u32
5314 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vmulq_lane_u32(uint32x4_t a,uint32x2_t b)5315 uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) {
5316 return vmulq_lane_u32(a, b, 1);
5317 }
5318
5319
5320 // CHECK-LABEL: test_vmul_n_s16
5321 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s16(int16x4_t a,int16_t b)5322 int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
5323 return vmul_n_s16(a, b);
5324 }
5325
5326 // CHECK-LABEL: test_vmul_n_s32
5327 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_s32(int32x2_t a,int32_t b)5328 int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
5329 return vmul_n_s32(a, b);
5330 }
5331
5332 // CHECK-LABEL: test_vmul_n_f32
5333 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_f32(float32x2_t a,float32_t b)5334 float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
5335 return vmul_n_f32(a, b);
5336 }
5337
5338 // CHECK-LABEL: test_vmul_n_u16
5339 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u16(uint16x4_t a,uint16_t b)5340 uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
5341 return vmul_n_u16(a, b);
5342 }
5343
5344 // CHECK-LABEL: test_vmul_n_u32
5345 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vmul_n_u32(uint32x2_t a,uint32_t b)5346 uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
5347 return vmul_n_u32(a, b);
5348 }
5349
5350 // CHECK-LABEL: test_vmulq_n_s16
5351 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s16(int16x8_t a,int16_t b)5352 int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
5353 return vmulq_n_s16(a, b);
5354 }
5355
5356 // CHECK-LABEL: test_vmulq_n_s32
5357 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_s32(int32x4_t a,int32_t b)5358 int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
5359 return vmulq_n_s32(a, b);
5360 }
5361
5362 // CHECK-LABEL: test_vmulq_n_f32
5363 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0]
test_vmulq_n_f32(float32x4_t a,float32_t b)5364 float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
5365 return vmulq_n_f32(a, b);
5366 }
5367
5368 // CHECK-LABEL: test_vmulq_n_u16
5369 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u16(uint16x8_t a,uint16_t b)5370 uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
5371 return vmulq_n_u16(a, b);
5372 }
5373
5374 // CHECK-LABEL: test_vmulq_n_u32
5375 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vmulq_n_u32(uint32x4_t a,uint32_t b)5376 uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
5377 return vmulq_n_u32(a, b);
5378 }
5379
5380
5381 // CHECK-LABEL: test_vmvn_s8
5382 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s8(int8x8_t a)5383 int8x8_t test_vmvn_s8(int8x8_t a) {
5384 return vmvn_s8(a);
5385 }
5386
5387 // CHECK-LABEL: test_vmvn_s16
5388 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s16(int16x4_t a)5389 int16x4_t test_vmvn_s16(int16x4_t a) {
5390 return vmvn_s16(a);
5391 }
5392
5393 // CHECK-LABEL: test_vmvn_s32
5394 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_s32(int32x2_t a)5395 int32x2_t test_vmvn_s32(int32x2_t a) {
5396 return vmvn_s32(a);
5397 }
5398
5399 // CHECK-LABEL: test_vmvn_u8
5400 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u8(uint8x8_t a)5401 uint8x8_t test_vmvn_u8(uint8x8_t a) {
5402 return vmvn_u8(a);
5403 }
5404
5405 // CHECK-LABEL: test_vmvn_u16
5406 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u16(uint16x4_t a)5407 uint16x4_t test_vmvn_u16(uint16x4_t a) {
5408 return vmvn_u16(a);
5409 }
5410
5411 // CHECK-LABEL: test_vmvn_u32
5412 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_u32(uint32x2_t a)5413 uint32x2_t test_vmvn_u32(uint32x2_t a) {
5414 return vmvn_u32(a);
5415 }
5416
5417 // CHECK-LABEL: test_vmvn_p8
5418 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
test_vmvn_p8(poly8x8_t a)5419 poly8x8_t test_vmvn_p8(poly8x8_t a) {
5420 return vmvn_p8(a);
5421 }
5422
5423 // CHECK-LABEL: test_vmvnq_s8
5424 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s8(int8x16_t a)5425 int8x16_t test_vmvnq_s8(int8x16_t a) {
5426 return vmvnq_s8(a);
5427 }
5428
5429 // CHECK-LABEL: test_vmvnq_s16
5430 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s16(int16x8_t a)5431 int16x8_t test_vmvnq_s16(int16x8_t a) {
5432 return vmvnq_s16(a);
5433 }
5434
5435 // CHECK-LABEL: test_vmvnq_s32
5436 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_s32(int32x4_t a)5437 int32x4_t test_vmvnq_s32(int32x4_t a) {
5438 return vmvnq_s32(a);
5439 }
5440
5441 // CHECK-LABEL: test_vmvnq_u8
5442 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u8(uint8x16_t a)5443 uint8x16_t test_vmvnq_u8(uint8x16_t a) {
5444 return vmvnq_u8(a);
5445 }
5446
5447 // CHECK-LABEL: test_vmvnq_u16
5448 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u16(uint16x8_t a)5449 uint16x8_t test_vmvnq_u16(uint16x8_t a) {
5450 return vmvnq_u16(a);
5451 }
5452
5453 // CHECK-LABEL: test_vmvnq_u32
5454 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_u32(uint32x4_t a)5455 uint32x4_t test_vmvnq_u32(uint32x4_t a) {
5456 return vmvnq_u32(a);
5457 }
5458
5459 // CHECK-LABEL: test_vmvnq_p8
5460 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
test_vmvnq_p8(poly8x16_t a)5461 poly8x16_t test_vmvnq_p8(poly8x16_t a) {
5462 return vmvnq_p8(a);
5463 }
5464
5465
5466 // CHECK-LABEL: test_vneg_s8
5467 // CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s8(int8x8_t a)5468 int8x8_t test_vneg_s8(int8x8_t a) {
5469 return vneg_s8(a);
5470 }
5471
5472 // CHECK-LABEL: test_vneg_s16
5473 // CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s16(int16x4_t a)5474 int16x4_t test_vneg_s16(int16x4_t a) {
5475 return vneg_s16(a);
5476 }
5477
5478 // CHECK-LABEL: test_vneg_s32
5479 // CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_s32(int32x2_t a)5480 int32x2_t test_vneg_s32(int32x2_t a) {
5481 return vneg_s32(a);
5482 }
5483
5484 // CHECK-LABEL: test_vneg_f32
5485 // CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vneg_f32(float32x2_t a)5486 float32x2_t test_vneg_f32(float32x2_t a) {
5487 return vneg_f32(a);
5488 }
5489
5490 // CHECK-LABEL: test_vnegq_s8
5491 // CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s8(int8x16_t a)5492 int8x16_t test_vnegq_s8(int8x16_t a) {
5493 return vnegq_s8(a);
5494 }
5495
5496 // CHECK-LABEL: test_vnegq_s16
5497 // CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s16(int16x8_t a)5498 int16x8_t test_vnegq_s16(int16x8_t a) {
5499 return vnegq_s16(a);
5500 }
5501
5502 // CHECK-LABEL: test_vnegq_s32
5503 // CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_s32(int32x4_t a)5504 int32x4_t test_vnegq_s32(int32x4_t a) {
5505 return vnegq_s32(a);
5506 }
5507
5508 // CHECK-LABEL: test_vnegq_f32
5509 // CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vnegq_f32(float32x4_t a)5510 float32x4_t test_vnegq_f32(float32x4_t a) {
5511 return vnegq_f32(a);
5512 }
5513
5514
5515 // CHECK-LABEL: test_vorn_s8
5516 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s8(int8x8_t a,int8x8_t b)5517 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
5518 return vorn_s8(a, b);
5519 }
5520
5521 // CHECK-LABEL: test_vorn_s16
5522 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s16(int16x4_t a,int16x4_t b)5523 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
5524 return vorn_s16(a, b);
5525 }
5526
5527 // CHECK-LABEL: test_vorn_s32
5528 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s32(int32x2_t a,int32x2_t b)5529 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
5530 return vorn_s32(a, b);
5531 }
5532
5533 // CHECK-LABEL: test_vorn_s64
5534 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_s64(int64x1_t a,int64x1_t b)5535 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
5536 return vorn_s64(a, b);
5537 }
5538
5539 // CHECK-LABEL: test_vorn_u8
5540 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u8(uint8x8_t a,uint8x8_t b)5541 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
5542 return vorn_u8(a, b);
5543 }
5544
5545 // CHECK-LABEL: test_vorn_u16
5546 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u16(uint16x4_t a,uint16x4_t b)5547 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
5548 return vorn_u16(a, b);
5549 }
5550
5551 // CHECK-LABEL: test_vorn_u32
5552 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u32(uint32x2_t a,uint32x2_t b)5553 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
5554 return vorn_u32(a, b);
5555 }
5556
5557 // CHECK-LABEL: test_vorn_u64
5558 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorn_u64(uint64x1_t a,uint64x1_t b)5559 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
5560 return vorn_u64(a, b);
5561 }
5562
5563 // CHECK-LABEL: test_vornq_s8
5564 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s8(int8x16_t a,int8x16_t b)5565 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
5566 return vornq_s8(a, b);
5567 }
5568
5569 // CHECK-LABEL: test_vornq_s16
5570 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s16(int16x8_t a,int16x8_t b)5571 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
5572 return vornq_s16(a, b);
5573 }
5574
5575 // CHECK-LABEL: test_vornq_s32
5576 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s32(int32x4_t a,int32x4_t b)5577 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
5578 return vornq_s32(a, b);
5579 }
5580
5581 // CHECK-LABEL: test_vornq_s64
5582 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_s64(int64x2_t a,int64x2_t b)5583 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
5584 return vornq_s64(a, b);
5585 }
5586
5587 // CHECK-LABEL: test_vornq_u8
5588 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u8(uint8x16_t a,uint8x16_t b)5589 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
5590 return vornq_u8(a, b);
5591 }
5592
5593 // CHECK-LABEL: test_vornq_u16
5594 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u16(uint16x8_t a,uint16x8_t b)5595 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
5596 return vornq_u16(a, b);
5597 }
5598
5599 // CHECK-LABEL: test_vornq_u32
5600 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u32(uint32x4_t a,uint32x4_t b)5601 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
5602 return vornq_u32(a, b);
5603 }
5604
5605 // CHECK-LABEL: test_vornq_u64
5606 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vornq_u64(uint64x2_t a,uint64x2_t b)5607 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
5608 return vornq_u64(a, b);
5609 }
5610
5611
5612 // CHECK-LABEL: test_vorr_s8
5613 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s8(int8x8_t a,int8x8_t b)5614 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
5615 return vorr_s8(a, b);
5616 }
5617
5618 // CHECK-LABEL: test_vorr_s16
5619 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s16(int16x4_t a,int16x4_t b)5620 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
5621 return vorr_s16(a, b);
5622 }
5623
5624 // CHECK-LABEL: test_vorr_s32
5625 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s32(int32x2_t a,int32x2_t b)5626 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
5627 return vorr_s32(a, b);
5628 }
5629
5630 // CHECK-LABEL: test_vorr_s64
5631 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_s64(int64x1_t a,int64x1_t b)5632 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
5633 return vorr_s64(a, b);
5634 }
5635
5636 // CHECK-LABEL: test_vorr_u8
5637 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u8(uint8x8_t a,uint8x8_t b)5638 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
5639 return vorr_u8(a, b);
5640 }
5641
5642 // CHECK-LABEL: test_vorr_u16
5643 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u16(uint16x4_t a,uint16x4_t b)5644 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
5645 return vorr_u16(a, b);
5646 }
5647
5648 // CHECK-LABEL: test_vorr_u32
5649 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u32(uint32x2_t a,uint32x2_t b)5650 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
5651 return vorr_u32(a, b);
5652 }
5653
5654 // CHECK-LABEL: test_vorr_u64
5655 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vorr_u64(uint64x1_t a,uint64x1_t b)5656 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
5657 return vorr_u64(a, b);
5658 }
5659
5660 // CHECK-LABEL: test_vorrq_s8
5661 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s8(int8x16_t a,int8x16_t b)5662 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
5663 return vorrq_s8(a, b);
5664 }
5665
5666 // CHECK-LABEL: test_vorrq_s16
5667 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s16(int16x8_t a,int16x8_t b)5668 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
5669 return vorrq_s16(a, b);
5670 }
5671
5672 // CHECK-LABEL: test_vorrq_s32
5673 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s32(int32x4_t a,int32x4_t b)5674 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
5675 return vorrq_s32(a, b);
5676 }
5677
5678 // CHECK-LABEL: test_vorrq_s64
5679 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_s64(int64x2_t a,int64x2_t b)5680 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
5681 return vorrq_s64(a, b);
5682 }
5683
5684 // CHECK-LABEL: test_vorrq_u8
5685 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u8(uint8x16_t a,uint8x16_t b)5686 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
5687 return vorrq_u8(a, b);
5688 }
5689
5690 // CHECK-LABEL: test_vorrq_u16
5691 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u16(uint16x8_t a,uint16x8_t b)5692 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
5693 return vorrq_u16(a, b);
5694 }
5695
5696 // CHECK-LABEL: test_vorrq_u32
5697 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u32(uint32x4_t a,uint32x4_t b)5698 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
5699 return vorrq_u32(a, b);
5700 }
5701
5702 // CHECK-LABEL: test_vorrq_u64
5703 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vorrq_u64(uint64x2_t a,uint64x2_t b)5704 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
5705 return vorrq_u64(a, b);
5706 }
5707
5708
5709 // CHECK-LABEL: test_vpadal_s8
5710 // CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s8(int16x4_t a,int8x8_t b)5711 int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) {
5712 return vpadal_s8(a, b);
5713 }
5714
5715 // CHECK-LABEL: test_vpadal_s16
5716 // CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s16(int32x2_t a,int16x4_t b)5717 int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) {
5718 return vpadal_s16(a, b);
5719 }
5720
5721 // CHECK-LABEL: test_vpadal_s32
5722 // CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_s32(int64x1_t a,int32x2_t b)5723 int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) {
5724 return vpadal_s32(a, b);
5725 }
5726
5727 // CHECK-LABEL: test_vpadal_u8
5728 // CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u8(uint16x4_t a,uint8x8_t b)5729 uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) {
5730 return vpadal_u8(a, b);
5731 }
5732
5733 // CHECK-LABEL: test_vpadal_u16
5734 // CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u16(uint32x2_t a,uint16x4_t b)5735 uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) {
5736 return vpadal_u16(a, b);
5737 }
5738
5739 // CHECK-LABEL: test_vpadal_u32
5740 // CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpadal_u32(uint64x1_t a,uint32x2_t b)5741 uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) {
5742 return vpadal_u32(a, b);
5743 }
5744
5745 // CHECK-LABEL: test_vpadalq_s8
5746 // CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s8(int16x8_t a,int8x16_t b)5747 int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) {
5748 return vpadalq_s8(a, b);
5749 }
5750
5751 // CHECK-LABEL: test_vpadalq_s16
5752 // CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s16(int32x4_t a,int16x8_t b)5753 int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) {
5754 return vpadalq_s16(a, b);
5755 }
5756
5757 // CHECK-LABEL: test_vpadalq_s32
5758 // CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_s32(int64x2_t a,int32x4_t b)5759 int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) {
5760 return vpadalq_s32(a, b);
5761 }
5762
5763 // CHECK-LABEL: test_vpadalq_u8
5764 // CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u8(uint16x8_t a,uint8x16_t b)5765 uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) {
5766 return vpadalq_u8(a, b);
5767 }
5768
5769 // CHECK-LABEL: test_vpadalq_u16
5770 // CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u16(uint32x4_t a,uint16x8_t b)5771 uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) {
5772 return vpadalq_u16(a, b);
5773 }
5774
5775 // CHECK-LABEL: test_vpadalq_u32
5776 // CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpadalq_u32(uint64x2_t a,uint32x4_t b)5777 uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) {
5778 return vpadalq_u32(a, b);
5779 }
5780
5781
5782 // CHECK-LABEL: test_vpadd_s8
5783 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s8(int8x8_t a,int8x8_t b)5784 int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) {
5785 return vpadd_s8(a, b);
5786 }
5787
5788 // CHECK-LABEL: test_vpadd_s16
5789 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s16(int16x4_t a,int16x4_t b)5790 int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) {
5791 return vpadd_s16(a, b);
5792 }
5793
5794 // CHECK-LABEL: test_vpadd_s32
5795 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_s32(int32x2_t a,int32x2_t b)5796 int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) {
5797 return vpadd_s32(a, b);
5798 }
5799
5800 // CHECK-LABEL: test_vpadd_u8
5801 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u8(uint8x8_t a,uint8x8_t b)5802 uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) {
5803 return vpadd_u8(a, b);
5804 }
5805
5806 // CHECK-LABEL: test_vpadd_u16
5807 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u16(uint16x4_t a,uint16x4_t b)5808 uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) {
5809 return vpadd_u16(a, b);
5810 }
5811
5812 // CHECK-LABEL: test_vpadd_u32
5813 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_u32(uint32x2_t a,uint32x2_t b)5814 uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) {
5815 return vpadd_u32(a, b);
5816 }
5817
5818 // CHECK-LABEL: test_vpadd_f32
5819 // CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpadd_f32(float32x2_t a,float32x2_t b)5820 float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) {
5821 return vpadd_f32(a, b);
5822 }
5823
5824
5825 // CHECK-LABEL: test_vpaddl_s8
5826 // CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s8(int8x8_t a)5827 int16x4_t test_vpaddl_s8(int8x8_t a) {
5828 return vpaddl_s8(a);
5829 }
5830
5831 // CHECK-LABEL: test_vpaddl_s16
5832 // CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s16(int16x4_t a)5833 int32x2_t test_vpaddl_s16(int16x4_t a) {
5834 return vpaddl_s16(a);
5835 }
5836
5837 // CHECK-LABEL: test_vpaddl_s32
5838 // CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_s32(int32x2_t a)5839 int64x1_t test_vpaddl_s32(int32x2_t a) {
5840 return vpaddl_s32(a);
5841 }
5842
5843 // CHECK-LABEL: test_vpaddl_u8
5844 // CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u8(uint8x8_t a)5845 uint16x4_t test_vpaddl_u8(uint8x8_t a) {
5846 return vpaddl_u8(a);
5847 }
5848
5849 // CHECK-LABEL: test_vpaddl_u16
5850 // CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u16(uint16x4_t a)5851 uint32x2_t test_vpaddl_u16(uint16x4_t a) {
5852 return vpaddl_u16(a);
5853 }
5854
5855 // CHECK-LABEL: test_vpaddl_u32
5856 // CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vpaddl_u32(uint32x2_t a)5857 uint64x1_t test_vpaddl_u32(uint32x2_t a) {
5858 return vpaddl_u32(a);
5859 }
5860
5861 // CHECK-LABEL: test_vpaddlq_s8
5862 // CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s8(int8x16_t a)5863 int16x8_t test_vpaddlq_s8(int8x16_t a) {
5864 return vpaddlq_s8(a);
5865 }
5866
5867 // CHECK-LABEL: test_vpaddlq_s16
5868 // CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s16(int16x8_t a)5869 int32x4_t test_vpaddlq_s16(int16x8_t a) {
5870 return vpaddlq_s16(a);
5871 }
5872
5873 // CHECK-LABEL: test_vpaddlq_s32
5874 // CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_s32(int32x4_t a)5875 int64x2_t test_vpaddlq_s32(int32x4_t a) {
5876 return vpaddlq_s32(a);
5877 }
5878
5879 // CHECK-LABEL: test_vpaddlq_u8
5880 // CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u8(uint8x16_t a)5881 uint16x8_t test_vpaddlq_u8(uint8x16_t a) {
5882 return vpaddlq_u8(a);
5883 }
5884
5885 // CHECK-LABEL: test_vpaddlq_u16
5886 // CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u16(uint16x8_t a)5887 uint32x4_t test_vpaddlq_u16(uint16x8_t a) {
5888 return vpaddlq_u16(a);
5889 }
5890
5891 // CHECK-LABEL: test_vpaddlq_u32
5892 // CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vpaddlq_u32(uint32x4_t a)5893 uint64x2_t test_vpaddlq_u32(uint32x4_t a) {
5894 return vpaddlq_u32(a);
5895 }
5896
5897
5898 // CHECK-LABEL: test_vpmax_s8
5899 // CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s8(int8x8_t a,int8x8_t b)5900 int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) {
5901 return vpmax_s8(a, b);
5902 }
5903
5904 // CHECK-LABEL: test_vpmax_s16
5905 // CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s16(int16x4_t a,int16x4_t b)5906 int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) {
5907 return vpmax_s16(a, b);
5908 }
5909
5910 // CHECK-LABEL: test_vpmax_s32
5911 // CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_s32(int32x2_t a,int32x2_t b)5912 int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) {
5913 return vpmax_s32(a, b);
5914 }
5915
5916 // CHECK-LABEL: test_vpmax_u8
5917 // CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u8(uint8x8_t a,uint8x8_t b)5918 uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) {
5919 return vpmax_u8(a, b);
5920 }
5921
5922 // CHECK-LABEL: test_vpmax_u16
5923 // CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u16(uint16x4_t a,uint16x4_t b)5924 uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) {
5925 return vpmax_u16(a, b);
5926 }
5927
5928 // CHECK-LABEL: test_vpmax_u32
5929 // CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_u32(uint32x2_t a,uint32x2_t b)5930 uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) {
5931 return vpmax_u32(a, b);
5932 }
5933
5934 // CHECK-LABEL: test_vpmax_f32
5935 // CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmax_f32(float32x2_t a,float32x2_t b)5936 float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) {
5937 return vpmax_f32(a, b);
5938 }
5939
5940
5941 // CHECK-LABEL: test_vpmin_s8
5942 // CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s8(int8x8_t a,int8x8_t b)5943 int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) {
5944 return vpmin_s8(a, b);
5945 }
5946
5947 // CHECK-LABEL: test_vpmin_s16
5948 // CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s16(int16x4_t a,int16x4_t b)5949 int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) {
5950 return vpmin_s16(a, b);
5951 }
5952
5953 // CHECK-LABEL: test_vpmin_s32
5954 // CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_s32(int32x2_t a,int32x2_t b)5955 int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) {
5956 return vpmin_s32(a, b);
5957 }
5958
5959 // CHECK-LABEL: test_vpmin_u8
5960 // CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u8(uint8x8_t a,uint8x8_t b)5961 uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) {
5962 return vpmin_u8(a, b);
5963 }
5964
5965 // CHECK-LABEL: test_vpmin_u16
5966 // CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u16(uint16x4_t a,uint16x4_t b)5967 uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) {
5968 return vpmin_u16(a, b);
5969 }
5970
5971 // CHECK-LABEL: test_vpmin_u32
5972 // CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_u32(uint32x2_t a,uint32x2_t b)5973 uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) {
5974 return vpmin_u32(a, b);
5975 }
5976
5977 // CHECK-LABEL: test_vpmin_f32
5978 // CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vpmin_f32(float32x2_t a,float32x2_t b)5979 float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) {
5980 return vpmin_f32(a, b);
5981 }
5982
5983
5984 // CHECK-LABEL: test_vqabs_s8
5985 // CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s8(int8x8_t a)5986 int8x8_t test_vqabs_s8(int8x8_t a) {
5987 return vqabs_s8(a);
5988 }
5989
5990 // CHECK-LABEL: test_vqabs_s16
5991 // CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s16(int16x4_t a)5992 int16x4_t test_vqabs_s16(int16x4_t a) {
5993 return vqabs_s16(a);
5994 }
5995
5996 // CHECK-LABEL: test_vqabs_s32
5997 // CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqabs_s32(int32x2_t a)5998 int32x2_t test_vqabs_s32(int32x2_t a) {
5999 return vqabs_s32(a);
6000 }
6001
6002 // CHECK-LABEL: test_vqabsq_s8
6003 // CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s8(int8x16_t a)6004 int8x16_t test_vqabsq_s8(int8x16_t a) {
6005 return vqabsq_s8(a);
6006 }
6007
6008 // CHECK-LABEL: test_vqabsq_s16
6009 // CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s16(int16x8_t a)6010 int16x8_t test_vqabsq_s16(int16x8_t a) {
6011 return vqabsq_s16(a);
6012 }
6013
6014 // CHECK-LABEL: test_vqabsq_s32
6015 // CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqabsq_s32(int32x4_t a)6016 int32x4_t test_vqabsq_s32(int32x4_t a) {
6017 return vqabsq_s32(a);
6018 }
6019
6020
6021 // CHECK-LABEL: test_vqadd_s8
6022 // CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s8(int8x8_t a,int8x8_t b)6023 int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) {
6024 return vqadd_s8(a, b);
6025 }
6026
6027 // CHECK-LABEL: test_vqadd_s16
6028 // CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s16(int16x4_t a,int16x4_t b)6029 int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) {
6030 return vqadd_s16(a, b);
6031 }
6032
6033 // CHECK-LABEL: test_vqadd_s32
6034 // CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s32(int32x2_t a,int32x2_t b)6035 int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) {
6036 return vqadd_s32(a, b);
6037 }
6038
6039 // CHECK-LABEL: test_vqadd_s64
6040 // CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_s64(int64x1_t a,int64x1_t b)6041 int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) {
6042 return vqadd_s64(a, b);
6043 }
6044
6045 // CHECK-LABEL: test_vqadd_u8
6046 // CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u8(uint8x8_t a,uint8x8_t b)6047 uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) {
6048 return vqadd_u8(a, b);
6049 }
6050
6051 // CHECK-LABEL: test_vqadd_u16
6052 // CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u16(uint16x4_t a,uint16x4_t b)6053 uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) {
6054 return vqadd_u16(a, b);
6055 }
6056
6057 // CHECK-LABEL: test_vqadd_u32
6058 // CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u32(uint32x2_t a,uint32x2_t b)6059 uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) {
6060 return vqadd_u32(a, b);
6061 }
6062
6063 // CHECK-LABEL: test_vqadd_u64
6064 // CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqadd_u64(uint64x1_t a,uint64x1_t b)6065 uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) {
6066 return vqadd_u64(a, b);
6067 }
6068
6069 // CHECK-LABEL: test_vqaddq_s8
6070 // CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s8(int8x16_t a,int8x16_t b)6071 int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) {
6072 return vqaddq_s8(a, b);
6073 }
6074
6075 // CHECK-LABEL: test_vqaddq_s16
6076 // CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s16(int16x8_t a,int16x8_t b)6077 int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) {
6078 return vqaddq_s16(a, b);
6079 }
6080
6081 // CHECK-LABEL: test_vqaddq_s32
6082 // CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s32(int32x4_t a,int32x4_t b)6083 int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) {
6084 return vqaddq_s32(a, b);
6085 }
6086
6087 // CHECK-LABEL: test_vqaddq_s64
6088 // CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_s64(int64x2_t a,int64x2_t b)6089 int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) {
6090 return vqaddq_s64(a, b);
6091 }
6092
6093 // CHECK-LABEL: test_vqaddq_u8
6094 // CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u8(uint8x16_t a,uint8x16_t b)6095 uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) {
6096 return vqaddq_u8(a, b);
6097 }
6098
6099 // CHECK-LABEL: test_vqaddq_u16
6100 // CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u16(uint16x8_t a,uint16x8_t b)6101 uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) {
6102 return vqaddq_u16(a, b);
6103 }
6104
6105 // CHECK-LABEL: test_vqaddq_u32
6106 // CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u32(uint32x4_t a,uint32x4_t b)6107 uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) {
6108 return vqaddq_u32(a, b);
6109 }
6110
6111 // CHECK-LABEL: test_vqaddq_u64
6112 // CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqaddq_u64(uint64x2_t a,uint64x2_t b)6113 uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) {
6114 return vqaddq_u64(a, b);
6115 }
6116
6117
6118 // CHECK-LABEL: test_vqdmlal_s16
6119 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6120 int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6121 return vqdmlal_s16(a, b, c);
6122 }
6123
6124 // CHECK-LABEL: test_vqdmlal_s32
6125 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6126 int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6127 return vqdmlal_s32(a, b, c);
6128 }
6129
6130
6131 // CHECK-LABEL: test_vqdmlal_lane_s16
6132 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)6133 int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6134 return vqdmlal_lane_s16(a, b, c, 3);
6135 }
6136
6137 // CHECK-LABEL: test_vqdmlal_lane_s32
6138 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)6139 int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6140 return vqdmlal_lane_s32(a, b, c, 1);
6141 }
6142
6143
6144 // CHECK-LABEL: test_vqdmlal_n_s16
6145 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)6146 int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6147 return vqdmlal_n_s16(a, b, c);
6148 }
6149
6150 // CHECK-LABEL: test_vqdmlal_n_s32
6151 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)6152 int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6153 return vqdmlal_n_s32(a, b, c);
6154 }
6155
6156
6157 // CHECK-LABEL: test_vqdmlsl_s16
6158 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)6159 int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6160 return vqdmlsl_s16(a, b, c);
6161 }
6162
6163 // CHECK-LABEL: test_vqdmlsl_s32
6164 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)6165 int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6166 return vqdmlsl_s32(a, b, c);
6167 }
6168
6169
6170 // CHECK-LABEL: test_vqdmlsl_lane_s16
6171 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t c)6172 int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
6173 return vqdmlsl_lane_s16(a, b, c, 3);
6174 }
6175
6176 // CHECK-LABEL: test_vqdmlsl_lane_s32
6177 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t c)6178 int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
6179 return vqdmlsl_lane_s32(a, b, c, 1);
6180 }
6181
6182
6183 // CHECK-LABEL: test_vqdmlsl_n_s16
6184 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)6185 int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
6186 return vqdmlsl_n_s16(a, b, c);
6187 }
6188
6189 // CHECK-LABEL: test_vqdmlsl_n_s32
6190 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)6191 int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
6192 return vqdmlsl_n_s32(a, b, c);
6193 }
6194
6195
6196 // CHECK-LABEL: test_vqdmulh_s16
6197 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s16(int16x4_t a,int16x4_t b)6198 int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) {
6199 return vqdmulh_s16(a, b);
6200 }
6201
6202 // CHECK-LABEL: test_vqdmulh_s32
6203 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_s32(int32x2_t a,int32x2_t b)6204 int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) {
6205 return vqdmulh_s32(a, b);
6206 }
6207
6208 // CHECK-LABEL: test_vqdmulhq_s16
6209 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s16(int16x8_t a,int16x8_t b)6210 int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) {
6211 return vqdmulhq_s16(a, b);
6212 }
6213
6214 // CHECK-LABEL: test_vqdmulhq_s32
6215 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_s32(int32x4_t a,int32x4_t b)6216 int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) {
6217 return vqdmulhq_s32(a, b);
6218 }
6219
6220
6221 // CHECK-LABEL: test_vqdmulh_lane_s16
6222 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s16(int16x4_t a,int16x4_t b)6223 int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6224 return vqdmulh_lane_s16(a, b, 3);
6225 }
6226
6227 // CHECK-LABEL: test_vqdmulh_lane_s32
6228 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulh_lane_s32(int32x2_t a,int32x2_t b)6229 int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6230 return vqdmulh_lane_s32(a, b, 1);
6231 }
6232
6233 // CHECK-LABEL: test_vqdmulhq_lane_s16
6234 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s16(int16x8_t a,int16x4_t b)6235 int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6236 return vqdmulhq_lane_s16(a, b, 3);
6237 }
6238
6239 // CHECK-LABEL: test_vqdmulhq_lane_s32
6240 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmulhq_lane_s32(int32x4_t a,int32x2_t b)6241 int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6242 return vqdmulhq_lane_s32(a, b, 1);
6243 }
6244
6245
6246 // CHECK-LABEL: test_vqdmulh_n_s16
6247 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s16(int16x4_t a,int16_t b)6248 int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
6249 return vqdmulh_n_s16(a, b);
6250 }
6251
6252 // CHECK-LABEL: test_vqdmulh_n_s32
6253 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmulh_n_s32(int32x2_t a,int32_t b)6254 int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
6255 return vqdmulh_n_s32(a, b);
6256 }
6257
6258 // CHECK-LABEL: test_vqdmulhq_n_s16
6259 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s16(int16x8_t a,int16_t b)6260 int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
6261 return vqdmulhq_n_s16(a, b);
6262 }
6263
6264 // CHECK-LABEL: test_vqdmulhq_n_s32
6265 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqdmulhq_n_s32(int32x4_t a,int32_t b)6266 int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
6267 return vqdmulhq_n_s32(a, b);
6268 }
6269
6270
6271 // CHECK-LABEL: test_vqdmull_s16
6272 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s16(int16x4_t a,int16x4_t b)6273 int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) {
6274 return vqdmull_s16(a, b);
6275 }
6276
6277 // CHECK-LABEL: test_vqdmull_s32
6278 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_s32(int32x2_t a,int32x2_t b)6279 int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) {
6280 return vqdmull_s32(a, b);
6281 }
6282
6283
6284 // CHECK-LABEL: test_vqdmull_lane_s16
6285 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s16(int16x4_t a,int16x4_t b)6286 int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) {
6287 return vqdmull_lane_s16(a, b, 3);
6288 }
6289
6290 // CHECK-LABEL: test_vqdmull_lane_s32
6291 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqdmull_lane_s32(int32x2_t a,int32x2_t b)6292 int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) {
6293 return vqdmull_lane_s32(a, b, 1);
6294 }
6295
6296
6297 // CHECK-LABEL: test_vqdmull_n_s16
6298 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s16(int16x4_t a,int16_t b)6299 int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
6300 return vqdmull_n_s16(a, b);
6301 }
6302
6303 // CHECK-LABEL: test_vqdmull_n_s32
6304 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqdmull_n_s32(int32x2_t a,int32_t b)6305 int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
6306 return vqdmull_n_s32(a, b);
6307 }
6308
6309
6310 // CHECK-LABEL: test_vqmovn_s16
6311 // CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s16(int16x8_t a)6312 int8x8_t test_vqmovn_s16(int16x8_t a) {
6313 return vqmovn_s16(a);
6314 }
6315
6316 // CHECK-LABEL: test_vqmovn_s32
6317 // CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s32(int32x4_t a)6318 int16x4_t test_vqmovn_s32(int32x4_t a) {
6319 return vqmovn_s32(a);
6320 }
6321
6322 // CHECK-LABEL: test_vqmovn_s64
6323 // CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_s64(int64x2_t a)6324 int32x2_t test_vqmovn_s64(int64x2_t a) {
6325 return vqmovn_s64(a);
6326 }
6327
6328 // CHECK-LABEL: test_vqmovn_u16
6329 // CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u16(uint16x8_t a)6330 uint8x8_t test_vqmovn_u16(uint16x8_t a) {
6331 return vqmovn_u16(a);
6332 }
6333
6334 // CHECK-LABEL: test_vqmovn_u32
6335 // CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u32(uint32x4_t a)6336 uint16x4_t test_vqmovn_u32(uint32x4_t a) {
6337 return vqmovn_u32(a);
6338 }
6339
6340 // CHECK-LABEL: test_vqmovn_u64
6341 // CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovn_u64(uint64x2_t a)6342 uint32x2_t test_vqmovn_u64(uint64x2_t a) {
6343 return vqmovn_u64(a);
6344 }
6345
6346
6347 // CHECK-LABEL: test_vqmovun_s16
6348 // CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s16(int16x8_t a)6349 uint8x8_t test_vqmovun_s16(int16x8_t a) {
6350 return vqmovun_s16(a);
6351 }
6352
6353 // CHECK-LABEL: test_vqmovun_s32
6354 // CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s32(int32x4_t a)6355 uint16x4_t test_vqmovun_s32(int32x4_t a) {
6356 return vqmovun_s32(a);
6357 }
6358
6359 // CHECK-LABEL: test_vqmovun_s64
6360 // CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}}
test_vqmovun_s64(int64x2_t a)6361 uint32x2_t test_vqmovun_s64(int64x2_t a) {
6362 return vqmovun_s64(a);
6363 }
6364
6365
6366 // CHECK-LABEL: test_vqneg_s8
6367 // CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s8(int8x8_t a)6368 int8x8_t test_vqneg_s8(int8x8_t a) {
6369 return vqneg_s8(a);
6370 }
6371
6372 // CHECK-LABEL: test_vqneg_s16
6373 // CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s16(int16x4_t a)6374 int16x4_t test_vqneg_s16(int16x4_t a) {
6375 return vqneg_s16(a);
6376 }
6377
6378 // CHECK-LABEL: test_vqneg_s32
6379 // CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
test_vqneg_s32(int32x2_t a)6380 int32x2_t test_vqneg_s32(int32x2_t a) {
6381 return vqneg_s32(a);
6382 }
6383
6384 // CHECK-LABEL: test_vqnegq_s8
6385 // CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s8(int8x16_t a)6386 int8x16_t test_vqnegq_s8(int8x16_t a) {
6387 return vqnegq_s8(a);
6388 }
6389
6390 // CHECK-LABEL: test_vqnegq_s16
6391 // CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s16(int16x8_t a)6392 int16x8_t test_vqnegq_s16(int16x8_t a) {
6393 return vqnegq_s16(a);
6394 }
6395
6396 // CHECK-LABEL: test_vqnegq_s32
6397 // CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
test_vqnegq_s32(int32x4_t a)6398 int32x4_t test_vqnegq_s32(int32x4_t a) {
6399 return vqnegq_s32(a);
6400 }
6401
6402
6403 // CHECK-LABEL: test_vqrdmulh_s16
6404 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s16(int16x4_t a,int16x4_t b)6405 int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) {
6406 return vqrdmulh_s16(a, b);
6407 }
6408
6409 // CHECK-LABEL: test_vqrdmulh_s32
6410 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_s32(int32x2_t a,int32x2_t b)6411 int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) {
6412 return vqrdmulh_s32(a, b);
6413 }
6414
6415 // CHECK-LABEL: test_vqrdmulhq_s16
6416 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s16(int16x8_t a,int16x8_t b)6417 int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) {
6418 return vqrdmulhq_s16(a, b);
6419 }
6420
6421 // CHECK-LABEL: test_vqrdmulhq_s32
6422 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_s32(int32x4_t a,int32x4_t b)6423 int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) {
6424 return vqrdmulhq_s32(a, b);
6425 }
6426
6427
6428 // CHECK-LABEL: test_vqrdmulh_lane_s16
6429 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s16(int16x4_t a,int16x4_t b)6430 int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) {
6431 return vqrdmulh_lane_s16(a, b, 3);
6432 }
6433
6434 // CHECK-LABEL: test_vqrdmulh_lane_s32
6435 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulh_lane_s32(int32x2_t a,int32x2_t b)6436 int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) {
6437 return vqrdmulh_lane_s32(a, b, 1);
6438 }
6439
6440 // CHECK-LABEL: test_vqrdmulhq_lane_s16
6441 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s16(int16x8_t a,int16x4_t b)6442 int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
6443 return vqrdmulhq_lane_s16(a, b, 3);
6444 }
6445
6446 // CHECK-LABEL: test_vqrdmulhq_lane_s32
6447 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
test_vqrdmulhq_lane_s32(int32x4_t a,int32x2_t b)6448 int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
6449 return vqrdmulhq_lane_s32(a, b, 1);
6450 }
6451
6452
6453 // CHECK-LABEL: test_vqrdmulh_n_s16
6454 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s16(int16x4_t a,int16_t b)6455 int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
6456 return vqrdmulh_n_s16(a, b);
6457 }
6458
6459 // CHECK-LABEL: test_vqrdmulh_n_s32
6460 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrdmulh_n_s32(int32x2_t a,int32_t b)6461 int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
6462 return vqrdmulh_n_s32(a, b);
6463 }
6464
6465 // CHECK-LABEL: test_vqrdmulhq_n_s16
6466 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s16(int16x8_t a,int16_t b)6467 int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
6468 return vqrdmulhq_n_s16(a, b);
6469 }
6470
6471 // CHECK-LABEL: test_vqrdmulhq_n_s32
6472 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrdmulhq_n_s32(int32x4_t a,int32_t b)6473 int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
6474 return vqrdmulhq_n_s32(a, b);
6475 }
6476
6477
6478 // CHECK-LABEL: test_vqrshl_s8
6479 // CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s8(int8x8_t a,int8x8_t b)6480 int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) {
6481 return vqrshl_s8(a, b);
6482 }
6483
6484 // CHECK-LABEL: test_vqrshl_s16
6485 // CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s16(int16x4_t a,int16x4_t b)6486 int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) {
6487 return vqrshl_s16(a, b);
6488 }
6489
6490 // CHECK-LABEL: test_vqrshl_s32
6491 // CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s32(int32x2_t a,int32x2_t b)6492 int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) {
6493 return vqrshl_s32(a, b);
6494 }
6495
6496 // CHECK-LABEL: test_vqrshl_s64
6497 // CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_s64(int64x1_t a,int64x1_t b)6498 int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) {
6499 return vqrshl_s64(a, b);
6500 }
6501
6502 // CHECK-LABEL: test_vqrshl_u8
6503 // CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u8(uint8x8_t a,int8x8_t b)6504 uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) {
6505 return vqrshl_u8(a, b);
6506 }
6507
6508 // CHECK-LABEL: test_vqrshl_u16
6509 // CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u16(uint16x4_t a,int16x4_t b)6510 uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) {
6511 return vqrshl_u16(a, b);
6512 }
6513
6514 // CHECK-LABEL: test_vqrshl_u32
6515 // CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u32(uint32x2_t a,int32x2_t b)6516 uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) {
6517 return vqrshl_u32(a, b);
6518 }
6519
6520 // CHECK-LABEL: test_vqrshl_u64
6521 // CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqrshl_u64(uint64x1_t a,int64x1_t b)6522 uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) {
6523 return vqrshl_u64(a, b);
6524 }
6525
6526 // CHECK-LABEL: test_vqrshlq_s8
6527 // CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s8(int8x16_t a,int8x16_t b)6528 int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) {
6529 return vqrshlq_s8(a, b);
6530 }
6531
6532 // CHECK-LABEL: test_vqrshlq_s16
6533 // CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s16(int16x8_t a,int16x8_t b)6534 int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) {
6535 return vqrshlq_s16(a, b);
6536 }
6537
6538 // CHECK-LABEL: test_vqrshlq_s32
6539 // CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s32(int32x4_t a,int32x4_t b)6540 int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) {
6541 return vqrshlq_s32(a, b);
6542 }
6543
6544 // CHECK-LABEL: test_vqrshlq_s64
6545 // CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_s64(int64x2_t a,int64x2_t b)6546 int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) {
6547 return vqrshlq_s64(a, b);
6548 }
6549
6550 // CHECK-LABEL: test_vqrshlq_u8
6551 // CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u8(uint8x16_t a,int8x16_t b)6552 uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) {
6553 return vqrshlq_u8(a, b);
6554 }
6555
6556 // CHECK-LABEL: test_vqrshlq_u16
6557 // CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u16(uint16x8_t a,int16x8_t b)6558 uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) {
6559 return vqrshlq_u16(a, b);
6560 }
6561
6562 // CHECK-LABEL: test_vqrshlq_u32
6563 // CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u32(uint32x4_t a,int32x4_t b)6564 uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) {
6565 return vqrshlq_u32(a, b);
6566 }
6567
6568 // CHECK-LABEL: test_vqrshlq_u64
6569 // CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqrshlq_u64(uint64x2_t a,int64x2_t b)6570 uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) {
6571 return vqrshlq_u64(a, b);
6572 }
6573
6574
6575 // CHECK-LABEL: test_vqrshrn_n_s16
6576 // CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s16(int16x8_t a)6577 int8x8_t test_vqrshrn_n_s16(int16x8_t a) {
6578 return vqrshrn_n_s16(a, 1);
6579 }
6580
6581 // CHECK-LABEL: test_vqrshrn_n_s32
6582 // CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s32(int32x4_t a)6583 int16x4_t test_vqrshrn_n_s32(int32x4_t a) {
6584 return vqrshrn_n_s32(a, 1);
6585 }
6586
6587 // CHECK-LABEL: test_vqrshrn_n_s64
6588 // CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_s64(int64x2_t a)6589 int32x2_t test_vqrshrn_n_s64(int64x2_t a) {
6590 return vqrshrn_n_s64(a, 1);
6591 }
6592
6593 // CHECK-LABEL: test_vqrshrn_n_u16
6594 // CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u16(uint16x8_t a)6595 uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) {
6596 return vqrshrn_n_u16(a, 1);
6597 }
6598
6599 // CHECK-LABEL: test_vqrshrn_n_u32
6600 // CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u32(uint32x4_t a)6601 uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) {
6602 return vqrshrn_n_u32(a, 1);
6603 }
6604
6605 // CHECK-LABEL: test_vqrshrn_n_u64
6606 // CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrn_n_u64(uint64x2_t a)6607 uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) {
6608 return vqrshrn_n_u64(a, 1);
6609 }
6610
6611
6612 // CHECK-LABEL: test_vqrshrun_n_s16
6613 // CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s16(int16x8_t a)6614 uint8x8_t test_vqrshrun_n_s16(int16x8_t a) {
6615 return vqrshrun_n_s16(a, 1);
6616 }
6617
6618 // CHECK-LABEL: test_vqrshrun_n_s32
6619 // CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s32(int32x4_t a)6620 uint16x4_t test_vqrshrun_n_s32(int32x4_t a) {
6621 return vqrshrun_n_s32(a, 1);
6622 }
6623
6624 // CHECK-LABEL: test_vqrshrun_n_s64
6625 // CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqrshrun_n_s64(int64x2_t a)6626 uint32x2_t test_vqrshrun_n_s64(int64x2_t a) {
6627 return vqrshrun_n_s64(a, 1);
6628 }
6629
6630
6631 // CHECK-LABEL: test_vqshl_s8
6632 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s8(int8x8_t a,int8x8_t b)6633 int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) {
6634 return vqshl_s8(a, b);
6635 }
6636
6637 // CHECK-LABEL: test_vqshl_s16
6638 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s16(int16x4_t a,int16x4_t b)6639 int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) {
6640 return vqshl_s16(a, b);
6641 }
6642
6643 // CHECK-LABEL: test_vqshl_s32
6644 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s32(int32x2_t a,int32x2_t b)6645 int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) {
6646 return vqshl_s32(a, b);
6647 }
6648
6649 // CHECK-LABEL: test_vqshl_s64
6650 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_s64(int64x1_t a,int64x1_t b)6651 int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) {
6652 return vqshl_s64(a, b);
6653 }
6654
6655 // CHECK-LABEL: test_vqshl_u8
6656 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u8(uint8x8_t a,int8x8_t b)6657 uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) {
6658 return vqshl_u8(a, b);
6659 }
6660
6661 // CHECK-LABEL: test_vqshl_u16
6662 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u16(uint16x4_t a,int16x4_t b)6663 uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) {
6664 return vqshl_u16(a, b);
6665 }
6666
6667 // CHECK-LABEL: test_vqshl_u32
6668 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u32(uint32x2_t a,int32x2_t b)6669 uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) {
6670 return vqshl_u32(a, b);
6671 }
6672
6673 // CHECK-LABEL: test_vqshl_u64
6674 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqshl_u64(uint64x1_t a,int64x1_t b)6675 uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) {
6676 return vqshl_u64(a, b);
6677 }
6678
6679 // CHECK-LABEL: test_vqshlq_s8
6680 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s8(int8x16_t a,int8x16_t b)6681 int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) {
6682 return vqshlq_s8(a, b);
6683 }
6684
6685 // CHECK-LABEL: test_vqshlq_s16
6686 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s16(int16x8_t a,int16x8_t b)6687 int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) {
6688 return vqshlq_s16(a, b);
6689 }
6690
6691 // CHECK-LABEL: test_vqshlq_s32
6692 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s32(int32x4_t a,int32x4_t b)6693 int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) {
6694 return vqshlq_s32(a, b);
6695 }
6696
6697 // CHECK-LABEL: test_vqshlq_s64
6698 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_s64(int64x2_t a,int64x2_t b)6699 int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) {
6700 return vqshlq_s64(a, b);
6701 }
6702
6703 // CHECK-LABEL: test_vqshlq_u8
6704 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u8(uint8x16_t a,int8x16_t b)6705 uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) {
6706 return vqshlq_u8(a, b);
6707 }
6708
6709 // CHECK-LABEL: test_vqshlq_u16
6710 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u16(uint16x8_t a,int16x8_t b)6711 uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) {
6712 return vqshlq_u16(a, b);
6713 }
6714
6715 // CHECK-LABEL: test_vqshlq_u32
6716 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u32(uint32x4_t a,int32x4_t b)6717 uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) {
6718 return vqshlq_u32(a, b);
6719 }
6720
6721 // CHECK-LABEL: test_vqshlq_u64
6722 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqshlq_u64(uint64x2_t a,int64x2_t b)6723 uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) {
6724 return vqshlq_u64(a, b);
6725 }
6726
6727
6728 // CHECK-LABEL: test_vqshlu_n_s8
6729 // CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s8(int8x8_t a)6730 uint8x8_t test_vqshlu_n_s8(int8x8_t a) {
6731 return vqshlu_n_s8(a, 1);
6732 }
6733
6734 // CHECK-LABEL: test_vqshlu_n_s16
6735 // CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s16(int16x4_t a)6736 uint16x4_t test_vqshlu_n_s16(int16x4_t a) {
6737 return vqshlu_n_s16(a, 1);
6738 }
6739
6740 // CHECK-LABEL: test_vqshlu_n_s32
6741 // CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s32(int32x2_t a)6742 uint32x2_t test_vqshlu_n_s32(int32x2_t a) {
6743 return vqshlu_n_s32(a, 1);
6744 }
6745
6746 // CHECK-LABEL: test_vqshlu_n_s64
6747 // CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshlu_n_s64(int64x1_t a)6748 uint64x1_t test_vqshlu_n_s64(int64x1_t a) {
6749 return vqshlu_n_s64(a, 1);
6750 }
6751
6752 // CHECK-LABEL: test_vqshluq_n_s8
6753 // CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s8(int8x16_t a)6754 uint8x16_t test_vqshluq_n_s8(int8x16_t a) {
6755 return vqshluq_n_s8(a, 1);
6756 }
6757
6758 // CHECK-LABEL: test_vqshluq_n_s16
6759 // CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s16(int16x8_t a)6760 uint16x8_t test_vqshluq_n_s16(int16x8_t a) {
6761 return vqshluq_n_s16(a, 1);
6762 }
6763
6764 // CHECK-LABEL: test_vqshluq_n_s32
6765 // CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s32(int32x4_t a)6766 uint32x4_t test_vqshluq_n_s32(int32x4_t a) {
6767 return vqshluq_n_s32(a, 1);
6768 }
6769
6770 // CHECK-LABEL: test_vqshluq_n_s64
6771 // CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshluq_n_s64(int64x2_t a)6772 uint64x2_t test_vqshluq_n_s64(int64x2_t a) {
6773 return vqshluq_n_s64(a, 1);
6774 }
6775
6776
6777 // CHECK-LABEL: test_vqshl_n_s8
6778 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s8(int8x8_t a)6779 int8x8_t test_vqshl_n_s8(int8x8_t a) {
6780 return vqshl_n_s8(a, 1);
6781 }
6782
6783 // CHECK-LABEL: test_vqshl_n_s16
6784 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s16(int16x4_t a)6785 int16x4_t test_vqshl_n_s16(int16x4_t a) {
6786 return vqshl_n_s16(a, 1);
6787 }
6788
6789 // CHECK-LABEL: test_vqshl_n_s32
6790 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s32(int32x2_t a)6791 int32x2_t test_vqshl_n_s32(int32x2_t a) {
6792 return vqshl_n_s32(a, 1);
6793 }
6794
6795 // CHECK-LABEL: test_vqshl_n_s64
6796 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_s64(int64x1_t a)6797 int64x1_t test_vqshl_n_s64(int64x1_t a) {
6798 return vqshl_n_s64(a, 1);
6799 }
6800
6801 // CHECK-LABEL: test_vqshl_n_u8
6802 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u8(uint8x8_t a)6803 uint8x8_t test_vqshl_n_u8(uint8x8_t a) {
6804 return vqshl_n_u8(a, 1);
6805 }
6806
6807 // CHECK-LABEL: test_vqshl_n_u16
6808 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u16(uint16x4_t a)6809 uint16x4_t test_vqshl_n_u16(uint16x4_t a) {
6810 return vqshl_n_u16(a, 1);
6811 }
6812
6813 // CHECK-LABEL: test_vqshl_n_u32
6814 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u32(uint32x2_t a)6815 uint32x2_t test_vqshl_n_u32(uint32x2_t a) {
6816 return vqshl_n_u32(a, 1);
6817 }
6818
6819 // CHECK-LABEL: test_vqshl_n_u64
6820 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vqshl_n_u64(uint64x1_t a)6821 uint64x1_t test_vqshl_n_u64(uint64x1_t a) {
6822 return vqshl_n_u64(a, 1);
6823 }
6824
6825 // CHECK-LABEL: test_vqshlq_n_s8
6826 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s8(int8x16_t a)6827 int8x16_t test_vqshlq_n_s8(int8x16_t a) {
6828 return vqshlq_n_s8(a, 1);
6829 }
6830
6831 // CHECK-LABEL: test_vqshlq_n_s16
6832 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s16(int16x8_t a)6833 int16x8_t test_vqshlq_n_s16(int16x8_t a) {
6834 return vqshlq_n_s16(a, 1);
6835 }
6836
6837 // CHECK-LABEL: test_vqshlq_n_s32
6838 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s32(int32x4_t a)6839 int32x4_t test_vqshlq_n_s32(int32x4_t a) {
6840 return vqshlq_n_s32(a, 1);
6841 }
6842
6843 // CHECK-LABEL: test_vqshlq_n_s64
6844 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_s64(int64x2_t a)6845 int64x2_t test_vqshlq_n_s64(int64x2_t a) {
6846 return vqshlq_n_s64(a, 1);
6847 }
6848
6849 // CHECK-LABEL: test_vqshlq_n_u8
6850 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u8(uint8x16_t a)6851 uint8x16_t test_vqshlq_n_u8(uint8x16_t a) {
6852 return vqshlq_n_u8(a, 1);
6853 }
6854
6855 // CHECK-LABEL: test_vqshlq_n_u16
6856 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u16(uint16x8_t a)6857 uint16x8_t test_vqshlq_n_u16(uint16x8_t a) {
6858 return vqshlq_n_u16(a, 1);
6859 }
6860
6861 // CHECK-LABEL: test_vqshlq_n_u32
6862 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u32(uint32x4_t a)6863 uint32x4_t test_vqshlq_n_u32(uint32x4_t a) {
6864 return vqshlq_n_u32(a, 1);
6865 }
6866
6867 // CHECK-LABEL: test_vqshlq_n_u64
6868 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshlq_n_u64(uint64x2_t a)6869 uint64x2_t test_vqshlq_n_u64(uint64x2_t a) {
6870 return vqshlq_n_u64(a, 1);
6871 }
6872
6873
6874 // CHECK-LABEL: test_vqshrn_n_s16
6875 // CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s16(int16x8_t a)6876 int8x8_t test_vqshrn_n_s16(int16x8_t a) {
6877 return vqshrn_n_s16(a, 1);
6878 }
6879
6880 // CHECK-LABEL: test_vqshrn_n_s32
6881 // CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s32(int32x4_t a)6882 int16x4_t test_vqshrn_n_s32(int32x4_t a) {
6883 return vqshrn_n_s32(a, 1);
6884 }
6885
6886 // CHECK-LABEL: test_vqshrn_n_s64
6887 // CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_s64(int64x2_t a)6888 int32x2_t test_vqshrn_n_s64(int64x2_t a) {
6889 return vqshrn_n_s64(a, 1);
6890 }
6891
6892 // CHECK-LABEL: test_vqshrn_n_u16
6893 // CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u16(uint16x8_t a)6894 uint8x8_t test_vqshrn_n_u16(uint16x8_t a) {
6895 return vqshrn_n_u16(a, 1);
6896 }
6897
6898 // CHECK-LABEL: test_vqshrn_n_u32
6899 // CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u32(uint32x4_t a)6900 uint16x4_t test_vqshrn_n_u32(uint32x4_t a) {
6901 return vqshrn_n_u32(a, 1);
6902 }
6903
6904 // CHECK-LABEL: test_vqshrn_n_u64
6905 // CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrn_n_u64(uint64x2_t a)6906 uint32x2_t test_vqshrn_n_u64(uint64x2_t a) {
6907 return vqshrn_n_u64(a, 1);
6908 }
6909
6910
6911 // CHECK-LABEL: test_vqshrun_n_s16
6912 // CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s16(int16x8_t a)6913 uint8x8_t test_vqshrun_n_s16(int16x8_t a) {
6914 return vqshrun_n_s16(a, 1);
6915 }
6916
6917 // CHECK-LABEL: test_vqshrun_n_s32
6918 // CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s32(int32x4_t a)6919 uint16x4_t test_vqshrun_n_s32(int32x4_t a) {
6920 return vqshrun_n_s32(a, 1);
6921 }
6922
6923 // CHECK-LABEL: test_vqshrun_n_s64
6924 // CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vqshrun_n_s64(int64x2_t a)6925 uint32x2_t test_vqshrun_n_s64(int64x2_t a) {
6926 return vqshrun_n_s64(a, 1);
6927 }
6928
6929
6930 // CHECK-LABEL: test_vqsub_s8
6931 // CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s8(int8x8_t a,int8x8_t b)6932 int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) {
6933 return vqsub_s8(a, b);
6934 }
6935
6936 // CHECK-LABEL: test_vqsub_s16
6937 // CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s16(int16x4_t a,int16x4_t b)6938 int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) {
6939 return vqsub_s16(a, b);
6940 }
6941
6942 // CHECK-LABEL: test_vqsub_s32
6943 // CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s32(int32x2_t a,int32x2_t b)6944 int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) {
6945 return vqsub_s32(a, b);
6946 }
6947
6948 // CHECK-LABEL: test_vqsub_s64
6949 // CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_s64(int64x1_t a,int64x1_t b)6950 int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) {
6951 return vqsub_s64(a, b);
6952 }
6953
6954 // CHECK-LABEL: test_vqsub_u8
6955 // CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u8(uint8x8_t a,uint8x8_t b)6956 uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) {
6957 return vqsub_u8(a, b);
6958 }
6959
6960 // CHECK-LABEL: test_vqsub_u16
6961 // CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u16(uint16x4_t a,uint16x4_t b)6962 uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) {
6963 return vqsub_u16(a, b);
6964 }
6965
6966 // CHECK-LABEL: test_vqsub_u32
6967 // CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u32(uint32x2_t a,uint32x2_t b)6968 uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) {
6969 return vqsub_u32(a, b);
6970 }
6971
6972 // CHECK-LABEL: test_vqsub_u64
6973 // CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vqsub_u64(uint64x1_t a,uint64x1_t b)6974 uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) {
6975 return vqsub_u64(a, b);
6976 }
6977
6978 // CHECK-LABEL: test_vqsubq_s8
6979 // CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s8(int8x16_t a,int8x16_t b)6980 int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) {
6981 return vqsubq_s8(a, b);
6982 }
6983
6984 // CHECK-LABEL: test_vqsubq_s16
6985 // CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s16(int16x8_t a,int16x8_t b)6986 int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) {
6987 return vqsubq_s16(a, b);
6988 }
6989
6990 // CHECK-LABEL: test_vqsubq_s32
6991 // CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s32(int32x4_t a,int32x4_t b)6992 int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) {
6993 return vqsubq_s32(a, b);
6994 }
6995
6996 // CHECK-LABEL: test_vqsubq_s64
6997 // CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_s64(int64x2_t a,int64x2_t b)6998 int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) {
6999 return vqsubq_s64(a, b);
7000 }
7001
7002 // CHECK-LABEL: test_vqsubq_u8
7003 // CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u8(uint8x16_t a,uint8x16_t b)7004 uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) {
7005 return vqsubq_u8(a, b);
7006 }
7007
7008 // CHECK-LABEL: test_vqsubq_u16
7009 // CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u16(uint16x8_t a,uint16x8_t b)7010 uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) {
7011 return vqsubq_u16(a, b);
7012 }
7013
7014 // CHECK-LABEL: test_vqsubq_u32
7015 // CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u32(uint32x4_t a,uint32x4_t b)7016 uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) {
7017 return vqsubq_u32(a, b);
7018 }
7019
7020 // CHECK-LABEL: test_vqsubq_u64
7021 // CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vqsubq_u64(uint64x2_t a,uint64x2_t b)7022 uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) {
7023 return vqsubq_u64(a, b);
7024 }
7025
7026
7027 // CHECK-LABEL: test_vraddhn_s16
7028 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s16(int16x8_t a,int16x8_t b)7029 int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) {
7030 return vraddhn_s16(a, b);
7031 }
7032
7033 // CHECK-LABEL: test_vraddhn_s32
7034 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s32(int32x4_t a,int32x4_t b)7035 int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) {
7036 return vraddhn_s32(a, b);
7037 }
7038
7039 // CHECK-LABEL: test_vraddhn_s64
7040 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_s64(int64x2_t a,int64x2_t b)7041 int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) {
7042 return vraddhn_s64(a, b);
7043 }
7044
7045 // CHECK-LABEL: test_vraddhn_u16
7046 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u16(uint16x8_t a,uint16x8_t b)7047 uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) {
7048 return vraddhn_u16(a, b);
7049 }
7050
7051 // CHECK-LABEL: test_vraddhn_u32
7052 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u32(uint32x4_t a,uint32x4_t b)7053 uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) {
7054 return vraddhn_u32(a, b);
7055 }
7056
7057 // CHECK-LABEL: test_vraddhn_u64
7058 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vraddhn_u64(uint64x2_t a,uint64x2_t b)7059 uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) {
7060 return vraddhn_u64(a, b);
7061 }
7062
7063
7064 // CHECK-LABEL: test_vrecpe_f32
7065 // CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_f32(float32x2_t a)7066 float32x2_t test_vrecpe_f32(float32x2_t a) {
7067 return vrecpe_f32(a);
7068 }
7069
7070 // CHECK-LABEL: test_vrecpe_u32
7071 // CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrecpe_u32(uint32x2_t a)7072 uint32x2_t test_vrecpe_u32(uint32x2_t a) {
7073 return vrecpe_u32(a);
7074 }
7075
7076 // CHECK-LABEL: test_vrecpeq_f32
7077 // CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_f32(float32x4_t a)7078 float32x4_t test_vrecpeq_f32(float32x4_t a) {
7079 return vrecpeq_f32(a);
7080 }
7081
7082 // CHECK-LABEL: test_vrecpeq_u32
7083 // CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpeq_u32(uint32x4_t a)7084 uint32x4_t test_vrecpeq_u32(uint32x4_t a) {
7085 return vrecpeq_u32(a);
7086 }
7087
7088
7089 // CHECK-LABEL: test_vrecps_f32
7090 // CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrecps_f32(float32x2_t a,float32x2_t b)7091 float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) {
7092 return vrecps_f32(a, b);
7093 }
7094
7095 // CHECK-LABEL: test_vrecpsq_f32
7096 // CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrecpsq_f32(float32x4_t a,float32x4_t b)7097 float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) {
7098 return vrecpsq_f32(a, b);
7099 }
7100
7101
7102 // CHECK-LABEL: test_vreinterpret_s8_s16
test_vreinterpret_s8_s16(int16x4_t a)7103 int8x8_t test_vreinterpret_s8_s16(int16x4_t a) {
7104 return vreinterpret_s8_s16(a);
7105 }
7106
7107 // CHECK-LABEL: test_vreinterpret_s8_s32
test_vreinterpret_s8_s32(int32x2_t a)7108 int8x8_t test_vreinterpret_s8_s32(int32x2_t a) {
7109 return vreinterpret_s8_s32(a);
7110 }
7111
7112 // CHECK-LABEL: test_vreinterpret_s8_s64
test_vreinterpret_s8_s64(int64x1_t a)7113 int8x8_t test_vreinterpret_s8_s64(int64x1_t a) {
7114 return vreinterpret_s8_s64(a);
7115 }
7116
7117 // CHECK-LABEL: test_vreinterpret_s8_u8
test_vreinterpret_s8_u8(uint8x8_t a)7118 int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) {
7119 return vreinterpret_s8_u8(a);
7120 }
7121
7122 // CHECK-LABEL: test_vreinterpret_s8_u16
test_vreinterpret_s8_u16(uint16x4_t a)7123 int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) {
7124 return vreinterpret_s8_u16(a);
7125 }
7126
7127 // CHECK-LABEL: test_vreinterpret_s8_u32
test_vreinterpret_s8_u32(uint32x2_t a)7128 int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) {
7129 return vreinterpret_s8_u32(a);
7130 }
7131
7132 // CHECK-LABEL: test_vreinterpret_s8_u64
test_vreinterpret_s8_u64(uint64x1_t a)7133 int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) {
7134 return vreinterpret_s8_u64(a);
7135 }
7136
7137 // CHECK-LABEL: test_vreinterpret_s8_f16
test_vreinterpret_s8_f16(float16x4_t a)7138 int8x8_t test_vreinterpret_s8_f16(float16x4_t a) {
7139 return vreinterpret_s8_f16(a);
7140 }
7141
7142 // CHECK-LABEL: test_vreinterpret_s8_f32
test_vreinterpret_s8_f32(float32x2_t a)7143 int8x8_t test_vreinterpret_s8_f32(float32x2_t a) {
7144 return vreinterpret_s8_f32(a);
7145 }
7146
7147 // CHECK-LABEL: test_vreinterpret_s8_p8
test_vreinterpret_s8_p8(poly8x8_t a)7148 int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) {
7149 return vreinterpret_s8_p8(a);
7150 }
7151
7152 // CHECK-LABEL: test_vreinterpret_s8_p16
test_vreinterpret_s8_p16(poly16x4_t a)7153 int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) {
7154 return vreinterpret_s8_p16(a);
7155 }
7156
7157 // CHECK-LABEL: test_vreinterpret_s16_s8
test_vreinterpret_s16_s8(int8x8_t a)7158 int16x4_t test_vreinterpret_s16_s8(int8x8_t a) {
7159 return vreinterpret_s16_s8(a);
7160 }
7161
7162 // CHECK-LABEL: test_vreinterpret_s16_s32
test_vreinterpret_s16_s32(int32x2_t a)7163 int16x4_t test_vreinterpret_s16_s32(int32x2_t a) {
7164 return vreinterpret_s16_s32(a);
7165 }
7166
7167 // CHECK-LABEL: test_vreinterpret_s16_s64
test_vreinterpret_s16_s64(int64x1_t a)7168 int16x4_t test_vreinterpret_s16_s64(int64x1_t a) {
7169 return vreinterpret_s16_s64(a);
7170 }
7171
7172 // CHECK-LABEL: test_vreinterpret_s16_u8
test_vreinterpret_s16_u8(uint8x8_t a)7173 int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) {
7174 return vreinterpret_s16_u8(a);
7175 }
7176
7177 // CHECK-LABEL: test_vreinterpret_s16_u16
test_vreinterpret_s16_u16(uint16x4_t a)7178 int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) {
7179 return vreinterpret_s16_u16(a);
7180 }
7181
7182 // CHECK-LABEL: test_vreinterpret_s16_u32
test_vreinterpret_s16_u32(uint32x2_t a)7183 int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) {
7184 return vreinterpret_s16_u32(a);
7185 }
7186
7187 // CHECK-LABEL: test_vreinterpret_s16_u64
test_vreinterpret_s16_u64(uint64x1_t a)7188 int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) {
7189 return vreinterpret_s16_u64(a);
7190 }
7191
7192 // CHECK-LABEL: test_vreinterpret_s16_f16
test_vreinterpret_s16_f16(float16x4_t a)7193 int16x4_t test_vreinterpret_s16_f16(float16x4_t a) {
7194 return vreinterpret_s16_f16(a);
7195 }
7196
7197 // CHECK-LABEL: test_vreinterpret_s16_f32
test_vreinterpret_s16_f32(float32x2_t a)7198 int16x4_t test_vreinterpret_s16_f32(float32x2_t a) {
7199 return vreinterpret_s16_f32(a);
7200 }
7201
7202 // CHECK-LABEL: test_vreinterpret_s16_p8
test_vreinterpret_s16_p8(poly8x8_t a)7203 int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) {
7204 return vreinterpret_s16_p8(a);
7205 }
7206
7207 // CHECK-LABEL: test_vreinterpret_s16_p16
test_vreinterpret_s16_p16(poly16x4_t a)7208 int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) {
7209 return vreinterpret_s16_p16(a);
7210 }
7211
7212 // CHECK-LABEL: test_vreinterpret_s32_s8
test_vreinterpret_s32_s8(int8x8_t a)7213 int32x2_t test_vreinterpret_s32_s8(int8x8_t a) {
7214 return vreinterpret_s32_s8(a);
7215 }
7216
7217 // CHECK-LABEL: test_vreinterpret_s32_s16
test_vreinterpret_s32_s16(int16x4_t a)7218 int32x2_t test_vreinterpret_s32_s16(int16x4_t a) {
7219 return vreinterpret_s32_s16(a);
7220 }
7221
7222 // CHECK-LABEL: test_vreinterpret_s32_s64
test_vreinterpret_s32_s64(int64x1_t a)7223 int32x2_t test_vreinterpret_s32_s64(int64x1_t a) {
7224 return vreinterpret_s32_s64(a);
7225 }
7226
7227 // CHECK-LABEL: test_vreinterpret_s32_u8
test_vreinterpret_s32_u8(uint8x8_t a)7228 int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) {
7229 return vreinterpret_s32_u8(a);
7230 }
7231
7232 // CHECK-LABEL: test_vreinterpret_s32_u16
test_vreinterpret_s32_u16(uint16x4_t a)7233 int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) {
7234 return vreinterpret_s32_u16(a);
7235 }
7236
7237 // CHECK-LABEL: test_vreinterpret_s32_u32
test_vreinterpret_s32_u32(uint32x2_t a)7238 int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) {
7239 return vreinterpret_s32_u32(a);
7240 }
7241
7242 // CHECK-LABEL: test_vreinterpret_s32_u64
test_vreinterpret_s32_u64(uint64x1_t a)7243 int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) {
7244 return vreinterpret_s32_u64(a);
7245 }
7246
7247 // CHECK-LABEL: test_vreinterpret_s32_f16
test_vreinterpret_s32_f16(float16x4_t a)7248 int32x2_t test_vreinterpret_s32_f16(float16x4_t a) {
7249 return vreinterpret_s32_f16(a);
7250 }
7251
7252 // CHECK-LABEL: test_vreinterpret_s32_f32
test_vreinterpret_s32_f32(float32x2_t a)7253 int32x2_t test_vreinterpret_s32_f32(float32x2_t a) {
7254 return vreinterpret_s32_f32(a);
7255 }
7256
7257 // CHECK-LABEL: test_vreinterpret_s32_p8
test_vreinterpret_s32_p8(poly8x8_t a)7258 int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) {
7259 return vreinterpret_s32_p8(a);
7260 }
7261
7262 // CHECK-LABEL: test_vreinterpret_s32_p16
test_vreinterpret_s32_p16(poly16x4_t a)7263 int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) {
7264 return vreinterpret_s32_p16(a);
7265 }
7266
7267 // CHECK-LABEL: test_vreinterpret_s64_s8
test_vreinterpret_s64_s8(int8x8_t a)7268 int64x1_t test_vreinterpret_s64_s8(int8x8_t a) {
7269 return vreinterpret_s64_s8(a);
7270 }
7271
7272 // CHECK-LABEL: test_vreinterpret_s64_s16
test_vreinterpret_s64_s16(int16x4_t a)7273 int64x1_t test_vreinterpret_s64_s16(int16x4_t a) {
7274 return vreinterpret_s64_s16(a);
7275 }
7276
7277 // CHECK-LABEL: test_vreinterpret_s64_s32
test_vreinterpret_s64_s32(int32x2_t a)7278 int64x1_t test_vreinterpret_s64_s32(int32x2_t a) {
7279 return vreinterpret_s64_s32(a);
7280 }
7281
7282 // CHECK-LABEL: test_vreinterpret_s64_u8
test_vreinterpret_s64_u8(uint8x8_t a)7283 int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) {
7284 return vreinterpret_s64_u8(a);
7285 }
7286
7287 // CHECK-LABEL: test_vreinterpret_s64_u16
test_vreinterpret_s64_u16(uint16x4_t a)7288 int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) {
7289 return vreinterpret_s64_u16(a);
7290 }
7291
7292 // CHECK-LABEL: test_vreinterpret_s64_u32
test_vreinterpret_s64_u32(uint32x2_t a)7293 int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) {
7294 return vreinterpret_s64_u32(a);
7295 }
7296
7297 // CHECK-LABEL: test_vreinterpret_s64_u64
test_vreinterpret_s64_u64(uint64x1_t a)7298 int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) {
7299 return vreinterpret_s64_u64(a);
7300 }
7301
7302 // CHECK-LABEL: test_vreinterpret_s64_f16
test_vreinterpret_s64_f16(float16x4_t a)7303 int64x1_t test_vreinterpret_s64_f16(float16x4_t a) {
7304 return vreinterpret_s64_f16(a);
7305 }
7306
7307 // CHECK-LABEL: test_vreinterpret_s64_f32
test_vreinterpret_s64_f32(float32x2_t a)7308 int64x1_t test_vreinterpret_s64_f32(float32x2_t a) {
7309 return vreinterpret_s64_f32(a);
7310 }
7311
7312 // CHECK-LABEL: test_vreinterpret_s64_p8
test_vreinterpret_s64_p8(poly8x8_t a)7313 int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) {
7314 return vreinterpret_s64_p8(a);
7315 }
7316
7317 // CHECK-LABEL: test_vreinterpret_s64_p16
test_vreinterpret_s64_p16(poly16x4_t a)7318 int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) {
7319 return vreinterpret_s64_p16(a);
7320 }
7321
7322 // CHECK-LABEL: test_vreinterpret_u8_s8
test_vreinterpret_u8_s8(int8x8_t a)7323 uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) {
7324 return vreinterpret_u8_s8(a);
7325 }
7326
7327 // CHECK-LABEL: test_vreinterpret_u8_s16
test_vreinterpret_u8_s16(int16x4_t a)7328 uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) {
7329 return vreinterpret_u8_s16(a);
7330 }
7331
7332 // CHECK-LABEL: test_vreinterpret_u8_s32
test_vreinterpret_u8_s32(int32x2_t a)7333 uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) {
7334 return vreinterpret_u8_s32(a);
7335 }
7336
7337 // CHECK-LABEL: test_vreinterpret_u8_s64
test_vreinterpret_u8_s64(int64x1_t a)7338 uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) {
7339 return vreinterpret_u8_s64(a);
7340 }
7341
7342 // CHECK-LABEL: test_vreinterpret_u8_u16
test_vreinterpret_u8_u16(uint16x4_t a)7343 uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) {
7344 return vreinterpret_u8_u16(a);
7345 }
7346
7347 // CHECK-LABEL: test_vreinterpret_u8_u32
test_vreinterpret_u8_u32(uint32x2_t a)7348 uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) {
7349 return vreinterpret_u8_u32(a);
7350 }
7351
7352 // CHECK-LABEL: test_vreinterpret_u8_u64
test_vreinterpret_u8_u64(uint64x1_t a)7353 uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) {
7354 return vreinterpret_u8_u64(a);
7355 }
7356
7357 // CHECK-LABEL: test_vreinterpret_u8_f16
test_vreinterpret_u8_f16(float16x4_t a)7358 uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) {
7359 return vreinterpret_u8_f16(a);
7360 }
7361
7362 // CHECK-LABEL: test_vreinterpret_u8_f32
test_vreinterpret_u8_f32(float32x2_t a)7363 uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) {
7364 return vreinterpret_u8_f32(a);
7365 }
7366
7367 // CHECK-LABEL: test_vreinterpret_u8_p8
test_vreinterpret_u8_p8(poly8x8_t a)7368 uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) {
7369 return vreinterpret_u8_p8(a);
7370 }
7371
7372 // CHECK-LABEL: test_vreinterpret_u8_p16
test_vreinterpret_u8_p16(poly16x4_t a)7373 uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) {
7374 return vreinterpret_u8_p16(a);
7375 }
7376
7377 // CHECK-LABEL: test_vreinterpret_u16_s8
test_vreinterpret_u16_s8(int8x8_t a)7378 uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) {
7379 return vreinterpret_u16_s8(a);
7380 }
7381
7382 // CHECK-LABEL: test_vreinterpret_u16_s16
test_vreinterpret_u16_s16(int16x4_t a)7383 uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) {
7384 return vreinterpret_u16_s16(a);
7385 }
7386
7387 // CHECK-LABEL: test_vreinterpret_u16_s32
test_vreinterpret_u16_s32(int32x2_t a)7388 uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) {
7389 return vreinterpret_u16_s32(a);
7390 }
7391
7392 // CHECK-LABEL: test_vreinterpret_u16_s64
test_vreinterpret_u16_s64(int64x1_t a)7393 uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) {
7394 return vreinterpret_u16_s64(a);
7395 }
7396
7397 // CHECK-LABEL: test_vreinterpret_u16_u8
test_vreinterpret_u16_u8(uint8x8_t a)7398 uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) {
7399 return vreinterpret_u16_u8(a);
7400 }
7401
7402 // CHECK-LABEL: test_vreinterpret_u16_u32
test_vreinterpret_u16_u32(uint32x2_t a)7403 uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) {
7404 return vreinterpret_u16_u32(a);
7405 }
7406
7407 // CHECK-LABEL: test_vreinterpret_u16_u64
test_vreinterpret_u16_u64(uint64x1_t a)7408 uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) {
7409 return vreinterpret_u16_u64(a);
7410 }
7411
7412 // CHECK-LABEL: test_vreinterpret_u16_f16
test_vreinterpret_u16_f16(float16x4_t a)7413 uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) {
7414 return vreinterpret_u16_f16(a);
7415 }
7416
7417 // CHECK-LABEL: test_vreinterpret_u16_f32
test_vreinterpret_u16_f32(float32x2_t a)7418 uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) {
7419 return vreinterpret_u16_f32(a);
7420 }
7421
7422 // CHECK-LABEL: test_vreinterpret_u16_p8
test_vreinterpret_u16_p8(poly8x8_t a)7423 uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) {
7424 return vreinterpret_u16_p8(a);
7425 }
7426
7427 // CHECK-LABEL: test_vreinterpret_u16_p16
test_vreinterpret_u16_p16(poly16x4_t a)7428 uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) {
7429 return vreinterpret_u16_p16(a);
7430 }
7431
7432 // CHECK-LABEL: test_vreinterpret_u32_s8
test_vreinterpret_u32_s8(int8x8_t a)7433 uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) {
7434 return vreinterpret_u32_s8(a);
7435 }
7436
7437 // CHECK-LABEL: test_vreinterpret_u32_s16
test_vreinterpret_u32_s16(int16x4_t a)7438 uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) {
7439 return vreinterpret_u32_s16(a);
7440 }
7441
7442 // CHECK-LABEL: test_vreinterpret_u32_s32
test_vreinterpret_u32_s32(int32x2_t a)7443 uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) {
7444 return vreinterpret_u32_s32(a);
7445 }
7446
7447 // CHECK-LABEL: test_vreinterpret_u32_s64
test_vreinterpret_u32_s64(int64x1_t a)7448 uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) {
7449 return vreinterpret_u32_s64(a);
7450 }
7451
7452 // CHECK-LABEL: test_vreinterpret_u32_u8
test_vreinterpret_u32_u8(uint8x8_t a)7453 uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) {
7454 return vreinterpret_u32_u8(a);
7455 }
7456
7457 // CHECK-LABEL: test_vreinterpret_u32_u16
test_vreinterpret_u32_u16(uint16x4_t a)7458 uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) {
7459 return vreinterpret_u32_u16(a);
7460 }
7461
7462 // CHECK-LABEL: test_vreinterpret_u32_u64
test_vreinterpret_u32_u64(uint64x1_t a)7463 uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) {
7464 return vreinterpret_u32_u64(a);
7465 }
7466
7467 // CHECK-LABEL: test_vreinterpret_u32_f16
test_vreinterpret_u32_f16(float16x4_t a)7468 uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) {
7469 return vreinterpret_u32_f16(a);
7470 }
7471
7472 // CHECK-LABEL: test_vreinterpret_u32_f32
test_vreinterpret_u32_f32(float32x2_t a)7473 uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) {
7474 return vreinterpret_u32_f32(a);
7475 }
7476
7477 // CHECK-LABEL: test_vreinterpret_u32_p8
test_vreinterpret_u32_p8(poly8x8_t a)7478 uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) {
7479 return vreinterpret_u32_p8(a);
7480 }
7481
7482 // CHECK-LABEL: test_vreinterpret_u32_p16
test_vreinterpret_u32_p16(poly16x4_t a)7483 uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) {
7484 return vreinterpret_u32_p16(a);
7485 }
7486
7487 // CHECK-LABEL: test_vreinterpret_u64_s8
test_vreinterpret_u64_s8(int8x8_t a)7488 uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) {
7489 return vreinterpret_u64_s8(a);
7490 }
7491
7492 // CHECK-LABEL: test_vreinterpret_u64_s16
test_vreinterpret_u64_s16(int16x4_t a)7493 uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) {
7494 return vreinterpret_u64_s16(a);
7495 }
7496
7497 // CHECK-LABEL: test_vreinterpret_u64_s32
test_vreinterpret_u64_s32(int32x2_t a)7498 uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) {
7499 return vreinterpret_u64_s32(a);
7500 }
7501
7502 // CHECK-LABEL: test_vreinterpret_u64_s64
test_vreinterpret_u64_s64(int64x1_t a)7503 uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) {
7504 return vreinterpret_u64_s64(a);
7505 }
7506
7507 // CHECK-LABEL: test_vreinterpret_u64_u8
test_vreinterpret_u64_u8(uint8x8_t a)7508 uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) {
7509 return vreinterpret_u64_u8(a);
7510 }
7511
7512 // CHECK-LABEL: test_vreinterpret_u64_u16
test_vreinterpret_u64_u16(uint16x4_t a)7513 uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) {
7514 return vreinterpret_u64_u16(a);
7515 }
7516
7517 // CHECK-LABEL: test_vreinterpret_u64_u32
test_vreinterpret_u64_u32(uint32x2_t a)7518 uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) {
7519 return vreinterpret_u64_u32(a);
7520 }
7521
7522 // CHECK-LABEL: test_vreinterpret_u64_f16
test_vreinterpret_u64_f16(float16x4_t a)7523 uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) {
7524 return vreinterpret_u64_f16(a);
7525 }
7526
7527 // CHECK-LABEL: test_vreinterpret_u64_f32
test_vreinterpret_u64_f32(float32x2_t a)7528 uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) {
7529 return vreinterpret_u64_f32(a);
7530 }
7531
7532 // CHECK-LABEL: test_vreinterpret_u64_p8
test_vreinterpret_u64_p8(poly8x8_t a)7533 uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) {
7534 return vreinterpret_u64_p8(a);
7535 }
7536
7537 // CHECK-LABEL: test_vreinterpret_u64_p16
test_vreinterpret_u64_p16(poly16x4_t a)7538 uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) {
7539 return vreinterpret_u64_p16(a);
7540 }
7541
7542 // CHECK-LABEL: test_vreinterpret_f16_s8
test_vreinterpret_f16_s8(int8x8_t a)7543 float16x4_t test_vreinterpret_f16_s8(int8x8_t a) {
7544 return vreinterpret_f16_s8(a);
7545 }
7546
7547 // CHECK-LABEL: test_vreinterpret_f16_s16
test_vreinterpret_f16_s16(int16x4_t a)7548 float16x4_t test_vreinterpret_f16_s16(int16x4_t a) {
7549 return vreinterpret_f16_s16(a);
7550 }
7551
7552 // CHECK-LABEL: test_vreinterpret_f16_s32
test_vreinterpret_f16_s32(int32x2_t a)7553 float16x4_t test_vreinterpret_f16_s32(int32x2_t a) {
7554 return vreinterpret_f16_s32(a);
7555 }
7556
7557 // CHECK-LABEL: test_vreinterpret_f16_s64
test_vreinterpret_f16_s64(int64x1_t a)7558 float16x4_t test_vreinterpret_f16_s64(int64x1_t a) {
7559 return vreinterpret_f16_s64(a);
7560 }
7561
7562 // CHECK-LABEL: test_vreinterpret_f16_u8
test_vreinterpret_f16_u8(uint8x8_t a)7563 float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) {
7564 return vreinterpret_f16_u8(a);
7565 }
7566
7567 // CHECK-LABEL: test_vreinterpret_f16_u16
test_vreinterpret_f16_u16(uint16x4_t a)7568 float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) {
7569 return vreinterpret_f16_u16(a);
7570 }
7571
7572 // CHECK-LABEL: test_vreinterpret_f16_u32
test_vreinterpret_f16_u32(uint32x2_t a)7573 float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) {
7574 return vreinterpret_f16_u32(a);
7575 }
7576
7577 // CHECK-LABEL: test_vreinterpret_f16_u64
test_vreinterpret_f16_u64(uint64x1_t a)7578 float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) {
7579 return vreinterpret_f16_u64(a);
7580 }
7581
7582 // CHECK-LABEL: test_vreinterpret_f16_f32
test_vreinterpret_f16_f32(float32x2_t a)7583 float16x4_t test_vreinterpret_f16_f32(float32x2_t a) {
7584 return vreinterpret_f16_f32(a);
7585 }
7586
7587 // CHECK-LABEL: test_vreinterpret_f16_p8
test_vreinterpret_f16_p8(poly8x8_t a)7588 float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) {
7589 return vreinterpret_f16_p8(a);
7590 }
7591
7592 // CHECK-LABEL: test_vreinterpret_f16_p16
test_vreinterpret_f16_p16(poly16x4_t a)7593 float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) {
7594 return vreinterpret_f16_p16(a);
7595 }
7596
7597 // CHECK-LABEL: test_vreinterpret_f32_s8
test_vreinterpret_f32_s8(int8x8_t a)7598 float32x2_t test_vreinterpret_f32_s8(int8x8_t a) {
7599 return vreinterpret_f32_s8(a);
7600 }
7601
7602 // CHECK-LABEL: test_vreinterpret_f32_s16
test_vreinterpret_f32_s16(int16x4_t a)7603 float32x2_t test_vreinterpret_f32_s16(int16x4_t a) {
7604 return vreinterpret_f32_s16(a);
7605 }
7606
7607 // CHECK-LABEL: test_vreinterpret_f32_s32
test_vreinterpret_f32_s32(int32x2_t a)7608 float32x2_t test_vreinterpret_f32_s32(int32x2_t a) {
7609 return vreinterpret_f32_s32(a);
7610 }
7611
7612 // CHECK-LABEL: test_vreinterpret_f32_s64
test_vreinterpret_f32_s64(int64x1_t a)7613 float32x2_t test_vreinterpret_f32_s64(int64x1_t a) {
7614 return vreinterpret_f32_s64(a);
7615 }
7616
7617 // CHECK-LABEL: test_vreinterpret_f32_u8
test_vreinterpret_f32_u8(uint8x8_t a)7618 float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) {
7619 return vreinterpret_f32_u8(a);
7620 }
7621
7622 // CHECK-LABEL: test_vreinterpret_f32_u16
test_vreinterpret_f32_u16(uint16x4_t a)7623 float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) {
7624 return vreinterpret_f32_u16(a);
7625 }
7626
7627 // CHECK-LABEL: test_vreinterpret_f32_u32
test_vreinterpret_f32_u32(uint32x2_t a)7628 float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) {
7629 return vreinterpret_f32_u32(a);
7630 }
7631
7632 // CHECK-LABEL: test_vreinterpret_f32_u64
test_vreinterpret_f32_u64(uint64x1_t a)7633 float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) {
7634 return vreinterpret_f32_u64(a);
7635 }
7636
7637 // CHECK-LABEL: test_vreinterpret_f32_f16
test_vreinterpret_f32_f16(float16x4_t a)7638 float32x2_t test_vreinterpret_f32_f16(float16x4_t a) {
7639 return vreinterpret_f32_f16(a);
7640 }
7641
7642 // CHECK-LABEL: test_vreinterpret_f32_p8
test_vreinterpret_f32_p8(poly8x8_t a)7643 float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) {
7644 return vreinterpret_f32_p8(a);
7645 }
7646
7647 // CHECK-LABEL: test_vreinterpret_f32_p16
test_vreinterpret_f32_p16(poly16x4_t a)7648 float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) {
7649 return vreinterpret_f32_p16(a);
7650 }
7651
7652 // CHECK-LABEL: test_vreinterpret_p8_s8
test_vreinterpret_p8_s8(int8x8_t a)7653 poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) {
7654 return vreinterpret_p8_s8(a);
7655 }
7656
7657 // CHECK-LABEL: test_vreinterpret_p8_s16
test_vreinterpret_p8_s16(int16x4_t a)7658 poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) {
7659 return vreinterpret_p8_s16(a);
7660 }
7661
7662 // CHECK-LABEL: test_vreinterpret_p8_s32
test_vreinterpret_p8_s32(int32x2_t a)7663 poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) {
7664 return vreinterpret_p8_s32(a);
7665 }
7666
7667 // CHECK-LABEL: test_vreinterpret_p8_s64
test_vreinterpret_p8_s64(int64x1_t a)7668 poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) {
7669 return vreinterpret_p8_s64(a);
7670 }
7671
7672 // CHECK-LABEL: test_vreinterpret_p8_u8
test_vreinterpret_p8_u8(uint8x8_t a)7673 poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) {
7674 return vreinterpret_p8_u8(a);
7675 }
7676
7677 // CHECK-LABEL: test_vreinterpret_p8_u16
test_vreinterpret_p8_u16(uint16x4_t a)7678 poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) {
7679 return vreinterpret_p8_u16(a);
7680 }
7681
7682 // CHECK-LABEL: test_vreinterpret_p8_u32
test_vreinterpret_p8_u32(uint32x2_t a)7683 poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) {
7684 return vreinterpret_p8_u32(a);
7685 }
7686
7687 // CHECK-LABEL: test_vreinterpret_p8_u64
test_vreinterpret_p8_u64(uint64x1_t a)7688 poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) {
7689 return vreinterpret_p8_u64(a);
7690 }
7691
7692 // CHECK-LABEL: test_vreinterpret_p8_f16
test_vreinterpret_p8_f16(float16x4_t a)7693 poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) {
7694 return vreinterpret_p8_f16(a);
7695 }
7696
7697 // CHECK-LABEL: test_vreinterpret_p8_f32
test_vreinterpret_p8_f32(float32x2_t a)7698 poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) {
7699 return vreinterpret_p8_f32(a);
7700 }
7701
7702 // CHECK-LABEL: test_vreinterpret_p8_p16
test_vreinterpret_p8_p16(poly16x4_t a)7703 poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) {
7704 return vreinterpret_p8_p16(a);
7705 }
7706
7707 // CHECK-LABEL: test_vreinterpret_p16_s8
test_vreinterpret_p16_s8(int8x8_t a)7708 poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) {
7709 return vreinterpret_p16_s8(a);
7710 }
7711
7712 // CHECK-LABEL: test_vreinterpret_p16_s16
test_vreinterpret_p16_s16(int16x4_t a)7713 poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) {
7714 return vreinterpret_p16_s16(a);
7715 }
7716
7717 // CHECK-LABEL: test_vreinterpret_p16_s32
test_vreinterpret_p16_s32(int32x2_t a)7718 poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) {
7719 return vreinterpret_p16_s32(a);
7720 }
7721
7722 // CHECK-LABEL: test_vreinterpret_p16_s64
test_vreinterpret_p16_s64(int64x1_t a)7723 poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) {
7724 return vreinterpret_p16_s64(a);
7725 }
7726
7727 // CHECK-LABEL: test_vreinterpret_p16_u8
test_vreinterpret_p16_u8(uint8x8_t a)7728 poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) {
7729 return vreinterpret_p16_u8(a);
7730 }
7731
7732 // CHECK-LABEL: test_vreinterpret_p16_u16
test_vreinterpret_p16_u16(uint16x4_t a)7733 poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) {
7734 return vreinterpret_p16_u16(a);
7735 }
7736
7737 // CHECK-LABEL: test_vreinterpret_p16_u32
test_vreinterpret_p16_u32(uint32x2_t a)7738 poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) {
7739 return vreinterpret_p16_u32(a);
7740 }
7741
7742 // CHECK-LABEL: test_vreinterpret_p16_u64
test_vreinterpret_p16_u64(uint64x1_t a)7743 poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) {
7744 return vreinterpret_p16_u64(a);
7745 }
7746
7747 // CHECK-LABEL: test_vreinterpret_p16_f16
test_vreinterpret_p16_f16(float16x4_t a)7748 poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) {
7749 return vreinterpret_p16_f16(a);
7750 }
7751
7752 // CHECK-LABEL: test_vreinterpret_p16_f32
test_vreinterpret_p16_f32(float32x2_t a)7753 poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) {
7754 return vreinterpret_p16_f32(a);
7755 }
7756
7757 // CHECK-LABEL: test_vreinterpret_p16_p8
test_vreinterpret_p16_p8(poly8x8_t a)7758 poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) {
7759 return vreinterpret_p16_p8(a);
7760 }
7761
7762 // CHECK-LABEL: test_vreinterpretq_s8_s16
test_vreinterpretq_s8_s16(int16x8_t a)7763 int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) {
7764 return vreinterpretq_s8_s16(a);
7765 }
7766
7767 // CHECK-LABEL: test_vreinterpretq_s8_s32
test_vreinterpretq_s8_s32(int32x4_t a)7768 int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) {
7769 return vreinterpretq_s8_s32(a);
7770 }
7771
7772 // CHECK-LABEL: test_vreinterpretq_s8_s64
test_vreinterpretq_s8_s64(int64x2_t a)7773 int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) {
7774 return vreinterpretq_s8_s64(a);
7775 }
7776
7777 // CHECK-LABEL: test_vreinterpretq_s8_u8
test_vreinterpretq_s8_u8(uint8x16_t a)7778 int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) {
7779 return vreinterpretq_s8_u8(a);
7780 }
7781
7782 // CHECK-LABEL: test_vreinterpretq_s8_u16
test_vreinterpretq_s8_u16(uint16x8_t a)7783 int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) {
7784 return vreinterpretq_s8_u16(a);
7785 }
7786
7787 // CHECK-LABEL: test_vreinterpretq_s8_u32
test_vreinterpretq_s8_u32(uint32x4_t a)7788 int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) {
7789 return vreinterpretq_s8_u32(a);
7790 }
7791
7792 // CHECK-LABEL: test_vreinterpretq_s8_u64
test_vreinterpretq_s8_u64(uint64x2_t a)7793 int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) {
7794 return vreinterpretq_s8_u64(a);
7795 }
7796
7797 // CHECK-LABEL: test_vreinterpretq_s8_f16
test_vreinterpretq_s8_f16(float16x8_t a)7798 int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) {
7799 return vreinterpretq_s8_f16(a);
7800 }
7801
7802 // CHECK-LABEL: test_vreinterpretq_s8_f32
test_vreinterpretq_s8_f32(float32x4_t a)7803 int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) {
7804 return vreinterpretq_s8_f32(a);
7805 }
7806
7807 // CHECK-LABEL: test_vreinterpretq_s8_p8
test_vreinterpretq_s8_p8(poly8x16_t a)7808 int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) {
7809 return vreinterpretq_s8_p8(a);
7810 }
7811
7812 // CHECK-LABEL: test_vreinterpretq_s8_p16
test_vreinterpretq_s8_p16(poly16x8_t a)7813 int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) {
7814 return vreinterpretq_s8_p16(a);
7815 }
7816
7817 // CHECK-LABEL: test_vreinterpretq_s16_s8
test_vreinterpretq_s16_s8(int8x16_t a)7818 int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) {
7819 return vreinterpretq_s16_s8(a);
7820 }
7821
7822 // CHECK-LABEL: test_vreinterpretq_s16_s32
test_vreinterpretq_s16_s32(int32x4_t a)7823 int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) {
7824 return vreinterpretq_s16_s32(a);
7825 }
7826
7827 // CHECK-LABEL: test_vreinterpretq_s16_s64
test_vreinterpretq_s16_s64(int64x2_t a)7828 int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) {
7829 return vreinterpretq_s16_s64(a);
7830 }
7831
7832 // CHECK-LABEL: test_vreinterpretq_s16_u8
test_vreinterpretq_s16_u8(uint8x16_t a)7833 int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) {
7834 return vreinterpretq_s16_u8(a);
7835 }
7836
7837 // CHECK-LABEL: test_vreinterpretq_s16_u16
test_vreinterpretq_s16_u16(uint16x8_t a)7838 int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) {
7839 return vreinterpretq_s16_u16(a);
7840 }
7841
7842 // CHECK-LABEL: test_vreinterpretq_s16_u32
test_vreinterpretq_s16_u32(uint32x4_t a)7843 int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) {
7844 return vreinterpretq_s16_u32(a);
7845 }
7846
7847 // CHECK-LABEL: test_vreinterpretq_s16_u64
test_vreinterpretq_s16_u64(uint64x2_t a)7848 int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) {
7849 return vreinterpretq_s16_u64(a);
7850 }
7851
7852 // CHECK-LABEL: test_vreinterpretq_s16_f16
test_vreinterpretq_s16_f16(float16x8_t a)7853 int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) {
7854 return vreinterpretq_s16_f16(a);
7855 }
7856
7857 // CHECK-LABEL: test_vreinterpretq_s16_f32
test_vreinterpretq_s16_f32(float32x4_t a)7858 int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) {
7859 return vreinterpretq_s16_f32(a);
7860 }
7861
7862 // CHECK-LABEL: test_vreinterpretq_s16_p8
test_vreinterpretq_s16_p8(poly8x16_t a)7863 int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) {
7864 return vreinterpretq_s16_p8(a);
7865 }
7866
7867 // CHECK-LABEL: test_vreinterpretq_s16_p16
test_vreinterpretq_s16_p16(poly16x8_t a)7868 int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) {
7869 return vreinterpretq_s16_p16(a);
7870 }
7871
7872 // CHECK-LABEL: test_vreinterpretq_s32_s8
test_vreinterpretq_s32_s8(int8x16_t a)7873 int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) {
7874 return vreinterpretq_s32_s8(a);
7875 }
7876
7877 // CHECK-LABEL: test_vreinterpretq_s32_s16
test_vreinterpretq_s32_s16(int16x8_t a)7878 int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) {
7879 return vreinterpretq_s32_s16(a);
7880 }
7881
7882 // CHECK-LABEL: test_vreinterpretq_s32_s64
test_vreinterpretq_s32_s64(int64x2_t a)7883 int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) {
7884 return vreinterpretq_s32_s64(a);
7885 }
7886
7887 // CHECK-LABEL: test_vreinterpretq_s32_u8
test_vreinterpretq_s32_u8(uint8x16_t a)7888 int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) {
7889 return vreinterpretq_s32_u8(a);
7890 }
7891
7892 // CHECK-LABEL: test_vreinterpretq_s32_u16
test_vreinterpretq_s32_u16(uint16x8_t a)7893 int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) {
7894 return vreinterpretq_s32_u16(a);
7895 }
7896
7897 // CHECK-LABEL: test_vreinterpretq_s32_u32
test_vreinterpretq_s32_u32(uint32x4_t a)7898 int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) {
7899 return vreinterpretq_s32_u32(a);
7900 }
7901
7902 // CHECK-LABEL: test_vreinterpretq_s32_u64
test_vreinterpretq_s32_u64(uint64x2_t a)7903 int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) {
7904 return vreinterpretq_s32_u64(a);
7905 }
7906
7907 // CHECK-LABEL: test_vreinterpretq_s32_f16
test_vreinterpretq_s32_f16(float16x8_t a)7908 int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) {
7909 return vreinterpretq_s32_f16(a);
7910 }
7911
7912 // CHECK-LABEL: test_vreinterpretq_s32_f32
test_vreinterpretq_s32_f32(float32x4_t a)7913 int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) {
7914 return vreinterpretq_s32_f32(a);
7915 }
7916
7917 // CHECK-LABEL: test_vreinterpretq_s32_p8
test_vreinterpretq_s32_p8(poly8x16_t a)7918 int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) {
7919 return vreinterpretq_s32_p8(a);
7920 }
7921
7922 // CHECK-LABEL: test_vreinterpretq_s32_p16
test_vreinterpretq_s32_p16(poly16x8_t a)7923 int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) {
7924 return vreinterpretq_s32_p16(a);
7925 }
7926
7927 // CHECK-LABEL: test_vreinterpretq_s64_s8
test_vreinterpretq_s64_s8(int8x16_t a)7928 int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) {
7929 return vreinterpretq_s64_s8(a);
7930 }
7931
7932 // CHECK-LABEL: test_vreinterpretq_s64_s16
test_vreinterpretq_s64_s16(int16x8_t a)7933 int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) {
7934 return vreinterpretq_s64_s16(a);
7935 }
7936
7937 // CHECK-LABEL: test_vreinterpretq_s64_s32
test_vreinterpretq_s64_s32(int32x4_t a)7938 int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) {
7939 return vreinterpretq_s64_s32(a);
7940 }
7941
7942 // CHECK-LABEL: test_vreinterpretq_s64_u8
test_vreinterpretq_s64_u8(uint8x16_t a)7943 int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) {
7944 return vreinterpretq_s64_u8(a);
7945 }
7946
7947 // CHECK-LABEL: test_vreinterpretq_s64_u16
test_vreinterpretq_s64_u16(uint16x8_t a)7948 int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) {
7949 return vreinterpretq_s64_u16(a);
7950 }
7951
7952 // CHECK-LABEL: test_vreinterpretq_s64_u32
test_vreinterpretq_s64_u32(uint32x4_t a)7953 int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) {
7954 return vreinterpretq_s64_u32(a);
7955 }
7956
7957 // CHECK-LABEL: test_vreinterpretq_s64_u64
test_vreinterpretq_s64_u64(uint64x2_t a)7958 int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) {
7959 return vreinterpretq_s64_u64(a);
7960 }
7961
7962 // CHECK-LABEL: test_vreinterpretq_s64_f16
test_vreinterpretq_s64_f16(float16x8_t a)7963 int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) {
7964 return vreinterpretq_s64_f16(a);
7965 }
7966
7967 // CHECK-LABEL: test_vreinterpretq_s64_f32
test_vreinterpretq_s64_f32(float32x4_t a)7968 int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) {
7969 return vreinterpretq_s64_f32(a);
7970 }
7971
7972 // CHECK-LABEL: test_vreinterpretq_s64_p8
test_vreinterpretq_s64_p8(poly8x16_t a)7973 int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) {
7974 return vreinterpretq_s64_p8(a);
7975 }
7976
7977 // CHECK-LABEL: test_vreinterpretq_s64_p16
test_vreinterpretq_s64_p16(poly16x8_t a)7978 int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) {
7979 return vreinterpretq_s64_p16(a);
7980 }
7981
7982 // CHECK-LABEL: test_vreinterpretq_u8_s8
test_vreinterpretq_u8_s8(int8x16_t a)7983 uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) {
7984 return vreinterpretq_u8_s8(a);
7985 }
7986
7987 // CHECK-LABEL: test_vreinterpretq_u8_s16
test_vreinterpretq_u8_s16(int16x8_t a)7988 uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) {
7989 return vreinterpretq_u8_s16(a);
7990 }
7991
7992 // CHECK-LABEL: test_vreinterpretq_u8_s32
test_vreinterpretq_u8_s32(int32x4_t a)7993 uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) {
7994 return vreinterpretq_u8_s32(a);
7995 }
7996
7997 // CHECK-LABEL: test_vreinterpretq_u8_s64
test_vreinterpretq_u8_s64(int64x2_t a)7998 uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) {
7999 return vreinterpretq_u8_s64(a);
8000 }
8001
8002 // CHECK-LABEL: test_vreinterpretq_u8_u16
test_vreinterpretq_u8_u16(uint16x8_t a)8003 uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) {
8004 return vreinterpretq_u8_u16(a);
8005 }
8006
8007 // CHECK-LABEL: test_vreinterpretq_u8_u32
test_vreinterpretq_u8_u32(uint32x4_t a)8008 uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) {
8009 return vreinterpretq_u8_u32(a);
8010 }
8011
8012 // CHECK-LABEL: test_vreinterpretq_u8_u64
test_vreinterpretq_u8_u64(uint64x2_t a)8013 uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) {
8014 return vreinterpretq_u8_u64(a);
8015 }
8016
8017 // CHECK-LABEL: test_vreinterpretq_u8_f16
test_vreinterpretq_u8_f16(float16x8_t a)8018 uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) {
8019 return vreinterpretq_u8_f16(a);
8020 }
8021
8022 // CHECK-LABEL: test_vreinterpretq_u8_f32
test_vreinterpretq_u8_f32(float32x4_t a)8023 uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) {
8024 return vreinterpretq_u8_f32(a);
8025 }
8026
8027 // CHECK-LABEL: test_vreinterpretq_u8_p8
test_vreinterpretq_u8_p8(poly8x16_t a)8028 uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) {
8029 return vreinterpretq_u8_p8(a);
8030 }
8031
8032 // CHECK-LABEL: test_vreinterpretq_u8_p16
test_vreinterpretq_u8_p16(poly16x8_t a)8033 uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) {
8034 return vreinterpretq_u8_p16(a);
8035 }
8036
8037 // CHECK-LABEL: test_vreinterpretq_u16_s8
test_vreinterpretq_u16_s8(int8x16_t a)8038 uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) {
8039 return vreinterpretq_u16_s8(a);
8040 }
8041
8042 // CHECK-LABEL: test_vreinterpretq_u16_s16
test_vreinterpretq_u16_s16(int16x8_t a)8043 uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) {
8044 return vreinterpretq_u16_s16(a);
8045 }
8046
8047 // CHECK-LABEL: test_vreinterpretq_u16_s32
test_vreinterpretq_u16_s32(int32x4_t a)8048 uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) {
8049 return vreinterpretq_u16_s32(a);
8050 }
8051
8052 // CHECK-LABEL: test_vreinterpretq_u16_s64
test_vreinterpretq_u16_s64(int64x2_t a)8053 uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) {
8054 return vreinterpretq_u16_s64(a);
8055 }
8056
8057 // CHECK-LABEL: test_vreinterpretq_u16_u8
test_vreinterpretq_u16_u8(uint8x16_t a)8058 uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) {
8059 return vreinterpretq_u16_u8(a);
8060 }
8061
8062 // CHECK-LABEL: test_vreinterpretq_u16_u32
test_vreinterpretq_u16_u32(uint32x4_t a)8063 uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) {
8064 return vreinterpretq_u16_u32(a);
8065 }
8066
8067 // CHECK-LABEL: test_vreinterpretq_u16_u64
test_vreinterpretq_u16_u64(uint64x2_t a)8068 uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) {
8069 return vreinterpretq_u16_u64(a);
8070 }
8071
8072 // CHECK-LABEL: test_vreinterpretq_u16_f16
test_vreinterpretq_u16_f16(float16x8_t a)8073 uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) {
8074 return vreinterpretq_u16_f16(a);
8075 }
8076
8077 // CHECK-LABEL: test_vreinterpretq_u16_f32
test_vreinterpretq_u16_f32(float32x4_t a)8078 uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) {
8079 return vreinterpretq_u16_f32(a);
8080 }
8081
8082 // CHECK-LABEL: test_vreinterpretq_u16_p8
test_vreinterpretq_u16_p8(poly8x16_t a)8083 uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) {
8084 return vreinterpretq_u16_p8(a);
8085 }
8086
8087 // CHECK-LABEL: test_vreinterpretq_u16_p16
test_vreinterpretq_u16_p16(poly16x8_t a)8088 uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) {
8089 return vreinterpretq_u16_p16(a);
8090 }
8091
8092 // CHECK-LABEL: test_vreinterpretq_u32_s8
test_vreinterpretq_u32_s8(int8x16_t a)8093 uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) {
8094 return vreinterpretq_u32_s8(a);
8095 }
8096
8097 // CHECK-LABEL: test_vreinterpretq_u32_s16
test_vreinterpretq_u32_s16(int16x8_t a)8098 uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) {
8099 return vreinterpretq_u32_s16(a);
8100 }
8101
8102 // CHECK-LABEL: test_vreinterpretq_u32_s32
test_vreinterpretq_u32_s32(int32x4_t a)8103 uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) {
8104 return vreinterpretq_u32_s32(a);
8105 }
8106
8107 // CHECK-LABEL: test_vreinterpretq_u32_s64
test_vreinterpretq_u32_s64(int64x2_t a)8108 uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) {
8109 return vreinterpretq_u32_s64(a);
8110 }
8111
8112 // CHECK-LABEL: test_vreinterpretq_u32_u8
test_vreinterpretq_u32_u8(uint8x16_t a)8113 uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) {
8114 return vreinterpretq_u32_u8(a);
8115 }
8116
8117 // CHECK-LABEL: test_vreinterpretq_u32_u16
test_vreinterpretq_u32_u16(uint16x8_t a)8118 uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) {
8119 return vreinterpretq_u32_u16(a);
8120 }
8121
8122 // CHECK-LABEL: test_vreinterpretq_u32_u64
test_vreinterpretq_u32_u64(uint64x2_t a)8123 uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) {
8124 return vreinterpretq_u32_u64(a);
8125 }
8126
8127 // CHECK-LABEL: test_vreinterpretq_u32_f16
test_vreinterpretq_u32_f16(float16x8_t a)8128 uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) {
8129 return vreinterpretq_u32_f16(a);
8130 }
8131
8132 // CHECK-LABEL: test_vreinterpretq_u32_f32
test_vreinterpretq_u32_f32(float32x4_t a)8133 uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) {
8134 return vreinterpretq_u32_f32(a);
8135 }
8136
8137 // CHECK-LABEL: test_vreinterpretq_u32_p8
test_vreinterpretq_u32_p8(poly8x16_t a)8138 uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) {
8139 return vreinterpretq_u32_p8(a);
8140 }
8141
8142 // CHECK-LABEL: test_vreinterpretq_u32_p16
test_vreinterpretq_u32_p16(poly16x8_t a)8143 uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) {
8144 return vreinterpretq_u32_p16(a);
8145 }
8146
8147 // CHECK-LABEL: test_vreinterpretq_u64_s8
test_vreinterpretq_u64_s8(int8x16_t a)8148 uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) {
8149 return vreinterpretq_u64_s8(a);
8150 }
8151
8152 // CHECK-LABEL: test_vreinterpretq_u64_s16
test_vreinterpretq_u64_s16(int16x8_t a)8153 uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) {
8154 return vreinterpretq_u64_s16(a);
8155 }
8156
8157 // CHECK-LABEL: test_vreinterpretq_u64_s32
test_vreinterpretq_u64_s32(int32x4_t a)8158 uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) {
8159 return vreinterpretq_u64_s32(a);
8160 }
8161
8162 // CHECK-LABEL: test_vreinterpretq_u64_s64
test_vreinterpretq_u64_s64(int64x2_t a)8163 uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) {
8164 return vreinterpretq_u64_s64(a);
8165 }
8166
8167 // CHECK-LABEL: test_vreinterpretq_u64_u8
test_vreinterpretq_u64_u8(uint8x16_t a)8168 uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) {
8169 return vreinterpretq_u64_u8(a);
8170 }
8171
8172 // CHECK-LABEL: test_vreinterpretq_u64_u16
test_vreinterpretq_u64_u16(uint16x8_t a)8173 uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) {
8174 return vreinterpretq_u64_u16(a);
8175 }
8176
8177 // CHECK-LABEL: test_vreinterpretq_u64_u32
test_vreinterpretq_u64_u32(uint32x4_t a)8178 uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) {
8179 return vreinterpretq_u64_u32(a);
8180 }
8181
8182 // CHECK-LABEL: test_vreinterpretq_u64_f16
test_vreinterpretq_u64_f16(float16x8_t a)8183 uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) {
8184 return vreinterpretq_u64_f16(a);
8185 }
8186
8187 // CHECK-LABEL: test_vreinterpretq_u64_f32
test_vreinterpretq_u64_f32(float32x4_t a)8188 uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) {
8189 return vreinterpretq_u64_f32(a);
8190 }
8191
8192 // CHECK-LABEL: test_vreinterpretq_u64_p8
test_vreinterpretq_u64_p8(poly8x16_t a)8193 uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) {
8194 return vreinterpretq_u64_p8(a);
8195 }
8196
8197 // CHECK-LABEL: test_vreinterpretq_u64_p16
test_vreinterpretq_u64_p16(poly16x8_t a)8198 uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) {
8199 return vreinterpretq_u64_p16(a);
8200 }
8201
8202 // CHECK-LABEL: test_vreinterpretq_f16_s8
test_vreinterpretq_f16_s8(int8x16_t a)8203 float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) {
8204 return vreinterpretq_f16_s8(a);
8205 }
8206
8207 // CHECK-LABEL: test_vreinterpretq_f16_s16
test_vreinterpretq_f16_s16(int16x8_t a)8208 float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) {
8209 return vreinterpretq_f16_s16(a);
8210 }
8211
8212 // CHECK-LABEL: test_vreinterpretq_f16_s32
test_vreinterpretq_f16_s32(int32x4_t a)8213 float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) {
8214 return vreinterpretq_f16_s32(a);
8215 }
8216
8217 // CHECK-LABEL: test_vreinterpretq_f16_s64
test_vreinterpretq_f16_s64(int64x2_t a)8218 float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) {
8219 return vreinterpretq_f16_s64(a);
8220 }
8221
8222 // CHECK-LABEL: test_vreinterpretq_f16_u8
test_vreinterpretq_f16_u8(uint8x16_t a)8223 float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) {
8224 return vreinterpretq_f16_u8(a);
8225 }
8226
8227 // CHECK-LABEL: test_vreinterpretq_f16_u16
test_vreinterpretq_f16_u16(uint16x8_t a)8228 float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) {
8229 return vreinterpretq_f16_u16(a);
8230 }
8231
8232 // CHECK-LABEL: test_vreinterpretq_f16_u32
test_vreinterpretq_f16_u32(uint32x4_t a)8233 float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) {
8234 return vreinterpretq_f16_u32(a);
8235 }
8236
8237 // CHECK-LABEL: test_vreinterpretq_f16_u64
test_vreinterpretq_f16_u64(uint64x2_t a)8238 float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) {
8239 return vreinterpretq_f16_u64(a);
8240 }
8241
8242 // CHECK-LABEL: test_vreinterpretq_f16_f32
test_vreinterpretq_f16_f32(float32x4_t a)8243 float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) {
8244 return vreinterpretq_f16_f32(a);
8245 }
8246
8247 // CHECK-LABEL: test_vreinterpretq_f16_p8
test_vreinterpretq_f16_p8(poly8x16_t a)8248 float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) {
8249 return vreinterpretq_f16_p8(a);
8250 }
8251
8252 // CHECK-LABEL: test_vreinterpretq_f16_p16
test_vreinterpretq_f16_p16(poly16x8_t a)8253 float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) {
8254 return vreinterpretq_f16_p16(a);
8255 }
8256
8257 // CHECK-LABEL: test_vreinterpretq_f32_s8
test_vreinterpretq_f32_s8(int8x16_t a)8258 float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) {
8259 return vreinterpretq_f32_s8(a);
8260 }
8261
8262 // CHECK-LABEL: test_vreinterpretq_f32_s16
test_vreinterpretq_f32_s16(int16x8_t a)8263 float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) {
8264 return vreinterpretq_f32_s16(a);
8265 }
8266
8267 // CHECK-LABEL: test_vreinterpretq_f32_s32
test_vreinterpretq_f32_s32(int32x4_t a)8268 float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) {
8269 return vreinterpretq_f32_s32(a);
8270 }
8271
8272 // CHECK-LABEL: test_vreinterpretq_f32_s64
test_vreinterpretq_f32_s64(int64x2_t a)8273 float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) {
8274 return vreinterpretq_f32_s64(a);
8275 }
8276
8277 // CHECK-LABEL: test_vreinterpretq_f32_u8
test_vreinterpretq_f32_u8(uint8x16_t a)8278 float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) {
8279 return vreinterpretq_f32_u8(a);
8280 }
8281
8282 // CHECK-LABEL: test_vreinterpretq_f32_u16
test_vreinterpretq_f32_u16(uint16x8_t a)8283 float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) {
8284 return vreinterpretq_f32_u16(a);
8285 }
8286
8287 // CHECK-LABEL: test_vreinterpretq_f32_u32
test_vreinterpretq_f32_u32(uint32x4_t a)8288 float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) {
8289 return vreinterpretq_f32_u32(a);
8290 }
8291
8292 // CHECK-LABEL: test_vreinterpretq_f32_u64
test_vreinterpretq_f32_u64(uint64x2_t a)8293 float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) {
8294 return vreinterpretq_f32_u64(a);
8295 }
8296
8297 // CHECK-LABEL: test_vreinterpretq_f32_f16
test_vreinterpretq_f32_f16(float16x8_t a)8298 float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) {
8299 return vreinterpretq_f32_f16(a);
8300 }
8301
8302 // CHECK-LABEL: test_vreinterpretq_f32_p8
test_vreinterpretq_f32_p8(poly8x16_t a)8303 float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) {
8304 return vreinterpretq_f32_p8(a);
8305 }
8306
8307 // CHECK-LABEL: test_vreinterpretq_f32_p16
test_vreinterpretq_f32_p16(poly16x8_t a)8308 float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) {
8309 return vreinterpretq_f32_p16(a);
8310 }
8311
8312 // CHECK-LABEL: test_vreinterpretq_p8_s8
test_vreinterpretq_p8_s8(int8x16_t a)8313 poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) {
8314 return vreinterpretq_p8_s8(a);
8315 }
8316
8317 // CHECK-LABEL: test_vreinterpretq_p8_s16
test_vreinterpretq_p8_s16(int16x8_t a)8318 poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) {
8319 return vreinterpretq_p8_s16(a);
8320 }
8321
8322 // CHECK-LABEL: test_vreinterpretq_p8_s32
test_vreinterpretq_p8_s32(int32x4_t a)8323 poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) {
8324 return vreinterpretq_p8_s32(a);
8325 }
8326
8327 // CHECK-LABEL: test_vreinterpretq_p8_s64
test_vreinterpretq_p8_s64(int64x2_t a)8328 poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) {
8329 return vreinterpretq_p8_s64(a);
8330 }
8331
8332 // CHECK-LABEL: test_vreinterpretq_p8_u8
test_vreinterpretq_p8_u8(uint8x16_t a)8333 poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) {
8334 return vreinterpretq_p8_u8(a);
8335 }
8336
8337 // CHECK-LABEL: test_vreinterpretq_p8_u16
test_vreinterpretq_p8_u16(uint16x8_t a)8338 poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) {
8339 return vreinterpretq_p8_u16(a);
8340 }
8341
8342 // CHECK-LABEL: test_vreinterpretq_p8_u32
test_vreinterpretq_p8_u32(uint32x4_t a)8343 poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) {
8344 return vreinterpretq_p8_u32(a);
8345 }
8346
8347 // CHECK-LABEL: test_vreinterpretq_p8_u64
test_vreinterpretq_p8_u64(uint64x2_t a)8348 poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) {
8349 return vreinterpretq_p8_u64(a);
8350 }
8351
8352 // CHECK-LABEL: test_vreinterpretq_p8_f16
test_vreinterpretq_p8_f16(float16x8_t a)8353 poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) {
8354 return vreinterpretq_p8_f16(a);
8355 }
8356
8357 // CHECK-LABEL: test_vreinterpretq_p8_f32
test_vreinterpretq_p8_f32(float32x4_t a)8358 poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) {
8359 return vreinterpretq_p8_f32(a);
8360 }
8361
8362 // CHECK-LABEL: test_vreinterpretq_p8_p16
test_vreinterpretq_p8_p16(poly16x8_t a)8363 poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) {
8364 return vreinterpretq_p8_p16(a);
8365 }
8366
8367 // CHECK-LABEL: test_vreinterpretq_p16_s8
test_vreinterpretq_p16_s8(int8x16_t a)8368 poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) {
8369 return vreinterpretq_p16_s8(a);
8370 }
8371
8372 // CHECK-LABEL: test_vreinterpretq_p16_s16
test_vreinterpretq_p16_s16(int16x8_t a)8373 poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) {
8374 return vreinterpretq_p16_s16(a);
8375 }
8376
8377 // CHECK-LABEL: test_vreinterpretq_p16_s32
test_vreinterpretq_p16_s32(int32x4_t a)8378 poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) {
8379 return vreinterpretq_p16_s32(a);
8380 }
8381
8382 // CHECK-LABEL: test_vreinterpretq_p16_s64
test_vreinterpretq_p16_s64(int64x2_t a)8383 poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) {
8384 return vreinterpretq_p16_s64(a);
8385 }
8386
8387 // CHECK-LABEL: test_vreinterpretq_p16_u8
test_vreinterpretq_p16_u8(uint8x16_t a)8388 poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) {
8389 return vreinterpretq_p16_u8(a);
8390 }
8391
8392 // CHECK-LABEL: test_vreinterpretq_p16_u16
test_vreinterpretq_p16_u16(uint16x8_t a)8393 poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) {
8394 return vreinterpretq_p16_u16(a);
8395 }
8396
8397 // CHECK-LABEL: test_vreinterpretq_p16_u32
test_vreinterpretq_p16_u32(uint32x4_t a)8398 poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) {
8399 return vreinterpretq_p16_u32(a);
8400 }
8401
8402 // CHECK-LABEL: test_vreinterpretq_p16_u64
test_vreinterpretq_p16_u64(uint64x2_t a)8403 poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) {
8404 return vreinterpretq_p16_u64(a);
8405 }
8406
8407 // CHECK-LABEL: test_vreinterpretq_p16_f16
test_vreinterpretq_p16_f16(float16x8_t a)8408 poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) {
8409 return vreinterpretq_p16_f16(a);
8410 }
8411
8412 // CHECK-LABEL: test_vreinterpretq_p16_f32
test_vreinterpretq_p16_f32(float32x4_t a)8413 poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) {
8414 return vreinterpretq_p16_f32(a);
8415 }
8416
8417 // CHECK-LABEL: test_vreinterpretq_p16_p8
test_vreinterpretq_p16_p8(poly8x16_t a)8418 poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) {
8419 return vreinterpretq_p16_p8(a);
8420 }
8421
8422
8423 // CHECK-LABEL: test_vrev16_s8
8424 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_s8(int8x8_t a)8425 int8x8_t test_vrev16_s8(int8x8_t a) {
8426 return vrev16_s8(a);
8427 }
8428
8429 // CHECK-LABEL: test_vrev16_u8
8430 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_u8(uint8x8_t a)8431 uint8x8_t test_vrev16_u8(uint8x8_t a) {
8432 return vrev16_u8(a);
8433 }
8434
8435 // CHECK-LABEL: test_vrev16_p8
8436 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev16_p8(poly8x8_t a)8437 poly8x8_t test_vrev16_p8(poly8x8_t a) {
8438 return vrev16_p8(a);
8439 }
8440
8441 // CHECK-LABEL: test_vrev16q_s8
8442 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_s8(int8x16_t a)8443 int8x16_t test_vrev16q_s8(int8x16_t a) {
8444 return vrev16q_s8(a);
8445 }
8446
8447 // CHECK-LABEL: test_vrev16q_u8
8448 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_u8(uint8x16_t a)8449 uint8x16_t test_vrev16q_u8(uint8x16_t a) {
8450 return vrev16q_u8(a);
8451 }
8452
8453 // CHECK-LABEL: test_vrev16q_p8
8454 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev16q_p8(poly8x16_t a)8455 poly8x16_t test_vrev16q_p8(poly8x16_t a) {
8456 return vrev16q_p8(a);
8457 }
8458
8459
8460 // CHECK-LABEL: test_vrev32_s8
8461 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s8(int8x8_t a)8462 int8x8_t test_vrev32_s8(int8x8_t a) {
8463 return vrev32_s8(a);
8464 }
8465
8466 // CHECK-LABEL: test_vrev32_s16
8467 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_s16(int16x4_t a)8468 int16x4_t test_vrev32_s16(int16x4_t a) {
8469 return vrev32_s16(a);
8470 }
8471
8472 // CHECK-LABEL: test_vrev32_u8
8473 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u8(uint8x8_t a)8474 uint8x8_t test_vrev32_u8(uint8x8_t a) {
8475 return vrev32_u8(a);
8476 }
8477
8478 // CHECK-LABEL: test_vrev32_u16
8479 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_u16(uint16x4_t a)8480 uint16x4_t test_vrev32_u16(uint16x4_t a) {
8481 return vrev32_u16(a);
8482 }
8483
8484 // CHECK-LABEL: test_vrev32_p8
8485 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p8(poly8x8_t a)8486 poly8x8_t test_vrev32_p8(poly8x8_t a) {
8487 return vrev32_p8(a);
8488 }
8489
8490 // CHECK-LABEL: test_vrev32_p16
8491 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev32_p16(poly16x4_t a)8492 poly16x4_t test_vrev32_p16(poly16x4_t a) {
8493 return vrev32_p16(a);
8494 }
8495
8496 // CHECK-LABEL: test_vrev32q_s8
8497 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s8(int8x16_t a)8498 int8x16_t test_vrev32q_s8(int8x16_t a) {
8499 return vrev32q_s8(a);
8500 }
8501
8502 // CHECK-LABEL: test_vrev32q_s16
8503 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_s16(int16x8_t a)8504 int16x8_t test_vrev32q_s16(int16x8_t a) {
8505 return vrev32q_s16(a);
8506 }
8507
8508 // CHECK-LABEL: test_vrev32q_u8
8509 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u8(uint8x16_t a)8510 uint8x16_t test_vrev32q_u8(uint8x16_t a) {
8511 return vrev32q_u8(a);
8512 }
8513
8514 // CHECK-LABEL: test_vrev32q_u16
8515 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_u16(uint16x8_t a)8516 uint16x8_t test_vrev32q_u16(uint16x8_t a) {
8517 return vrev32q_u16(a);
8518 }
8519
8520 // CHECK-LABEL: test_vrev32q_p8
8521 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p8(poly8x16_t a)8522 poly8x16_t test_vrev32q_p8(poly8x16_t a) {
8523 return vrev32q_p8(a);
8524 }
8525
8526 // CHECK-LABEL: test_vrev32q_p16
8527 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev32q_p16(poly16x8_t a)8528 poly16x8_t test_vrev32q_p16(poly16x8_t a) {
8529 return vrev32q_p16(a);
8530 }
8531
8532
8533 // CHECK-LABEL: test_vrev64_s8
8534 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s8(int8x8_t a)8535 int8x8_t test_vrev64_s8(int8x8_t a) {
8536 return vrev64_s8(a);
8537 }
8538
8539 // CHECK-LABEL: test_vrev64_s16
8540 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s16(int16x4_t a)8541 int16x4_t test_vrev64_s16(int16x4_t a) {
8542 return vrev64_s16(a);
8543 }
8544
8545 // CHECK-LABEL: test_vrev64_s32
8546 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_s32(int32x2_t a)8547 int32x2_t test_vrev64_s32(int32x2_t a) {
8548 return vrev64_s32(a);
8549 }
8550
8551 // CHECK-LABEL: test_vrev64_u8
8552 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u8(uint8x8_t a)8553 uint8x8_t test_vrev64_u8(uint8x8_t a) {
8554 return vrev64_u8(a);
8555 }
8556
8557 // CHECK-LABEL: test_vrev64_u16
8558 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u16(uint16x4_t a)8559 uint16x4_t test_vrev64_u16(uint16x4_t a) {
8560 return vrev64_u16(a);
8561 }
8562
8563 // CHECK-LABEL: test_vrev64_u32
8564 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_u32(uint32x2_t a)8565 uint32x2_t test_vrev64_u32(uint32x2_t a) {
8566 return vrev64_u32(a);
8567 }
8568
8569 // CHECK-LABEL: test_vrev64_p8
8570 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p8(poly8x8_t a)8571 poly8x8_t test_vrev64_p8(poly8x8_t a) {
8572 return vrev64_p8(a);
8573 }
8574
8575 // CHECK-LABEL: test_vrev64_p16
8576 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_p16(poly16x4_t a)8577 poly16x4_t test_vrev64_p16(poly16x4_t a) {
8578 return vrev64_p16(a);
8579 }
8580
8581 // CHECK-LABEL: test_vrev64_f32
8582 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrev64_f32(float32x2_t a)8583 float32x2_t test_vrev64_f32(float32x2_t a) {
8584 return vrev64_f32(a);
8585 }
8586
8587 // CHECK-LABEL: test_vrev64q_s8
8588 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s8(int8x16_t a)8589 int8x16_t test_vrev64q_s8(int8x16_t a) {
8590 return vrev64q_s8(a);
8591 }
8592
8593 // CHECK-LABEL: test_vrev64q_s16
8594 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s16(int16x8_t a)8595 int16x8_t test_vrev64q_s16(int16x8_t a) {
8596 return vrev64q_s16(a);
8597 }
8598
8599 // CHECK-LABEL: test_vrev64q_s32
8600 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_s32(int32x4_t a)8601 int32x4_t test_vrev64q_s32(int32x4_t a) {
8602 return vrev64q_s32(a);
8603 }
8604
8605 // CHECK-LABEL: test_vrev64q_u8
8606 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u8(uint8x16_t a)8607 uint8x16_t test_vrev64q_u8(uint8x16_t a) {
8608 return vrev64q_u8(a);
8609 }
8610
8611 // CHECK-LABEL: test_vrev64q_u16
8612 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u16(uint16x8_t a)8613 uint16x8_t test_vrev64q_u16(uint16x8_t a) {
8614 return vrev64q_u16(a);
8615 }
8616
8617 // CHECK-LABEL: test_vrev64q_u32
8618 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_u32(uint32x4_t a)8619 uint32x4_t test_vrev64q_u32(uint32x4_t a) {
8620 return vrev64q_u32(a);
8621 }
8622
8623 // CHECK-LABEL: test_vrev64q_p8
8624 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p8(poly8x16_t a)8625 poly8x16_t test_vrev64q_p8(poly8x16_t a) {
8626 return vrev64q_p8(a);
8627 }
8628
8629 // CHECK-LABEL: test_vrev64q_p16
8630 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_p16(poly16x8_t a)8631 poly16x8_t test_vrev64q_p16(poly16x8_t a) {
8632 return vrev64q_p16(a);
8633 }
8634
8635 // CHECK-LABEL: test_vrev64q_f32
8636 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrev64q_f32(float32x4_t a)8637 float32x4_t test_vrev64q_f32(float32x4_t a) {
8638 return vrev64q_f32(a);
8639 }
8640
8641
8642 // CHECK-LABEL: test_vrhadd_s8
8643 // CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s8(int8x8_t a,int8x8_t b)8644 int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) {
8645 return vrhadd_s8(a, b);
8646 }
8647
8648 // CHECK-LABEL: test_vrhadd_s16
8649 // CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s16(int16x4_t a,int16x4_t b)8650 int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) {
8651 return vrhadd_s16(a, b);
8652 }
8653
8654 // CHECK-LABEL: test_vrhadd_s32
8655 // CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_s32(int32x2_t a,int32x2_t b)8656 int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) {
8657 return vrhadd_s32(a, b);
8658 }
8659
8660 // CHECK-LABEL: test_vrhadd_u8
8661 // CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u8(uint8x8_t a,uint8x8_t b)8662 uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) {
8663 return vrhadd_u8(a, b);
8664 }
8665
8666 // CHECK-LABEL: test_vrhadd_u16
8667 // CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u16(uint16x4_t a,uint16x4_t b)8668 uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) {
8669 return vrhadd_u16(a, b);
8670 }
8671
8672 // CHECK-LABEL: test_vrhadd_u32
8673 // CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrhadd_u32(uint32x2_t a,uint32x2_t b)8674 uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) {
8675 return vrhadd_u32(a, b);
8676 }
8677
8678 // CHECK-LABEL: test_vrhaddq_s8
8679 // CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s8(int8x16_t a,int8x16_t b)8680 int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) {
8681 return vrhaddq_s8(a, b);
8682 }
8683
8684 // CHECK-LABEL: test_vrhaddq_s16
8685 // CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s16(int16x8_t a,int16x8_t b)8686 int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) {
8687 return vrhaddq_s16(a, b);
8688 }
8689
8690 // CHECK-LABEL: test_vrhaddq_s32
8691 // CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_s32(int32x4_t a,int32x4_t b)8692 int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) {
8693 return vrhaddq_s32(a, b);
8694 }
8695
8696 // CHECK-LABEL: test_vrhaddq_u8
8697 // CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u8(uint8x16_t a,uint8x16_t b)8698 uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) {
8699 return vrhaddq_u8(a, b);
8700 }
8701
8702 // CHECK-LABEL: test_vrhaddq_u16
8703 // CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u16(uint16x8_t a,uint16x8_t b)8704 uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) {
8705 return vrhaddq_u16(a, b);
8706 }
8707
8708 // CHECK-LABEL: test_vrhaddq_u32
8709 // CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrhaddq_u32(uint32x4_t a,uint32x4_t b)8710 uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) {
8711 return vrhaddq_u32(a, b);
8712 }
8713
8714
8715 // CHECK-LABEL: test_vrshl_s8
8716 // CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s8(int8x8_t a,int8x8_t b)8717 int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) {
8718 return vrshl_s8(a, b);
8719 }
8720
8721 // CHECK-LABEL: test_vrshl_s16
8722 // CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s16(int16x4_t a,int16x4_t b)8723 int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) {
8724 return vrshl_s16(a, b);
8725 }
8726
8727 // CHECK-LABEL: test_vrshl_s32
8728 // CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s32(int32x2_t a,int32x2_t b)8729 int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) {
8730 return vrshl_s32(a, b);
8731 }
8732
8733 // CHECK-LABEL: test_vrshl_s64
8734 // CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_s64(int64x1_t a,int64x1_t b)8735 int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) {
8736 return vrshl_s64(a, b);
8737 }
8738
8739 // CHECK-LABEL: test_vrshl_u8
8740 // CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u8(uint8x8_t a,int8x8_t b)8741 uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) {
8742 return vrshl_u8(a, b);
8743 }
8744
8745 // CHECK-LABEL: test_vrshl_u16
8746 // CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u16(uint16x4_t a,int16x4_t b)8747 uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) {
8748 return vrshl_u16(a, b);
8749 }
8750
8751 // CHECK-LABEL: test_vrshl_u32
8752 // CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u32(uint32x2_t a,int32x2_t b)8753 uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) {
8754 return vrshl_u32(a, b);
8755 }
8756
8757 // CHECK-LABEL: test_vrshl_u64
8758 // CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrshl_u64(uint64x1_t a,int64x1_t b)8759 uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) {
8760 return vrshl_u64(a, b);
8761 }
8762
8763 // CHECK-LABEL: test_vrshlq_s8
8764 // CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s8(int8x16_t a,int8x16_t b)8765 int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) {
8766 return vrshlq_s8(a, b);
8767 }
8768
8769 // CHECK-LABEL: test_vrshlq_s16
8770 // CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s16(int16x8_t a,int16x8_t b)8771 int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) {
8772 return vrshlq_s16(a, b);
8773 }
8774
8775 // CHECK-LABEL: test_vrshlq_s32
8776 // CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s32(int32x4_t a,int32x4_t b)8777 int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) {
8778 return vrshlq_s32(a, b);
8779 }
8780
8781 // CHECK-LABEL: test_vrshlq_s64
8782 // CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_s64(int64x2_t a,int64x2_t b)8783 int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) {
8784 return vrshlq_s64(a, b);
8785 }
8786
8787 // CHECK-LABEL: test_vrshlq_u8
8788 // CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u8(uint8x16_t a,int8x16_t b)8789 uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) {
8790 return vrshlq_u8(a, b);
8791 }
8792
8793 // CHECK-LABEL: test_vrshlq_u16
8794 // CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u16(uint16x8_t a,int16x8_t b)8795 uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) {
8796 return vrshlq_u16(a, b);
8797 }
8798
8799 // CHECK-LABEL: test_vrshlq_u32
8800 // CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u32(uint32x4_t a,int32x4_t b)8801 uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) {
8802 return vrshlq_u32(a, b);
8803 }
8804
8805 // CHECK-LABEL: test_vrshlq_u64
8806 // CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrshlq_u64(uint64x2_t a,int64x2_t b)8807 uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) {
8808 return vrshlq_u64(a, b);
8809 }
8810
8811
8812 // CHECK-LABEL: test_vrshrn_n_s16
8813 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s16(int16x8_t a)8814 int8x8_t test_vrshrn_n_s16(int16x8_t a) {
8815 return vrshrn_n_s16(a, 1);
8816 }
8817
8818 // CHECK-LABEL: test_vrshrn_n_s32
8819 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s32(int32x4_t a)8820 int16x4_t test_vrshrn_n_s32(int32x4_t a) {
8821 return vrshrn_n_s32(a, 1);
8822 }
8823
8824 // CHECK-LABEL: test_vrshrn_n_s64
8825 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_s64(int64x2_t a)8826 int32x2_t test_vrshrn_n_s64(int64x2_t a) {
8827 return vrshrn_n_s64(a, 1);
8828 }
8829
8830 // CHECK-LABEL: test_vrshrn_n_u16
8831 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u16(uint16x8_t a)8832 uint8x8_t test_vrshrn_n_u16(uint16x8_t a) {
8833 return vrshrn_n_u16(a, 1);
8834 }
8835
8836 // CHECK-LABEL: test_vrshrn_n_u32
8837 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u32(uint32x4_t a)8838 uint16x4_t test_vrshrn_n_u32(uint32x4_t a) {
8839 return vrshrn_n_u32(a, 1);
8840 }
8841
8842 // CHECK-LABEL: test_vrshrn_n_u64
8843 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrn_n_u64(uint64x2_t a)8844 uint32x2_t test_vrshrn_n_u64(uint64x2_t a) {
8845 return vrshrn_n_u64(a, 1);
8846 }
8847
8848
8849 // CHECK-LABEL: test_vrshr_n_s8
8850 // CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s8(int8x8_t a)8851 int8x8_t test_vrshr_n_s8(int8x8_t a) {
8852 return vrshr_n_s8(a, 1);
8853 }
8854
8855 // CHECK-LABEL: test_vrshr_n_s16
8856 // CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s16(int16x4_t a)8857 int16x4_t test_vrshr_n_s16(int16x4_t a) {
8858 return vrshr_n_s16(a, 1);
8859 }
8860
8861 // CHECK-LABEL: test_vrshr_n_s32
8862 // CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s32(int32x2_t a)8863 int32x2_t test_vrshr_n_s32(int32x2_t a) {
8864 return vrshr_n_s32(a, 1);
8865 }
8866
8867 // CHECK-LABEL: test_vrshr_n_s64
8868 // CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_s64(int64x1_t a)8869 int64x1_t test_vrshr_n_s64(int64x1_t a) {
8870 return vrshr_n_s64(a, 1);
8871 }
8872
8873 // CHECK-LABEL: test_vrshr_n_u8
8874 // CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u8(uint8x8_t a)8875 uint8x8_t test_vrshr_n_u8(uint8x8_t a) {
8876 return vrshr_n_u8(a, 1);
8877 }
8878
8879 // CHECK-LABEL: test_vrshr_n_u16
8880 // CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u16(uint16x4_t a)8881 uint16x4_t test_vrshr_n_u16(uint16x4_t a) {
8882 return vrshr_n_u16(a, 1);
8883 }
8884
8885 // CHECK-LABEL: test_vrshr_n_u32
8886 // CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u32(uint32x2_t a)8887 uint32x2_t test_vrshr_n_u32(uint32x2_t a) {
8888 return vrshr_n_u32(a, 1);
8889 }
8890
8891 // CHECK-LABEL: test_vrshr_n_u64
8892 // CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrshr_n_u64(uint64x1_t a)8893 uint64x1_t test_vrshr_n_u64(uint64x1_t a) {
8894 return vrshr_n_u64(a, 1);
8895 }
8896
8897 // CHECK-LABEL: test_vrshrq_n_s8
8898 // CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s8(int8x16_t a)8899 int8x16_t test_vrshrq_n_s8(int8x16_t a) {
8900 return vrshrq_n_s8(a, 1);
8901 }
8902
8903 // CHECK-LABEL: test_vrshrq_n_s16
8904 // CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s16(int16x8_t a)8905 int16x8_t test_vrshrq_n_s16(int16x8_t a) {
8906 return vrshrq_n_s16(a, 1);
8907 }
8908
8909 // CHECK-LABEL: test_vrshrq_n_s32
8910 // CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s32(int32x4_t a)8911 int32x4_t test_vrshrq_n_s32(int32x4_t a) {
8912 return vrshrq_n_s32(a, 1);
8913 }
8914
8915 // CHECK-LABEL: test_vrshrq_n_s64
8916 // CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_s64(int64x2_t a)8917 int64x2_t test_vrshrq_n_s64(int64x2_t a) {
8918 return vrshrq_n_s64(a, 1);
8919 }
8920
8921 // CHECK-LABEL: test_vrshrq_n_u8
8922 // CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u8(uint8x16_t a)8923 uint8x16_t test_vrshrq_n_u8(uint8x16_t a) {
8924 return vrshrq_n_u8(a, 1);
8925 }
8926
8927 // CHECK-LABEL: test_vrshrq_n_u16
8928 // CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u16(uint16x8_t a)8929 uint16x8_t test_vrshrq_n_u16(uint16x8_t a) {
8930 return vrshrq_n_u16(a, 1);
8931 }
8932
8933 // CHECK-LABEL: test_vrshrq_n_u32
8934 // CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u32(uint32x4_t a)8935 uint32x4_t test_vrshrq_n_u32(uint32x4_t a) {
8936 return vrshrq_n_u32(a, 1);
8937 }
8938
8939 // CHECK-LABEL: test_vrshrq_n_u64
8940 // CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrshrq_n_u64(uint64x2_t a)8941 uint64x2_t test_vrshrq_n_u64(uint64x2_t a) {
8942 return vrshrq_n_u64(a, 1);
8943 }
8944
8945
8946 // CHECK-LABEL: test_vrsqrte_f32
8947 // CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_f32(float32x2_t a)8948 float32x2_t test_vrsqrte_f32(float32x2_t a) {
8949 return vrsqrte_f32(a);
8950 }
8951
8952 // CHECK-LABEL: test_vrsqrte_u32
8953 // CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrte_u32(uint32x2_t a)8954 uint32x2_t test_vrsqrte_u32(uint32x2_t a) {
8955 return vrsqrte_u32(a);
8956 }
8957
8958 // CHECK-LABEL: test_vrsqrteq_f32
8959 // CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_f32(float32x4_t a)8960 float32x4_t test_vrsqrteq_f32(float32x4_t a) {
8961 return vrsqrteq_f32(a);
8962 }
8963
8964 // CHECK-LABEL: test_vrsqrteq_u32
8965 // CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrteq_u32(uint32x4_t a)8966 uint32x4_t test_vrsqrteq_u32(uint32x4_t a) {
8967 return vrsqrteq_u32(a);
8968 }
8969
8970
8971 // CHECK-LABEL: test_vrsqrts_f32
8972 // CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vrsqrts_f32(float32x2_t a,float32x2_t b)8973 float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) {
8974 return vrsqrts_f32(a, b);
8975 }
8976
8977 // CHECK-LABEL: test_vrsqrtsq_f32
8978 // CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsqrtsq_f32(float32x4_t a,float32x4_t b)8979 float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) {
8980 return vrsqrtsq_f32(a, b);
8981 }
8982
8983
8984 // CHECK-LABEL: test_vrsra_n_s8
8985 // CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s8(int8x8_t a,int8x8_t b)8986 int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) {
8987 return vrsra_n_s8(a, b, 1);
8988 }
8989
8990 // CHECK-LABEL: test_vrsra_n_s16
8991 // CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s16(int16x4_t a,int16x4_t b)8992 int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) {
8993 return vrsra_n_s16(a, b, 1);
8994 }
8995
8996 // CHECK-LABEL: test_vrsra_n_s32
8997 // CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s32(int32x2_t a,int32x2_t b)8998 int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) {
8999 return vrsra_n_s32(a, b, 1);
9000 }
9001
9002 // CHECK-LABEL: test_vrsra_n_s64
9003 // CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_s64(int64x1_t a,int64x1_t b)9004 int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) {
9005 return vrsra_n_s64(a, b, 1);
9006 }
9007
9008 // CHECK-LABEL: test_vrsra_n_u8
9009 // CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u8(uint8x8_t a,uint8x8_t b)9010 uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) {
9011 return vrsra_n_u8(a, b, 1);
9012 }
9013
9014 // CHECK-LABEL: test_vrsra_n_u16
9015 // CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u16(uint16x4_t a,uint16x4_t b)9016 uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) {
9017 return vrsra_n_u16(a, b, 1);
9018 }
9019
9020 // CHECK-LABEL: test_vrsra_n_u32
9021 // CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u32(uint32x2_t a,uint32x2_t b)9022 uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) {
9023 return vrsra_n_u32(a, b, 1);
9024 }
9025
9026 // CHECK-LABEL: test_vrsra_n_u64
9027 // CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vrsra_n_u64(uint64x1_t a,uint64x1_t b)9028 uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) {
9029 return vrsra_n_u64(a, b, 1);
9030 }
9031
9032 // CHECK-LABEL: test_vrsraq_n_s8
9033 // CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s8(int8x16_t a,int8x16_t b)9034 int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) {
9035 return vrsraq_n_s8(a, b, 1);
9036 }
9037
9038 // CHECK-LABEL: test_vrsraq_n_s16
9039 // CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s16(int16x8_t a,int16x8_t b)9040 int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) {
9041 return vrsraq_n_s16(a, b, 1);
9042 }
9043
9044 // CHECK-LABEL: test_vrsraq_n_s32
9045 // CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s32(int32x4_t a,int32x4_t b)9046 int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) {
9047 return vrsraq_n_s32(a, b, 1);
9048 }
9049
9050 // CHECK-LABEL: test_vrsraq_n_s64
9051 // CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_s64(int64x2_t a,int64x2_t b)9052 int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) {
9053 return vrsraq_n_s64(a, b, 1);
9054 }
9055
9056 // CHECK-LABEL: test_vrsraq_n_u8
9057 // CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u8(uint8x16_t a,uint8x16_t b)9058 uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9059 return vrsraq_n_u8(a, b, 1);
9060 }
9061
9062 // CHECK-LABEL: test_vrsraq_n_u16
9063 // CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u16(uint16x8_t a,uint16x8_t b)9064 uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9065 return vrsraq_n_u16(a, b, 1);
9066 }
9067
9068 // CHECK-LABEL: test_vrsraq_n_u32
9069 // CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u32(uint32x4_t a,uint32x4_t b)9070 uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9071 return vrsraq_n_u32(a, b, 1);
9072 }
9073
9074 // CHECK-LABEL: test_vrsraq_n_u64
9075 // CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vrsraq_n_u64(uint64x2_t a,uint64x2_t b)9076 uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9077 return vrsraq_n_u64(a, b, 1);
9078 }
9079
9080
9081 // CHECK-LABEL: test_vrsubhn_s16
9082 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s16(int16x8_t a,int16x8_t b)9083 int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) {
9084 return vrsubhn_s16(a, b);
9085 }
9086
9087 // CHECK-LABEL: test_vrsubhn_s32
9088 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s32(int32x4_t a,int32x4_t b)9089 int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) {
9090 return vrsubhn_s32(a, b);
9091 }
9092
9093 // CHECK-LABEL: test_vrsubhn_s64
9094 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_s64(int64x2_t a,int64x2_t b)9095 int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) {
9096 return vrsubhn_s64(a, b);
9097 }
9098
9099 // CHECK-LABEL: test_vrsubhn_u16
9100 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u16(uint16x8_t a,uint16x8_t b)9101 uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) {
9102 return vrsubhn_u16(a, b);
9103 }
9104
9105 // CHECK-LABEL: test_vrsubhn_u32
9106 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u32(uint32x4_t a,uint32x4_t b)9107 uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) {
9108 return vrsubhn_u32(a, b);
9109 }
9110
9111 // CHECK-LABEL: test_vrsubhn_u64
9112 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vrsubhn_u64(uint64x2_t a,uint64x2_t b)9113 uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) {
9114 return vrsubhn_u64(a, b);
9115 }
9116
9117
9118 // CHECK-LABEL: test_vset_lane_u8
9119 // CHECK: vmov
test_vset_lane_u8(uint8_t a,uint8x8_t b)9120 uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
9121 return vset_lane_u8(a, b, 7);
9122 }
9123
9124 // CHECK-LABEL: test_vset_lane_u16
9125 // CHECK: vmov
test_vset_lane_u16(uint16_t a,uint16x4_t b)9126 uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
9127 return vset_lane_u16(a, b, 3);
9128 }
9129
9130 // CHECK-LABEL: test_vset_lane_u32
9131 // CHECK: mov
test_vset_lane_u32(uint32_t a,uint32x2_t b)9132 uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
9133 return vset_lane_u32(a, b, 1);
9134 }
9135
9136 // CHECK-LABEL: test_vset_lane_s8
9137 // CHECK: vmov
test_vset_lane_s8(int8_t a,int8x8_t b)9138 int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) {
9139 return vset_lane_s8(a, b, 7);
9140 }
9141
9142 // CHECK-LABEL: test_vset_lane_s16
9143 // CHECK: vmov
test_vset_lane_s16(int16_t a,int16x4_t b)9144 int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) {
9145 return vset_lane_s16(a, b, 3);
9146 }
9147
9148 // CHECK-LABEL: test_vset_lane_s32
9149 // CHECK: mov
test_vset_lane_s32(int32_t a,int32x2_t b)9150 int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) {
9151 return vset_lane_s32(a, b, 1);
9152 }
9153
9154 // CHECK-LABEL: test_vset_lane_p8
9155 // CHECK: vmov
test_vset_lane_p8(poly8_t a,poly8x8_t b)9156 poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) {
9157 return vset_lane_p8(a, b, 7);
9158 }
9159
9160 // CHECK-LABEL: test_vset_lane_p16
9161 // CHECK: vmov
test_vset_lane_p16(poly16_t a,poly16x4_t b)9162 poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) {
9163 return vset_lane_p16(a, b, 3);
9164 }
9165
9166 // CHECK-LABEL: test_vset_lane_f32
9167 // CHECK: mov
test_vset_lane_f32(float32_t a,float32x2_t b)9168 float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
9169 return vset_lane_f32(a, b, 1);
9170 }
9171
9172 // CHECK-LABEL: test_vset_lane_f16
9173 // CHECK: mov
test_vset_lane_f16(float16_t * a,float16x4_t b)9174 float16x4_t test_vset_lane_f16(float16_t *a, float16x4_t b) {
9175 return vset_lane_f16(*a, b, 1);
9176 }
9177
9178 // CHECK-LABEL: test_vsetq_lane_u8
9179 // CHECK: vmov
test_vsetq_lane_u8(uint8_t a,uint8x16_t b)9180 uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
9181 return vsetq_lane_u8(a, b, 15);
9182 }
9183
9184 // CHECK-LABEL: test_vsetq_lane_u16
9185 // CHECK: vmov
test_vsetq_lane_u16(uint16_t a,uint16x8_t b)9186 uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
9187 return vsetq_lane_u16(a, b, 7);
9188 }
9189
9190 // CHECK-LABEL: test_vsetq_lane_u32
9191 // CHECK: vmov
test_vsetq_lane_u32(uint32_t a,uint32x4_t b)9192 uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
9193 return vsetq_lane_u32(a, b, 3);
9194 }
9195
9196 // CHECK-LABEL: test_vsetq_lane_s8
9197 // CHECK: vmov
test_vsetq_lane_s8(int8_t a,int8x16_t b)9198 int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) {
9199 return vsetq_lane_s8(a, b, 15);
9200 }
9201
9202 // CHECK-LABEL: test_vsetq_lane_s16
9203 // CHECK: vmov
test_vsetq_lane_s16(int16_t a,int16x8_t b)9204 int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) {
9205 return vsetq_lane_s16(a, b, 7);
9206 }
9207
9208 // CHECK-LABEL: test_vsetq_lane_s32
9209 // CHECK: vmov
test_vsetq_lane_s32(int32_t a,int32x4_t b)9210 int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) {
9211 return vsetq_lane_s32(a, b, 3);
9212 }
9213
9214 // CHECK-LABEL: test_vsetq_lane_p8
9215 // CHECK: vmov
test_vsetq_lane_p8(poly8_t a,poly8x16_t b)9216 poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) {
9217 return vsetq_lane_p8(a, b, 15);
9218 }
9219
9220 // CHECK-LABEL: test_vsetq_lane_p16
9221 // CHECK: vmov
test_vsetq_lane_p16(poly16_t a,poly16x8_t b)9222 poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) {
9223 return vsetq_lane_p16(a, b, 7);
9224 }
9225
9226 // CHECK-LABEL: test_vsetq_lane_f32
9227 // CHECK: vmov
test_vsetq_lane_f32(float32_t a,float32x4_t b)9228 float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
9229 return vsetq_lane_f32(a, b, 3);
9230 }
9231
9232 // CHECK-LABEL: test_vsetq_lane_f16
9233 // CHECK: vmov
test_vsetq_lane_f16(float16_t * a,float16x8_t b)9234 float16x8_t test_vsetq_lane_f16(float16_t *a, float16x8_t b) {
9235 return vsetq_lane_f16(*a, b, 3);
9236 }
9237
9238 // CHECK-LABEL: test_vset_lane_s64
9239 // The optimizer is able to get rid of all moves now.
test_vset_lane_s64(int64_t a,int64x1_t b)9240 int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) {
9241 return vset_lane_s64(a, b, 0);
9242 }
9243
9244 // CHECK-LABEL: test_vset_lane_u64
9245 // The optimizer is able to get rid of all moves now.
test_vset_lane_u64(uint64_t a,uint64x1_t b)9246 uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) {
9247 return vset_lane_u64(a, b, 0);
9248 }
9249
9250 // CHECK-LABEL: test_vsetq_lane_s64
9251 // CHECK: vmov
test_vsetq_lane_s64(int64_t a,int64x2_t b)9252 int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
9253 return vsetq_lane_s64(a, b, 1);
9254 }
9255
9256 // CHECK-LABEL: test_vsetq_lane_u64
9257 // CHECK: vmov
test_vsetq_lane_u64(uint64_t a,uint64x2_t b)9258 uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) {
9259 return vsetq_lane_u64(a, b, 1);
9260 }
9261
9262
9263 // CHECK-LABEL: test_vshl_s8
9264 // CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s8(int8x8_t a,int8x8_t b)9265 int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) {
9266 return vshl_s8(a, b);
9267 }
9268
9269 // CHECK-LABEL: test_vshl_s16
9270 // CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s16(int16x4_t a,int16x4_t b)9271 int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) {
9272 return vshl_s16(a, b);
9273 }
9274
9275 // CHECK-LABEL: test_vshl_s32
9276 // CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s32(int32x2_t a,int32x2_t b)9277 int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) {
9278 return vshl_s32(a, b);
9279 }
9280
9281 // CHECK-LABEL: test_vshl_s64
9282 // CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_s64(int64x1_t a,int64x1_t b)9283 int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) {
9284 return vshl_s64(a, b);
9285 }
9286
9287 // CHECK-LABEL: test_vshl_u8
9288 // CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u8(uint8x8_t a,int8x8_t b)9289 uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) {
9290 return vshl_u8(a, b);
9291 }
9292
9293 // CHECK-LABEL: test_vshl_u16
9294 // CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u16(uint16x4_t a,int16x4_t b)9295 uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) {
9296 return vshl_u16(a, b);
9297 }
9298
9299 // CHECK-LABEL: test_vshl_u32
9300 // CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u32(uint32x2_t a,int32x2_t b)9301 uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) {
9302 return vshl_u32(a, b);
9303 }
9304
9305 // CHECK-LABEL: test_vshl_u64
9306 // CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vshl_u64(uint64x1_t a,int64x1_t b)9307 uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) {
9308 return vshl_u64(a, b);
9309 }
9310
9311 // CHECK-LABEL: test_vshlq_s8
9312 // CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s8(int8x16_t a,int8x16_t b)9313 int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) {
9314 return vshlq_s8(a, b);
9315 }
9316
9317 // CHECK-LABEL: test_vshlq_s16
9318 // CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s16(int16x8_t a,int16x8_t b)9319 int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) {
9320 return vshlq_s16(a, b);
9321 }
9322
9323 // CHECK-LABEL: test_vshlq_s32
9324 // CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s32(int32x4_t a,int32x4_t b)9325 int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) {
9326 return vshlq_s32(a, b);
9327 }
9328
9329 // CHECK-LABEL: test_vshlq_s64
9330 // CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_s64(int64x2_t a,int64x2_t b)9331 int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) {
9332 return vshlq_s64(a, b);
9333 }
9334
9335 // CHECK-LABEL: test_vshlq_u8
9336 // CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u8(uint8x16_t a,int8x16_t b)9337 uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) {
9338 return vshlq_u8(a, b);
9339 }
9340
9341 // CHECK-LABEL: test_vshlq_u16
9342 // CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u16(uint16x8_t a,int16x8_t b)9343 uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) {
9344 return vshlq_u16(a, b);
9345 }
9346
9347 // CHECK-LABEL: test_vshlq_u32
9348 // CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u32(uint32x4_t a,int32x4_t b)9349 uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) {
9350 return vshlq_u32(a, b);
9351 }
9352
9353 // CHECK-LABEL: test_vshlq_u64
9354 // CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vshlq_u64(uint64x2_t a,int64x2_t b)9355 uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) {
9356 return vshlq_u64(a, b);
9357 }
9358
9359
9360 // CHECK-LABEL: test_vshll_n_s8
9361 // CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s8(int8x8_t a)9362 int16x8_t test_vshll_n_s8(int8x8_t a) {
9363 return vshll_n_s8(a, 1);
9364 }
9365
9366 // CHECK-LABEL: test_vshll_n_s16
9367 // CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s16(int16x4_t a)9368 int32x4_t test_vshll_n_s16(int16x4_t a) {
9369 return vshll_n_s16(a, 1);
9370 }
9371
9372 // CHECK-LABEL: test_vshll_n_s32
9373 // CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_s32(int32x2_t a)9374 int64x2_t test_vshll_n_s32(int32x2_t a) {
9375 return vshll_n_s32(a, 1);
9376 }
9377
9378 // CHECK-LABEL: test_vshll_n_u8
9379 // CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u8(uint8x8_t a)9380 uint16x8_t test_vshll_n_u8(uint8x8_t a) {
9381 return vshll_n_u8(a, 1);
9382 }
9383
9384 // CHECK-LABEL: test_vshll_n_u16
9385 // CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u16(uint16x4_t a)9386 uint32x4_t test_vshll_n_u16(uint16x4_t a) {
9387 return vshll_n_u16(a, 1);
9388 }
9389
9390 // CHECK-LABEL: test_vshll_n_u32
9391 // CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshll_n_u32(uint32x2_t a)9392 uint64x2_t test_vshll_n_u32(uint32x2_t a) {
9393 return vshll_n_u32(a, 1);
9394 }
9395
9396
9397 // CHECK-LABEL: test_vshl_n_s8
9398 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s8(int8x8_t a)9399 int8x8_t test_vshl_n_s8(int8x8_t a) {
9400 return vshl_n_s8(a, 1);
9401 }
9402
9403 // CHECK-LABEL: test_vshl_n_s16
9404 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s16(int16x4_t a)9405 int16x4_t test_vshl_n_s16(int16x4_t a) {
9406 return vshl_n_s16(a, 1);
9407 }
9408
9409 // CHECK-LABEL: test_vshl_n_s32
9410 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s32(int32x2_t a)9411 int32x2_t test_vshl_n_s32(int32x2_t a) {
9412 return vshl_n_s32(a, 1);
9413 }
9414
9415 // CHECK-LABEL: test_vshl_n_s64
9416 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_s64(int64x1_t a)9417 int64x1_t test_vshl_n_s64(int64x1_t a) {
9418 return vshl_n_s64(a, 1);
9419 }
9420
9421 // CHECK-LABEL: test_vshl_n_u8
9422 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u8(uint8x8_t a)9423 uint8x8_t test_vshl_n_u8(uint8x8_t a) {
9424 return vshl_n_u8(a, 1);
9425 }
9426
9427 // CHECK-LABEL: test_vshl_n_u16
9428 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u16(uint16x4_t a)9429 uint16x4_t test_vshl_n_u16(uint16x4_t a) {
9430 return vshl_n_u16(a, 1);
9431 }
9432
9433 // CHECK-LABEL: test_vshl_n_u32
9434 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u32(uint32x2_t a)9435 uint32x2_t test_vshl_n_u32(uint32x2_t a) {
9436 return vshl_n_u32(a, 1);
9437 }
9438
9439 // CHECK-LABEL: test_vshl_n_u64
9440 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshl_n_u64(uint64x1_t a)9441 uint64x1_t test_vshl_n_u64(uint64x1_t a) {
9442 return vshl_n_u64(a, 1);
9443 }
9444
9445 // CHECK-LABEL: test_vshlq_n_s8
9446 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s8(int8x16_t a)9447 int8x16_t test_vshlq_n_s8(int8x16_t a) {
9448 return vshlq_n_s8(a, 1);
9449 }
9450
9451 // CHECK-LABEL: test_vshlq_n_s16
9452 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s16(int16x8_t a)9453 int16x8_t test_vshlq_n_s16(int16x8_t a) {
9454 return vshlq_n_s16(a, 1);
9455 }
9456
9457 // CHECK-LABEL: test_vshlq_n_s32
9458 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s32(int32x4_t a)9459 int32x4_t test_vshlq_n_s32(int32x4_t a) {
9460 return vshlq_n_s32(a, 1);
9461 }
9462
9463 // CHECK-LABEL: test_vshlq_n_s64
9464 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_s64(int64x2_t a)9465 int64x2_t test_vshlq_n_s64(int64x2_t a) {
9466 return vshlq_n_s64(a, 1);
9467 }
9468
9469 // CHECK-LABEL: test_vshlq_n_u8
9470 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u8(uint8x16_t a)9471 uint8x16_t test_vshlq_n_u8(uint8x16_t a) {
9472 return vshlq_n_u8(a, 1);
9473 }
9474
9475 // CHECK-LABEL: test_vshlq_n_u16
9476 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u16(uint16x8_t a)9477 uint16x8_t test_vshlq_n_u16(uint16x8_t a) {
9478 return vshlq_n_u16(a, 1);
9479 }
9480
9481 // CHECK-LABEL: test_vshlq_n_u32
9482 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u32(uint32x4_t a)9483 uint32x4_t test_vshlq_n_u32(uint32x4_t a) {
9484 return vshlq_n_u32(a, 1);
9485 }
9486
9487 // CHECK-LABEL: test_vshlq_n_u64
9488 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshlq_n_u64(uint64x2_t a)9489 uint64x2_t test_vshlq_n_u64(uint64x2_t a) {
9490 return vshlq_n_u64(a, 1);
9491 }
9492
9493
9494 // CHECK-LABEL: test_vshrn_n_s16
9495 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s16(int16x8_t a)9496 int8x8_t test_vshrn_n_s16(int16x8_t a) {
9497 return vshrn_n_s16(a, 1);
9498 }
9499
9500 // CHECK-LABEL: test_vshrn_n_s32
9501 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s32(int32x4_t a)9502 int16x4_t test_vshrn_n_s32(int32x4_t a) {
9503 return vshrn_n_s32(a, 1);
9504 }
9505
9506 // CHECK-LABEL: test_vshrn_n_s64
9507 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_s64(int64x2_t a)9508 int32x2_t test_vshrn_n_s64(int64x2_t a) {
9509 return vshrn_n_s64(a, 1);
9510 }
9511
9512 // CHECK-LABEL: test_vshrn_n_u16
9513 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u16(uint16x8_t a)9514 uint8x8_t test_vshrn_n_u16(uint16x8_t a) {
9515 return vshrn_n_u16(a, 1);
9516 }
9517
9518 // CHECK-LABEL: test_vshrn_n_u32
9519 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u32(uint32x4_t a)9520 uint16x4_t test_vshrn_n_u32(uint32x4_t a) {
9521 return vshrn_n_u32(a, 1);
9522 }
9523
9524 // CHECK-LABEL: test_vshrn_n_u64
9525 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrn_n_u64(uint64x2_t a)9526 uint32x2_t test_vshrn_n_u64(uint64x2_t a) {
9527 return vshrn_n_u64(a, 1);
9528 }
9529
9530
9531 // CHECK-LABEL: test_vshr_n_s8
9532 // CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s8(int8x8_t a)9533 int8x8_t test_vshr_n_s8(int8x8_t a) {
9534 return vshr_n_s8(a, 1);
9535 }
9536
9537 // CHECK-LABEL: test_vshr_n_s16
9538 // CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s16(int16x4_t a)9539 int16x4_t test_vshr_n_s16(int16x4_t a) {
9540 return vshr_n_s16(a, 1);
9541 }
9542
9543 // CHECK-LABEL: test_vshr_n_s32
9544 // CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s32(int32x2_t a)9545 int32x2_t test_vshr_n_s32(int32x2_t a) {
9546 return vshr_n_s32(a, 1);
9547 }
9548
9549 // CHECK-LABEL: test_vshr_n_s64
9550 // CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_s64(int64x1_t a)9551 int64x1_t test_vshr_n_s64(int64x1_t a) {
9552 return vshr_n_s64(a, 1);
9553 }
9554
9555 // CHECK-LABEL: test_vshr_n_u8
9556 // CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u8(uint8x8_t a)9557 uint8x8_t test_vshr_n_u8(uint8x8_t a) {
9558 return vshr_n_u8(a, 1);
9559 }
9560
9561 // CHECK-LABEL: test_vshr_n_u16
9562 // CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u16(uint16x4_t a)9563 uint16x4_t test_vshr_n_u16(uint16x4_t a) {
9564 return vshr_n_u16(a, 1);
9565 }
9566
9567 // CHECK-LABEL: test_vshr_n_u32
9568 // CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u32(uint32x2_t a)9569 uint32x2_t test_vshr_n_u32(uint32x2_t a) {
9570 return vshr_n_u32(a, 1);
9571 }
9572
9573 // CHECK-LABEL: test_vshr_n_u64
9574 // CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vshr_n_u64(uint64x1_t a)9575 uint64x1_t test_vshr_n_u64(uint64x1_t a) {
9576 return vshr_n_u64(a, 1);
9577 }
9578
9579 // CHECK-LABEL: test_vshrq_n_s8
9580 // CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s8(int8x16_t a)9581 int8x16_t test_vshrq_n_s8(int8x16_t a) {
9582 return vshrq_n_s8(a, 1);
9583 }
9584
9585 // CHECK-LABEL: test_vshrq_n_s16
9586 // CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s16(int16x8_t a)9587 int16x8_t test_vshrq_n_s16(int16x8_t a) {
9588 return vshrq_n_s16(a, 1);
9589 }
9590
9591 // CHECK-LABEL: test_vshrq_n_s32
9592 // CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s32(int32x4_t a)9593 int32x4_t test_vshrq_n_s32(int32x4_t a) {
9594 return vshrq_n_s32(a, 1);
9595 }
9596
9597 // CHECK-LABEL: test_vshrq_n_s64
9598 // CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_s64(int64x2_t a)9599 int64x2_t test_vshrq_n_s64(int64x2_t a) {
9600 return vshrq_n_s64(a, 1);
9601 }
9602
9603 // CHECK-LABEL: test_vshrq_n_u8
9604 // CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u8(uint8x16_t a)9605 uint8x16_t test_vshrq_n_u8(uint8x16_t a) {
9606 return vshrq_n_u8(a, 1);
9607 }
9608
9609 // CHECK-LABEL: test_vshrq_n_u16
9610 // CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u16(uint16x8_t a)9611 uint16x8_t test_vshrq_n_u16(uint16x8_t a) {
9612 return vshrq_n_u16(a, 1);
9613 }
9614
9615 // CHECK-LABEL: test_vshrq_n_u32
9616 // CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u32(uint32x4_t a)9617 uint32x4_t test_vshrq_n_u32(uint32x4_t a) {
9618 return vshrq_n_u32(a, 1);
9619 }
9620
9621 // CHECK-LABEL: test_vshrq_n_u64
9622 // CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vshrq_n_u64(uint64x2_t a)9623 uint64x2_t test_vshrq_n_u64(uint64x2_t a) {
9624 return vshrq_n_u64(a, 1);
9625 }
9626
9627
9628 // CHECK-LABEL: test_vsli_n_s8
9629 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s8(int8x8_t a,int8x8_t b)9630 int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) {
9631 return vsli_n_s8(a, b, 1);
9632 }
9633
9634 // CHECK-LABEL: test_vsli_n_s16
9635 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s16(int16x4_t a,int16x4_t b)9636 int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) {
9637 return vsli_n_s16(a, b, 1);
9638 }
9639
9640 // CHECK-LABEL: test_vsli_n_s32
9641 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s32(int32x2_t a,int32x2_t b)9642 int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) {
9643 return vsli_n_s32(a, b, 1);
9644 }
9645
9646 // CHECK-LABEL: test_vsli_n_s64
9647 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_s64(int64x1_t a,int64x1_t b)9648 int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) {
9649 return vsli_n_s64(a, b, 1);
9650 }
9651
9652 // CHECK-LABEL: test_vsli_n_u8
9653 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u8(uint8x8_t a,uint8x8_t b)9654 uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) {
9655 return vsli_n_u8(a, b, 1);
9656 }
9657
9658 // CHECK-LABEL: test_vsli_n_u16
9659 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u16(uint16x4_t a,uint16x4_t b)9660 uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) {
9661 return vsli_n_u16(a, b, 1);
9662 }
9663
9664 // CHECK-LABEL: test_vsli_n_u32
9665 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u32(uint32x2_t a,uint32x2_t b)9666 uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) {
9667 return vsli_n_u32(a, b, 1);
9668 }
9669
9670 // CHECK-LABEL: test_vsli_n_u64
9671 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_u64(uint64x1_t a,uint64x1_t b)9672 uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) {
9673 return vsli_n_u64(a, b, 1);
9674 }
9675
9676 // CHECK-LABEL: test_vsli_n_p8
9677 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p8(poly8x8_t a,poly8x8_t b)9678 poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) {
9679 return vsli_n_p8(a, b, 1);
9680 }
9681
9682 // CHECK-LABEL: test_vsli_n_p16
9683 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsli_n_p16(poly16x4_t a,poly16x4_t b)9684 poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) {
9685 return vsli_n_p16(a, b, 1);
9686 }
9687
9688 // CHECK-LABEL: test_vsliq_n_s8
9689 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s8(int8x16_t a,int8x16_t b)9690 int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) {
9691 return vsliq_n_s8(a, b, 1);
9692 }
9693
9694 // CHECK-LABEL: test_vsliq_n_s16
9695 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s16(int16x8_t a,int16x8_t b)9696 int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) {
9697 return vsliq_n_s16(a, b, 1);
9698 }
9699
9700 // CHECK-LABEL: test_vsliq_n_s32
9701 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s32(int32x4_t a,int32x4_t b)9702 int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) {
9703 return vsliq_n_s32(a, b, 1);
9704 }
9705
9706 // CHECK-LABEL: test_vsliq_n_s64
9707 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_s64(int64x2_t a,int64x2_t b)9708 int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) {
9709 return vsliq_n_s64(a, b, 1);
9710 }
9711
9712 // CHECK-LABEL: test_vsliq_n_u8
9713 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u8(uint8x16_t a,uint8x16_t b)9714 uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) {
9715 return vsliq_n_u8(a, b, 1);
9716 }
9717
9718 // CHECK-LABEL: test_vsliq_n_u16
9719 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u16(uint16x8_t a,uint16x8_t b)9720 uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) {
9721 return vsliq_n_u16(a, b, 1);
9722 }
9723
9724 // CHECK-LABEL: test_vsliq_n_u32
9725 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u32(uint32x4_t a,uint32x4_t b)9726 uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) {
9727 return vsliq_n_u32(a, b, 1);
9728 }
9729
9730 // CHECK-LABEL: test_vsliq_n_u64
9731 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_u64(uint64x2_t a,uint64x2_t b)9732 uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) {
9733 return vsliq_n_u64(a, b, 1);
9734 }
9735
9736 // CHECK-LABEL: test_vsliq_n_p8
9737 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p8(poly8x16_t a,poly8x16_t b)9738 poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) {
9739 return vsliq_n_p8(a, b, 1);
9740 }
9741
9742 // CHECK-LABEL: test_vsliq_n_p16
9743 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsliq_n_p16(poly16x8_t a,poly16x8_t b)9744 poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) {
9745 return vsliq_n_p16(a, b, 1);
9746 }
9747
9748
9749 // CHECK-LABEL: test_vsra_n_s8
9750 // CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s8(int8x8_t a,int8x8_t b)9751 int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) {
9752 return vsra_n_s8(a, b, 1);
9753 }
9754
9755 // CHECK-LABEL: test_vsra_n_s16
9756 // CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s16(int16x4_t a,int16x4_t b)9757 int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) {
9758 return vsra_n_s16(a, b, 1);
9759 }
9760
9761 // CHECK-LABEL: test_vsra_n_s32
9762 // CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s32(int32x2_t a,int32x2_t b)9763 int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) {
9764 return vsra_n_s32(a, b, 1);
9765 }
9766
9767 // CHECK-LABEL: test_vsra_n_s64
9768 // CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_s64(int64x1_t a,int64x1_t b)9769 int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) {
9770 return vsra_n_s64(a, b, 1);
9771 }
9772
9773 // CHECK-LABEL: test_vsra_n_u8
9774 // CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u8(uint8x8_t a,uint8x8_t b)9775 uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) {
9776 return vsra_n_u8(a, b, 1);
9777 }
9778
9779 // CHECK-LABEL: test_vsra_n_u16
9780 // CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u16(uint16x4_t a,uint16x4_t b)9781 uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) {
9782 return vsra_n_u16(a, b, 1);
9783 }
9784
9785 // CHECK-LABEL: test_vsra_n_u32
9786 // CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u32(uint32x2_t a,uint32x2_t b)9787 uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) {
9788 return vsra_n_u32(a, b, 1);
9789 }
9790
9791 // CHECK-LABEL: test_vsra_n_u64
9792 // CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsra_n_u64(uint64x1_t a,uint64x1_t b)9793 uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) {
9794 return vsra_n_u64(a, b, 1);
9795 }
9796
9797 // CHECK-LABEL: test_vsraq_n_s8
9798 // CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s8(int8x16_t a,int8x16_t b)9799 int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) {
9800 return vsraq_n_s8(a, b, 1);
9801 }
9802
9803 // CHECK-LABEL: test_vsraq_n_s16
9804 // CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s16(int16x8_t a,int16x8_t b)9805 int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) {
9806 return vsraq_n_s16(a, b, 1);
9807 }
9808
9809 // CHECK-LABEL: test_vsraq_n_s32
9810 // CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s32(int32x4_t a,int32x4_t b)9811 int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) {
9812 return vsraq_n_s32(a, b, 1);
9813 }
9814
9815 // CHECK-LABEL: test_vsraq_n_s64
9816 // CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_s64(int64x2_t a,int64x2_t b)9817 int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) {
9818 return vsraq_n_s64(a, b, 1);
9819 }
9820
9821 // CHECK-LABEL: test_vsraq_n_u8
9822 // CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u8(uint8x16_t a,uint8x16_t b)9823 uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) {
9824 return vsraq_n_u8(a, b, 1);
9825 }
9826
9827 // CHECK-LABEL: test_vsraq_n_u16
9828 // CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u16(uint16x8_t a,uint16x8_t b)9829 uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) {
9830 return vsraq_n_u16(a, b, 1);
9831 }
9832
9833 // CHECK-LABEL: test_vsraq_n_u32
9834 // CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u32(uint32x4_t a,uint32x4_t b)9835 uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) {
9836 return vsraq_n_u32(a, b, 1);
9837 }
9838
9839 // CHECK-LABEL: test_vsraq_n_u64
9840 // CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsraq_n_u64(uint64x2_t a,uint64x2_t b)9841 uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) {
9842 return vsraq_n_u64(a, b, 1);
9843 }
9844
9845
9846 // CHECK-LABEL: test_vsri_n_s8
9847 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s8(int8x8_t a,int8x8_t b)9848 int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) {
9849 return vsri_n_s8(a, b, 1);
9850 }
9851
9852 // CHECK-LABEL: test_vsri_n_s16
9853 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s16(int16x4_t a,int16x4_t b)9854 int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) {
9855 return vsri_n_s16(a, b, 1);
9856 }
9857
9858 // CHECK-LABEL: test_vsri_n_s32
9859 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s32(int32x2_t a,int32x2_t b)9860 int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) {
9861 return vsri_n_s32(a, b, 1);
9862 }
9863
9864 // CHECK-LABEL: test_vsri_n_s64
9865 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_s64(int64x1_t a,int64x1_t b)9866 int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) {
9867 return vsri_n_s64(a, b, 1);
9868 }
9869
9870 // CHECK-LABEL: test_vsri_n_u8
9871 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u8(uint8x8_t a,uint8x8_t b)9872 uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) {
9873 return vsri_n_u8(a, b, 1);
9874 }
9875
9876 // CHECK-LABEL: test_vsri_n_u16
9877 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u16(uint16x4_t a,uint16x4_t b)9878 uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) {
9879 return vsri_n_u16(a, b, 1);
9880 }
9881
9882 // CHECK-LABEL: test_vsri_n_u32
9883 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u32(uint32x2_t a,uint32x2_t b)9884 uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) {
9885 return vsri_n_u32(a, b, 1);
9886 }
9887
9888 // CHECK-LABEL: test_vsri_n_u64
9889 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_u64(uint64x1_t a,uint64x1_t b)9890 uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) {
9891 return vsri_n_u64(a, b, 1);
9892 }
9893
9894 // CHECK-LABEL: test_vsri_n_p8
9895 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p8(poly8x8_t a,poly8x8_t b)9896 poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) {
9897 return vsri_n_p8(a, b, 1);
9898 }
9899
9900 // CHECK-LABEL: test_vsri_n_p16
9901 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
test_vsri_n_p16(poly16x4_t a,poly16x4_t b)9902 poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) {
9903 return vsri_n_p16(a, b, 1);
9904 }
9905
9906 // CHECK-LABEL: test_vsriq_n_s8
9907 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s8(int8x16_t a,int8x16_t b)9908 int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) {
9909 return vsriq_n_s8(a, b, 1);
9910 }
9911
9912 // CHECK-LABEL: test_vsriq_n_s16
9913 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s16(int16x8_t a,int16x8_t b)9914 int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) {
9915 return vsriq_n_s16(a, b, 1);
9916 }
9917
9918 // CHECK-LABEL: test_vsriq_n_s32
9919 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s32(int32x4_t a,int32x4_t b)9920 int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) {
9921 return vsriq_n_s32(a, b, 1);
9922 }
9923
9924 // CHECK-LABEL: test_vsriq_n_s64
9925 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_s64(int64x2_t a,int64x2_t b)9926 int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) {
9927 return vsriq_n_s64(a, b, 1);
9928 }
9929
9930 // CHECK-LABEL: test_vsriq_n_u8
9931 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u8(uint8x16_t a,uint8x16_t b)9932 uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) {
9933 return vsriq_n_u8(a, b, 1);
9934 }
9935
9936 // CHECK-LABEL: test_vsriq_n_u16
9937 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u16(uint16x8_t a,uint16x8_t b)9938 uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) {
9939 return vsriq_n_u16(a, b, 1);
9940 }
9941
9942 // CHECK-LABEL: test_vsriq_n_u32
9943 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u32(uint32x4_t a,uint32x4_t b)9944 uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) {
9945 return vsriq_n_u32(a, b, 1);
9946 }
9947
9948 // CHECK-LABEL: test_vsriq_n_u64
9949 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_u64(uint64x2_t a,uint64x2_t b)9950 uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) {
9951 return vsriq_n_u64(a, b, 1);
9952 }
9953
9954 // CHECK-LABEL: test_vsriq_n_p8
9955 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p8(poly8x16_t a,poly8x16_t b)9956 poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) {
9957 return vsriq_n_p8(a, b, 1);
9958 }
9959
9960 // CHECK-LABEL: test_vsriq_n_p16
9961 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
test_vsriq_n_p16(poly16x8_t a,poly16x8_t b)9962 poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) {
9963 return vsriq_n_p16(a, b, 1);
9964 }
9965
9966
9967 // CHECK-LABEL: test_vst1q_u8
9968 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u8(uint8_t * a,uint8x16_t b)9969 void test_vst1q_u8(uint8_t * a, uint8x16_t b) {
9970 vst1q_u8(a, b);
9971 }
9972
9973 // CHECK-LABEL: test_vst1q_u16
9974 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u16(uint16_t * a,uint16x8_t b)9975 void test_vst1q_u16(uint16_t * a, uint16x8_t b) {
9976 vst1q_u16(a, b);
9977 }
9978
9979 // CHECK-LABEL: test_vst1q_u32
9980 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_u32(uint32_t * a,uint32x4_t b)9981 void test_vst1q_u32(uint32_t * a, uint32x4_t b) {
9982 vst1q_u32(a, b);
9983 }
9984
9985 // CHECK-LABEL: test_vst1q_u64
9986 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_u64(uint64_t * a,uint64x2_t b)9987 void test_vst1q_u64(uint64_t * a, uint64x2_t b) {
9988 vst1q_u64(a, b);
9989 }
9990
9991 // CHECK-LABEL: test_vst1q_s8
9992 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s8(int8_t * a,int8x16_t b)9993 void test_vst1q_s8(int8_t * a, int8x16_t b) {
9994 vst1q_s8(a, b);
9995 }
9996
9997 // CHECK-LABEL: test_vst1q_s16
9998 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s16(int16_t * a,int16x8_t b)9999 void test_vst1q_s16(int16_t * a, int16x8_t b) {
10000 vst1q_s16(a, b);
10001 }
10002
10003 // CHECK-LABEL: test_vst1q_s32
10004 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_s32(int32_t * a,int32x4_t b)10005 void test_vst1q_s32(int32_t * a, int32x4_t b) {
10006 vst1q_s32(a, b);
10007 }
10008
10009 // CHECK-LABEL: test_vst1q_s64
10010 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1q_s64(int64_t * a,int64x2_t b)10011 void test_vst1q_s64(int64_t * a, int64x2_t b) {
10012 vst1q_s64(a, b);
10013 }
10014
10015 // CHECK-LABEL: test_vst1q_f16
10016 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f16(float16_t * a,float16x8_t b)10017 void test_vst1q_f16(float16_t * a, float16x8_t b) {
10018 vst1q_f16(a, b);
10019 }
10020
10021 // CHECK-LABEL: test_vst1q_f32
10022 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_f32(float32_t * a,float32x4_t b)10023 void test_vst1q_f32(float32_t * a, float32x4_t b) {
10024 vst1q_f32(a, b);
10025 }
10026
10027 // CHECK-LABEL: test_vst1q_p8
10028 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p8(poly8_t * a,poly8x16_t b)10029 void test_vst1q_p8(poly8_t * a, poly8x16_t b) {
10030 vst1q_p8(a, b);
10031 }
10032
10033 // CHECK-LABEL: test_vst1q_p16
10034 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1q_p16(poly16_t * a,poly16x8_t b)10035 void test_vst1q_p16(poly16_t * a, poly16x8_t b) {
10036 vst1q_p16(a, b);
10037 }
10038
10039 // CHECK-LABEL: test_vst1_u8
10040 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u8(uint8_t * a,uint8x8_t b)10041 void test_vst1_u8(uint8_t * a, uint8x8_t b) {
10042 vst1_u8(a, b);
10043 }
10044
10045 // CHECK-LABEL: test_vst1_u16
10046 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u16(uint16_t * a,uint16x4_t b)10047 void test_vst1_u16(uint16_t * a, uint16x4_t b) {
10048 vst1_u16(a, b);
10049 }
10050
10051 // CHECK-LABEL: test_vst1_u32
10052 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_u32(uint32_t * a,uint32x2_t b)10053 void test_vst1_u32(uint32_t * a, uint32x2_t b) {
10054 vst1_u32(a, b);
10055 }
10056
10057 // CHECK-LABEL: test_vst1_u64
10058 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_u64(uint64_t * a,uint64x1_t b)10059 void test_vst1_u64(uint64_t * a, uint64x1_t b) {
10060 vst1_u64(a, b);
10061 }
10062
10063 // CHECK-LABEL: test_vst1_s8
10064 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s8(int8_t * a,int8x8_t b)10065 void test_vst1_s8(int8_t * a, int8x8_t b) {
10066 vst1_s8(a, b);
10067 }
10068
10069 // CHECK-LABEL: test_vst1_s16
10070 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s16(int16_t * a,int16x4_t b)10071 void test_vst1_s16(int16_t * a, int16x4_t b) {
10072 vst1_s16(a, b);
10073 }
10074
10075 // CHECK-LABEL: test_vst1_s32
10076 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_s32(int32_t * a,int32x2_t b)10077 void test_vst1_s32(int32_t * a, int32x2_t b) {
10078 vst1_s32(a, b);
10079 }
10080
10081 // CHECK-LABEL: test_vst1_s64
10082 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}]
test_vst1_s64(int64_t * a,int64x1_t b)10083 void test_vst1_s64(int64_t * a, int64x1_t b) {
10084 vst1_s64(a, b);
10085 }
10086
10087 // CHECK-LABEL: test_vst1_f16
10088 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f16(float16_t * a,float16x4_t b)10089 void test_vst1_f16(float16_t * a, float16x4_t b) {
10090 vst1_f16(a, b);
10091 }
10092
10093 // CHECK-LABEL: test_vst1_f32
10094 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_f32(float32_t * a,float32x2_t b)10095 void test_vst1_f32(float32_t * a, float32x2_t b) {
10096 vst1_f32(a, b);
10097 }
10098
10099 // CHECK-LABEL: test_vst1_p8
10100 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p8(poly8_t * a,poly8x8_t b)10101 void test_vst1_p8(poly8_t * a, poly8x8_t b) {
10102 vst1_p8(a, b);
10103 }
10104
10105 // CHECK-LABEL: test_vst1_p16
10106 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst1_p16(poly16_t * a,poly16x4_t b)10107 void test_vst1_p16(poly16_t * a, poly16x4_t b) {
10108 vst1_p16(a, b);
10109 }
10110
10111
10112 // CHECK-LABEL: test_vst1q_lane_u8
10113 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_u8(uint8_t * a,uint8x16_t b)10114 void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) {
10115 vst1q_lane_u8(a, b, 15);
10116 }
10117
10118 // CHECK-LABEL: test_vst1q_lane_u16
10119 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_u16(uint16_t * a,uint16x8_t b)10120 void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) {
10121 vst1q_lane_u16(a, b, 7);
10122 }
10123
10124 // CHECK-LABEL: test_vst1q_lane_u32
10125 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_u32(uint32_t * a,uint32x4_t b)10126 void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) {
10127 vst1q_lane_u32(a, b, 3);
10128 }
10129
10130 // CHECK-LABEL: test_vst1q_lane_u64
10131 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_u64(uint64_t * a,uint64x2_t b)10132 void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) {
10133 vst1q_lane_u64(a, b, 1);
10134 }
10135
10136 // CHECK-LABEL: test_vst1q_lane_s8
10137 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_s8(int8_t * a,int8x16_t b)10138 void test_vst1q_lane_s8(int8_t * a, int8x16_t b) {
10139 vst1q_lane_s8(a, b, 15);
10140 }
10141
10142 // CHECK-LABEL: test_vst1q_lane_s16
10143 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_s16(int16_t * a,int16x8_t b)10144 void test_vst1q_lane_s16(int16_t * a, int16x8_t b) {
10145 vst1q_lane_s16(a, b, 7);
10146 }
10147
10148 // CHECK-LABEL: test_vst1q_lane_s32
10149 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_s32(int32_t * a,int32x4_t b)10150 void test_vst1q_lane_s32(int32_t * a, int32x4_t b) {
10151 vst1q_lane_s32(a, b, 3);
10152 }
10153
10154 // CHECK-LABEL: test_vst1q_lane_s64
10155 // CHECK: {{str|vstr|vmov}}
test_vst1q_lane_s64(int64_t * a,int64x2_t b)10156 void test_vst1q_lane_s64(int64_t * a, int64x2_t b) {
10157 vst1q_lane_s64(a, b, 1);
10158 }
10159
10160 // CHECK-LABEL: test_vst1q_lane_f16
10161 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_f16(float16_t * a,float16x8_t b)10162 void test_vst1q_lane_f16(float16_t * a, float16x8_t b) {
10163 vst1q_lane_f16(a, b, 7);
10164 }
10165
10166 // CHECK-LABEL: test_vst1q_lane_f32
10167 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1q_lane_f32(float32_t * a,float32x4_t b)10168 void test_vst1q_lane_f32(float32_t * a, float32x4_t b) {
10169 vst1q_lane_f32(a, b, 3);
10170 }
10171
10172 // CHECK-LABEL: test_vst1q_lane_p8
10173 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1q_lane_p8(poly8_t * a,poly8x16_t b)10174 void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) {
10175 vst1q_lane_p8(a, b, 15);
10176 }
10177
10178 // CHECK-LABEL: test_vst1q_lane_p16
10179 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1q_lane_p16(poly16_t * a,poly16x8_t b)10180 void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) {
10181 vst1q_lane_p16(a, b, 7);
10182 }
10183
10184 // CHECK-LABEL: test_vst1_lane_u8
10185 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_u8(uint8_t * a,uint8x8_t b)10186 void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) {
10187 vst1_lane_u8(a, b, 7);
10188 }
10189
10190 // CHECK-LABEL: test_vst1_lane_u16
10191 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_u16(uint16_t * a,uint16x4_t b)10192 void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) {
10193 vst1_lane_u16(a, b, 3);
10194 }
10195
10196 // CHECK-LABEL: test_vst1_lane_u32
10197 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_u32(uint32_t * a,uint32x2_t b)10198 void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) {
10199 vst1_lane_u32(a, b, 1);
10200 }
10201
10202 // CHECK-LABEL: test_vst1_lane_u64
10203 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_u64(uint64_t * a,uint64x1_t b)10204 void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) {
10205 vst1_lane_u64(a, b, 0);
10206 }
10207
10208 // CHECK-LABEL: test_vst1_lane_s8
10209 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_s8(int8_t * a,int8x8_t b)10210 void test_vst1_lane_s8(int8_t * a, int8x8_t b) {
10211 vst1_lane_s8(a, b, 7);
10212 }
10213
10214 // CHECK-LABEL: test_vst1_lane_s16
10215 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_s16(int16_t * a,int16x4_t b)10216 void test_vst1_lane_s16(int16_t * a, int16x4_t b) {
10217 vst1_lane_s16(a, b, 3);
10218 }
10219
10220 // CHECK-LABEL: test_vst1_lane_s32
10221 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_s32(int32_t * a,int32x2_t b)10222 void test_vst1_lane_s32(int32_t * a, int32x2_t b) {
10223 vst1_lane_s32(a, b, 1);
10224 }
10225
10226 // CHECK-LABEL: test_vst1_lane_s64
10227 // CHECK: {{str|vstr|vmov}}
test_vst1_lane_s64(int64_t * a,int64x1_t b)10228 void test_vst1_lane_s64(int64_t * a, int64x1_t b) {
10229 vst1_lane_s64(a, b, 0);
10230 }
10231
10232 // CHECK-LABEL: test_vst1_lane_f16
10233 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_f16(float16_t * a,float16x4_t b)10234 void test_vst1_lane_f16(float16_t * a, float16x4_t b) {
10235 vst1_lane_f16(a, b, 3);
10236 }
10237
10238 // CHECK-LABEL: test_vst1_lane_f32
10239 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
test_vst1_lane_f32(float32_t * a,float32x2_t b)10240 void test_vst1_lane_f32(float32_t * a, float32x2_t b) {
10241 vst1_lane_f32(a, b, 1);
10242 }
10243
10244 // CHECK-LABEL: test_vst1_lane_p8
10245 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst1_lane_p8(poly8_t * a,poly8x8_t b)10246 void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) {
10247 vst1_lane_p8(a, b, 7);
10248 }
10249
10250 // CHECK-LABEL: test_vst1_lane_p16
10251 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
test_vst1_lane_p16(poly16_t * a,poly16x4_t b)10252 void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) {
10253 vst1_lane_p16(a, b, 3);
10254 }
10255
10256
10257 // CHECK-LABEL: test_vst2q_u8
10258 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u8(uint8_t * a,uint8x16x2_t b)10259 void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) {
10260 vst2q_u8(a, b);
10261 }
10262
10263 // CHECK-LABEL: test_vst2q_u16
10264 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u16(uint16_t * a,uint16x8x2_t b)10265 void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) {
10266 vst2q_u16(a, b);
10267 }
10268
10269 // CHECK-LABEL: test_vst2q_u32
10270 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_u32(uint32_t * a,uint32x4x2_t b)10271 void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) {
10272 vst2q_u32(a, b);
10273 }
10274
10275 // CHECK-LABEL: test_vst2q_s8
10276 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s8(int8_t * a,int8x16x2_t b)10277 void test_vst2q_s8(int8_t * a, int8x16x2_t b) {
10278 vst2q_s8(a, b);
10279 }
10280
10281 // CHECK-LABEL: test_vst2q_s16
10282 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s16(int16_t * a,int16x8x2_t b)10283 void test_vst2q_s16(int16_t * a, int16x8x2_t b) {
10284 vst2q_s16(a, b);
10285 }
10286
10287 // CHECK-LABEL: test_vst2q_s32
10288 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_s32(int32_t * a,int32x4x2_t b)10289 void test_vst2q_s32(int32_t * a, int32x4x2_t b) {
10290 vst2q_s32(a, b);
10291 }
10292
10293 // CHECK-LABEL: test_vst2q_f16
10294 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_f16(float16_t * a,float16x8x2_t b)10295 void test_vst2q_f16(float16_t * a, float16x8x2_t b) {
10296 vst2q_f16(a, b);
10297 }
10298
10299 // CHECK-LABEL: test_vst2q_f32
10300 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_f32(float32_t * a,float32x4x2_t b)10301 void test_vst2q_f32(float32_t * a, float32x4x2_t b) {
10302 vst2q_f32(a, b);
10303 }
10304
10305 // CHECK-LABEL: test_vst2q_p8
10306 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_p8(poly8_t * a,poly8x16x2_t b)10307 void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) {
10308 vst2q_p8(a, b);
10309 }
10310
10311 // CHECK-LABEL: test_vst2q_p16
10312 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2q_p16(poly16_t * a,poly16x8x2_t b)10313 void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) {
10314 vst2q_p16(a, b);
10315 }
10316
10317 // CHECK-LABEL: test_vst2_u8
10318 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u8(uint8_t * a,uint8x8x2_t b)10319 void test_vst2_u8(uint8_t * a, uint8x8x2_t b) {
10320 vst2_u8(a, b);
10321 }
10322
10323 // CHECK-LABEL: test_vst2_u16
10324 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u16(uint16_t * a,uint16x4x2_t b)10325 void test_vst2_u16(uint16_t * a, uint16x4x2_t b) {
10326 vst2_u16(a, b);
10327 }
10328
10329 // CHECK-LABEL: test_vst2_u32
10330 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_u32(uint32_t * a,uint32x2x2_t b)10331 void test_vst2_u32(uint32_t * a, uint32x2x2_t b) {
10332 vst2_u32(a, b);
10333 }
10334
10335 // CHECK-LABEL: test_vst2_u64
10336 // CHECK: vst1.64
test_vst2_u64(uint64_t * a,uint64x1x2_t b)10337 void test_vst2_u64(uint64_t * a, uint64x1x2_t b) {
10338 vst2_u64(a, b);
10339 }
10340
10341 // CHECK-LABEL: test_vst2_s8
10342 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s8(int8_t * a,int8x8x2_t b)10343 void test_vst2_s8(int8_t * a, int8x8x2_t b) {
10344 vst2_s8(a, b);
10345 }
10346
10347 // CHECK-LABEL: test_vst2_s16
10348 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s16(int16_t * a,int16x4x2_t b)10349 void test_vst2_s16(int16_t * a, int16x4x2_t b) {
10350 vst2_s16(a, b);
10351 }
10352
10353 // CHECK-LABEL: test_vst2_s32
10354 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_s32(int32_t * a,int32x2x2_t b)10355 void test_vst2_s32(int32_t * a, int32x2x2_t b) {
10356 vst2_s32(a, b);
10357 }
10358
10359 // CHECK-LABEL: test_vst2_s64
10360 // CHECK: vst1.64
test_vst2_s64(int64_t * a,int64x1x2_t b)10361 void test_vst2_s64(int64_t * a, int64x1x2_t b) {
10362 vst2_s64(a, b);
10363 }
10364
10365 // CHECK-LABEL: test_vst2_f16
10366 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f16(float16_t * a,float16x4x2_t b)10367 void test_vst2_f16(float16_t * a, float16x4x2_t b) {
10368 vst2_f16(a, b);
10369 }
10370
10371 // CHECK-LABEL: test_vst2_f32
10372 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_f32(float32_t * a,float32x2x2_t b)10373 void test_vst2_f32(float32_t * a, float32x2x2_t b) {
10374 vst2_f32(a, b);
10375 }
10376
10377 // CHECK-LABEL: test_vst2_p8
10378 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p8(poly8_t * a,poly8x8x2_t b)10379 void test_vst2_p8(poly8_t * a, poly8x8x2_t b) {
10380 vst2_p8(a, b);
10381 }
10382
10383 // CHECK-LABEL: test_vst2_p16
10384 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst2_p16(poly16_t * a,poly16x4x2_t b)10385 void test_vst2_p16(poly16_t * a, poly16x4x2_t b) {
10386 vst2_p16(a, b);
10387 }
10388
10389
10390 // CHECK-LABEL: test_vst2q_lane_u16
10391 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_u16(uint16_t * a,uint16x8x2_t b)10392 void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) {
10393 vst2q_lane_u16(a, b, 7);
10394 }
10395
10396 // CHECK-LABEL: test_vst2q_lane_u32
10397 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_u32(uint32_t * a,uint32x4x2_t b)10398 void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) {
10399 vst2q_lane_u32(a, b, 3);
10400 }
10401
10402 // CHECK-LABEL: test_vst2q_lane_s16
10403 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_s16(int16_t * a,int16x8x2_t b)10404 void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) {
10405 vst2q_lane_s16(a, b, 7);
10406 }
10407
10408 // CHECK-LABEL: test_vst2q_lane_s32
10409 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_s32(int32_t * a,int32x4x2_t b)10410 void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) {
10411 vst2q_lane_s32(a, b, 3);
10412 }
10413
10414 // CHECK-LABEL: test_vst2q_lane_f16
10415 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_f16(float16_t * a,float16x8x2_t b)10416 void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) {
10417 vst2q_lane_f16(a, b, 7);
10418 }
10419
10420 // CHECK-LABEL: test_vst2q_lane_f32
10421 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_f32(float32_t * a,float32x4x2_t b)10422 void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) {
10423 vst2q_lane_f32(a, b, 3);
10424 }
10425
10426 // CHECK-LABEL: test_vst2q_lane_p16
10427 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2q_lane_p16(poly16_t * a,poly16x8x2_t b)10428 void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) {
10429 vst2q_lane_p16(a, b, 7);
10430 }
10431
10432 // CHECK-LABEL: test_vst2_lane_u8
10433 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u8(uint8_t * a,uint8x8x2_t b)10434 void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) {
10435 vst2_lane_u8(a, b, 7);
10436 }
10437
10438 // CHECK-LABEL: test_vst2_lane_u16
10439 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u16(uint16_t * a,uint16x4x2_t b)10440 void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) {
10441 vst2_lane_u16(a, b, 3);
10442 }
10443
10444 // CHECK-LABEL: test_vst2_lane_u32
10445 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_u32(uint32_t * a,uint32x2x2_t b)10446 void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) {
10447 vst2_lane_u32(a, b, 1);
10448 }
10449
10450 // CHECK-LABEL: test_vst2_lane_s8
10451 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s8(int8_t * a,int8x8x2_t b)10452 void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) {
10453 vst2_lane_s8(a, b, 7);
10454 }
10455
10456 // CHECK-LABEL: test_vst2_lane_s16
10457 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s16(int16_t * a,int16x4x2_t b)10458 void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) {
10459 vst2_lane_s16(a, b, 3);
10460 }
10461
10462 // CHECK-LABEL: test_vst2_lane_s32
10463 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_s32(int32_t * a,int32x2x2_t b)10464 void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) {
10465 vst2_lane_s32(a, b, 1);
10466 }
10467
10468 // CHECK-LABEL: test_vst2_lane_f16
10469 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_f16(float16_t * a,float16x4x2_t b)10470 void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) {
10471 vst2_lane_f16(a, b, 3);
10472 }
10473
10474 // CHECK-LABEL: test_vst2_lane_f32
10475 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_f32(float32_t * a,float32x2x2_t b)10476 void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) {
10477 vst2_lane_f32(a, b, 1);
10478 }
10479
10480 // CHECK-LABEL: test_vst2_lane_p8
10481 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_p8(poly8_t * a,poly8x8x2_t b)10482 void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) {
10483 vst2_lane_p8(a, b, 7);
10484 }
10485
10486 // CHECK-LABEL: test_vst2_lane_p16
10487 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst2_lane_p16(poly16_t * a,poly16x4x2_t b)10488 void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) {
10489 vst2_lane_p16(a, b, 3);
10490 }
10491
10492
10493 // CHECK-LABEL: test_vst3q_u8
10494 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u8(uint8_t * a,uint8x16x3_t b)10495 void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) {
10496 vst3q_u8(a, b);
10497 }
10498
10499 // CHECK-LABEL: test_vst3q_u16
10500 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u16(uint16_t * a,uint16x8x3_t b)10501 void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) {
10502 vst3q_u16(a, b);
10503 }
10504
10505 // CHECK-LABEL: test_vst3q_u32
10506 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_u32(uint32_t * a,uint32x4x3_t b)10507 void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) {
10508 vst3q_u32(a, b);
10509 }
10510
10511 // CHECK-LABEL: test_vst3q_s8
10512 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s8(int8_t * a,int8x16x3_t b)10513 void test_vst3q_s8(int8_t * a, int8x16x3_t b) {
10514 vst3q_s8(a, b);
10515 }
10516
10517 // CHECK-LABEL: test_vst3q_s16
10518 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s16(int16_t * a,int16x8x3_t b)10519 void test_vst3q_s16(int16_t * a, int16x8x3_t b) {
10520 vst3q_s16(a, b);
10521 }
10522
10523 // CHECK-LABEL: test_vst3q_s32
10524 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_s32(int32_t * a,int32x4x3_t b)10525 void test_vst3q_s32(int32_t * a, int32x4x3_t b) {
10526 vst3q_s32(a, b);
10527 }
10528
10529 // CHECK-LABEL: test_vst3q_f16
10530 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f16(float16_t * a,float16x8x3_t b)10531 void test_vst3q_f16(float16_t * a, float16x8x3_t b) {
10532 vst3q_f16(a, b);
10533 }
10534
10535 // CHECK-LABEL: test_vst3q_f32
10536 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_f32(float32_t * a,float32x4x3_t b)10537 void test_vst3q_f32(float32_t * a, float32x4x3_t b) {
10538 vst3q_f32(a, b);
10539 }
10540
10541 // CHECK-LABEL: test_vst3q_p8
10542 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p8(poly8_t * a,poly8x16x3_t b)10543 void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) {
10544 vst3q_p8(a, b);
10545 }
10546
10547 // CHECK-LABEL: test_vst3q_p16
10548 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst3q_p16(poly16_t * a,poly16x8x3_t b)10549 void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) {
10550 vst3q_p16(a, b);
10551 }
10552
10553 // CHECK-LABEL: test_vst3_u8
10554 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u8(uint8_t * a,uint8x8x3_t b)10555 void test_vst3_u8(uint8_t * a, uint8x8x3_t b) {
10556 vst3_u8(a, b);
10557 }
10558
10559 // CHECK-LABEL: test_vst3_u16
10560 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u16(uint16_t * a,uint16x4x3_t b)10561 void test_vst3_u16(uint16_t * a, uint16x4x3_t b) {
10562 vst3_u16(a, b);
10563 }
10564
10565 // CHECK-LABEL: test_vst3_u32
10566 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_u32(uint32_t * a,uint32x2x3_t b)10567 void test_vst3_u32(uint32_t * a, uint32x2x3_t b) {
10568 vst3_u32(a, b);
10569 }
10570
10571 // CHECK-LABEL: test_vst3_u64
10572 // CHECK: vst1.64
test_vst3_u64(uint64_t * a,uint64x1x3_t b)10573 void test_vst3_u64(uint64_t * a, uint64x1x3_t b) {
10574 vst3_u64(a, b);
10575 }
10576
10577 // CHECK-LABEL: test_vst3_s8
10578 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s8(int8_t * a,int8x8x3_t b)10579 void test_vst3_s8(int8_t * a, int8x8x3_t b) {
10580 vst3_s8(a, b);
10581 }
10582
10583 // CHECK-LABEL: test_vst3_s16
10584 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s16(int16_t * a,int16x4x3_t b)10585 void test_vst3_s16(int16_t * a, int16x4x3_t b) {
10586 vst3_s16(a, b);
10587 }
10588
10589 // CHECK-LABEL: test_vst3_s32
10590 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_s32(int32_t * a,int32x2x3_t b)10591 void test_vst3_s32(int32_t * a, int32x2x3_t b) {
10592 vst3_s32(a, b);
10593 }
10594
10595 // CHECK-LABEL: test_vst3_s64
10596 // CHECK: vst1.64
test_vst3_s64(int64_t * a,int64x1x3_t b)10597 void test_vst3_s64(int64_t * a, int64x1x3_t b) {
10598 vst3_s64(a, b);
10599 }
10600
10601 // CHECK-LABEL: test_vst3_f16
10602 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f16(float16_t * a,float16x4x3_t b)10603 void test_vst3_f16(float16_t * a, float16x4x3_t b) {
10604 vst3_f16(a, b);
10605 }
10606
10607 // CHECK-LABEL: test_vst3_f32
10608 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_f32(float32_t * a,float32x2x3_t b)10609 void test_vst3_f32(float32_t * a, float32x2x3_t b) {
10610 vst3_f32(a, b);
10611 }
10612
10613 // CHECK-LABEL: test_vst3_p8
10614 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p8(poly8_t * a,poly8x8x3_t b)10615 void test_vst3_p8(poly8_t * a, poly8x8x3_t b) {
10616 vst3_p8(a, b);
10617 }
10618
10619 // CHECK-LABEL: test_vst3_p16
10620 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst3_p16(poly16_t * a,poly16x4x3_t b)10621 void test_vst3_p16(poly16_t * a, poly16x4x3_t b) {
10622 vst3_p16(a, b);
10623 }
10624
10625
10626 // CHECK-LABEL: test_vst3q_lane_u16
10627 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_u16(uint16_t * a,uint16x8x3_t b)10628 void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) {
10629 vst3q_lane_u16(a, b, 7);
10630 }
10631
10632 // CHECK-LABEL: test_vst3q_lane_u32
10633 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_u32(uint32_t * a,uint32x4x3_t b)10634 void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) {
10635 vst3q_lane_u32(a, b, 3);
10636 }
10637
10638 // CHECK-LABEL: test_vst3q_lane_s16
10639 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_s16(int16_t * a,int16x8x3_t b)10640 void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) {
10641 vst3q_lane_s16(a, b, 7);
10642 }
10643
10644 // CHECK-LABEL: test_vst3q_lane_s32
10645 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_s32(int32_t * a,int32x4x3_t b)10646 void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) {
10647 vst3q_lane_s32(a, b, 3);
10648 }
10649
10650 // CHECK-LABEL: test_vst3q_lane_f16
10651 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_f16(float16_t * a,float16x8x3_t b)10652 void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) {
10653 vst3q_lane_f16(a, b, 7);
10654 }
10655
10656 // CHECK-LABEL: test_vst3q_lane_f32
10657 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_f32(float32_t * a,float32x4x3_t b)10658 void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) {
10659 vst3q_lane_f32(a, b, 3);
10660 }
10661
10662 // CHECK-LABEL: test_vst3q_lane_p16
10663 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst3q_lane_p16(poly16_t * a,poly16x8x3_t b)10664 void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) {
10665 vst3q_lane_p16(a, b, 7);
10666 }
10667
10668 // CHECK-LABEL: test_vst3_lane_u8
10669 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u8(uint8_t * a,uint8x8x3_t b)10670 void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) {
10671 vst3_lane_u8(a, b, 7);
10672 }
10673
10674 // CHECK-LABEL: test_vst3_lane_u16
10675 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u16(uint16_t * a,uint16x4x3_t b)10676 void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) {
10677 vst3_lane_u16(a, b, 3);
10678 }
10679
10680 // CHECK-LABEL: test_vst3_lane_u32
10681 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_u32(uint32_t * a,uint32x2x3_t b)10682 void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) {
10683 vst3_lane_u32(a, b, 1);
10684 }
10685
10686 // CHECK-LABEL: test_vst3_lane_s8
10687 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s8(int8_t * a,int8x8x3_t b)10688 void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) {
10689 vst3_lane_s8(a, b, 7);
10690 }
10691
10692 // CHECK-LABEL: test_vst3_lane_s16
10693 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s16(int16_t * a,int16x4x3_t b)10694 void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) {
10695 vst3_lane_s16(a, b, 3);
10696 }
10697
10698 // CHECK-LABEL: test_vst3_lane_s32
10699 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_s32(int32_t * a,int32x2x3_t b)10700 void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) {
10701 vst3_lane_s32(a, b, 1);
10702 }
10703
10704 // CHECK-LABEL: test_vst3_lane_f16
10705 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_f16(float16_t * a,float16x4x3_t b)10706 void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) {
10707 vst3_lane_f16(a, b, 3);
10708 }
10709
10710 // CHECK-LABEL: test_vst3_lane_f32
10711 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_f32(float32_t * a,float32x2x3_t b)10712 void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) {
10713 vst3_lane_f32(a, b, 1);
10714 }
10715
10716 // CHECK-LABEL: test_vst3_lane_p8
10717 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_p8(poly8_t * a,poly8x8x3_t b)10718 void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) {
10719 vst3_lane_p8(a, b, 7);
10720 }
10721
10722 // CHECK-LABEL: test_vst3_lane_p16
10723 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst3_lane_p16(poly16_t * a,poly16x4x3_t b)10724 void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) {
10725 vst3_lane_p16(a, b, 3);
10726 }
10727
10728
10729 // CHECK-LABEL: test_vst4q_u8
10730 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u8(uint8_t * a,uint8x16x4_t b)10731 void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) {
10732 vst4q_u8(a, b);
10733 }
10734
10735 // CHECK-LABEL: test_vst4q_u16
10736 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u16(uint16_t * a,uint16x8x4_t b)10737 void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) {
10738 vst4q_u16(a, b);
10739 }
10740
10741 // CHECK-LABEL: test_vst4q_u32
10742 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_u32(uint32_t * a,uint32x4x4_t b)10743 void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) {
10744 vst4q_u32(a, b);
10745 }
10746
10747 // CHECK-LABEL: test_vst4q_s8
10748 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s8(int8_t * a,int8x16x4_t b)10749 void test_vst4q_s8(int8_t * a, int8x16x4_t b) {
10750 vst4q_s8(a, b);
10751 }
10752
10753 // CHECK-LABEL: test_vst4q_s16
10754 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s16(int16_t * a,int16x8x4_t b)10755 void test_vst4q_s16(int16_t * a, int16x8x4_t b) {
10756 vst4q_s16(a, b);
10757 }
10758
10759 // CHECK-LABEL: test_vst4q_s32
10760 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_s32(int32_t * a,int32x4x4_t b)10761 void test_vst4q_s32(int32_t * a, int32x4x4_t b) {
10762 vst4q_s32(a, b);
10763 }
10764
10765 // CHECK-LABEL: test_vst4q_f16
10766 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f16(float16_t * a,float16x8x4_t b)10767 void test_vst4q_f16(float16_t * a, float16x8x4_t b) {
10768 vst4q_f16(a, b);
10769 }
10770
10771 // CHECK-LABEL: test_vst4q_f32
10772 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_f32(float32_t * a,float32x4x4_t b)10773 void test_vst4q_f32(float32_t * a, float32x4x4_t b) {
10774 vst4q_f32(a, b);
10775 }
10776
10777 // CHECK-LABEL: test_vst4q_p8
10778 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p8(poly8_t * a,poly8x16x4_t b)10779 void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) {
10780 vst4q_p8(a, b);
10781 }
10782
10783 // CHECK-LABEL: test_vst4q_p16
10784 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
test_vst4q_p16(poly16_t * a,poly16x8x4_t b)10785 void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) {
10786 vst4q_p16(a, b);
10787 }
10788
10789 // CHECK-LABEL: test_vst4_u8
10790 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u8(uint8_t * a,uint8x8x4_t b)10791 void test_vst4_u8(uint8_t * a, uint8x8x4_t b) {
10792 vst4_u8(a, b);
10793 }
10794
10795 // CHECK-LABEL: test_vst4_u16
10796 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u16(uint16_t * a,uint16x4x4_t b)10797 void test_vst4_u16(uint16_t * a, uint16x4x4_t b) {
10798 vst4_u16(a, b);
10799 }
10800
10801 // CHECK-LABEL: test_vst4_u32
10802 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_u32(uint32_t * a,uint32x2x4_t b)10803 void test_vst4_u32(uint32_t * a, uint32x2x4_t b) {
10804 vst4_u32(a, b);
10805 }
10806
10807 // CHECK-LABEL: test_vst4_u64
10808 // CHECK: vst1.64
test_vst4_u64(uint64_t * a,uint64x1x4_t b)10809 void test_vst4_u64(uint64_t * a, uint64x1x4_t b) {
10810 vst4_u64(a, b);
10811 }
10812
10813 // CHECK-LABEL: test_vst4_s8
10814 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s8(int8_t * a,int8x8x4_t b)10815 void test_vst4_s8(int8_t * a, int8x8x4_t b) {
10816 vst4_s8(a, b);
10817 }
10818
10819 // CHECK-LABEL: test_vst4_s16
10820 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s16(int16_t * a,int16x4x4_t b)10821 void test_vst4_s16(int16_t * a, int16x4x4_t b) {
10822 vst4_s16(a, b);
10823 }
10824
10825 // CHECK-LABEL: test_vst4_s32
10826 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_s32(int32_t * a,int32x2x4_t b)10827 void test_vst4_s32(int32_t * a, int32x2x4_t b) {
10828 vst4_s32(a, b);
10829 }
10830
10831 // CHECK-LABEL: test_vst4_s64
10832 // CHECK: vst1.64
test_vst4_s64(int64_t * a,int64x1x4_t b)10833 void test_vst4_s64(int64_t * a, int64x1x4_t b) {
10834 vst4_s64(a, b);
10835 }
10836
10837 // CHECK-LABEL: test_vst4_f16
10838 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_f16(float16_t * a,float16x4x4_t b)10839 void test_vst4_f16(float16_t * a, float16x4x4_t b) {
10840 vst4_f16(a, b);
10841 }
10842
10843 // CHECK-LABEL: test_vst4_f32
10844 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_f32(float32_t * a,float32x2x4_t b)10845 void test_vst4_f32(float32_t * a, float32x2x4_t b) {
10846 vst4_f32(a, b);
10847 }
10848
10849 // CHECK-LABEL: test_vst4_p8
10850 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_p8(poly8_t * a,poly8x8x4_t b)10851 void test_vst4_p8(poly8_t * a, poly8x8x4_t b) {
10852 vst4_p8(a, b);
10853 }
10854
10855 // CHECK-LABEL: test_vst4_p16
10856 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
test_vst4_p16(poly16_t * a,poly16x4x4_t b)10857 void test_vst4_p16(poly16_t * a, poly16x4x4_t b) {
10858 vst4_p16(a, b);
10859 }
10860
10861
10862 // CHECK-LABEL: test_vst4q_lane_u16
10863 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_u16(uint16_t * a,uint16x8x4_t b)10864 void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) {
10865 vst4q_lane_u16(a, b, 7);
10866 }
10867
10868 // CHECK-LABEL: test_vst4q_lane_u32
10869 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_u32(uint32_t * a,uint32x4x4_t b)10870 void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) {
10871 vst4q_lane_u32(a, b, 3);
10872 }
10873
10874 // CHECK-LABEL: test_vst4q_lane_s16
10875 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_s16(int16_t * a,int16x8x4_t b)10876 void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) {
10877 vst4q_lane_s16(a, b, 7);
10878 }
10879
10880 // CHECK-LABEL: test_vst4q_lane_s32
10881 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_s32(int32_t * a,int32x4x4_t b)10882 void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) {
10883 vst4q_lane_s32(a, b, 3);
10884 }
10885
10886 // CHECK-LABEL: test_vst4q_lane_f16
10887 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_f16(float16_t * a,float16x8x4_t b)10888 void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) {
10889 vst4q_lane_f16(a, b, 7);
10890 }
10891
10892 // CHECK-LABEL: test_vst4q_lane_f32
10893 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_f32(float32_t * a,float32x4x4_t b)10894 void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) {
10895 vst4q_lane_f32(a, b, 3);
10896 }
10897
10898 // CHECK-LABEL: test_vst4q_lane_p16
10899 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
test_vst4q_lane_p16(poly16_t * a,poly16x8x4_t b)10900 void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) {
10901 vst4q_lane_p16(a, b, 7);
10902 }
10903
10904 // CHECK-LABEL: test_vst4_lane_u8
10905 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u8(uint8_t * a,uint8x8x4_t b)10906 void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) {
10907 vst4_lane_u8(a, b, 7);
10908 }
10909
10910 // CHECK-LABEL: test_vst4_lane_u16
10911 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u16(uint16_t * a,uint16x4x4_t b)10912 void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) {
10913 vst4_lane_u16(a, b, 3);
10914 }
10915
10916 // CHECK-LABEL: test_vst4_lane_u32
10917 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_u32(uint32_t * a,uint32x2x4_t b)10918 void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) {
10919 vst4_lane_u32(a, b, 1);
10920 }
10921
10922 // CHECK-LABEL: test_vst4_lane_s8
10923 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s8(int8_t * a,int8x8x4_t b)10924 void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) {
10925 vst4_lane_s8(a, b, 7);
10926 }
10927
10928 // CHECK-LABEL: test_vst4_lane_s16
10929 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s16(int16_t * a,int16x4x4_t b)10930 void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) {
10931 vst4_lane_s16(a, b, 3);
10932 }
10933
10934 // CHECK-LABEL: test_vst4_lane_s32
10935 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_s32(int32_t * a,int32x2x4_t b)10936 void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) {
10937 vst4_lane_s32(a, b, 1);
10938 }
10939
10940 // CHECK-LABEL: test_vst4_lane_f16
10941 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_f16(float16_t * a,float16x4x4_t b)10942 void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) {
10943 vst4_lane_f16(a, b, 3);
10944 }
10945
10946 // CHECK-LABEL: test_vst4_lane_f32
10947 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_f32(float32_t * a,float32x2x4_t b)10948 void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) {
10949 vst4_lane_f32(a, b, 1);
10950 }
10951
10952 // CHECK-LABEL: test_vst4_lane_p8
10953 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_p8(poly8_t * a,poly8x8x4_t b)10954 void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) {
10955 vst4_lane_p8(a, b, 7);
10956 }
10957
10958 // CHECK-LABEL: test_vst4_lane_p16
10959 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
test_vst4_lane_p16(poly16_t * a,poly16x4x4_t b)10960 void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) {
10961 vst4_lane_p16(a, b, 3);
10962 }
10963
10964
10965 // CHECK-LABEL: test_vsub_s8
10966 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s8(int8x8_t a,int8x8_t b)10967 int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) {
10968 return vsub_s8(a, b);
10969 }
10970
10971 // CHECK-LABEL: test_vsub_s16
10972 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s16(int16x4_t a,int16x4_t b)10973 int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) {
10974 return vsub_s16(a, b);
10975 }
10976
10977 // CHECK-LABEL: test_vsub_s32
10978 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s32(int32x2_t a,int32x2_t b)10979 int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) {
10980 return vsub_s32(a, b);
10981 }
10982
10983 // CHECK-LABEL: test_vsub_s64
10984 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_s64(int64x1_t a,int64x1_t b)10985 int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) {
10986 return vsub_s64(a, b);
10987 }
10988
10989 // CHECK-LABEL: test_vsub_f32
10990 // CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_f32(float32x2_t a,float32x2_t b)10991 float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) {
10992 return vsub_f32(a, b);
10993 }
10994
10995 // CHECK-LABEL: test_vsub_u8
10996 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u8(uint8x8_t a,uint8x8_t b)10997 uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) {
10998 return vsub_u8(a, b);
10999 }
11000
11001 // CHECK-LABEL: test_vsub_u16
11002 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u16(uint16x4_t a,uint16x4_t b)11003 uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) {
11004 return vsub_u16(a, b);
11005 }
11006
11007 // CHECK-LABEL: test_vsub_u32
11008 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u32(uint32x2_t a,uint32x2_t b)11009 uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) {
11010 return vsub_u32(a, b);
11011 }
11012
11013 // CHECK-LABEL: test_vsub_u64
11014 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsub_u64(uint64x1_t a,uint64x1_t b)11015 uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) {
11016 return vsub_u64(a, b);
11017 }
11018
11019 // CHECK-LABEL: test_vsubq_s8
11020 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s8(int8x16_t a,int8x16_t b)11021 int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) {
11022 return vsubq_s8(a, b);
11023 }
11024
11025 // CHECK-LABEL: test_vsubq_s16
11026 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s16(int16x8_t a,int16x8_t b)11027 int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) {
11028 return vsubq_s16(a, b);
11029 }
11030
11031 // CHECK-LABEL: test_vsubq_s32
11032 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s32(int32x4_t a,int32x4_t b)11033 int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) {
11034 return vsubq_s32(a, b);
11035 }
11036
11037 // CHECK-LABEL: test_vsubq_s64
11038 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_s64(int64x2_t a,int64x2_t b)11039 int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) {
11040 return vsubq_s64(a, b);
11041 }
11042
11043 // CHECK-LABEL: test_vsubq_f32
11044 // CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_f32(float32x4_t a,float32x4_t b)11045 float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) {
11046 return vsubq_f32(a, b);
11047 }
11048
11049 // CHECK-LABEL: test_vsubq_u8
11050 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u8(uint8x16_t a,uint8x16_t b)11051 uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) {
11052 return vsubq_u8(a, b);
11053 }
11054
11055 // CHECK-LABEL: test_vsubq_u16
11056 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u16(uint16x8_t a,uint16x8_t b)11057 uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) {
11058 return vsubq_u16(a, b);
11059 }
11060
11061 // CHECK-LABEL: test_vsubq_u32
11062 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u32(uint32x4_t a,uint32x4_t b)11063 uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) {
11064 return vsubq_u32(a, b);
11065 }
11066
11067 // CHECK-LABEL: test_vsubq_u64
11068 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubq_u64(uint64x2_t a,uint64x2_t b)11069 uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) {
11070 return vsubq_u64(a, b);
11071 }
11072
11073
11074 // CHECK-LABEL: test_vsubhn_s16
11075 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s16(int16x8_t a,int16x8_t b)11076 int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) {
11077 return vsubhn_s16(a, b);
11078 }
11079
11080 // CHECK-LABEL: test_vsubhn_s32
11081 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s32(int32x4_t a,int32x4_t b)11082 int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) {
11083 return vsubhn_s32(a, b);
11084 }
11085
11086 // CHECK-LABEL: test_vsubhn_s64
11087 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_s64(int64x2_t a,int64x2_t b)11088 int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) {
11089 return vsubhn_s64(a, b);
11090 }
11091
11092 // CHECK-LABEL: test_vsubhn_u16
11093 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u16(uint16x8_t a,uint16x8_t b)11094 uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) {
11095 return vsubhn_u16(a, b);
11096 }
11097
11098 // CHECK-LABEL: test_vsubhn_u32
11099 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u32(uint32x4_t a,uint32x4_t b)11100 uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) {
11101 return vsubhn_u32(a, b);
11102 }
11103
11104 // CHECK-LABEL: test_vsubhn_u64
11105 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vsubhn_u64(uint64x2_t a,uint64x2_t b)11106 uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) {
11107 return vsubhn_u64(a, b);
11108 }
11109
11110
11111 // CHECK-LABEL: test_vsubl_s8
11112 // CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s8(int8x8_t a,int8x8_t b)11113 int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) {
11114 return vsubl_s8(a, b);
11115 }
11116
11117 // CHECK-LABEL: test_vsubl_s16
11118 // CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s16(int16x4_t a,int16x4_t b)11119 int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) {
11120 return vsubl_s16(a, b);
11121 }
11122
11123 // CHECK-LABEL: test_vsubl_s32
11124 // CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_s32(int32x2_t a,int32x2_t b)11125 int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) {
11126 return vsubl_s32(a, b);
11127 }
11128
11129 // CHECK-LABEL: test_vsubl_u8
11130 // CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u8(uint8x8_t a,uint8x8_t b)11131 uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) {
11132 return vsubl_u8(a, b);
11133 }
11134
11135 // CHECK-LABEL: test_vsubl_u16
11136 // CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u16(uint16x4_t a,uint16x4_t b)11137 uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) {
11138 return vsubl_u16(a, b);
11139 }
11140
11141 // CHECK-LABEL: test_vsubl_u32
11142 // CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vsubl_u32(uint32x2_t a,uint32x2_t b)11143 uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) {
11144 return vsubl_u32(a, b);
11145 }
11146
11147
11148 // CHECK-LABEL: test_vsubw_s8
11149 // CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s8(int16x8_t a,int8x8_t b)11150 int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) {
11151 return vsubw_s8(a, b);
11152 }
11153
11154 // CHECK-LABEL: test_vsubw_s16
11155 // CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s16(int32x4_t a,int16x4_t b)11156 int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) {
11157 return vsubw_s16(a, b);
11158 }
11159
11160 // CHECK-LABEL: test_vsubw_s32
11161 // CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_s32(int64x2_t a,int32x2_t b)11162 int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) {
11163 return vsubw_s32(a, b);
11164 }
11165
11166 // CHECK-LABEL: test_vsubw_u8
11167 // CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u8(uint16x8_t a,uint8x8_t b)11168 uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) {
11169 return vsubw_u8(a, b);
11170 }
11171
11172 // CHECK-LABEL: test_vsubw_u16
11173 // CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u16(uint32x4_t a,uint16x4_t b)11174 uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) {
11175 return vsubw_u16(a, b);
11176 }
11177
11178 // CHECK-LABEL: test_vsubw_u32
11179 // CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
test_vsubw_u32(uint64x2_t a,uint32x2_t b)11180 uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) {
11181 return vsubw_u32(a, b);
11182 }
11183
11184
11185 // CHECK-LABEL: test_vtbl1_u8
11186 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_u8(uint8x8_t a,uint8x8_t b)11187 uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) {
11188 return vtbl1_u8(a, b);
11189 }
11190
11191 // CHECK-LABEL: test_vtbl1_s8
11192 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_s8(int8x8_t a,int8x8_t b)11193 int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) {
11194 return vtbl1_s8(a, b);
11195 }
11196
11197 // CHECK-LABEL: test_vtbl1_p8
11198 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl1_p8(poly8x8_t a,uint8x8_t b)11199 poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) {
11200 return vtbl1_p8(a, b);
11201 }
11202
11203
11204 // CHECK-LABEL: test_vtbl2_u8
11205 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_u8(uint8x8x2_t a,uint8x8_t b)11206 uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) {
11207 return vtbl2_u8(a, b);
11208 }
11209
11210 // CHECK-LABEL: test_vtbl2_s8
11211 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_s8(int8x8x2_t a,int8x8_t b)11212 int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) {
11213 return vtbl2_s8(a, b);
11214 }
11215
11216 // CHECK-LABEL: test_vtbl2_p8
11217 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl2_p8(poly8x8x2_t a,uint8x8_t b)11218 poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) {
11219 return vtbl2_p8(a, b);
11220 }
11221
11222
11223 // CHECK-LABEL: test_vtbl3_u8
11224 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_u8(uint8x8x3_t a,uint8x8_t b)11225 uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) {
11226 return vtbl3_u8(a, b);
11227 }
11228
11229 // CHECK-LABEL: test_vtbl3_s8
11230 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_s8(int8x8x3_t a,int8x8_t b)11231 int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) {
11232 return vtbl3_s8(a, b);
11233 }
11234
11235 // CHECK-LABEL: test_vtbl3_p8
11236 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl3_p8(poly8x8x3_t a,uint8x8_t b)11237 poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) {
11238 return vtbl3_p8(a, b);
11239 }
11240
11241
11242 // CHECK-LABEL: test_vtbl4_u8
11243 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_u8(uint8x8x4_t a,uint8x8_t b)11244 uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) {
11245 return vtbl4_u8(a, b);
11246 }
11247
11248 // CHECK-LABEL: test_vtbl4_s8
11249 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_s8(int8x8x4_t a,int8x8_t b)11250 int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) {
11251 return vtbl4_s8(a, b);
11252 }
11253
11254 // CHECK-LABEL: test_vtbl4_p8
11255 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbl4_p8(poly8x8x4_t a,uint8x8_t b)11256 poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) {
11257 return vtbl4_p8(a, b);
11258 }
11259
11260
11261 // CHECK-LABEL: test_vtbx1_u8
11262 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)11263 uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
11264 return vtbx1_u8(a, b, c);
11265 }
11266
11267 // CHECK-LABEL: test_vtbx1_s8
11268 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_s8(int8x8_t a,int8x8_t b,int8x8_t c)11269 int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
11270 return vtbx1_s8(a, b, c);
11271 }
11272
11273 // CHECK-LABEL: test_vtbx1_p8
11274 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx1_p8(poly8x8_t a,poly8x8_t b,uint8x8_t c)11275 poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) {
11276 return vtbx1_p8(a, b, c);
11277 }
11278
11279
11280 // CHECK-LABEL: test_vtbx2_u8
11281 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_u8(uint8x8_t a,uint8x8x2_t b,uint8x8_t c)11282 uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) {
11283 return vtbx2_u8(a, b, c);
11284 }
11285
11286 // CHECK-LABEL: test_vtbx2_s8
11287 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_s8(int8x8_t a,int8x8x2_t b,int8x8_t c)11288 int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) {
11289 return vtbx2_s8(a, b, c);
11290 }
11291
11292 // CHECK-LABEL: test_vtbx2_p8
11293 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx2_p8(poly8x8_t a,poly8x8x2_t b,uint8x8_t c)11294 poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) {
11295 return vtbx2_p8(a, b, c);
11296 }
11297
11298
11299 // CHECK-LABEL: test_vtbx3_u8
11300 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_u8(uint8x8_t a,uint8x8x3_t b,uint8x8_t c)11301 uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) {
11302 return vtbx3_u8(a, b, c);
11303 }
11304
11305 // CHECK-LABEL: test_vtbx3_s8
11306 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_s8(int8x8_t a,int8x8x3_t b,int8x8_t c)11307 int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) {
11308 return vtbx3_s8(a, b, c);
11309 }
11310
11311 // CHECK-LABEL: test_vtbx3_p8
11312 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx3_p8(poly8x8_t a,poly8x8x3_t b,uint8x8_t c)11313 poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) {
11314 return vtbx3_p8(a, b, c);
11315 }
11316
11317
11318 // CHECK-LABEL: test_vtbx4_u8
11319 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_u8(uint8x8_t a,uint8x8x4_t b,uint8x8_t c)11320 uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) {
11321 return vtbx4_u8(a, b, c);
11322 }
11323
11324 // CHECK-LABEL: test_vtbx4_s8
11325 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_s8(int8x8_t a,int8x8x4_t b,int8x8_t c)11326 int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) {
11327 return vtbx4_s8(a, b, c);
11328 }
11329
11330 // CHECK-LABEL: test_vtbx4_p8
11331 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
test_vtbx4_p8(poly8x8_t a,poly8x8x4_t b,uint8x8_t c)11332 poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) {
11333 return vtbx4_p8(a, b, c);
11334 }
11335
11336
11337 // CHECK-LABEL: test_vtrn_s8
11338 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s8(int8x8_t a,int8x8_t b)11339 int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) {
11340 return vtrn_s8(a, b);
11341 }
11342
11343 // CHECK-LABEL: test_vtrn_s16
11344 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s16(int16x4_t a,int16x4_t b)11345 int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) {
11346 return vtrn_s16(a, b);
11347 }
11348
11349 // CHECK-LABEL: test_vtrn_s32
11350 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_s32(int32x2_t a,int32x2_t b)11351 int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
11352 return vtrn_s32(a, b);
11353 }
11354
11355 // CHECK-LABEL: test_vtrn_u8
11356 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u8(uint8x8_t a,uint8x8_t b)11357 uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
11358 return vtrn_u8(a, b);
11359 }
11360
11361 // CHECK-LABEL: test_vtrn_u16
11362 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u16(uint16x4_t a,uint16x4_t b)11363 uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
11364 return vtrn_u16(a, b);
11365 }
11366
11367 // CHECK-LABEL: test_vtrn_u32
11368 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_u32(uint32x2_t a,uint32x2_t b)11369 uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) {
11370 return vtrn_u32(a, b);
11371 }
11372
11373 // CHECK-LABEL: test_vtrn_f32
11374 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_f32(float32x2_t a,float32x2_t b)11375 float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) {
11376 return vtrn_f32(a, b);
11377 }
11378
11379 // CHECK-LABEL: test_vtrn_p8
11380 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p8(poly8x8_t a,poly8x8_t b)11381 poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) {
11382 return vtrn_p8(a, b);
11383 }
11384
11385 // CHECK-LABEL: test_vtrn_p16
11386 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vtrn_p16(poly16x4_t a,poly16x4_t b)11387 poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) {
11388 return vtrn_p16(a, b);
11389 }
11390
11391 // CHECK-LABEL: test_vtrnq_s8
11392 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s8(int8x16_t a,int8x16_t b)11393 int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) {
11394 return vtrnq_s8(a, b);
11395 }
11396
11397 // CHECK-LABEL: test_vtrnq_s16
11398 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s16(int16x8_t a,int16x8_t b)11399 int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
11400 return vtrnq_s16(a, b);
11401 }
11402
11403 // CHECK-LABEL: test_vtrnq_s32
11404 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_s32(int32x4_t a,int32x4_t b)11405 int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) {
11406 return vtrnq_s32(a, b);
11407 }
11408
11409 // CHECK-LABEL: test_vtrnq_u8
11410 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u8(uint8x16_t a,uint8x16_t b)11411 uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
11412 return vtrnq_u8(a, b);
11413 }
11414
11415 // CHECK-LABEL: test_vtrnq_u16
11416 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u16(uint16x8_t a,uint16x8_t b)11417 uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) {
11418 return vtrnq_u16(a, b);
11419 }
11420
11421 // CHECK-LABEL: test_vtrnq_u32
11422 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_u32(uint32x4_t a,uint32x4_t b)11423 uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
11424 return vtrnq_u32(a, b);
11425 }
11426
11427 // CHECK-LABEL: test_vtrnq_f32
11428 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_f32(float32x4_t a,float32x4_t b)11429 float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) {
11430 return vtrnq_f32(a, b);
11431 }
11432
11433 // CHECK-LABEL: test_vtrnq_p8
11434 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p8(poly8x16_t a,poly8x16_t b)11435 poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) {
11436 return vtrnq_p8(a, b);
11437 }
11438
11439 // CHECK-LABEL: test_vtrnq_p16
11440 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vtrnq_p16(poly16x8_t a,poly16x8_t b)11441 poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) {
11442 return vtrnq_p16(a, b);
11443 }
11444
11445
11446 // CHECK-LABEL: test_vtst_s8
11447 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s8(int8x8_t a,int8x8_t b)11448 uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) {
11449 return vtst_s8(a, b);
11450 }
11451
11452 // CHECK-LABEL: test_vtst_s16
11453 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s16(int16x4_t a,int16x4_t b)11454 uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) {
11455 return vtst_s16(a, b);
11456 }
11457
11458 // CHECK-LABEL: test_vtst_s32
11459 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_s32(int32x2_t a,int32x2_t b)11460 uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) {
11461 return vtst_s32(a, b);
11462 }
11463
11464 // CHECK-LABEL: test_vtst_u8
11465 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u8(uint8x8_t a,uint8x8_t b)11466 uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) {
11467 return vtst_u8(a, b);
11468 }
11469
11470 // CHECK-LABEL: test_vtst_u16
11471 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u16(uint16x4_t a,uint16x4_t b)11472 uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) {
11473 return vtst_u16(a, b);
11474 }
11475
11476 // CHECK-LABEL: test_vtst_u32
11477 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_u32(uint32x2_t a,uint32x2_t b)11478 uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) {
11479 return vtst_u32(a, b);
11480 }
11481
11482 // CHECK-LABEL: test_vtst_p8
11483 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p8(poly8x8_t a,poly8x8_t b)11484 uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) {
11485 return vtst_p8(a, b);
11486 }
11487
11488 // CHECK-LABEL: test_vtst_p16
11489 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
test_vtst_p16(poly16x4_t a,poly16x4_t b)11490 uint16x4_t test_vtst_p16(poly16x4_t a, poly16x4_t b) {
11491 return vtst_p16(a, b);
11492 }
11493
11494 // CHECK-LABEL: test_vtstq_s8
11495 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s8(int8x16_t a,int8x16_t b)11496 uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) {
11497 return vtstq_s8(a, b);
11498 }
11499
11500 // CHECK-LABEL: test_vtstq_s16
11501 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s16(int16x8_t a,int16x8_t b)11502 uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) {
11503 return vtstq_s16(a, b);
11504 }
11505
11506 // CHECK-LABEL: test_vtstq_s32
11507 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_s32(int32x4_t a,int32x4_t b)11508 uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) {
11509 return vtstq_s32(a, b);
11510 }
11511
11512 // CHECK-LABEL: test_vtstq_u8
11513 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u8(uint8x16_t a,uint8x16_t b)11514 uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) {
11515 return vtstq_u8(a, b);
11516 }
11517
11518 // CHECK-LABEL: test_vtstq_u16
11519 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u16(uint16x8_t a,uint16x8_t b)11520 uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) {
11521 return vtstq_u16(a, b);
11522 }
11523
11524 // CHECK-LABEL: test_vtstq_u32
11525 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_u32(uint32x4_t a,uint32x4_t b)11526 uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) {
11527 return vtstq_u32(a, b);
11528 }
11529
11530 // CHECK-LABEL: test_vtstq_p8
11531 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p8(poly8x16_t a,poly8x16_t b)11532 uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) {
11533 return vtstq_p8(a, b);
11534 }
11535
11536 // CHECK-LABEL: test_vtstq_p16
11537 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
test_vtstq_p16(poly16x8_t a,poly16x8_t b)11538 uint16x8_t test_vtstq_p16(poly16x8_t a, poly16x8_t b) {
11539 return vtstq_p16(a, b);
11540 }
11541
11542
11543 // CHECK-LABEL: test_vuzp_s8
11544 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s8(int8x8_t a,int8x8_t b)11545 int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) {
11546 return vuzp_s8(a, b);
11547 }
11548
11549 // CHECK-LABEL: test_vuzp_s16
11550 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s16(int16x4_t a,int16x4_t b)11551 int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) {
11552 return vuzp_s16(a, b);
11553 }
11554
11555 // CHECK-LABEL: test_vuzp_s32
11556 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_s32(int32x2_t a,int32x2_t b)11557 int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) {
11558 return vuzp_s32(a, b);
11559 }
11560
11561 // CHECK-LABEL: test_vuzp_u8
11562 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u8(uint8x8_t a,uint8x8_t b)11563 uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) {
11564 return vuzp_u8(a, b);
11565 }
11566
11567 // CHECK-LABEL: test_vuzp_u16
11568 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u16(uint16x4_t a,uint16x4_t b)11569 uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) {
11570 return vuzp_u16(a, b);
11571 }
11572
11573 // CHECK-LABEL: test_vuzp_u32
11574 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_u32(uint32x2_t a,uint32x2_t b)11575 uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) {
11576 return vuzp_u32(a, b);
11577 }
11578
11579 // CHECK-LABEL: test_vuzp_f32
11580 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_f32(float32x2_t a,float32x2_t b)11581 float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) {
11582 return vuzp_f32(a, b);
11583 }
11584
11585 // CHECK-LABEL: test_vuzp_p8
11586 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p8(poly8x8_t a,poly8x8_t b)11587 poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) {
11588 return vuzp_p8(a, b);
11589 }
11590
11591 // CHECK-LABEL: test_vuzp_p16
11592 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vuzp_p16(poly16x4_t a,poly16x4_t b)11593 poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) {
11594 return vuzp_p16(a, b);
11595 }
11596
11597 // CHECK-LABEL: test_vuzpq_s8
11598 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s8(int8x16_t a,int8x16_t b)11599 int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) {
11600 return vuzpq_s8(a, b);
11601 }
11602
11603 // CHECK-LABEL: test_vuzpq_s16
11604 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s16(int16x8_t a,int16x8_t b)11605 int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) {
11606 return vuzpq_s16(a, b);
11607 }
11608
11609 // CHECK-LABEL: test_vuzpq_s32
11610 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_s32(int32x4_t a,int32x4_t b)11611 int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) {
11612 return vuzpq_s32(a, b);
11613 }
11614
11615 // CHECK-LABEL: test_vuzpq_u8
11616 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u8(uint8x16_t a,uint8x16_t b)11617 uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) {
11618 return vuzpq_u8(a, b);
11619 }
11620
11621 // CHECK-LABEL: test_vuzpq_u16
11622 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u16(uint16x8_t a,uint16x8_t b)11623 uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) {
11624 return vuzpq_u16(a, b);
11625 }
11626
11627 // CHECK-LABEL: test_vuzpq_u32
11628 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_u32(uint32x4_t a,uint32x4_t b)11629 uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) {
11630 return vuzpq_u32(a, b);
11631 }
11632
11633 // CHECK-LABEL: test_vuzpq_f32
11634 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_f32(float32x4_t a,float32x4_t b)11635 float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) {
11636 return vuzpq_f32(a, b);
11637 }
11638
11639 // CHECK-LABEL: test_vuzpq_p8
11640 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p8(poly8x16_t a,poly8x16_t b)11641 poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) {
11642 return vuzpq_p8(a, b);
11643 }
11644
11645 // CHECK-LABEL: test_vuzpq_p16
11646 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vuzpq_p16(poly16x8_t a,poly16x8_t b)11647 poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) {
11648 return vuzpq_p16(a, b);
11649 }
11650
11651
11652 // CHECK-LABEL: test_vzip_s8
11653 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s8(int8x8_t a,int8x8_t b)11654 int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) {
11655 return vzip_s8(a, b);
11656 }
11657
11658 // CHECK-LABEL: test_vzip_s16
11659 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s16(int16x4_t a,int16x4_t b)11660 int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) {
11661 return vzip_s16(a, b);
11662 }
11663
11664 // CHECK-LABEL: test_vzip_s32
11665 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_s32(int32x2_t a,int32x2_t b)11666 int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) {
11667 return vzip_s32(a, b);
11668 }
11669
11670 // CHECK-LABEL: test_vzip_u8
11671 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u8(uint8x8_t a,uint8x8_t b)11672 uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) {
11673 return vzip_u8(a, b);
11674 }
11675
11676 // CHECK-LABEL: test_vzip_u16
11677 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u16(uint16x4_t a,uint16x4_t b)11678 uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) {
11679 return vzip_u16(a, b);
11680 }
11681
11682 // CHECK-LABEL: test_vzip_u32
11683 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_u32(uint32x2_t a,uint32x2_t b)11684 uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) {
11685 return vzip_u32(a, b);
11686 }
11687
11688 // CHECK-LABEL: test_vzip_f32
11689 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_f32(float32x2_t a,float32x2_t b)11690 float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) {
11691 return vzip_f32(a, b);
11692 }
11693
11694 // CHECK-LABEL: test_vzip_p8
11695 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p8(poly8x8_t a,poly8x8_t b)11696 poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) {
11697 return vzip_p8(a, b);
11698 }
11699
11700 // CHECK-LABEL: test_vzip_p16
11701 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
test_vzip_p16(poly16x4_t a,poly16x4_t b)11702 poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) {
11703 return vzip_p16(a, b);
11704 }
11705
11706 // CHECK-LABEL: test_vzipq_s8
11707 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s8(int8x16_t a,int8x16_t b)11708 int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) {
11709 return vzipq_s8(a, b);
11710 }
11711
11712 // CHECK-LABEL: test_vzipq_s16
11713 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s16(int16x8_t a,int16x8_t b)11714 int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) {
11715 return vzipq_s16(a, b);
11716 }
11717
11718 // CHECK-LABEL: test_vzipq_s32
11719 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_s32(int32x4_t a,int32x4_t b)11720 int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) {
11721 return vzipq_s32(a, b);
11722 }
11723
11724 // CHECK-LABEL: test_vzipq_u8
11725 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u8(uint8x16_t a,uint8x16_t b)11726 uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) {
11727 return vzipq_u8(a, b);
11728 }
11729
11730 // CHECK-LABEL: test_vzipq_u16
11731 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u16(uint16x8_t a,uint16x8_t b)11732 uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) {
11733 return vzipq_u16(a, b);
11734 }
11735
11736 // CHECK-LABEL: test_vzipq_u32
11737 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_u32(uint32x4_t a,uint32x4_t b)11738 uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) {
11739 return vzipq_u32(a, b);
11740 }
11741
11742 // CHECK-LABEL: test_vzipq_f32
11743 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_f32(float32x4_t a,float32x4_t b)11744 float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) {
11745 return vzipq_f32(a, b);
11746 }
11747
11748 // CHECK-LABEL: test_vzipq_p8
11749 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p8(poly8x16_t a,poly8x16_t b)11750 poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) {
11751 return vzipq_p8(a, b);
11752 }
11753
11754 // CHECK-LABEL: test_vzipq_p16
11755 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
test_vzipq_p16(poly16x8_t a,poly16x8_t b)11756 poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) {
11757 return vzipq_p16(a, b);
11758 }
11759
11760
11761