1 // REQUIRES: aarch64-registered-target
2 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 -o - %s | FileCheck %s
3 
4 // Test new aarch64 intrinsics and types
5 
6 #include <arm_neon.h>
7 
test_vand_s8(int8x8_t a,int8x8_t b)8 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
9   // CHECK-LABEL: test_vand_s8
10   return vand_s8(a, b);
11   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
12 }
13 
test_vandq_s8(int8x16_t a,int8x16_t b)14 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
15   // CHECK-LABEL: test_vandq_s8
16   return vandq_s8(a, b);
17   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
18 }
19 
test_vand_s16(int16x4_t a,int16x4_t b)20 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
21   // CHECK-LABEL: test_vand_s16
22   return vand_s16(a, b);
23   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
24 }
25 
test_vandq_s16(int16x8_t a,int16x8_t b)26 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
27   // CHECK-LABEL: test_vandq_s16
28   return vandq_s16(a, b);
29   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
30 }
31 
test_vand_s32(int32x2_t a,int32x2_t b)32 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
33   // CHECK-LABEL: test_vand_s32
34   return vand_s32(a, b);
35   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
36 }
37 
test_vandq_s32(int32x4_t a,int32x4_t b)38 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
39   // CHECK-LABEL: test_vandq_s32
40   return vandq_s32(a, b);
41   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
42 }
43 
test_vand_s64(int64x1_t a,int64x1_t b)44 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
45   // CHECK-LABEL: test_vand_s64
46   return vand_s64(a, b);
47   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
48 }
49 
test_vandq_s64(int64x2_t a,int64x2_t b)50 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
51   // CHECK-LABEL: test_vandq_s64
52   return vandq_s64(a, b);
53   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
54 }
55 
test_vand_u8(uint8x8_t a,uint8x8_t b)56 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
57   // CHECK-LABEL: test_vand_u8
58   return vand_u8(a, b);
59   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
60 }
61 
test_vandq_u8(uint8x16_t a,uint8x16_t b)62 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
63   // CHECK-LABEL: test_vandq_u8
64   return vandq_u8(a, b);
65   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
66 }
67 
test_vand_u16(uint16x4_t a,uint16x4_t b)68 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
69   // CHECK-LABEL: test_vand_u16
70   return vand_u16(a, b);
71   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
72 }
73 
test_vandq_u16(uint16x8_t a,uint16x8_t b)74 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
75   // CHECK-LABEL: test_vandq_u16
76   return vandq_u16(a, b);
77   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
78 }
79 
test_vand_u32(uint32x2_t a,uint32x2_t b)80 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
81   // CHECK-LABEL: test_vand_u32
82   return vand_u32(a, b);
83   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
84 }
85 
test_vandq_u32(uint32x4_t a,uint32x4_t b)86 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
87   // CHECK-LABEL: test_vandq_u32
88   return vandq_u32(a, b);
89   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
90 }
91 
test_vand_u64(uint64x1_t a,uint64x1_t b)92 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
93   // CHECK-LABEL: test_vand_u64
94   return vand_u64(a, b);
95   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
96 }
97 
test_vandq_u64(uint64x2_t a,uint64x2_t b)98 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
99   // CHECK-LABEL: test_vandq_u64
100   return vandq_u64(a, b);
101   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
102 }
103 
test_vorr_s8(int8x8_t a,int8x8_t b)104 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
105   // CHECK-LABEL: test_vorr_s8
106   return vorr_s8(a, b);
107   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
108 }
109 
test_vorrq_s8(int8x16_t a,int8x16_t b)110 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
111   // CHECK-LABEL: test_vorrq_s8
112   return vorrq_s8(a, b);
113   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
114 }
115 
test_vorr_s16(int16x4_t a,int16x4_t b)116 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
117   // CHECK-LABEL: test_vorr_s16
118   return vorr_s16(a, b);
119   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
120 }
121 
test_vorrq_s16(int16x8_t a,int16x8_t b)122 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
123   // CHECK-LABEL: test_vorrq_s16
124   return vorrq_s16(a, b);
125   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
126 }
127 
test_vorr_s32(int32x2_t a,int32x2_t b)128 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
129   // CHECK-LABEL: test_vorr_s32
130   return vorr_s32(a, b);
131   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
132 }
133 
test_vorrq_s32(int32x4_t a,int32x4_t b)134 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
135   // CHECK-LABEL: test_vorrq_s32
136   return vorrq_s32(a, b);
137   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
138 }
139 
test_vorr_s64(int64x1_t a,int64x1_t b)140 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
141   // CHECK-LABEL: test_vorr_s64
142   return vorr_s64(a, b);
143   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
144 }
145 
test_vorrq_s64(int64x2_t a,int64x2_t b)146 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
147   // CHECK-LABEL: test_vorrq_s64
148   return vorrq_s64(a, b);
149   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
150 }
151 
test_vorr_u8(uint8x8_t a,uint8x8_t b)152 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
153   // CHECK-LABEL: test_vorr_u8
154   return vorr_u8(a, b);
155   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
156 }
157 
test_vorrq_u8(uint8x16_t a,uint8x16_t b)158 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
159   // CHECK-LABEL: test_vorrq_u8
160   return vorrq_u8(a, b);
161   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
162 }
163 
test_vorr_u16(uint16x4_t a,uint16x4_t b)164 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
165   // CHECK-LABEL: test_vorr_u16
166   return vorr_u16(a, b);
167   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
168 }
169 
test_vorrq_u16(uint16x8_t a,uint16x8_t b)170 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
171   // CHECK-LABEL: test_vorrq_u16
172   return vorrq_u16(a, b);
173   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
174 }
175 
test_vorr_u32(uint32x2_t a,uint32x2_t b)176 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
177   // CHECK-LABEL: test_vorr_u32
178   return vorr_u32(a, b);
179   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
180 }
181 
test_vorrq_u32(uint32x4_t a,uint32x4_t b)182 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
183   // CHECK-LABEL: test_vorrq_u32
184   return vorrq_u32(a, b);
185   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
186 }
187 
test_vorr_u64(uint64x1_t a,uint64x1_t b)188 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
189   // CHECK-LABEL: test_vorr_u64
190   return vorr_u64(a, b);
191   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
192 }
193 
test_vorrq_u64(uint64x2_t a,uint64x2_t b)194 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
195   // CHECK-LABEL: test_vorrq_u64
196   return vorrq_u64(a, b);
197   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
198 }
199 
test_veor_s8(int8x8_t a,int8x8_t b)200 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
201   // CHECK-LABEL: test_veor_s8
202   return veor_s8(a, b);
203   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
204 }
205 
test_veorq_s8(int8x16_t a,int8x16_t b)206 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
207   // CHECK-LABEL: test_veorq_s8
208   return veorq_s8(a, b);
209   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
210 }
211 
test_veor_s16(int16x4_t a,int16x4_t b)212 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
213   // CHECK-LABEL: test_veor_s16
214   return veor_s16(a, b);
215   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
216 }
217 
test_veorq_s16(int16x8_t a,int16x8_t b)218 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
219   // CHECK-LABEL: test_veorq_s16
220   return veorq_s16(a, b);
221   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
222 }
223 
test_veor_s32(int32x2_t a,int32x2_t b)224 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
225   // CHECK-LABEL: test_veor_s32
226   return veor_s32(a, b);
227   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
228 }
229 
test_veorq_s32(int32x4_t a,int32x4_t b)230 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
231   // CHECK-LABEL: test_veorq_s32
232   return veorq_s32(a, b);
233   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
234 }
235 
test_veor_s64(int64x1_t a,int64x1_t b)236 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
237   // CHECK-LABEL: test_veor_s64
238   return veor_s64(a, b);
239   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
240 }
241 
test_veorq_s64(int64x2_t a,int64x2_t b)242 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
243   // CHECK-LABEL: test_veorq_s64
244   return veorq_s64(a, b);
245   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
246 }
247 
test_veor_u8(uint8x8_t a,uint8x8_t b)248 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
249   // CHECK-LABEL: test_veor_u8
250   return veor_u8(a, b);
251   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
252 }
253 
test_veorq_u8(uint8x16_t a,uint8x16_t b)254 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
255   // CHECK-LABEL: test_veorq_u8
256   return veorq_u8(a, b);
257   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
258 }
259 
test_veor_u16(uint16x4_t a,uint16x4_t b)260 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
261   // CHECK-LABEL: test_veor_u16
262   return veor_u16(a, b);
263   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
264 }
265 
test_veorq_u16(uint16x8_t a,uint16x8_t b)266 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
267   // CHECK-LABEL: test_veorq_u16
268   return veorq_u16(a, b);
269   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
270 }
271 
test_veor_u32(uint32x2_t a,uint32x2_t b)272 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
273   // CHECK-LABEL: test_veor_u32
274   return veor_u32(a, b);
275   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
276 }
277 
test_veorq_u32(uint32x4_t a,uint32x4_t b)278 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
279   // CHECK-LABEL: test_veorq_u32
280   return veorq_u32(a, b);
281   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
282 }
283 
test_veor_u64(uint64x1_t a,uint64x1_t b)284 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
285   // CHECK-LABEL: test_veor_u64
286   return veor_u64(a, b);
287   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
288 }
289 
test_veorq_u64(uint64x2_t a,uint64x2_t b)290 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
291   // CHECK-LABEL: test_veorq_u64
292   return veorq_u64(a, b);
293   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
294 }
295 
test_vbic_s8(int8x8_t a,int8x8_t b)296 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
297   // CHECK-LABEL: test_vbic_s8
298   return vbic_s8(a, b);
299   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
300 }
301 
test_vbicq_s8(int8x16_t a,int8x16_t b)302 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
303   // CHECK-LABEL: test_vbicq_s8
304   return vbicq_s8(a, b);
305   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
306 }
307 
test_vbic_s16(int16x4_t a,int16x4_t b)308 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
309   // CHECK-LABEL: test_vbic_s16
310   return vbic_s16(a, b);
311   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
312 }
313 
test_vbicq_s16(int16x8_t a,int16x8_t b)314 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
315   // CHECK-LABEL: test_vbicq_s16
316   return vbicq_s16(a, b);
317   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
318 }
319 
test_vbic_s32(int32x2_t a,int32x2_t b)320 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
321   // CHECK-LABEL: test_vbic_s32
322   return vbic_s32(a, b);
323   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
324 }
325 
test_vbicq_s32(int32x4_t a,int32x4_t b)326 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
327   // CHECK-LABEL: test_vbicq_s32
328   return vbicq_s32(a, b);
329   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
330 }
331 
test_vbic_s64(int64x1_t a,int64x1_t b)332 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
333   // CHECK-LABEL: test_vbic_s64
334   return vbic_s64(a, b);
335   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
336 }
337 
test_vbicq_s64(int64x2_t a,int64x2_t b)338 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
339   // CHECK-LABEL: test_vbicq_s64
340   return vbicq_s64(a, b);
341   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
342 }
343 
test_vbic_u8(uint8x8_t a,uint8x8_t b)344 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
345   // CHECK-LABEL: test_vbic_u8
346   return vbic_u8(a, b);
347   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
348 }
349 
test_vbicq_u8(uint8x16_t a,uint8x16_t b)350 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
351   // CHECK-LABEL: test_vbicq_u8
352   return vbicq_u8(a, b);
353   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
354 }
355 
test_vbic_u16(uint16x4_t a,uint16x4_t b)356 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
357   // CHECK-LABEL: test_vbic_u16
358   return vbic_u16(a, b);
359   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
360 }
361 
test_vbicq_u16(uint16x8_t a,uint16x8_t b)362 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
363   // CHECK-LABEL: test_vbicq_u16
364   return vbicq_u16(a, b);
365   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
366 }
367 
test_vbic_u32(uint32x2_t a,uint32x2_t b)368 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
369   // CHECK-LABEL: test_vbic_u32
370   return vbic_u32(a, b);
371   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
372 }
373 
test_vbicq_u32(uint32x4_t a,uint32x4_t b)374 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
375   // CHECK-LABEL: test_vbicq_u32
376   return vbicq_u32(a, b);
377   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
378 }
379 
test_vbic_u64(uint64x1_t a,uint64x1_t b)380 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
381   // CHECK-LABEL: test_vbic_u64
382   return vbic_u64(a, b);
383   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
384 }
385 
test_vbicq_u64(uint64x2_t a,uint64x2_t b)386 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
387   // CHECK-LABEL: test_vbicq_u64
388   return vbicq_u64(a, b);
389   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
390 }
391 
test_vorn_s8(int8x8_t a,int8x8_t b)392 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
393   // CHECK-LABEL: test_vorn_s8
394   return vorn_s8(a, b);
395   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
396 }
397 
test_vornq_s8(int8x16_t a,int8x16_t b)398 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
399   // CHECK-LABEL: test_vornq_s8
400   return vornq_s8(a, b);
401   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
402 }
403 
test_vorn_s16(int16x4_t a,int16x4_t b)404 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
405   // CHECK-LABEL: test_vorn_s16
406   return vorn_s16(a, b);
407   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
408 }
409 
test_vornq_s16(int16x8_t a,int16x8_t b)410 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
411   // CHECK-LABEL: test_vornq_s16
412   return vornq_s16(a, b);
413   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
414 }
415 
test_vorn_s32(int32x2_t a,int32x2_t b)416 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
417   // CHECK-LABEL: test_vorn_s32
418   return vorn_s32(a, b);
419   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
420 }
421 
test_vornq_s32(int32x4_t a,int32x4_t b)422 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
423   // CHECK-LABEL: test_vornq_s32
424   return vornq_s32(a, b);
425   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
426 }
427 
test_vorn_s64(int64x1_t a,int64x1_t b)428 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
429   // CHECK-LABEL: test_vorn_s64
430   return vorn_s64(a, b);
431   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
432 }
433 
test_vornq_s64(int64x2_t a,int64x2_t b)434 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
435   // CHECK-LABEL: test_vornq_s64
436   return vornq_s64(a, b);
437   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
438 }
439 
test_vorn_u8(uint8x8_t a,uint8x8_t b)440 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
441   // CHECK-LABEL: test_vorn_u8
442   return vorn_u8(a, b);
443   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
444 }
445 
test_vornq_u8(uint8x16_t a,uint8x16_t b)446 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
447   // CHECK-LABEL: test_vornq_u8
448   return vornq_u8(a, b);
449   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
450 }
451 
test_vorn_u16(uint16x4_t a,uint16x4_t b)452 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
453   // CHECK-LABEL: test_vorn_u16
454   return vorn_u16(a, b);
455   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
456 }
457 
test_vornq_u16(uint16x8_t a,uint16x8_t b)458 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
459   // CHECK-LABEL: test_vornq_u16
460   return vornq_u16(a, b);
461   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
462 }
463 
test_vorn_u32(uint32x2_t a,uint32x2_t b)464 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
465   // CHECK-LABEL: test_vorn_u32
466   return vorn_u32(a, b);
467   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
468 }
469 
test_vornq_u32(uint32x4_t a,uint32x4_t b)470 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
471   // CHECK-LABEL: test_vornq_u32
472   return vornq_u32(a, b);
473   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
474 }
475 
test_vorn_u64(uint64x1_t a,uint64x1_t b)476 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
477   // CHECK-LABEL: test_vorn_u64
478   return vorn_u64(a, b);
479   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
480 }
481 
test_vornq_u64(uint64x2_t a,uint64x2_t b)482 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
483   // CHECK-LABEL: test_vornq_u64
484   return vornq_u64(a, b);
485   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
486 }
487