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
8int8x8_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
14int8x16_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
20int16x4_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
26int16x8_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
32int32x2_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
38int32x4_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
44int64x1_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
50int64x2_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
56uint8x8_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
62uint8x16_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
68uint16x4_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
74uint16x8_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
80uint32x2_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
86uint32x4_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
92uint64x1_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
98uint64x2_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
104int8x8_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
110int8x16_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
116int16x4_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
122int16x8_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
128int32x2_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
134int32x4_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
140int64x1_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
146int64x2_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
152uint8x8_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
158uint8x16_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
164uint16x4_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
170uint16x8_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
176uint32x2_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
182uint32x4_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
188uint64x1_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
194uint64x2_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
200int8x8_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
206int8x16_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
212int16x4_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
218int16x8_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
224int32x2_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
230int32x4_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
236int64x1_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
242int64x2_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
248uint8x8_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
254uint8x16_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
260uint16x4_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
266uint16x8_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
272uint32x2_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
278uint32x4_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
284uint64x1_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
290uint64x2_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
296int8x8_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
302int8x16_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
308int16x4_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
314int16x8_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
320int32x2_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
326int32x4_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
332int64x1_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
338int64x2_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
344uint8x8_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
350uint8x16_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
356uint16x4_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
362uint16x8_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
368uint32x2_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
374uint32x4_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
380uint64x1_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
386uint64x2_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
392int8x8_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
398int8x16_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
404int16x4_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
410int16x8_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
416int32x2_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
422int32x4_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
428int64x1_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
434int64x2_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
440uint8x8_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
446uint8x16_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
452uint16x4_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
458uint16x8_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
464uint32x2_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
470uint32x4_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
476uint64x1_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
482uint64x2_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