arm.c (enum arm_builtins): Add crypto builtins.
[gcc.git] / gcc / config / arm / arm_neon.h
1 /* ARM NEON intrinsics include file. This file is generated automatically
2 using neon-gen.ml. Please do not edit manually.
3
4 Copyright (C) 2006-2013 Free Software Foundation, Inc.
5 Contributed by CodeSourcery.
6
7 This file is part of GCC.
8
9 GCC is free software; you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published
11 by the Free Software Foundation; either version 3, or (at your
12 option) any later version.
13
14 GCC is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
18
19 Under Section 7 of GPL version 3, you are granted additional
20 permissions described in the GCC Runtime Library Exception, version
21 3.1, as published by the Free Software Foundation.
22
23 You should have received a copy of the GNU General Public License and
24 a copy of the GCC Runtime Library Exception along with this program;
25 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
26 <http://www.gnu.org/licenses/>. */
27
28 #ifndef _GCC_ARM_NEON_H
29 #define _GCC_ARM_NEON_H 1
30
31 #ifndef __ARM_NEON__
32 #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
33 #else
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #include <stdint.h>
40
41 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
42 typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8)));
43 typedef __builtin_neon_si int32x2_t __attribute__ ((__vector_size__ (8)));
44 typedef __builtin_neon_di int64x1_t;
45 typedef __builtin_neon_hf float16x4_t __attribute__ ((__vector_size__ (8)));
46 typedef __builtin_neon_sf float32x2_t __attribute__ ((__vector_size__ (8)));
47 typedef __builtin_neon_poly8 poly8x8_t __attribute__ ((__vector_size__ (8)));
48 typedef __builtin_neon_poly16 poly16x4_t __attribute__ ((__vector_size__ (8)));
49 #ifdef __ARM_FEATURE_CRYPTO
50 typedef __builtin_neon_poly64 poly64x1_t;
51 #endif
52 typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8)));
53 typedef __builtin_neon_uhi uint16x4_t __attribute__ ((__vector_size__ (8)));
54 typedef __builtin_neon_usi uint32x2_t __attribute__ ((__vector_size__ (8)));
55 typedef __builtin_neon_udi uint64x1_t;
56 typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16)));
57 typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16)));
58 typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16)));
59 typedef __builtin_neon_di int64x2_t __attribute__ ((__vector_size__ (16)));
60 typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16)));
61 typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16)));
62 typedef __builtin_neon_poly16 poly16x8_t __attribute__ ((__vector_size__ (16)));
63 #ifdef __ARM_FEATURE_CRYPTO
64 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
65 #endif
66 typedef __builtin_neon_uqi uint8x16_t __attribute__ ((__vector_size__ (16)));
67 typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16)));
68 typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16)));
69 typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16)));
70
71 typedef float float32_t;
72 typedef __builtin_neon_poly8 poly8_t;
73 typedef __builtin_neon_poly16 poly16_t;
74 #ifdef __ARM_FEATURE_CRYPTO
75 typedef __builtin_neon_poly64 poly64_t;
76 typedef __builtin_neon_poly128 poly128_t;
77 #endif
78
79 typedef struct int8x8x2_t
80 {
81 int8x8_t val[2];
82 } int8x8x2_t;
83
84 typedef struct int8x16x2_t
85 {
86 int8x16_t val[2];
87 } int8x16x2_t;
88
89 typedef struct int16x4x2_t
90 {
91 int16x4_t val[2];
92 } int16x4x2_t;
93
94 typedef struct int16x8x2_t
95 {
96 int16x8_t val[2];
97 } int16x8x2_t;
98
99 typedef struct int32x2x2_t
100 {
101 int32x2_t val[2];
102 } int32x2x2_t;
103
104 typedef struct int32x4x2_t
105 {
106 int32x4_t val[2];
107 } int32x4x2_t;
108
109 typedef struct int64x1x2_t
110 {
111 int64x1_t val[2];
112 } int64x1x2_t;
113
114 typedef struct int64x2x2_t
115 {
116 int64x2_t val[2];
117 } int64x2x2_t;
118
119 typedef struct uint8x8x2_t
120 {
121 uint8x8_t val[2];
122 } uint8x8x2_t;
123
124 typedef struct uint8x16x2_t
125 {
126 uint8x16_t val[2];
127 } uint8x16x2_t;
128
129 typedef struct uint16x4x2_t
130 {
131 uint16x4_t val[2];
132 } uint16x4x2_t;
133
134 typedef struct uint16x8x2_t
135 {
136 uint16x8_t val[2];
137 } uint16x8x2_t;
138
139 typedef struct uint32x2x2_t
140 {
141 uint32x2_t val[2];
142 } uint32x2x2_t;
143
144 typedef struct uint32x4x2_t
145 {
146 uint32x4_t val[2];
147 } uint32x4x2_t;
148
149 typedef struct uint64x1x2_t
150 {
151 uint64x1_t val[2];
152 } uint64x1x2_t;
153
154 typedef struct uint64x2x2_t
155 {
156 uint64x2_t val[2];
157 } uint64x2x2_t;
158
159 typedef struct float32x2x2_t
160 {
161 float32x2_t val[2];
162 } float32x2x2_t;
163
164 typedef struct float32x4x2_t
165 {
166 float32x4_t val[2];
167 } float32x4x2_t;
168
169 typedef struct poly8x8x2_t
170 {
171 poly8x8_t val[2];
172 } poly8x8x2_t;
173
174 typedef struct poly8x16x2_t
175 {
176 poly8x16_t val[2];
177 } poly8x16x2_t;
178
179 typedef struct poly16x4x2_t
180 {
181 poly16x4_t val[2];
182 } poly16x4x2_t;
183
184 typedef struct poly16x8x2_t
185 {
186 poly16x8_t val[2];
187 } poly16x8x2_t;
188
189 #ifdef __ARM_FEATURE_CRYPTO
190 typedef struct poly64x1x2_t
191 {
192 poly64x1_t val[2];
193 } poly64x1x2_t;
194 #endif
195
196
197 #ifdef __ARM_FEATURE_CRYPTO
198 typedef struct poly64x2x2_t
199 {
200 poly64x2_t val[2];
201 } poly64x2x2_t;
202 #endif
203
204
205 typedef struct int8x8x3_t
206 {
207 int8x8_t val[3];
208 } int8x8x3_t;
209
210 typedef struct int8x16x3_t
211 {
212 int8x16_t val[3];
213 } int8x16x3_t;
214
215 typedef struct int16x4x3_t
216 {
217 int16x4_t val[3];
218 } int16x4x3_t;
219
220 typedef struct int16x8x3_t
221 {
222 int16x8_t val[3];
223 } int16x8x3_t;
224
225 typedef struct int32x2x3_t
226 {
227 int32x2_t val[3];
228 } int32x2x3_t;
229
230 typedef struct int32x4x3_t
231 {
232 int32x4_t val[3];
233 } int32x4x3_t;
234
235 typedef struct int64x1x3_t
236 {
237 int64x1_t val[3];
238 } int64x1x3_t;
239
240 typedef struct int64x2x3_t
241 {
242 int64x2_t val[3];
243 } int64x2x3_t;
244
245 typedef struct uint8x8x3_t
246 {
247 uint8x8_t val[3];
248 } uint8x8x3_t;
249
250 typedef struct uint8x16x3_t
251 {
252 uint8x16_t val[3];
253 } uint8x16x3_t;
254
255 typedef struct uint16x4x3_t
256 {
257 uint16x4_t val[3];
258 } uint16x4x3_t;
259
260 typedef struct uint16x8x3_t
261 {
262 uint16x8_t val[3];
263 } uint16x8x3_t;
264
265 typedef struct uint32x2x3_t
266 {
267 uint32x2_t val[3];
268 } uint32x2x3_t;
269
270 typedef struct uint32x4x3_t
271 {
272 uint32x4_t val[3];
273 } uint32x4x3_t;
274
275 typedef struct uint64x1x3_t
276 {
277 uint64x1_t val[3];
278 } uint64x1x3_t;
279
280 typedef struct uint64x2x3_t
281 {
282 uint64x2_t val[3];
283 } uint64x2x3_t;
284
285 typedef struct float32x2x3_t
286 {
287 float32x2_t val[3];
288 } float32x2x3_t;
289
290 typedef struct float32x4x3_t
291 {
292 float32x4_t val[3];
293 } float32x4x3_t;
294
295 typedef struct poly8x8x3_t
296 {
297 poly8x8_t val[3];
298 } poly8x8x3_t;
299
300 typedef struct poly8x16x3_t
301 {
302 poly8x16_t val[3];
303 } poly8x16x3_t;
304
305 typedef struct poly16x4x3_t
306 {
307 poly16x4_t val[3];
308 } poly16x4x3_t;
309
310 typedef struct poly16x8x3_t
311 {
312 poly16x8_t val[3];
313 } poly16x8x3_t;
314
315 #ifdef __ARM_FEATURE_CRYPTO
316 typedef struct poly64x1x3_t
317 {
318 poly64x1_t val[3];
319 } poly64x1x3_t;
320 #endif
321
322
323 #ifdef __ARM_FEATURE_CRYPTO
324 typedef struct poly64x2x3_t
325 {
326 poly64x2_t val[3];
327 } poly64x2x3_t;
328 #endif
329
330
331 typedef struct int8x8x4_t
332 {
333 int8x8_t val[4];
334 } int8x8x4_t;
335
336 typedef struct int8x16x4_t
337 {
338 int8x16_t val[4];
339 } int8x16x4_t;
340
341 typedef struct int16x4x4_t
342 {
343 int16x4_t val[4];
344 } int16x4x4_t;
345
346 typedef struct int16x8x4_t
347 {
348 int16x8_t val[4];
349 } int16x8x4_t;
350
351 typedef struct int32x2x4_t
352 {
353 int32x2_t val[4];
354 } int32x2x4_t;
355
356 typedef struct int32x4x4_t
357 {
358 int32x4_t val[4];
359 } int32x4x4_t;
360
361 typedef struct int64x1x4_t
362 {
363 int64x1_t val[4];
364 } int64x1x4_t;
365
366 typedef struct int64x2x4_t
367 {
368 int64x2_t val[4];
369 } int64x2x4_t;
370
371 typedef struct uint8x8x4_t
372 {
373 uint8x8_t val[4];
374 } uint8x8x4_t;
375
376 typedef struct uint8x16x4_t
377 {
378 uint8x16_t val[4];
379 } uint8x16x4_t;
380
381 typedef struct uint16x4x4_t
382 {
383 uint16x4_t val[4];
384 } uint16x4x4_t;
385
386 typedef struct uint16x8x4_t
387 {
388 uint16x8_t val[4];
389 } uint16x8x4_t;
390
391 typedef struct uint32x2x4_t
392 {
393 uint32x2_t val[4];
394 } uint32x2x4_t;
395
396 typedef struct uint32x4x4_t
397 {
398 uint32x4_t val[4];
399 } uint32x4x4_t;
400
401 typedef struct uint64x1x4_t
402 {
403 uint64x1_t val[4];
404 } uint64x1x4_t;
405
406 typedef struct uint64x2x4_t
407 {
408 uint64x2_t val[4];
409 } uint64x2x4_t;
410
411 typedef struct float32x2x4_t
412 {
413 float32x2_t val[4];
414 } float32x2x4_t;
415
416 typedef struct float32x4x4_t
417 {
418 float32x4_t val[4];
419 } float32x4x4_t;
420
421 typedef struct poly8x8x4_t
422 {
423 poly8x8_t val[4];
424 } poly8x8x4_t;
425
426 typedef struct poly8x16x4_t
427 {
428 poly8x16_t val[4];
429 } poly8x16x4_t;
430
431 typedef struct poly16x4x4_t
432 {
433 poly16x4_t val[4];
434 } poly16x4x4_t;
435
436 typedef struct poly16x8x4_t
437 {
438 poly16x8_t val[4];
439 } poly16x8x4_t;
440
441 #ifdef __ARM_FEATURE_CRYPTO
442 typedef struct poly64x1x4_t
443 {
444 poly64x1_t val[4];
445 } poly64x1x4_t;
446 #endif
447
448
449 #ifdef __ARM_FEATURE_CRYPTO
450 typedef struct poly64x2x4_t
451 {
452 poly64x2_t val[4];
453 } poly64x2x4_t;
454 #endif
455
456
457
458 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
459 vadd_s8 (int8x8_t __a, int8x8_t __b)
460 {
461 return (int8x8_t)__builtin_neon_vaddv8qi (__a, __b, 1);
462 }
463
464 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
465 vadd_s16 (int16x4_t __a, int16x4_t __b)
466 {
467 return (int16x4_t)__builtin_neon_vaddv4hi (__a, __b, 1);
468 }
469
470 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
471 vadd_s32 (int32x2_t __a, int32x2_t __b)
472 {
473 return (int32x2_t)__builtin_neon_vaddv2si (__a, __b, 1);
474 }
475
476 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
477 vadd_f32 (float32x2_t __a, float32x2_t __b)
478 {
479 return (float32x2_t)__builtin_neon_vaddv2sf (__a, __b, 3);
480 }
481
482 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
483 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
484 {
485 return (uint8x8_t)__builtin_neon_vaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
486 }
487
488 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
489 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
490 {
491 return (uint16x4_t)__builtin_neon_vaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
492 }
493
494 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
495 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
496 {
497 return (uint32x2_t)__builtin_neon_vaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
498 }
499
500 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
501 vadd_s64 (int64x1_t __a, int64x1_t __b)
502 {
503 return (int64x1_t)__builtin_neon_vadddi (__a, __b, 1);
504 }
505
506 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
507 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
508 {
509 return (uint64x1_t)__builtin_neon_vadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
510 }
511
512 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
513 vaddq_s8 (int8x16_t __a, int8x16_t __b)
514 {
515 return (int8x16_t)__builtin_neon_vaddv16qi (__a, __b, 1);
516 }
517
518 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
519 vaddq_s16 (int16x8_t __a, int16x8_t __b)
520 {
521 return (int16x8_t)__builtin_neon_vaddv8hi (__a, __b, 1);
522 }
523
524 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
525 vaddq_s32 (int32x4_t __a, int32x4_t __b)
526 {
527 return (int32x4_t)__builtin_neon_vaddv4si (__a, __b, 1);
528 }
529
530 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
531 vaddq_s64 (int64x2_t __a, int64x2_t __b)
532 {
533 return (int64x2_t)__builtin_neon_vaddv2di (__a, __b, 1);
534 }
535
536 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
537 vaddq_f32 (float32x4_t __a, float32x4_t __b)
538 {
539 return (float32x4_t)__builtin_neon_vaddv4sf (__a, __b, 3);
540 }
541
542 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
543 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
544 {
545 return (uint8x16_t)__builtin_neon_vaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
546 }
547
548 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
549 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
550 {
551 return (uint16x8_t)__builtin_neon_vaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
552 }
553
554 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
555 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
556 {
557 return (uint32x4_t)__builtin_neon_vaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
558 }
559
560 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
561 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
562 {
563 return (uint64x2_t)__builtin_neon_vaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
564 }
565
566 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
567 vaddl_s8 (int8x8_t __a, int8x8_t __b)
568 {
569 return (int16x8_t)__builtin_neon_vaddlv8qi (__a, __b, 1);
570 }
571
572 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
573 vaddl_s16 (int16x4_t __a, int16x4_t __b)
574 {
575 return (int32x4_t)__builtin_neon_vaddlv4hi (__a, __b, 1);
576 }
577
578 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
579 vaddl_s32 (int32x2_t __a, int32x2_t __b)
580 {
581 return (int64x2_t)__builtin_neon_vaddlv2si (__a, __b, 1);
582 }
583
584 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
585 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
586 {
587 return (uint16x8_t)__builtin_neon_vaddlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
588 }
589
590 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
591 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
592 {
593 return (uint32x4_t)__builtin_neon_vaddlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
594 }
595
596 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
597 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
598 {
599 return (uint64x2_t)__builtin_neon_vaddlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
600 }
601
602 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
603 vaddw_s8 (int16x8_t __a, int8x8_t __b)
604 {
605 return (int16x8_t)__builtin_neon_vaddwv8qi (__a, __b, 1);
606 }
607
608 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
609 vaddw_s16 (int32x4_t __a, int16x4_t __b)
610 {
611 return (int32x4_t)__builtin_neon_vaddwv4hi (__a, __b, 1);
612 }
613
614 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
615 vaddw_s32 (int64x2_t __a, int32x2_t __b)
616 {
617 return (int64x2_t)__builtin_neon_vaddwv2si (__a, __b, 1);
618 }
619
620 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
621 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
622 {
623 return (uint16x8_t)__builtin_neon_vaddwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
624 }
625
626 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
627 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
628 {
629 return (uint32x4_t)__builtin_neon_vaddwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
630 }
631
632 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
633 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
634 {
635 return (uint64x2_t)__builtin_neon_vaddwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
636 }
637
638 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
639 vhadd_s8 (int8x8_t __a, int8x8_t __b)
640 {
641 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 1);
642 }
643
644 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
645 vhadd_s16 (int16x4_t __a, int16x4_t __b)
646 {
647 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 1);
648 }
649
650 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
651 vhadd_s32 (int32x2_t __a, int32x2_t __b)
652 {
653 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 1);
654 }
655
656 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
657 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
658 {
659 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
660 }
661
662 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
663 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
664 {
665 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
666 }
667
668 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
669 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
670 {
671 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
672 }
673
674 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
675 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
676 {
677 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 1);
678 }
679
680 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
681 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
682 {
683 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 1);
684 }
685
686 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
687 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
688 {
689 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 1);
690 }
691
692 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
693 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
694 {
695 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
696 }
697
698 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
699 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
700 {
701 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
702 }
703
704 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
705 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
706 {
707 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
708 }
709
710 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
711 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
712 {
713 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 5);
714 }
715
716 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
717 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
718 {
719 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 5);
720 }
721
722 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
723 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
724 {
725 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 5);
726 }
727
728 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
729 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
730 {
731 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 4);
732 }
733
734 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
735 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
736 {
737 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 4);
738 }
739
740 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
741 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
742 {
743 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 4);
744 }
745
746 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
747 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
748 {
749 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 5);
750 }
751
752 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
753 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
754 {
755 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 5);
756 }
757
758 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
759 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
760 {
761 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 5);
762 }
763
764 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
765 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
766 {
767 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 4);
768 }
769
770 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
771 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
772 {
773 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
774 }
775
776 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
777 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
778 {
779 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
780 }
781
782 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
783 vqadd_s8 (int8x8_t __a, int8x8_t __b)
784 {
785 return (int8x8_t)__builtin_neon_vqaddv8qi (__a, __b, 1);
786 }
787
788 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
789 vqadd_s16 (int16x4_t __a, int16x4_t __b)
790 {
791 return (int16x4_t)__builtin_neon_vqaddv4hi (__a, __b, 1);
792 }
793
794 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
795 vqadd_s32 (int32x2_t __a, int32x2_t __b)
796 {
797 return (int32x2_t)__builtin_neon_vqaddv2si (__a, __b, 1);
798 }
799
800 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
801 vqadd_s64 (int64x1_t __a, int64x1_t __b)
802 {
803 return (int64x1_t)__builtin_neon_vqadddi (__a, __b, 1);
804 }
805
806 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
807 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
808 {
809 return (uint8x8_t)__builtin_neon_vqaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
810 }
811
812 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
813 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
814 {
815 return (uint16x4_t)__builtin_neon_vqaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
816 }
817
818 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
819 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
820 {
821 return (uint32x2_t)__builtin_neon_vqaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
822 }
823
824 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
825 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
826 {
827 return (uint64x1_t)__builtin_neon_vqadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
828 }
829
830 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
831 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
832 {
833 return (int8x16_t)__builtin_neon_vqaddv16qi (__a, __b, 1);
834 }
835
836 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
837 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
838 {
839 return (int16x8_t)__builtin_neon_vqaddv8hi (__a, __b, 1);
840 }
841
842 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
843 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
844 {
845 return (int32x4_t)__builtin_neon_vqaddv4si (__a, __b, 1);
846 }
847
848 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
849 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
850 {
851 return (int64x2_t)__builtin_neon_vqaddv2di (__a, __b, 1);
852 }
853
854 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
855 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
856 {
857 return (uint8x16_t)__builtin_neon_vqaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
858 }
859
860 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
861 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
862 {
863 return (uint16x8_t)__builtin_neon_vqaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
864 }
865
866 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
867 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
868 {
869 return (uint32x4_t)__builtin_neon_vqaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
870 }
871
872 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
873 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
874 {
875 return (uint64x2_t)__builtin_neon_vqaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
876 }
877
878 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
879 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
880 {
881 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 1);
882 }
883
884 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
885 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
886 {
887 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 1);
888 }
889
890 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
891 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
892 {
893 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 1);
894 }
895
896 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
897 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
898 {
899 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
900 }
901
902 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
903 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
904 {
905 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
906 }
907
908 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
909 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
910 {
911 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
912 }
913
914 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
915 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
916 {
917 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 5);
918 }
919
920 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
921 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
922 {
923 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 5);
924 }
925
926 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
927 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
928 {
929 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 5);
930 }
931
932 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
933 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
934 {
935 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
936 }
937
938 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
939 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
940 {
941 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
942 }
943
944 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
945 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
946 {
947 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
948 }
949
950 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
951 vmul_s8 (int8x8_t __a, int8x8_t __b)
952 {
953 return (int8x8_t)__builtin_neon_vmulv8qi (__a, __b, 1);
954 }
955
956 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
957 vmul_s16 (int16x4_t __a, int16x4_t __b)
958 {
959 return (int16x4_t)__builtin_neon_vmulv4hi (__a, __b, 1);
960 }
961
962 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
963 vmul_s32 (int32x2_t __a, int32x2_t __b)
964 {
965 return (int32x2_t)__builtin_neon_vmulv2si (__a, __b, 1);
966 }
967
968 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
969 vmul_f32 (float32x2_t __a, float32x2_t __b)
970 {
971 return (float32x2_t)__builtin_neon_vmulv2sf (__a, __b, 3);
972 }
973
974 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
975 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
976 {
977 return (uint8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
978 }
979
980 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
981 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
982 {
983 return (uint16x4_t)__builtin_neon_vmulv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
984 }
985
986 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
987 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
988 {
989 return (uint32x2_t)__builtin_neon_vmulv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
990 }
991
992 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
993 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
994 {
995 return (poly8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
996 }
997
998 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
999 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1000 {
1001 return (int8x16_t)__builtin_neon_vmulv16qi (__a, __b, 1);
1002 }
1003
1004 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1005 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1006 {
1007 return (int16x8_t)__builtin_neon_vmulv8hi (__a, __b, 1);
1008 }
1009
1010 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1011 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1012 {
1013 return (int32x4_t)__builtin_neon_vmulv4si (__a, __b, 1);
1014 }
1015
1016 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1017 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1018 {
1019 return (float32x4_t)__builtin_neon_vmulv4sf (__a, __b, 3);
1020 }
1021
1022 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1023 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1024 {
1025 return (uint8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1026 }
1027
1028 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1029 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1030 {
1031 return (uint16x8_t)__builtin_neon_vmulv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1032 }
1033
1034 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1035 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1036 {
1037 return (uint32x4_t)__builtin_neon_vmulv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1038 }
1039
1040 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
1041 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1042 {
1043 return (poly8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
1044 }
1045
1046 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1047 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1048 {
1049 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 1);
1050 }
1051
1052 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1053 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1054 {
1055 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 1);
1056 }
1057
1058 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1059 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1060 {
1061 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 1);
1062 }
1063
1064 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1065 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1066 {
1067 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 1);
1068 }
1069
1070 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1071 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1072 {
1073 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 5);
1074 }
1075
1076 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1077 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1078 {
1079 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 5);
1080 }
1081
1082 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1083 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1084 {
1085 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 5);
1086 }
1087
1088 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1089 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1090 {
1091 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 5);
1092 }
1093
1094 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1095 vmull_s8 (int8x8_t __a, int8x8_t __b)
1096 {
1097 return (int16x8_t)__builtin_neon_vmullv8qi (__a, __b, 1);
1098 }
1099
1100 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1101 vmull_s16 (int16x4_t __a, int16x4_t __b)
1102 {
1103 return (int32x4_t)__builtin_neon_vmullv4hi (__a, __b, 1);
1104 }
1105
1106 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1107 vmull_s32 (int32x2_t __a, int32x2_t __b)
1108 {
1109 return (int64x2_t)__builtin_neon_vmullv2si (__a, __b, 1);
1110 }
1111
1112 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1113 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1114 {
1115 return (uint16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1116 }
1117
1118 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1119 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1120 {
1121 return (uint32x4_t)__builtin_neon_vmullv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1122 }
1123
1124 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1125 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1126 {
1127 return (uint64x2_t)__builtin_neon_vmullv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1128 }
1129
1130 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
1131 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1132 {
1133 return (poly16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1134 }
1135
1136 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1137 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1138 {
1139 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b, 1);
1140 }
1141
1142 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1143 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1144 {
1145 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b, 1);
1146 }
1147
1148 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1149 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1150 {
1151 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c, 1);
1152 }
1153
1154 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1155 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1156 {
1157 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c, 1);
1158 }
1159
1160 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1161 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1162 {
1163 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c, 1);
1164 }
1165
1166 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1167 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1168 {
1169 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c, 3);
1170 }
1171
1172 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1173 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1174 {
1175 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1176 }
1177
1178 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1179 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1180 {
1181 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1182 }
1183
1184 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1185 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1186 {
1187 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1188 }
1189
1190 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1191 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1192 {
1193 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c, 1);
1194 }
1195
1196 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1197 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1198 {
1199 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c, 1);
1200 }
1201
1202 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1203 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1204 {
1205 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c, 1);
1206 }
1207
1208 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1209 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1210 {
1211 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c, 3);
1212 }
1213
1214 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1215 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1216 {
1217 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1218 }
1219
1220 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1221 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1222 {
1223 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1224 }
1225
1226 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1227 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1228 {
1229 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1230 }
1231
1232 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1233 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1234 {
1235 return (int16x8_t)__builtin_neon_vmlalv8qi (__a, __b, __c, 1);
1236 }
1237
1238 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1239 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1240 {
1241 return (int32x4_t)__builtin_neon_vmlalv4hi (__a, __b, __c, 1);
1242 }
1243
1244 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1245 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1246 {
1247 return (int64x2_t)__builtin_neon_vmlalv2si (__a, __b, __c, 1);
1248 }
1249
1250 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1251 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1252 {
1253 return (uint16x8_t)__builtin_neon_vmlalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1254 }
1255
1256 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1257 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1258 {
1259 return (uint32x4_t)__builtin_neon_vmlalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1260 }
1261
1262 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1263 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1264 {
1265 return (uint64x2_t)__builtin_neon_vmlalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1266 }
1267
1268 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1269 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1270 {
1271 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c, 1);
1272 }
1273
1274 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1275 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1276 {
1277 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c, 1);
1278 }
1279
1280 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1281 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1282 {
1283 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c, 1);
1284 }
1285
1286 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1287 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1288 {
1289 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c, 1);
1290 }
1291
1292 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1293 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1294 {
1295 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c, 1);
1296 }
1297
1298 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1299 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1300 {
1301 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c, 3);
1302 }
1303
1304 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1305 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1306 {
1307 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1308 }
1309
1310 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1311 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1312 {
1313 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1314 }
1315
1316 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1317 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1318 {
1319 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1320 }
1321
1322 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1323 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1324 {
1325 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c, 1);
1326 }
1327
1328 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1329 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1330 {
1331 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c, 1);
1332 }
1333
1334 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1335 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1336 {
1337 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c, 1);
1338 }
1339
1340 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1341 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1342 {
1343 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c, 3);
1344 }
1345
1346 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1347 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1348 {
1349 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1350 }
1351
1352 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1353 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1354 {
1355 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1356 }
1357
1358 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1359 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1360 {
1361 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1362 }
1363
1364 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1365 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1366 {
1367 return (int16x8_t)__builtin_neon_vmlslv8qi (__a, __b, __c, 1);
1368 }
1369
1370 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1371 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1372 {
1373 return (int32x4_t)__builtin_neon_vmlslv4hi (__a, __b, __c, 1);
1374 }
1375
1376 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1377 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1378 {
1379 return (int64x2_t)__builtin_neon_vmlslv2si (__a, __b, __c, 1);
1380 }
1381
1382 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1383 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1384 {
1385 return (uint16x8_t)__builtin_neon_vmlslv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1386 }
1387
1388 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1389 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1390 {
1391 return (uint32x4_t)__builtin_neon_vmlslv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1392 }
1393
1394 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1395 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1396 {
1397 return (uint64x2_t)__builtin_neon_vmlslv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1398 }
1399
1400 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1401 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1402 {
1403 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c, 1);
1404 }
1405
1406 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1407 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1408 {
1409 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c, 1);
1410 }
1411
1412 #ifdef __ARM_FEATURE_FMA
1413 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1414 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1415 {
1416 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c, 3);
1417 }
1418
1419 #endif
1420 #ifdef __ARM_FEATURE_FMA
1421 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1422 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1423 {
1424 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c, 3);
1425 }
1426
1427 #endif
1428 #ifdef __ARM_FEATURE_FMA
1429 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1430 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1431 {
1432 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c, 3);
1433 }
1434
1435 #endif
1436 #ifdef __ARM_FEATURE_FMA
1437 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1438 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1439 {
1440 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c, 3);
1441 }
1442
1443 #endif
1444 #if __ARM_ARCH >= 8
1445 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1446 vrndn_f32 (float32x2_t __a)
1447 {
1448 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1449 }
1450
1451 #endif
1452 #if __ARM_ARCH >= 8
1453 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1454 vrndqn_f32 (float32x4_t __a)
1455 {
1456 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1457 }
1458
1459 #endif
1460 #if __ARM_ARCH >= 8
1461 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1462 vrnda_f32 (float32x2_t __a)
1463 {
1464 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1465 }
1466
1467 #endif
1468 #if __ARM_ARCH >= 8
1469 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1470 vrndqa_f32 (float32x4_t __a)
1471 {
1472 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1473 }
1474
1475 #endif
1476 #if __ARM_ARCH >= 8
1477 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1478 vrndp_f32 (float32x2_t __a)
1479 {
1480 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1481 }
1482
1483 #endif
1484 #if __ARM_ARCH >= 8
1485 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1486 vrndqp_f32 (float32x4_t __a)
1487 {
1488 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1489 }
1490
1491 #endif
1492 #if __ARM_ARCH >= 8
1493 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1494 vrndm_f32 (float32x2_t __a)
1495 {
1496 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1497 }
1498
1499 #endif
1500 #if __ARM_ARCH >= 8
1501 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1502 vrndqm_f32 (float32x4_t __a)
1503 {
1504 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1505 }
1506
1507 #endif
1508 #if __ARM_ARCH >= 8
1509 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1510 vrnd_f32 (float32x2_t __a)
1511 {
1512 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1513 }
1514
1515 #endif
1516 #if __ARM_ARCH >= 8
1517 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1518 vrndq_f32 (float32x4_t __a)
1519 {
1520 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1521 }
1522
1523 #endif
1524 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1525 vsub_s8 (int8x8_t __a, int8x8_t __b)
1526 {
1527 return (int8x8_t)__builtin_neon_vsubv8qi (__a, __b, 1);
1528 }
1529
1530 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1531 vsub_s16 (int16x4_t __a, int16x4_t __b)
1532 {
1533 return (int16x4_t)__builtin_neon_vsubv4hi (__a, __b, 1);
1534 }
1535
1536 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1537 vsub_s32 (int32x2_t __a, int32x2_t __b)
1538 {
1539 return (int32x2_t)__builtin_neon_vsubv2si (__a, __b, 1);
1540 }
1541
1542 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1543 vsub_f32 (float32x2_t __a, float32x2_t __b)
1544 {
1545 return (float32x2_t)__builtin_neon_vsubv2sf (__a, __b, 3);
1546 }
1547
1548 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1549 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1550 {
1551 return (uint8x8_t)__builtin_neon_vsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1552 }
1553
1554 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1555 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1556 {
1557 return (uint16x4_t)__builtin_neon_vsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1558 }
1559
1560 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1561 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1562 {
1563 return (uint32x2_t)__builtin_neon_vsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1564 }
1565
1566 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1567 vsub_s64 (int64x1_t __a, int64x1_t __b)
1568 {
1569 return (int64x1_t)__builtin_neon_vsubdi (__a, __b, 1);
1570 }
1571
1572 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1573 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1574 {
1575 return (uint64x1_t)__builtin_neon_vsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1576 }
1577
1578 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1579 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1580 {
1581 return (int8x16_t)__builtin_neon_vsubv16qi (__a, __b, 1);
1582 }
1583
1584 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1585 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1586 {
1587 return (int16x8_t)__builtin_neon_vsubv8hi (__a, __b, 1);
1588 }
1589
1590 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1591 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1592 {
1593 return (int32x4_t)__builtin_neon_vsubv4si (__a, __b, 1);
1594 }
1595
1596 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1597 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1598 {
1599 return (int64x2_t)__builtin_neon_vsubv2di (__a, __b, 1);
1600 }
1601
1602 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1603 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1604 {
1605 return (float32x4_t)__builtin_neon_vsubv4sf (__a, __b, 3);
1606 }
1607
1608 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1609 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1610 {
1611 return (uint8x16_t)__builtin_neon_vsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1612 }
1613
1614 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1615 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1616 {
1617 return (uint16x8_t)__builtin_neon_vsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1618 }
1619
1620 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1621 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1622 {
1623 return (uint32x4_t)__builtin_neon_vsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1624 }
1625
1626 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1627 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1628 {
1629 return (uint64x2_t)__builtin_neon_vsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1630 }
1631
1632 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1633 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1634 {
1635 return (int16x8_t)__builtin_neon_vsublv8qi (__a, __b, 1);
1636 }
1637
1638 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1639 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1640 {
1641 return (int32x4_t)__builtin_neon_vsublv4hi (__a, __b, 1);
1642 }
1643
1644 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1645 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1646 {
1647 return (int64x2_t)__builtin_neon_vsublv2si (__a, __b, 1);
1648 }
1649
1650 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1651 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1652 {
1653 return (uint16x8_t)__builtin_neon_vsublv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1654 }
1655
1656 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1657 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1658 {
1659 return (uint32x4_t)__builtin_neon_vsublv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1660 }
1661
1662 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1663 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1664 {
1665 return (uint64x2_t)__builtin_neon_vsublv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1666 }
1667
1668 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1669 vsubw_s8 (int16x8_t __a, int8x8_t __b)
1670 {
1671 return (int16x8_t)__builtin_neon_vsubwv8qi (__a, __b, 1);
1672 }
1673
1674 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1675 vsubw_s16 (int32x4_t __a, int16x4_t __b)
1676 {
1677 return (int32x4_t)__builtin_neon_vsubwv4hi (__a, __b, 1);
1678 }
1679
1680 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1681 vsubw_s32 (int64x2_t __a, int32x2_t __b)
1682 {
1683 return (int64x2_t)__builtin_neon_vsubwv2si (__a, __b, 1);
1684 }
1685
1686 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1687 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1688 {
1689 return (uint16x8_t)__builtin_neon_vsubwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
1690 }
1691
1692 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1693 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1694 {
1695 return (uint32x4_t)__builtin_neon_vsubwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
1696 }
1697
1698 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1699 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1700 {
1701 return (uint64x2_t)__builtin_neon_vsubwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
1702 }
1703
1704 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1705 vhsub_s8 (int8x8_t __a, int8x8_t __b)
1706 {
1707 return (int8x8_t)__builtin_neon_vhsubv8qi (__a, __b, 1);
1708 }
1709
1710 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1711 vhsub_s16 (int16x4_t __a, int16x4_t __b)
1712 {
1713 return (int16x4_t)__builtin_neon_vhsubv4hi (__a, __b, 1);
1714 }
1715
1716 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1717 vhsub_s32 (int32x2_t __a, int32x2_t __b)
1718 {
1719 return (int32x2_t)__builtin_neon_vhsubv2si (__a, __b, 1);
1720 }
1721
1722 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1723 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1724 {
1725 return (uint8x8_t)__builtin_neon_vhsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1726 }
1727
1728 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1729 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1730 {
1731 return (uint16x4_t)__builtin_neon_vhsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1732 }
1733
1734 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1735 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1736 {
1737 return (uint32x2_t)__builtin_neon_vhsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1738 }
1739
1740 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1741 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1742 {
1743 return (int8x16_t)__builtin_neon_vhsubv16qi (__a, __b, 1);
1744 }
1745
1746 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1747 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1748 {
1749 return (int16x8_t)__builtin_neon_vhsubv8hi (__a, __b, 1);
1750 }
1751
1752 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1753 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1754 {
1755 return (int32x4_t)__builtin_neon_vhsubv4si (__a, __b, 1);
1756 }
1757
1758 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1759 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1760 {
1761 return (uint8x16_t)__builtin_neon_vhsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1762 }
1763
1764 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1765 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1766 {
1767 return (uint16x8_t)__builtin_neon_vhsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1768 }
1769
1770 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1771 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1772 {
1773 return (uint32x4_t)__builtin_neon_vhsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1774 }
1775
1776 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1777 vqsub_s8 (int8x8_t __a, int8x8_t __b)
1778 {
1779 return (int8x8_t)__builtin_neon_vqsubv8qi (__a, __b, 1);
1780 }
1781
1782 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1783 vqsub_s16 (int16x4_t __a, int16x4_t __b)
1784 {
1785 return (int16x4_t)__builtin_neon_vqsubv4hi (__a, __b, 1);
1786 }
1787
1788 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1789 vqsub_s32 (int32x2_t __a, int32x2_t __b)
1790 {
1791 return (int32x2_t)__builtin_neon_vqsubv2si (__a, __b, 1);
1792 }
1793
1794 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1795 vqsub_s64 (int64x1_t __a, int64x1_t __b)
1796 {
1797 return (int64x1_t)__builtin_neon_vqsubdi (__a, __b, 1);
1798 }
1799
1800 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1801 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
1802 {
1803 return (uint8x8_t)__builtin_neon_vqsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1804 }
1805
1806 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1807 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
1808 {
1809 return (uint16x4_t)__builtin_neon_vqsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1810 }
1811
1812 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1813 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
1814 {
1815 return (uint32x2_t)__builtin_neon_vqsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1816 }
1817
1818 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1819 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
1820 {
1821 return (uint64x1_t)__builtin_neon_vqsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1822 }
1823
1824 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1825 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
1826 {
1827 return (int8x16_t)__builtin_neon_vqsubv16qi (__a, __b, 1);
1828 }
1829
1830 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1831 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
1832 {
1833 return (int16x8_t)__builtin_neon_vqsubv8hi (__a, __b, 1);
1834 }
1835
1836 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1837 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
1838 {
1839 return (int32x4_t)__builtin_neon_vqsubv4si (__a, __b, 1);
1840 }
1841
1842 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1843 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
1844 {
1845 return (int64x2_t)__builtin_neon_vqsubv2di (__a, __b, 1);
1846 }
1847
1848 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1849 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1850 {
1851 return (uint8x16_t)__builtin_neon_vqsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1852 }
1853
1854 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1855 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1856 {
1857 return (uint16x8_t)__builtin_neon_vqsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1858 }
1859
1860 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1861 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1862 {
1863 return (uint32x4_t)__builtin_neon_vqsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1864 }
1865
1866 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1867 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1868 {
1869 return (uint64x2_t)__builtin_neon_vqsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1870 }
1871
1872 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1873 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
1874 {
1875 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 1);
1876 }
1877
1878 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1879 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
1880 {
1881 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 1);
1882 }
1883
1884 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1885 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
1886 {
1887 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 1);
1888 }
1889
1890 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1891 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1892 {
1893 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1894 }
1895
1896 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1897 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1898 {
1899 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1900 }
1901
1902 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1903 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1904 {
1905 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1906 }
1907
1908 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1909 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
1910 {
1911 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 5);
1912 }
1913
1914 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1915 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
1916 {
1917 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 5);
1918 }
1919
1920 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1921 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
1922 {
1923 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 5);
1924 }
1925
1926 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1927 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1928 {
1929 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
1930 }
1931
1932 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1933 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1934 {
1935 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
1936 }
1937
1938 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1939 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1940 {
1941 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
1942 }
1943
1944 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1945 vceq_s8 (int8x8_t __a, int8x8_t __b)
1946 {
1947 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b, 1);
1948 }
1949
1950 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1951 vceq_s16 (int16x4_t __a, int16x4_t __b)
1952 {
1953 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b, 1);
1954 }
1955
1956 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1957 vceq_s32 (int32x2_t __a, int32x2_t __b)
1958 {
1959 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b, 1);
1960 }
1961
1962 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1963 vceq_f32 (float32x2_t __a, float32x2_t __b)
1964 {
1965 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b, 3);
1966 }
1967
1968 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1969 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
1970 {
1971 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1972 }
1973
1974 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1975 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
1976 {
1977 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1978 }
1979
1980 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1981 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
1982 {
1983 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1984 }
1985
1986 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1987 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
1988 {
1989 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1990 }
1991
1992 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1993 vceqq_s8 (int8x16_t __a, int8x16_t __b)
1994 {
1995 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b, 1);
1996 }
1997
1998 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1999 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2000 {
2001 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b, 1);
2002 }
2003
2004 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2005 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2006 {
2007 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b, 1);
2008 }
2009
2010 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2011 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2012 {
2013 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b, 3);
2014 }
2015
2016 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2017 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2018 {
2019 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2020 }
2021
2022 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2023 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2024 {
2025 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2026 }
2027
2028 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2029 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2030 {
2031 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2032 }
2033
2034 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2035 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2036 {
2037 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
2038 }
2039
2040 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2041 vcge_s8 (int8x8_t __a, int8x8_t __b)
2042 {
2043 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b, 1);
2044 }
2045
2046 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2047 vcge_s16 (int16x4_t __a, int16x4_t __b)
2048 {
2049 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b, 1);
2050 }
2051
2052 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2053 vcge_s32 (int32x2_t __a, int32x2_t __b)
2054 {
2055 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b, 1);
2056 }
2057
2058 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2059 vcge_f32 (float32x2_t __a, float32x2_t __b)
2060 {
2061 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b, 3);
2062 }
2063
2064 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2065 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2066 {
2067 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2068 }
2069
2070 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2071 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2072 {
2073 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2074 }
2075
2076 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2077 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2078 {
2079 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2080 }
2081
2082 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2083 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2084 {
2085 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b, 1);
2086 }
2087
2088 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2089 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2090 {
2091 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b, 1);
2092 }
2093
2094 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2095 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2096 {
2097 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b, 1);
2098 }
2099
2100 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2101 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2102 {
2103 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b, 3);
2104 }
2105
2106 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2107 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2108 {
2109 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2110 }
2111
2112 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2113 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2114 {
2115 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2116 }
2117
2118 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2119 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2120 {
2121 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2122 }
2123
2124 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2125 vcle_s8 (int8x8_t __a, int8x8_t __b)
2126 {
2127 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a, 1);
2128 }
2129
2130 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2131 vcle_s16 (int16x4_t __a, int16x4_t __b)
2132 {
2133 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a, 1);
2134 }
2135
2136 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2137 vcle_s32 (int32x2_t __a, int32x2_t __b)
2138 {
2139 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a, 1);
2140 }
2141
2142 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2143 vcle_f32 (float32x2_t __a, float32x2_t __b)
2144 {
2145 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a, 3);
2146 }
2147
2148 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2149 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2150 {
2151 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
2152 }
2153
2154 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2155 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2156 {
2157 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
2158 }
2159
2160 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2161 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2162 {
2163 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a, 0);
2164 }
2165
2166 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2167 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2168 {
2169 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a, 1);
2170 }
2171
2172 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2173 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2174 {
2175 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a, 1);
2176 }
2177
2178 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2179 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2180 {
2181 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a, 1);
2182 }
2183
2184 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2185 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2186 {
2187 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a, 3);
2188 }
2189
2190 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2191 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2192 {
2193 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2194 }
2195
2196 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2197 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2198 {
2199 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2200 }
2201
2202 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2203 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2204 {
2205 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2206 }
2207
2208 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2209 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2210 {
2211 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b, 1);
2212 }
2213
2214 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2215 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2216 {
2217 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b, 1);
2218 }
2219
2220 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2221 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2222 {
2223 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b, 1);
2224 }
2225
2226 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2227 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2228 {
2229 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b, 3);
2230 }
2231
2232 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2233 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2234 {
2235 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2236 }
2237
2238 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2239 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2240 {
2241 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2242 }
2243
2244 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2245 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2246 {
2247 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2248 }
2249
2250 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2251 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2252 {
2253 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b, 1);
2254 }
2255
2256 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2257 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2258 {
2259 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b, 1);
2260 }
2261
2262 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2263 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2264 {
2265 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b, 1);
2266 }
2267
2268 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2269 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2270 {
2271 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b, 3);
2272 }
2273
2274 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2275 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2276 {
2277 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2278 }
2279
2280 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2281 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2282 {
2283 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2284 }
2285
2286 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2287 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2288 {
2289 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2290 }
2291
2292 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2293 vclt_s8 (int8x8_t __a, int8x8_t __b)
2294 {
2295 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a, 1);
2296 }
2297
2298 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2299 vclt_s16 (int16x4_t __a, int16x4_t __b)
2300 {
2301 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a, 1);
2302 }
2303
2304 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2305 vclt_s32 (int32x2_t __a, int32x2_t __b)
2306 {
2307 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a, 1);
2308 }
2309
2310 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2311 vclt_f32 (float32x2_t __a, float32x2_t __b)
2312 {
2313 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a, 3);
2314 }
2315
2316 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2317 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2318 {
2319 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
2320 }
2321
2322 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2323 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2324 {
2325 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
2326 }
2327
2328 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2329 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2330 {
2331 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a, 0);
2332 }
2333
2334 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2335 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2336 {
2337 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a, 1);
2338 }
2339
2340 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2341 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2342 {
2343 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a, 1);
2344 }
2345
2346 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2347 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2348 {
2349 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a, 1);
2350 }
2351
2352 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2353 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2354 {
2355 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a, 3);
2356 }
2357
2358 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2359 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2360 {
2361 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2362 }
2363
2364 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2365 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2366 {
2367 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2368 }
2369
2370 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2371 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2372 {
2373 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2374 }
2375
2376 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2377 vcage_f32 (float32x2_t __a, float32x2_t __b)
2378 {
2379 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b, 3);
2380 }
2381
2382 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2383 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2384 {
2385 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b, 3);
2386 }
2387
2388 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2389 vcale_f32 (float32x2_t __a, float32x2_t __b)
2390 {
2391 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a, 3);
2392 }
2393
2394 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2395 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2396 {
2397 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a, 3);
2398 }
2399
2400 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2401 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2402 {
2403 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b, 3);
2404 }
2405
2406 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2407 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2408 {
2409 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b, 3);
2410 }
2411
2412 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2413 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2414 {
2415 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a, 3);
2416 }
2417
2418 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2419 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2420 {
2421 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a, 3);
2422 }
2423
2424 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2425 vtst_s8 (int8x8_t __a, int8x8_t __b)
2426 {
2427 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b, 1);
2428 }
2429
2430 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2431 vtst_s16 (int16x4_t __a, int16x4_t __b)
2432 {
2433 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b, 1);
2434 }
2435
2436 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2437 vtst_s32 (int32x2_t __a, int32x2_t __b)
2438 {
2439 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b, 1);
2440 }
2441
2442 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2443 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2444 {
2445 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2446 }
2447
2448 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2449 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2450 {
2451 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2452 }
2453
2454 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2455 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2456 {
2457 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2458 }
2459
2460 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2461 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2462 {
2463 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
2464 }
2465
2466 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2467 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2468 {
2469 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b, 1);
2470 }
2471
2472 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2473 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2474 {
2475 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b, 1);
2476 }
2477
2478 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2479 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2480 {
2481 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b, 1);
2482 }
2483
2484 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2485 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2486 {
2487 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2488 }
2489
2490 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2491 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2492 {
2493 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2494 }
2495
2496 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2497 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2498 {
2499 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2500 }
2501
2502 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2503 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
2504 {
2505 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
2506 }
2507
2508 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2509 vabd_s8 (int8x8_t __a, int8x8_t __b)
2510 {
2511 return (int8x8_t)__builtin_neon_vabdv8qi (__a, __b, 1);
2512 }
2513
2514 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2515 vabd_s16 (int16x4_t __a, int16x4_t __b)
2516 {
2517 return (int16x4_t)__builtin_neon_vabdv4hi (__a, __b, 1);
2518 }
2519
2520 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2521 vabd_s32 (int32x2_t __a, int32x2_t __b)
2522 {
2523 return (int32x2_t)__builtin_neon_vabdv2si (__a, __b, 1);
2524 }
2525
2526 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2527 vabd_f32 (float32x2_t __a, float32x2_t __b)
2528 {
2529 return (float32x2_t)__builtin_neon_vabdv2sf (__a, __b, 3);
2530 }
2531
2532 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2533 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
2534 {
2535 return (uint8x8_t)__builtin_neon_vabdv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2536 }
2537
2538 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2539 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
2540 {
2541 return (uint16x4_t)__builtin_neon_vabdv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2542 }
2543
2544 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2545 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
2546 {
2547 return (uint32x2_t)__builtin_neon_vabdv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2548 }
2549
2550 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2551 vabdq_s8 (int8x16_t __a, int8x16_t __b)
2552 {
2553 return (int8x16_t)__builtin_neon_vabdv16qi (__a, __b, 1);
2554 }
2555
2556 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2557 vabdq_s16 (int16x8_t __a, int16x8_t __b)
2558 {
2559 return (int16x8_t)__builtin_neon_vabdv8hi (__a, __b, 1);
2560 }
2561
2562 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2563 vabdq_s32 (int32x4_t __a, int32x4_t __b)
2564 {
2565 return (int32x4_t)__builtin_neon_vabdv4si (__a, __b, 1);
2566 }
2567
2568 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2569 vabdq_f32 (float32x4_t __a, float32x4_t __b)
2570 {
2571 return (float32x4_t)__builtin_neon_vabdv4sf (__a, __b, 3);
2572 }
2573
2574 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2575 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
2576 {
2577 return (uint8x16_t)__builtin_neon_vabdv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2578 }
2579
2580 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2581 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
2582 {
2583 return (uint16x8_t)__builtin_neon_vabdv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2584 }
2585
2586 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2587 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
2588 {
2589 return (uint32x4_t)__builtin_neon_vabdv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2590 }
2591
2592 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2593 vabdl_s8 (int8x8_t __a, int8x8_t __b)
2594 {
2595 return (int16x8_t)__builtin_neon_vabdlv8qi (__a, __b, 1);
2596 }
2597
2598 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2599 vabdl_s16 (int16x4_t __a, int16x4_t __b)
2600 {
2601 return (int32x4_t)__builtin_neon_vabdlv4hi (__a, __b, 1);
2602 }
2603
2604 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2605 vabdl_s32 (int32x2_t __a, int32x2_t __b)
2606 {
2607 return (int64x2_t)__builtin_neon_vabdlv2si (__a, __b, 1);
2608 }
2609
2610 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2611 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
2612 {
2613 return (uint16x8_t)__builtin_neon_vabdlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2614 }
2615
2616 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2617 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
2618 {
2619 return (uint32x4_t)__builtin_neon_vabdlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2620 }
2621
2622 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2623 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
2624 {
2625 return (uint64x2_t)__builtin_neon_vabdlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2626 }
2627
2628 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2629 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
2630 {
2631 return (int8x8_t)__builtin_neon_vabav8qi (__a, __b, __c, 1);
2632 }
2633
2634 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2635 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
2636 {
2637 return (int16x4_t)__builtin_neon_vabav4hi (__a, __b, __c, 1);
2638 }
2639
2640 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2641 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
2642 {
2643 return (int32x2_t)__builtin_neon_vabav2si (__a, __b, __c, 1);
2644 }
2645
2646 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2647 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
2648 {
2649 return (uint8x8_t)__builtin_neon_vabav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2650 }
2651
2652 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2653 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
2654 {
2655 return (uint16x4_t)__builtin_neon_vabav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2656 }
2657
2658 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2659 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
2660 {
2661 return (uint32x2_t)__builtin_neon_vabav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2662 }
2663
2664 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2665 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
2666 {
2667 return (int8x16_t)__builtin_neon_vabav16qi (__a, __b, __c, 1);
2668 }
2669
2670 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2671 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
2672 {
2673 return (int16x8_t)__builtin_neon_vabav8hi (__a, __b, __c, 1);
2674 }
2675
2676 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2677 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
2678 {
2679 return (int32x4_t)__builtin_neon_vabav4si (__a, __b, __c, 1);
2680 }
2681
2682 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2683 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
2684 {
2685 return (uint8x16_t)__builtin_neon_vabav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
2686 }
2687
2688 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2689 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
2690 {
2691 return (uint16x8_t)__builtin_neon_vabav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
2692 }
2693
2694 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2695 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
2696 {
2697 return (uint32x4_t)__builtin_neon_vabav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
2698 }
2699
2700 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2701 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
2702 {
2703 return (int16x8_t)__builtin_neon_vabalv8qi (__a, __b, __c, 1);
2704 }
2705
2706 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2707 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
2708 {
2709 return (int32x4_t)__builtin_neon_vabalv4hi (__a, __b, __c, 1);
2710 }
2711
2712 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2713 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
2714 {
2715 return (int64x2_t)__builtin_neon_vabalv2si (__a, __b, __c, 1);
2716 }
2717
2718 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2719 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
2720 {
2721 return (uint16x8_t)__builtin_neon_vabalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2722 }
2723
2724 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2725 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
2726 {
2727 return (uint32x4_t)__builtin_neon_vabalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2728 }
2729
2730 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2731 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
2732 {
2733 return (uint64x2_t)__builtin_neon_vabalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2734 }
2735
2736 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2737 vmax_s8 (int8x8_t __a, int8x8_t __b)
2738 {
2739 return (int8x8_t)__builtin_neon_vmaxv8qi (__a, __b, 1);
2740 }
2741
2742 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2743 vmax_s16 (int16x4_t __a, int16x4_t __b)
2744 {
2745 return (int16x4_t)__builtin_neon_vmaxv4hi (__a, __b, 1);
2746 }
2747
2748 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2749 vmax_s32 (int32x2_t __a, int32x2_t __b)
2750 {
2751 return (int32x2_t)__builtin_neon_vmaxv2si (__a, __b, 1);
2752 }
2753
2754 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2755 vmax_f32 (float32x2_t __a, float32x2_t __b)
2756 {
2757 return (float32x2_t)__builtin_neon_vmaxv2sf (__a, __b, 3);
2758 }
2759
2760 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2761 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
2762 {
2763 return (uint8x8_t)__builtin_neon_vmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2764 }
2765
2766 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2767 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
2768 {
2769 return (uint16x4_t)__builtin_neon_vmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2770 }
2771
2772 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2773 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
2774 {
2775 return (uint32x2_t)__builtin_neon_vmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2776 }
2777
2778 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2779 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
2780 {
2781 return (int8x16_t)__builtin_neon_vmaxv16qi (__a, __b, 1);
2782 }
2783
2784 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2785 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
2786 {
2787 return (int16x8_t)__builtin_neon_vmaxv8hi (__a, __b, 1);
2788 }
2789
2790 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2791 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
2792 {
2793 return (int32x4_t)__builtin_neon_vmaxv4si (__a, __b, 1);
2794 }
2795
2796 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2797 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
2798 {
2799 return (float32x4_t)__builtin_neon_vmaxv4sf (__a, __b, 3);
2800 }
2801
2802 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2803 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
2804 {
2805 return (uint8x16_t)__builtin_neon_vmaxv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2806 }
2807
2808 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2809 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
2810 {
2811 return (uint16x8_t)__builtin_neon_vmaxv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2812 }
2813
2814 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2815 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
2816 {
2817 return (uint32x4_t)__builtin_neon_vmaxv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2818 }
2819
2820 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2821 vmin_s8 (int8x8_t __a, int8x8_t __b)
2822 {
2823 return (int8x8_t)__builtin_neon_vminv8qi (__a, __b, 1);
2824 }
2825
2826 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2827 vmin_s16 (int16x4_t __a, int16x4_t __b)
2828 {
2829 return (int16x4_t)__builtin_neon_vminv4hi (__a, __b, 1);
2830 }
2831
2832 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2833 vmin_s32 (int32x2_t __a, int32x2_t __b)
2834 {
2835 return (int32x2_t)__builtin_neon_vminv2si (__a, __b, 1);
2836 }
2837
2838 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2839 vmin_f32 (float32x2_t __a, float32x2_t __b)
2840 {
2841 return (float32x2_t)__builtin_neon_vminv2sf (__a, __b, 3);
2842 }
2843
2844 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2845 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
2846 {
2847 return (uint8x8_t)__builtin_neon_vminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2848 }
2849
2850 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2851 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
2852 {
2853 return (uint16x4_t)__builtin_neon_vminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2854 }
2855
2856 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2857 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
2858 {
2859 return (uint32x2_t)__builtin_neon_vminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2860 }
2861
2862 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2863 vminq_s8 (int8x16_t __a, int8x16_t __b)
2864 {
2865 return (int8x16_t)__builtin_neon_vminv16qi (__a, __b, 1);
2866 }
2867
2868 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2869 vminq_s16 (int16x8_t __a, int16x8_t __b)
2870 {
2871 return (int16x8_t)__builtin_neon_vminv8hi (__a, __b, 1);
2872 }
2873
2874 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2875 vminq_s32 (int32x4_t __a, int32x4_t __b)
2876 {
2877 return (int32x4_t)__builtin_neon_vminv4si (__a, __b, 1);
2878 }
2879
2880 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2881 vminq_f32 (float32x4_t __a, float32x4_t __b)
2882 {
2883 return (float32x4_t)__builtin_neon_vminv4sf (__a, __b, 3);
2884 }
2885
2886 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2887 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
2888 {
2889 return (uint8x16_t)__builtin_neon_vminv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2890 }
2891
2892 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2893 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
2894 {
2895 return (uint16x8_t)__builtin_neon_vminv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2896 }
2897
2898 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2899 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
2900 {
2901 return (uint32x4_t)__builtin_neon_vminv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2902 }
2903
2904 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2905 vpadd_s8 (int8x8_t __a, int8x8_t __b)
2906 {
2907 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b, 1);
2908 }
2909
2910 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2911 vpadd_s16 (int16x4_t __a, int16x4_t __b)
2912 {
2913 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b, 1);
2914 }
2915
2916 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2917 vpadd_s32 (int32x2_t __a, int32x2_t __b)
2918 {
2919 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b, 1);
2920 }
2921
2922 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2923 vpadd_f32 (float32x2_t __a, float32x2_t __b)
2924 {
2925 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b, 3);
2926 }
2927
2928 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2929 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
2930 {
2931 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2932 }
2933
2934 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2935 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
2936 {
2937 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2938 }
2939
2940 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2941 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
2942 {
2943 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2944 }
2945
2946 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2947 vpaddl_s8 (int8x8_t __a)
2948 {
2949 return (int16x4_t)__builtin_neon_vpaddlv8qi (__a, 1);
2950 }
2951
2952 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2953 vpaddl_s16 (int16x4_t __a)
2954 {
2955 return (int32x2_t)__builtin_neon_vpaddlv4hi (__a, 1);
2956 }
2957
2958 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
2959 vpaddl_s32 (int32x2_t __a)
2960 {
2961 return (int64x1_t)__builtin_neon_vpaddlv2si (__a, 1);
2962 }
2963
2964 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2965 vpaddl_u8 (uint8x8_t __a)
2966 {
2967 return (uint16x4_t)__builtin_neon_vpaddlv8qi ((int8x8_t) __a, 0);
2968 }
2969
2970 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2971 vpaddl_u16 (uint16x4_t __a)
2972 {
2973 return (uint32x2_t)__builtin_neon_vpaddlv4hi ((int16x4_t) __a, 0);
2974 }
2975
2976 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
2977 vpaddl_u32 (uint32x2_t __a)
2978 {
2979 return (uint64x1_t)__builtin_neon_vpaddlv2si ((int32x2_t) __a, 0);
2980 }
2981
2982 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2983 vpaddlq_s8 (int8x16_t __a)
2984 {
2985 return (int16x8_t)__builtin_neon_vpaddlv16qi (__a, 1);
2986 }
2987
2988 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2989 vpaddlq_s16 (int16x8_t __a)
2990 {
2991 return (int32x4_t)__builtin_neon_vpaddlv8hi (__a, 1);
2992 }
2993
2994 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2995 vpaddlq_s32 (int32x4_t __a)
2996 {
2997 return (int64x2_t)__builtin_neon_vpaddlv4si (__a, 1);
2998 }
2999
3000 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3001 vpaddlq_u8 (uint8x16_t __a)
3002 {
3003 return (uint16x8_t)__builtin_neon_vpaddlv16qi ((int8x16_t) __a, 0);
3004 }
3005
3006 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3007 vpaddlq_u16 (uint16x8_t __a)
3008 {
3009 return (uint32x4_t)__builtin_neon_vpaddlv8hi ((int16x8_t) __a, 0);
3010 }
3011
3012 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3013 vpaddlq_u32 (uint32x4_t __a)
3014 {
3015 return (uint64x2_t)__builtin_neon_vpaddlv4si ((int32x4_t) __a, 0);
3016 }
3017
3018 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3019 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3020 {
3021 return (int16x4_t)__builtin_neon_vpadalv8qi (__a, __b, 1);
3022 }
3023
3024 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3025 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3026 {
3027 return (int32x2_t)__builtin_neon_vpadalv4hi (__a, __b, 1);
3028 }
3029
3030 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3031 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3032 {
3033 return (int64x1_t)__builtin_neon_vpadalv2si (__a, __b, 1);
3034 }
3035
3036 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3037 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3038 {
3039 return (uint16x4_t)__builtin_neon_vpadalv8qi ((int16x4_t) __a, (int8x8_t) __b, 0);
3040 }
3041
3042 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3043 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3044 {
3045 return (uint32x2_t)__builtin_neon_vpadalv4hi ((int32x2_t) __a, (int16x4_t) __b, 0);
3046 }
3047
3048 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3049 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3050 {
3051 return (uint64x1_t)__builtin_neon_vpadalv2si ((int64x1_t) __a, (int32x2_t) __b, 0);
3052 }
3053
3054 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3055 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3056 {
3057 return (int16x8_t)__builtin_neon_vpadalv16qi (__a, __b, 1);
3058 }
3059
3060 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3061 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3062 {
3063 return (int32x4_t)__builtin_neon_vpadalv8hi (__a, __b, 1);
3064 }
3065
3066 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3067 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3068 {
3069 return (int64x2_t)__builtin_neon_vpadalv4si (__a, __b, 1);
3070 }
3071
3072 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3073 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3074 {
3075 return (uint16x8_t)__builtin_neon_vpadalv16qi ((int16x8_t) __a, (int8x16_t) __b, 0);
3076 }
3077
3078 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3079 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3080 {
3081 return (uint32x4_t)__builtin_neon_vpadalv8hi ((int32x4_t) __a, (int16x8_t) __b, 0);
3082 }
3083
3084 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3085 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3086 {
3087 return (uint64x2_t)__builtin_neon_vpadalv4si ((int64x2_t) __a, (int32x4_t) __b, 0);
3088 }
3089
3090 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3091 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3092 {
3093 return (int8x8_t)__builtin_neon_vpmaxv8qi (__a, __b, 1);
3094 }
3095
3096 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3097 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3098 {
3099 return (int16x4_t)__builtin_neon_vpmaxv4hi (__a, __b, 1);
3100 }
3101
3102 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3103 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3104 {
3105 return (int32x2_t)__builtin_neon_vpmaxv2si (__a, __b, 1);
3106 }
3107
3108 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3109 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3110 {
3111 return (float32x2_t)__builtin_neon_vpmaxv2sf (__a, __b, 3);
3112 }
3113
3114 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3115 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3116 {
3117 return (uint8x8_t)__builtin_neon_vpmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
3118 }
3119
3120 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3121 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3122 {
3123 return (uint16x4_t)__builtin_neon_vpmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
3124 }
3125
3126 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3127 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3128 {
3129 return (uint32x2_t)__builtin_neon_vpmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
3130 }
3131
3132 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3133 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3134 {
3135 return (int8x8_t)__builtin_neon_vpminv8qi (__a, __b, 1);
3136 }
3137
3138 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3139 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3140 {
3141 return (int16x4_t)__builtin_neon_vpminv4hi (__a, __b, 1);
3142 }
3143
3144 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3145 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3146 {
3147 return (int32x2_t)__builtin_neon_vpminv2si (__a, __b, 1);
3148 }
3149
3150 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3151 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3152 {
3153 return (float32x2_t)__builtin_neon_vpminv2sf (__a, __b, 3);
3154 }
3155
3156 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3157 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3158 {
3159 return (uint8x8_t)__builtin_neon_vpminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
3160 }
3161
3162 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3163 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3164 {
3165 return (uint16x4_t)__builtin_neon_vpminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
3166 }
3167
3168 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3169 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3170 {
3171 return (uint32x2_t)__builtin_neon_vpminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
3172 }
3173
3174 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3175 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3176 {
3177 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b, 3);
3178 }
3179
3180 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3181 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3182 {
3183 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b, 3);
3184 }
3185
3186 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3187 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3188 {
3189 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b, 3);
3190 }
3191
3192 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3193 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3194 {
3195 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b, 3);
3196 }
3197
3198 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3199 vshl_s8 (int8x8_t __a, int8x8_t __b)
3200 {
3201 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 1);
3202 }
3203
3204 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3205 vshl_s16 (int16x4_t __a, int16x4_t __b)
3206 {
3207 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 1);
3208 }
3209
3210 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3211 vshl_s32 (int32x2_t __a, int32x2_t __b)
3212 {
3213 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 1);
3214 }
3215
3216 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3217 vshl_s64 (int64x1_t __a, int64x1_t __b)
3218 {
3219 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 1);
3220 }
3221
3222 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3223 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3224 {
3225 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 0);
3226 }
3227
3228 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3229 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3230 {
3231 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 0);
3232 }
3233
3234 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3235 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3236 {
3237 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 0);
3238 }
3239
3240 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3241 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3242 {
3243 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 0);
3244 }
3245
3246 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3247 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3248 {
3249 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 1);
3250 }
3251
3252 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3253 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3254 {
3255 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 1);
3256 }
3257
3258 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3259 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3260 {
3261 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 1);
3262 }
3263
3264 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3265 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3266 {
3267 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 1);
3268 }
3269
3270 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3271 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3272 {
3273 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 0);
3274 }
3275
3276 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3277 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3278 {
3279 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 0);
3280 }
3281
3282 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3283 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3284 {
3285 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 0);
3286 }
3287
3288 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3289 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3290 {
3291 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 0);
3292 }
3293
3294 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3295 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3296 {
3297 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 5);
3298 }
3299
3300 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3301 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3302 {
3303 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 5);
3304 }
3305
3306 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3307 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3308 {
3309 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 5);
3310 }
3311
3312 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3313 vrshl_s64 (int64x1_t __a, int64x1_t __b)
3314 {
3315 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 5);
3316 }
3317
3318 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3319 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3320 {
3321 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 4);
3322 }
3323
3324 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3325 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
3326 {
3327 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 4);
3328 }
3329
3330 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3331 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
3332 {
3333 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 4);
3334 }
3335
3336 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3337 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
3338 {
3339 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 4);
3340 }
3341
3342 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3343 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
3344 {
3345 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 5);
3346 }
3347
3348 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3349 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
3350 {
3351 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 5);
3352 }
3353
3354 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3355 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
3356 {
3357 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 5);
3358 }
3359
3360 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3361 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
3362 {
3363 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 5);
3364 }
3365
3366 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3367 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3368 {
3369 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 4);
3370 }
3371
3372 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3373 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3374 {
3375 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 4);
3376 }
3377
3378 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3379 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3380 {
3381 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 4);
3382 }
3383
3384 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3385 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3386 {
3387 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 4);
3388 }
3389
3390 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3391 vqshl_s8 (int8x8_t __a, int8x8_t __b)
3392 {
3393 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 1);
3394 }
3395
3396 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3397 vqshl_s16 (int16x4_t __a, int16x4_t __b)
3398 {
3399 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 1);
3400 }
3401
3402 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3403 vqshl_s32 (int32x2_t __a, int32x2_t __b)
3404 {
3405 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 1);
3406 }
3407
3408 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3409 vqshl_s64 (int64x1_t __a, int64x1_t __b)
3410 {
3411 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 1);
3412 }
3413
3414 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3415 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
3416 {
3417 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 0);
3418 }
3419
3420 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3421 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
3422 {
3423 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 0);
3424 }
3425
3426 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3427 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
3428 {
3429 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 0);
3430 }
3431
3432 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3433 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
3434 {
3435 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 0);
3436 }
3437
3438 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3439 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
3440 {
3441 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 1);
3442 }
3443
3444 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3445 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
3446 {
3447 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 1);
3448 }
3449
3450 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3451 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
3452 {
3453 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 1);
3454 }
3455
3456 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3457 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
3458 {
3459 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 1);
3460 }
3461
3462 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3463 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
3464 {
3465 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 0);
3466 }
3467
3468 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3469 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
3470 {
3471 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 0);
3472 }
3473
3474 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3475 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
3476 {
3477 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 0);
3478 }
3479
3480 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3481 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
3482 {
3483 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 0);
3484 }
3485
3486 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3487 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
3488 {
3489 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 5);
3490 }
3491
3492 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3493 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
3494 {
3495 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 5);
3496 }
3497
3498 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3499 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
3500 {
3501 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 5);
3502 }
3503
3504 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3505 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
3506 {
3507 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 5);
3508 }
3509
3510 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3511 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
3512 {
3513 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 4);
3514 }
3515
3516 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3517 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
3518 {
3519 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 4);
3520 }
3521
3522 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3523 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
3524 {
3525 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 4);
3526 }
3527
3528 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3529 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
3530 {
3531 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 4);
3532 }
3533
3534 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3535 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
3536 {
3537 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 5);
3538 }
3539
3540 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3541 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
3542 {
3543 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 5);
3544 }
3545
3546 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3547 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
3548 {
3549 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 5);
3550 }
3551
3552 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3553 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
3554 {
3555 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 5);
3556 }
3557
3558 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3559 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3560 {
3561 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 4);
3562 }
3563
3564 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3565 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3566 {
3567 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 4);
3568 }
3569
3570 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3571 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3572 {
3573 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 4);
3574 }
3575
3576 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3577 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3578 {
3579 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 4);
3580 }
3581
3582 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3583 vshr_n_s8 (int8x8_t __a, const int __b)
3584 {
3585 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 1);
3586 }
3587
3588 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3589 vshr_n_s16 (int16x4_t __a, const int __b)
3590 {
3591 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 1);
3592 }
3593
3594 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3595 vshr_n_s32 (int32x2_t __a, const int __b)
3596 {
3597 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 1);
3598 }
3599
3600 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3601 vshr_n_s64 (int64x1_t __a, const int __b)
3602 {
3603 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 1);
3604 }
3605
3606 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3607 vshr_n_u8 (uint8x8_t __a, const int __b)
3608 {
3609 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 0);
3610 }
3611
3612 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3613 vshr_n_u16 (uint16x4_t __a, const int __b)
3614 {
3615 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 0);
3616 }
3617
3618 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3619 vshr_n_u32 (uint32x2_t __a, const int __b)
3620 {
3621 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 0);
3622 }
3623
3624 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3625 vshr_n_u64 (uint64x1_t __a, const int __b)
3626 {
3627 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 0);
3628 }
3629
3630 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3631 vshrq_n_s8 (int8x16_t __a, const int __b)
3632 {
3633 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 1);
3634 }
3635
3636 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3637 vshrq_n_s16 (int16x8_t __a, const int __b)
3638 {
3639 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 1);
3640 }
3641
3642 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3643 vshrq_n_s32 (int32x4_t __a, const int __b)
3644 {
3645 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 1);
3646 }
3647
3648 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3649 vshrq_n_s64 (int64x2_t __a, const int __b)
3650 {
3651 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 1);
3652 }
3653
3654 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3655 vshrq_n_u8 (uint8x16_t __a, const int __b)
3656 {
3657 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 0);
3658 }
3659
3660 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3661 vshrq_n_u16 (uint16x8_t __a, const int __b)
3662 {
3663 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 0);
3664 }
3665
3666 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3667 vshrq_n_u32 (uint32x4_t __a, const int __b)
3668 {
3669 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 0);
3670 }
3671
3672 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3673 vshrq_n_u64 (uint64x2_t __a, const int __b)
3674 {
3675 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 0);
3676 }
3677
3678 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3679 vrshr_n_s8 (int8x8_t __a, const int __b)
3680 {
3681 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 5);
3682 }
3683
3684 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3685 vrshr_n_s16 (int16x4_t __a, const int __b)
3686 {
3687 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 5);
3688 }
3689
3690 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3691 vrshr_n_s32 (int32x2_t __a, const int __b)
3692 {
3693 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 5);
3694 }
3695
3696 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3697 vrshr_n_s64 (int64x1_t __a, const int __b)
3698 {
3699 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 5);
3700 }
3701
3702 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3703 vrshr_n_u8 (uint8x8_t __a, const int __b)
3704 {
3705 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 4);
3706 }
3707
3708 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3709 vrshr_n_u16 (uint16x4_t __a, const int __b)
3710 {
3711 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 4);
3712 }
3713
3714 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3715 vrshr_n_u32 (uint32x2_t __a, const int __b)
3716 {
3717 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 4);
3718 }
3719
3720 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3721 vrshr_n_u64 (uint64x1_t __a, const int __b)
3722 {
3723 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 4);
3724 }
3725
3726 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3727 vrshrq_n_s8 (int8x16_t __a, const int __b)
3728 {
3729 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 5);
3730 }
3731
3732 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3733 vrshrq_n_s16 (int16x8_t __a, const int __b)
3734 {
3735 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 5);
3736 }
3737
3738 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3739 vrshrq_n_s32 (int32x4_t __a, const int __b)
3740 {
3741 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 5);
3742 }
3743
3744 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3745 vrshrq_n_s64 (int64x2_t __a, const int __b)
3746 {
3747 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 5);
3748 }
3749
3750 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3751 vrshrq_n_u8 (uint8x16_t __a, const int __b)
3752 {
3753 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 4);
3754 }
3755
3756 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3757 vrshrq_n_u16 (uint16x8_t __a, const int __b)
3758 {
3759 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 4);
3760 }
3761
3762 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3763 vrshrq_n_u32 (uint32x4_t __a, const int __b)
3764 {
3765 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 4);
3766 }
3767
3768 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3769 vrshrq_n_u64 (uint64x2_t __a, const int __b)
3770 {
3771 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 4);
3772 }
3773
3774 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3775 vshrn_n_s16 (int16x8_t __a, const int __b)
3776 {
3777 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 1);
3778 }
3779
3780 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3781 vshrn_n_s32 (int32x4_t __a, const int __b)
3782 {
3783 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 1);
3784 }
3785
3786 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3787 vshrn_n_s64 (int64x2_t __a, const int __b)
3788 {
3789 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 1);
3790 }
3791
3792 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3793 vshrn_n_u16 (uint16x8_t __a, const int __b)
3794 {
3795 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 0);
3796 }
3797
3798 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3799 vshrn_n_u32 (uint32x4_t __a, const int __b)
3800 {
3801 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 0);
3802 }
3803
3804 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3805 vshrn_n_u64 (uint64x2_t __a, const int __b)
3806 {
3807 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 0);
3808 }
3809
3810 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3811 vrshrn_n_s16 (int16x8_t __a, const int __b)
3812 {
3813 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 5);
3814 }
3815
3816 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3817 vrshrn_n_s32 (int32x4_t __a, const int __b)
3818 {
3819 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 5);
3820 }
3821
3822 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3823 vrshrn_n_s64 (int64x2_t __a, const int __b)
3824 {
3825 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 5);
3826 }
3827
3828 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3829 vrshrn_n_u16 (uint16x8_t __a, const int __b)
3830 {
3831 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 4);
3832 }
3833
3834 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3835 vrshrn_n_u32 (uint32x4_t __a, const int __b)
3836 {
3837 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 4);
3838 }
3839
3840 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3841 vrshrn_n_u64 (uint64x2_t __a, const int __b)
3842 {
3843 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 4);
3844 }
3845
3846 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3847 vqshrn_n_s16 (int16x8_t __a, const int __b)
3848 {
3849 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 1);
3850 }
3851
3852 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3853 vqshrn_n_s32 (int32x4_t __a, const int __b)
3854 {
3855 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 1);
3856 }
3857
3858 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3859 vqshrn_n_s64 (int64x2_t __a, const int __b)
3860 {
3861 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 1);
3862 }
3863
3864 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3865 vqshrn_n_u16 (uint16x8_t __a, const int __b)
3866 {
3867 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 0);
3868 }
3869
3870 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3871 vqshrn_n_u32 (uint32x4_t __a, const int __b)
3872 {
3873 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 0);
3874 }
3875
3876 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3877 vqshrn_n_u64 (uint64x2_t __a, const int __b)
3878 {
3879 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 0);
3880 }
3881
3882 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3883 vqrshrn_n_s16 (int16x8_t __a, const int __b)
3884 {
3885 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 5);
3886 }
3887
3888 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3889 vqrshrn_n_s32 (int32x4_t __a, const int __b)
3890 {
3891 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 5);
3892 }
3893
3894 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3895 vqrshrn_n_s64 (int64x2_t __a, const int __b)
3896 {
3897 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 5);
3898 }
3899
3900 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3901 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
3902 {
3903 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 4);
3904 }
3905
3906 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3907 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
3908 {
3909 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 4);
3910 }
3911
3912 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3913 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
3914 {
3915 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 4);
3916 }
3917
3918 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3919 vqshrun_n_s16 (int16x8_t __a, const int __b)
3920 {
3921 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 1);
3922 }
3923
3924 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3925 vqshrun_n_s32 (int32x4_t __a, const int __b)
3926 {
3927 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 1);
3928 }
3929
3930 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3931 vqshrun_n_s64 (int64x2_t __a, const int __b)
3932 {
3933 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 1);
3934 }
3935
3936 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3937 vqrshrun_n_s16 (int16x8_t __a, const int __b)
3938 {
3939 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 5);
3940 }
3941
3942 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3943 vqrshrun_n_s32 (int32x4_t __a, const int __b)
3944 {
3945 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 5);
3946 }
3947
3948 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3949 vqrshrun_n_s64 (int64x2_t __a, const int __b)
3950 {
3951 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 5);
3952 }
3953
3954 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3955 vshl_n_s8 (int8x8_t __a, const int __b)
3956 {
3957 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b, 1);
3958 }
3959
3960 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3961 vshl_n_s16 (int16x4_t __a, const int __b)
3962 {
3963 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b, 1);
3964 }
3965
3966 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3967 vshl_n_s32 (int32x2_t __a, const int __b)
3968 {
3969 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b, 1);
3970 }
3971
3972 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3973 vshl_n_s64 (int64x1_t __a, const int __b)
3974 {
3975 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b, 1);
3976 }
3977
3978 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3979 vshl_n_u8 (uint8x8_t __a, const int __b)
3980 {
3981 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b, 0);
3982 }
3983
3984 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3985 vshl_n_u16 (uint16x4_t __a, const int __b)
3986 {
3987 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b, 0);
3988 }
3989
3990 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3991 vshl_n_u32 (uint32x2_t __a, const int __b)
3992 {
3993 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b, 0);
3994 }
3995
3996 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3997 vshl_n_u64 (uint64x1_t __a, const int __b)
3998 {
3999 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b, 0);
4000 }
4001
4002 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4003 vshlq_n_s8 (int8x16_t __a, const int __b)
4004 {
4005 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b, 1);
4006 }
4007
4008 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4009 vshlq_n_s16 (int16x8_t __a, const int __b)
4010 {
4011 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b, 1);
4012 }
4013
4014 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4015 vshlq_n_s32 (int32x4_t __a, const int __b)
4016 {
4017 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b, 1);
4018 }
4019
4020 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4021 vshlq_n_s64 (int64x2_t __a, const int __b)
4022 {
4023 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b, 1);
4024 }
4025
4026 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4027 vshlq_n_u8 (uint8x16_t __a, const int __b)
4028 {
4029 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b, 0);
4030 }
4031
4032 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4033 vshlq_n_u16 (uint16x8_t __a, const int __b)
4034 {
4035 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b, 0);
4036 }
4037
4038 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4039 vshlq_n_u32 (uint32x4_t __a, const int __b)
4040 {
4041 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b, 0);
4042 }
4043
4044 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4045 vshlq_n_u64 (uint64x2_t __a, const int __b)
4046 {
4047 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b, 0);
4048 }
4049
4050 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4051 vqshl_n_s8 (int8x8_t __a, const int __b)
4052 {
4053 return (int8x8_t)__builtin_neon_vqshl_nv8qi (__a, __b, 1);
4054 }
4055
4056 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4057 vqshl_n_s16 (int16x4_t __a, const int __b)
4058 {
4059 return (int16x4_t)__builtin_neon_vqshl_nv4hi (__a, __b, 1);
4060 }
4061
4062 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4063 vqshl_n_s32 (int32x2_t __a, const int __b)
4064 {
4065 return (int32x2_t)__builtin_neon_vqshl_nv2si (__a, __b, 1);
4066 }
4067
4068 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4069 vqshl_n_s64 (int64x1_t __a, const int __b)
4070 {
4071 return (int64x1_t)__builtin_neon_vqshl_ndi (__a, __b, 1);
4072 }
4073
4074 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4075 vqshl_n_u8 (uint8x8_t __a, const int __b)
4076 {
4077 return (uint8x8_t)__builtin_neon_vqshl_nv8qi ((int8x8_t) __a, __b, 0);
4078 }
4079
4080 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4081 vqshl_n_u16 (uint16x4_t __a, const int __b)
4082 {
4083 return (uint16x4_t)__builtin_neon_vqshl_nv4hi ((int16x4_t) __a, __b, 0);
4084 }
4085
4086 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4087 vqshl_n_u32 (uint32x2_t __a, const int __b)
4088 {
4089 return (uint32x2_t)__builtin_neon_vqshl_nv2si ((int32x2_t) __a, __b, 0);
4090 }
4091
4092 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4093 vqshl_n_u64 (uint64x1_t __a, const int __b)
4094 {
4095 return (uint64x1_t)__builtin_neon_vqshl_ndi ((int64x1_t) __a, __b, 0);
4096 }
4097
4098 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4099 vqshlq_n_s8 (int8x16_t __a, const int __b)
4100 {
4101 return (int8x16_t)__builtin_neon_vqshl_nv16qi (__a, __b, 1);
4102 }
4103
4104 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4105 vqshlq_n_s16 (int16x8_t __a, const int __b)
4106 {
4107 return (int16x8_t)__builtin_neon_vqshl_nv8hi (__a, __b, 1);
4108 }
4109
4110 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4111 vqshlq_n_s32 (int32x4_t __a, const int __b)
4112 {
4113 return (int32x4_t)__builtin_neon_vqshl_nv4si (__a, __b, 1);
4114 }
4115
4116 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4117 vqshlq_n_s64 (int64x2_t __a, const int __b)
4118 {
4119 return (int64x2_t)__builtin_neon_vqshl_nv2di (__a, __b, 1);
4120 }
4121
4122 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4123 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4124 {
4125 return (uint8x16_t)__builtin_neon_vqshl_nv16qi ((int8x16_t) __a, __b, 0);
4126 }
4127
4128 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4129 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4130 {
4131 return (uint16x8_t)__builtin_neon_vqshl_nv8hi ((int16x8_t) __a, __b, 0);
4132 }
4133
4134 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4135 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4136 {
4137 return (uint32x4_t)__builtin_neon_vqshl_nv4si ((int32x4_t) __a, __b, 0);
4138 }
4139
4140 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4141 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4142 {
4143 return (uint64x2_t)__builtin_neon_vqshl_nv2di ((int64x2_t) __a, __b, 0);
4144 }
4145
4146 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4147 vqshlu_n_s8 (int8x8_t __a, const int __b)
4148 {
4149 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b, 1);
4150 }
4151
4152 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4153 vqshlu_n_s16 (int16x4_t __a, const int __b)
4154 {
4155 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b, 1);
4156 }
4157
4158 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4159 vqshlu_n_s32 (int32x2_t __a, const int __b)
4160 {
4161 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b, 1);
4162 }
4163
4164 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4165 vqshlu_n_s64 (int64x1_t __a, const int __b)
4166 {
4167 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b, 1);
4168 }
4169
4170 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4171 vqshluq_n_s8 (int8x16_t __a, const int __b)
4172 {
4173 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b, 1);
4174 }
4175
4176 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4177 vqshluq_n_s16 (int16x8_t __a, const int __b)
4178 {
4179 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b, 1);
4180 }
4181
4182 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4183 vqshluq_n_s32 (int32x4_t __a, const int __b)
4184 {
4185 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b, 1);
4186 }
4187
4188 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4189 vqshluq_n_s64 (int64x2_t __a, const int __b)
4190 {
4191 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b, 1);
4192 }
4193
4194 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4195 vshll_n_s8 (int8x8_t __a, const int __b)
4196 {
4197 return (int16x8_t)__builtin_neon_vshll_nv8qi (__a, __b, 1);
4198 }
4199
4200 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4201 vshll_n_s16 (int16x4_t __a, const int __b)
4202 {
4203 return (int32x4_t)__builtin_neon_vshll_nv4hi (__a, __b, 1);
4204 }
4205
4206 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4207 vshll_n_s32 (int32x2_t __a, const int __b)
4208 {
4209 return (int64x2_t)__builtin_neon_vshll_nv2si (__a, __b, 1);
4210 }
4211
4212 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4213 vshll_n_u8 (uint8x8_t __a, const int __b)
4214 {
4215 return (uint16x8_t)__builtin_neon_vshll_nv8qi ((int8x8_t) __a, __b, 0);
4216 }
4217
4218 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4219 vshll_n_u16 (uint16x4_t __a, const int __b)
4220 {
4221 return (uint32x4_t)__builtin_neon_vshll_nv4hi ((int16x4_t) __a, __b, 0);
4222 }
4223
4224 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4225 vshll_n_u32 (uint32x2_t __a, const int __b)
4226 {
4227 return (uint64x2_t)__builtin_neon_vshll_nv2si ((int32x2_t) __a, __b, 0);
4228 }
4229
4230 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4231 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4232 {
4233 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 1);
4234 }
4235
4236 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4237 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4238 {
4239 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 1);
4240 }
4241
4242 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4243 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4244 {
4245 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 1);
4246 }
4247
4248 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4249 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4250 {
4251 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 1);
4252 }
4253
4254 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4255 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4256 {
4257 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 0);
4258 }
4259
4260 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4261 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4262 {
4263 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
4264 }
4265
4266 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4267 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4268 {
4269 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
4270 }
4271
4272 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4273 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4274 {
4275 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 0);
4276 }
4277
4278 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4279 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4280 {
4281 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 1);
4282 }
4283
4284 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4285 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4286 {
4287 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 1);
4288 }
4289
4290 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4291 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4292 {
4293 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 1);
4294 }
4295
4296 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4297 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4298 {
4299 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 1);
4300 }
4301
4302 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4303 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4304 {
4305 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 0);
4306 }
4307
4308 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4309 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4310 {
4311 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 0);
4312 }
4313
4314 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4315 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4316 {
4317 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 0);
4318 }
4319
4320 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4321 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4322 {
4323 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 0);
4324 }
4325
4326 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4327 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4328 {
4329 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 5);
4330 }
4331
4332 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4333 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4334 {
4335 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 5);
4336 }
4337
4338 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4339 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4340 {
4341 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 5);
4342 }
4343
4344 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4345 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4346 {
4347 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 5);
4348 }
4349
4350 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4351 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4352 {
4353 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 4);
4354 }
4355
4356 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4357 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4358 {
4359 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 4);
4360 }
4361
4362 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4363 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4364 {
4365 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 4);
4366 }
4367
4368 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4369 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4370 {
4371 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 4);
4372 }
4373
4374 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4375 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4376 {
4377 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 5);
4378 }
4379
4380 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4381 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4382 {
4383 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 5);
4384 }
4385
4386 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4387 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4388 {
4389 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 5);
4390 }
4391
4392 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4393 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4394 {
4395 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 5);
4396 }
4397
4398 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4399 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4400 {
4401 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 4);
4402 }
4403
4404 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4405 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4406 {
4407 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 4);
4408 }
4409
4410 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4411 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4412 {
4413 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 4);
4414 }
4415
4416 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4417 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4418 {
4419 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 4);
4420 }
4421
4422 #ifdef __ARM_FEATURE_CRYPTO
4423 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
4424 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4425 {
4426 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4427 }
4428
4429 #endif
4430 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4431 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4432 {
4433 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
4434 }
4435
4436 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4437 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4438 {
4439 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
4440 }
4441
4442 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4443 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4444 {
4445 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
4446 }
4447
4448 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4449 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4450 {
4451 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4452 }
4453
4454 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4455 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4456 {
4457 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4458 }
4459
4460 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4461 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4462 {
4463 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4464 }
4465
4466 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4467 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4468 {
4469 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4470 }
4471
4472 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4473 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4474 {
4475 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4476 }
4477
4478 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4479 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4480 {
4481 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4482 }
4483
4484 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4485 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4486 {
4487 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4488 }
4489
4490 #ifdef __ARM_FEATURE_CRYPTO
4491 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
4492 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4493 {
4494 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4495 }
4496
4497 #endif
4498 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4499 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4500 {
4501 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
4502 }
4503
4504 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4505 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4506 {
4507 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
4508 }
4509
4510 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4511 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4512 {
4513 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
4514 }
4515
4516 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4517 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4518 {
4519 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
4520 }
4521
4522 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4523 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4524 {
4525 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4526 }
4527
4528 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4529 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4530 {
4531 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4532 }
4533
4534 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4535 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4536 {
4537 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4538 }
4539
4540 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4541 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4542 {
4543 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4544 }
4545
4546 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4547 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4548 {
4549 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4550 }
4551
4552 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4553 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4554 {
4555 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4556 }
4557
4558 #ifdef __ARM_FEATURE_CRYPTO
4559 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
4560 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4561 {
4562 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4563 }
4564
4565 #endif
4566 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4567 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4568 {
4569 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
4570 }
4571
4572 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4573 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4574 {
4575 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
4576 }
4577
4578 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4579 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4580 {
4581 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
4582 }
4583
4584 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4585 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4586 {
4587 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4588 }
4589
4590 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4591 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4592 {
4593 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4594 }
4595
4596 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4597 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4598 {
4599 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4600 }
4601
4602 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4603 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4604 {
4605 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4606 }
4607
4608 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4609 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4610 {
4611 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4612 }
4613
4614 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4615 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4616 {
4617 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4618 }
4619
4620 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4621 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4622 {
4623 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4624 }
4625
4626 #ifdef __ARM_FEATURE_CRYPTO
4627 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
4628 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4629 {
4630 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4631 }
4632
4633 #endif
4634 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4635 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4636 {
4637 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
4638 }
4639
4640 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4641 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4642 {
4643 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
4644 }
4645
4646 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4647 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4648 {
4649 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
4650 }
4651
4652 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4653 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4654 {
4655 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
4656 }
4657
4658 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4659 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4660 {
4661 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4662 }
4663
4664 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4665 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4666 {
4667 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4668 }
4669
4670 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4671 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4672 {
4673 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4674 }
4675
4676 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4677 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4678 {
4679 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4680 }
4681
4682 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4683 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4684 {
4685 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4686 }
4687
4688 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4689 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4690 {
4691 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4692 }
4693
4694 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4695 vabs_s8 (int8x8_t __a)
4696 {
4697 return (int8x8_t)__builtin_neon_vabsv8qi (__a, 1);
4698 }
4699
4700 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4701 vabs_s16 (int16x4_t __a)
4702 {
4703 return (int16x4_t)__builtin_neon_vabsv4hi (__a, 1);
4704 }
4705
4706 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4707 vabs_s32 (int32x2_t __a)
4708 {
4709 return (int32x2_t)__builtin_neon_vabsv2si (__a, 1);
4710 }
4711
4712 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4713 vabs_f32 (float32x2_t __a)
4714 {
4715 return (float32x2_t)__builtin_neon_vabsv2sf (__a, 3);
4716 }
4717
4718 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4719 vabsq_s8 (int8x16_t __a)
4720 {
4721 return (int8x16_t)__builtin_neon_vabsv16qi (__a, 1);
4722 }
4723
4724 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4725 vabsq_s16 (int16x8_t __a)
4726 {
4727 return (int16x8_t)__builtin_neon_vabsv8hi (__a, 1);
4728 }
4729
4730 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4731 vabsq_s32 (int32x4_t __a)
4732 {
4733 return (int32x4_t)__builtin_neon_vabsv4si (__a, 1);
4734 }
4735
4736 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4737 vabsq_f32 (float32x4_t __a)
4738 {
4739 return (float32x4_t)__builtin_neon_vabsv4sf (__a, 3);
4740 }
4741
4742 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4743 vqabs_s8 (int8x8_t __a)
4744 {
4745 return (int8x8_t)__builtin_neon_vqabsv8qi (__a, 1);
4746 }
4747
4748 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4749 vqabs_s16 (int16x4_t __a)
4750 {
4751 return (int16x4_t)__builtin_neon_vqabsv4hi (__a, 1);
4752 }
4753
4754 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4755 vqabs_s32 (int32x2_t __a)
4756 {
4757 return (int32x2_t)__builtin_neon_vqabsv2si (__a, 1);
4758 }
4759
4760 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4761 vqabsq_s8 (int8x16_t __a)
4762 {
4763 return (int8x16_t)__builtin_neon_vqabsv16qi (__a, 1);
4764 }
4765
4766 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4767 vqabsq_s16 (int16x8_t __a)
4768 {
4769 return (int16x8_t)__builtin_neon_vqabsv8hi (__a, 1);
4770 }
4771
4772 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4773 vqabsq_s32 (int32x4_t __a)
4774 {
4775 return (int32x4_t)__builtin_neon_vqabsv4si (__a, 1);
4776 }
4777
4778 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4779 vneg_s8 (int8x8_t __a)
4780 {
4781 return (int8x8_t)__builtin_neon_vnegv8qi (__a, 1);
4782 }
4783
4784 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4785 vneg_s16 (int16x4_t __a)
4786 {
4787 return (int16x4_t)__builtin_neon_vnegv4hi (__a, 1);
4788 }
4789
4790 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4791 vneg_s32 (int32x2_t __a)
4792 {
4793 return (int32x2_t)__builtin_neon_vnegv2si (__a, 1);
4794 }
4795
4796 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4797 vneg_f32 (float32x2_t __a)
4798 {
4799 return (float32x2_t)__builtin_neon_vnegv2sf (__a, 3);
4800 }
4801
4802 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4803 vnegq_s8 (int8x16_t __a)
4804 {
4805 return (int8x16_t)__builtin_neon_vnegv16qi (__a, 1);
4806 }
4807
4808 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4809 vnegq_s16 (int16x8_t __a)
4810 {
4811 return (int16x8_t)__builtin_neon_vnegv8hi (__a, 1);
4812 }
4813
4814 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4815 vnegq_s32 (int32x4_t __a)
4816 {
4817 return (int32x4_t)__builtin_neon_vnegv4si (__a, 1);
4818 }
4819
4820 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4821 vnegq_f32 (float32x4_t __a)
4822 {
4823 return (float32x4_t)__builtin_neon_vnegv4sf (__a, 3);
4824 }
4825
4826 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4827 vqneg_s8 (int8x8_t __a)
4828 {
4829 return (int8x8_t)__builtin_neon_vqnegv8qi (__a, 1);
4830 }
4831
4832 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4833 vqneg_s16 (int16x4_t __a)
4834 {
4835 return (int16x4_t)__builtin_neon_vqnegv4hi (__a, 1);
4836 }
4837
4838 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4839 vqneg_s32 (int32x2_t __a)
4840 {
4841 return (int32x2_t)__builtin_neon_vqnegv2si (__a, 1);
4842 }
4843
4844 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4845 vqnegq_s8 (int8x16_t __a)
4846 {
4847 return (int8x16_t)__builtin_neon_vqnegv16qi (__a, 1);
4848 }
4849
4850 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4851 vqnegq_s16 (int16x8_t __a)
4852 {
4853 return (int16x8_t)__builtin_neon_vqnegv8hi (__a, 1);
4854 }
4855
4856 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4857 vqnegq_s32 (int32x4_t __a)
4858 {
4859 return (int32x4_t)__builtin_neon_vqnegv4si (__a, 1);
4860 }
4861
4862 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4863 vmvn_s8 (int8x8_t __a)
4864 {
4865 return (int8x8_t)__builtin_neon_vmvnv8qi (__a, 1);
4866 }
4867
4868 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4869 vmvn_s16 (int16x4_t __a)
4870 {
4871 return (int16x4_t)__builtin_neon_vmvnv4hi (__a, 1);
4872 }
4873
4874 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4875 vmvn_s32 (int32x2_t __a)
4876 {
4877 return (int32x2_t)__builtin_neon_vmvnv2si (__a, 1);
4878 }
4879
4880 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4881 vmvn_u8 (uint8x8_t __a)
4882 {
4883 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 0);
4884 }
4885
4886 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4887 vmvn_u16 (uint16x4_t __a)
4888 {
4889 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a, 0);
4890 }
4891
4892 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4893 vmvn_u32 (uint32x2_t __a)
4894 {
4895 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a, 0);
4896 }
4897
4898 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4899 vmvn_p8 (poly8x8_t __a)
4900 {
4901 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 2);
4902 }
4903
4904 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4905 vmvnq_s8 (int8x16_t __a)
4906 {
4907 return (int8x16_t)__builtin_neon_vmvnv16qi (__a, 1);
4908 }
4909
4910 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4911 vmvnq_s16 (int16x8_t __a)
4912 {
4913 return (int16x8_t)__builtin_neon_vmvnv8hi (__a, 1);
4914 }
4915
4916 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4917 vmvnq_s32 (int32x4_t __a)
4918 {
4919 return (int32x4_t)__builtin_neon_vmvnv4si (__a, 1);
4920 }
4921
4922 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4923 vmvnq_u8 (uint8x16_t __a)
4924 {
4925 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 0);
4926 }
4927
4928 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4929 vmvnq_u16 (uint16x8_t __a)
4930 {
4931 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a, 0);
4932 }
4933
4934 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4935 vmvnq_u32 (uint32x4_t __a)
4936 {
4937 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a, 0);
4938 }
4939
4940 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4941 vmvnq_p8 (poly8x16_t __a)
4942 {
4943 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 2);
4944 }
4945
4946 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4947 vcls_s8 (int8x8_t __a)
4948 {
4949 return (int8x8_t)__builtin_neon_vclsv8qi (__a, 1);
4950 }
4951
4952 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4953 vcls_s16 (int16x4_t __a)
4954 {
4955 return (int16x4_t)__builtin_neon_vclsv4hi (__a, 1);
4956 }
4957
4958 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4959 vcls_s32 (int32x2_t __a)
4960 {
4961 return (int32x2_t)__builtin_neon_vclsv2si (__a, 1);
4962 }
4963
4964 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4965 vclsq_s8 (int8x16_t __a)
4966 {
4967 return (int8x16_t)__builtin_neon_vclsv16qi (__a, 1);
4968 }
4969
4970 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4971 vclsq_s16 (int16x8_t __a)
4972 {
4973 return (int16x8_t)__builtin_neon_vclsv8hi (__a, 1);
4974 }
4975
4976 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4977 vclsq_s32 (int32x4_t __a)
4978 {
4979 return (int32x4_t)__builtin_neon_vclsv4si (__a, 1);
4980 }
4981
4982 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4983 vclz_s8 (int8x8_t __a)
4984 {
4985 return (int8x8_t)__builtin_neon_vclzv8qi (__a, 1);
4986 }
4987
4988 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4989 vclz_s16 (int16x4_t __a)
4990 {
4991 return (int16x4_t)__builtin_neon_vclzv4hi (__a, 1);
4992 }
4993
4994 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4995 vclz_s32 (int32x2_t __a)
4996 {
4997 return (int32x2_t)__builtin_neon_vclzv2si (__a, 1);
4998 }
4999
5000 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5001 vclz_u8 (uint8x8_t __a)
5002 {
5003 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a, 0);
5004 }
5005
5006 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5007 vclz_u16 (uint16x4_t __a)
5008 {
5009 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a, 0);
5010 }
5011
5012 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5013 vclz_u32 (uint32x2_t __a)
5014 {
5015 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a, 0);
5016 }
5017
5018 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5019 vclzq_s8 (int8x16_t __a)
5020 {
5021 return (int8x16_t)__builtin_neon_vclzv16qi (__a, 1);
5022 }
5023
5024 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5025 vclzq_s16 (int16x8_t __a)
5026 {
5027 return (int16x8_t)__builtin_neon_vclzv8hi (__a, 1);
5028 }
5029
5030 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5031 vclzq_s32 (int32x4_t __a)
5032 {
5033 return (int32x4_t)__builtin_neon_vclzv4si (__a, 1);
5034 }
5035
5036 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5037 vclzq_u8 (uint8x16_t __a)
5038 {
5039 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a, 0);
5040 }
5041
5042 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5043 vclzq_u16 (uint16x8_t __a)
5044 {
5045 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a, 0);
5046 }
5047
5048 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5049 vclzq_u32 (uint32x4_t __a)
5050 {
5051 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a, 0);
5052 }
5053
5054 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5055 vcnt_s8 (int8x8_t __a)
5056 {
5057 return (int8x8_t)__builtin_neon_vcntv8qi (__a, 1);
5058 }
5059
5060 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5061 vcnt_u8 (uint8x8_t __a)
5062 {
5063 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 0);
5064 }
5065
5066 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5067 vcnt_p8 (poly8x8_t __a)
5068 {
5069 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 2);
5070 }
5071
5072 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5073 vcntq_s8 (int8x16_t __a)
5074 {
5075 return (int8x16_t)__builtin_neon_vcntv16qi (__a, 1);
5076 }
5077
5078 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5079 vcntq_u8 (uint8x16_t __a)
5080 {
5081 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 0);
5082 }
5083
5084 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5085 vcntq_p8 (poly8x16_t __a)
5086 {
5087 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 2);
5088 }
5089
5090 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5091 vrecpe_f32 (float32x2_t __a)
5092 {
5093 return (float32x2_t)__builtin_neon_vrecpev2sf (__a, 3);
5094 }
5095
5096 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5097 vrecpe_u32 (uint32x2_t __a)
5098 {
5099 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a, 0);
5100 }
5101
5102 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5103 vrecpeq_f32 (float32x4_t __a)
5104 {
5105 return (float32x4_t)__builtin_neon_vrecpev4sf (__a, 3);
5106 }
5107
5108 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5109 vrecpeq_u32 (uint32x4_t __a)
5110 {
5111 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a, 0);
5112 }
5113
5114 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5115 vrsqrte_f32 (float32x2_t __a)
5116 {
5117 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a, 3);
5118 }
5119
5120 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5121 vrsqrte_u32 (uint32x2_t __a)
5122 {
5123 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a, 0);
5124 }
5125
5126 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5127 vrsqrteq_f32 (float32x4_t __a)
5128 {
5129 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a, 3);
5130 }
5131
5132 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5133 vrsqrteq_u32 (uint32x4_t __a)
5134 {
5135 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a, 0);
5136 }
5137
5138 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
5139 vget_lane_s8 (int8x8_t __a, const int __b)
5140 {
5141 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b, 1);
5142 }
5143
5144 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
5145 vget_lane_s16 (int16x4_t __a, const int __b)
5146 {
5147 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b, 1);
5148 }
5149
5150 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
5151 vget_lane_s32 (int32x2_t __a, const int __b)
5152 {
5153 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b, 1);
5154 }
5155
5156 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
5157 vget_lane_f32 (float32x2_t __a, const int __b)
5158 {
5159 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b, 3);
5160 }
5161
5162 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
5163 vget_lane_u8 (uint8x8_t __a, const int __b)
5164 {
5165 return (uint8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 0);
5166 }
5167
5168 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
5169 vget_lane_u16 (uint16x4_t __a, const int __b)
5170 {
5171 return (uint16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 0);
5172 }
5173
5174 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
5175 vget_lane_u32 (uint32x2_t __a, const int __b)
5176 {
5177 return (uint32_t)__builtin_neon_vget_lanev2si ((int32x2_t) __a, __b, 0);
5178 }
5179
5180 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
5181 vget_lane_p8 (poly8x8_t __a, const int __b)
5182 {
5183 return (poly8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 2);
5184 }
5185
5186 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
5187 vget_lane_p16 (poly16x4_t __a, const int __b)
5188 {
5189 return (poly16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 2);
5190 }
5191
5192 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
5193 vget_lane_s64 (int64x1_t __a, const int __b)
5194 {
5195 return (int64_t)__builtin_neon_vget_lanedi (__a, __b, 1);
5196 }
5197
5198 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
5199 vget_lane_u64 (uint64x1_t __a, const int __b)
5200 {
5201 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b, 0);
5202 }
5203
5204 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
5205 vgetq_lane_s8 (int8x16_t __a, const int __b)
5206 {
5207 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b, 1);
5208 }
5209
5210 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
5211 vgetq_lane_s16 (int16x8_t __a, const int __b)
5212 {
5213 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b, 1);
5214 }
5215
5216 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
5217 vgetq_lane_s32 (int32x4_t __a, const int __b)
5218 {
5219 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b, 1);
5220 }
5221
5222 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
5223 vgetq_lane_f32 (float32x4_t __a, const int __b)
5224 {
5225 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b, 3);
5226 }
5227
5228 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
5229 vgetq_lane_u8 (uint8x16_t __a, const int __b)
5230 {
5231 return (uint8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 0);
5232 }
5233
5234 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
5235 vgetq_lane_u16 (uint16x8_t __a, const int __b)
5236 {
5237 return (uint16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 0);
5238 }
5239
5240 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
5241 vgetq_lane_u32 (uint32x4_t __a, const int __b)
5242 {
5243 return (uint32_t)__builtin_neon_vget_lanev4si ((int32x4_t) __a, __b, 0);
5244 }
5245
5246 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
5247 vgetq_lane_p8 (poly8x16_t __a, const int __b)
5248 {
5249 return (poly8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 2);
5250 }
5251
5252 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
5253 vgetq_lane_p16 (poly16x8_t __a, const int __b)
5254 {
5255 return (poly16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 2);
5256 }
5257
5258 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
5259 vgetq_lane_s64 (int64x2_t __a, const int __b)
5260 {
5261 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b, 1);
5262 }
5263
5264 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
5265 vgetq_lane_u64 (uint64x2_t __a, const int __b)
5266 {
5267 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b, 0);
5268 }
5269
5270 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5271 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
5272 {
5273 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
5274 }
5275
5276 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5277 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
5278 {
5279 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
5280 }
5281
5282 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5283 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
5284 {
5285 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
5286 }
5287
5288 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5289 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
5290 {
5291 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
5292 }
5293
5294 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5295 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
5296 {
5297 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5298 }
5299
5300 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5301 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
5302 {
5303 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5304 }
5305
5306 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5307 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
5308 {
5309 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
5310 }
5311
5312 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5313 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
5314 {
5315 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5316 }
5317
5318 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5319 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
5320 {
5321 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5322 }
5323
5324 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5325 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
5326 {
5327 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
5328 }
5329
5330 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5331 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
5332 {
5333 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
5334 }
5335
5336 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5337 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
5338 {
5339 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
5340 }
5341
5342 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5343 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
5344 {
5345 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
5346 }
5347
5348 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5349 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
5350 {
5351 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
5352 }
5353
5354 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5355 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
5356 {
5357 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
5358 }
5359
5360 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5361 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
5362 {
5363 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5364 }
5365
5366 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5367 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
5368 {
5369 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5370 }
5371
5372 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5373 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
5374 {
5375 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
5376 }
5377
5378 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5379 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
5380 {
5381 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5382 }
5383
5384 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5385 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
5386 {
5387 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5388 }
5389
5390 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5391 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
5392 {
5393 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
5394 }
5395
5396 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5397 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
5398 {
5399 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
5400 }
5401
5402 #ifdef __ARM_FEATURE_CRYPTO
5403 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5404 vcreate_p64 (uint64_t __a)
5405 {
5406 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5407 }
5408
5409 #endif
5410 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5411 vcreate_s8 (uint64_t __a)
5412 {
5413 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5414 }
5415
5416 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5417 vcreate_s16 (uint64_t __a)
5418 {
5419 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5420 }
5421
5422 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5423 vcreate_s32 (uint64_t __a)
5424 {
5425 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5426 }
5427
5428 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5429 vcreate_s64 (uint64_t __a)
5430 {
5431 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5432 }
5433
5434 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5435 vcreate_f32 (uint64_t __a)
5436 {
5437 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
5438 }
5439
5440 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5441 vcreate_u8 (uint64_t __a)
5442 {
5443 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5444 }
5445
5446 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5447 vcreate_u16 (uint64_t __a)
5448 {
5449 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5450 }
5451
5452 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5453 vcreate_u32 (uint64_t __a)
5454 {
5455 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5456 }
5457
5458 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5459 vcreate_u64 (uint64_t __a)
5460 {
5461 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5462 }
5463
5464 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5465 vcreate_p8 (uint64_t __a)
5466 {
5467 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5468 }
5469
5470 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5471 vcreate_p16 (uint64_t __a)
5472 {
5473 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5474 }
5475
5476 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5477 vdup_n_s8 (int8_t __a)
5478 {
5479 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5480 }
5481
5482 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5483 vdup_n_s16 (int16_t __a)
5484 {
5485 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5486 }
5487
5488 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5489 vdup_n_s32 (int32_t __a)
5490 {
5491 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5492 }
5493
5494 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5495 vdup_n_f32 (float32_t __a)
5496 {
5497 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5498 }
5499
5500 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5501 vdup_n_u8 (uint8_t __a)
5502 {
5503 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5504 }
5505
5506 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5507 vdup_n_u16 (uint16_t __a)
5508 {
5509 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5510 }
5511
5512 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5513 vdup_n_u32 (uint32_t __a)
5514 {
5515 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5516 }
5517
5518 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5519 vdup_n_p8 (poly8_t __a)
5520 {
5521 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5522 }
5523
5524 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5525 vdup_n_p16 (poly16_t __a)
5526 {
5527 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5528 }
5529
5530 #ifdef __ARM_FEATURE_CRYPTO
5531 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5532 vdup_n_p64 (poly64_t __a)
5533 {
5534 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5535 }
5536
5537 #endif
5538 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5539 vdup_n_s64 (int64_t __a)
5540 {
5541 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5542 }
5543
5544 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5545 vdup_n_u64 (uint64_t __a)
5546 {
5547 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5548 }
5549
5550 #ifdef __ARM_FEATURE_CRYPTO
5551 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5552 vdupq_n_p64 (poly64_t __a)
5553 {
5554 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5555 }
5556
5557 #endif
5558 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5559 vdupq_n_s8 (int8_t __a)
5560 {
5561 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5562 }
5563
5564 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5565 vdupq_n_s16 (int16_t __a)
5566 {
5567 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5568 }
5569
5570 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5571 vdupq_n_s32 (int32_t __a)
5572 {
5573 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5574 }
5575
5576 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5577 vdupq_n_f32 (float32_t __a)
5578 {
5579 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5580 }
5581
5582 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5583 vdupq_n_u8 (uint8_t __a)
5584 {
5585 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5586 }
5587
5588 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5589 vdupq_n_u16 (uint16_t __a)
5590 {
5591 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5592 }
5593
5594 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5595 vdupq_n_u32 (uint32_t __a)
5596 {
5597 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5598 }
5599
5600 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5601 vdupq_n_p8 (poly8_t __a)
5602 {
5603 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5604 }
5605
5606 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5607 vdupq_n_p16 (poly16_t __a)
5608 {
5609 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5610 }
5611
5612 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5613 vdupq_n_s64 (int64_t __a)
5614 {
5615 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5616 }
5617
5618 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5619 vdupq_n_u64 (uint64_t __a)
5620 {
5621 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5622 }
5623
5624 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5625 vmov_n_s8 (int8_t __a)
5626 {
5627 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5628 }
5629
5630 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5631 vmov_n_s16 (int16_t __a)
5632 {
5633 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5634 }
5635
5636 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5637 vmov_n_s32 (int32_t __a)
5638 {
5639 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5640 }
5641
5642 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5643 vmov_n_f32 (float32_t __a)
5644 {
5645 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5646 }
5647
5648 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5649 vmov_n_u8 (uint8_t __a)
5650 {
5651 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5652 }
5653
5654 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5655 vmov_n_u16 (uint16_t __a)
5656 {
5657 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5658 }
5659
5660 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5661 vmov_n_u32 (uint32_t __a)
5662 {
5663 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5664 }
5665
5666 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5667 vmov_n_p8 (poly8_t __a)
5668 {
5669 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5670 }
5671
5672 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5673 vmov_n_p16 (poly16_t __a)
5674 {
5675 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5676 }
5677
5678 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5679 vmov_n_s64 (int64_t __a)
5680 {
5681 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5682 }
5683
5684 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5685 vmov_n_u64 (uint64_t __a)
5686 {
5687 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5688 }
5689
5690 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5691 vmovq_n_s8 (int8_t __a)
5692 {
5693 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5694 }
5695
5696 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5697 vmovq_n_s16 (int16_t __a)
5698 {
5699 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5700 }
5701
5702 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5703 vmovq_n_s32 (int32_t __a)
5704 {
5705 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5706 }
5707
5708 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5709 vmovq_n_f32 (float32_t __a)
5710 {
5711 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5712 }
5713
5714 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5715 vmovq_n_u8 (uint8_t __a)
5716 {
5717 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5718 }
5719
5720 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5721 vmovq_n_u16 (uint16_t __a)
5722 {
5723 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5724 }
5725
5726 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5727 vmovq_n_u32 (uint32_t __a)
5728 {
5729 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5730 }
5731
5732 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5733 vmovq_n_p8 (poly8_t __a)
5734 {
5735 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5736 }
5737
5738 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5739 vmovq_n_p16 (poly16_t __a)
5740 {
5741 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5742 }
5743
5744 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5745 vmovq_n_s64 (int64_t __a)
5746 {
5747 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5748 }
5749
5750 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5751 vmovq_n_u64 (uint64_t __a)
5752 {
5753 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5754 }
5755
5756 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5757 vdup_lane_s8 (int8x8_t __a, const int __b)
5758 {
5759 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
5760 }
5761
5762 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5763 vdup_lane_s16 (int16x4_t __a, const int __b)
5764 {
5765 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
5766 }
5767
5768 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5769 vdup_lane_s32 (int32x2_t __a, const int __b)
5770 {
5771 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
5772 }
5773
5774 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5775 vdup_lane_f32 (float32x2_t __a, const int __b)
5776 {
5777 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
5778 }
5779
5780 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5781 vdup_lane_u8 (uint8x8_t __a, const int __b)
5782 {
5783 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5784 }
5785
5786 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5787 vdup_lane_u16 (uint16x4_t __a, const int __b)
5788 {
5789 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5790 }
5791
5792 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5793 vdup_lane_u32 (uint32x2_t __a, const int __b)
5794 {
5795 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
5796 }
5797
5798 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5799 vdup_lane_p8 (poly8x8_t __a, const int __b)
5800 {
5801 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5802 }
5803
5804 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5805 vdup_lane_p16 (poly16x4_t __a, const int __b)
5806 {
5807 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5808 }
5809
5810 #ifdef __ARM_FEATURE_CRYPTO
5811 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5812 vdup_lane_p64 (poly64x1_t __a, const int __b)
5813 {
5814 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5815 }
5816
5817 #endif
5818 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5819 vdup_lane_s64 (int64x1_t __a, const int __b)
5820 {
5821 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5822 }
5823
5824 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5825 vdup_lane_u64 (uint64x1_t __a, const int __b)
5826 {
5827 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
5828 }
5829
5830 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5831 vdupq_lane_s8 (int8x8_t __a, const int __b)
5832 {
5833 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
5834 }
5835
5836 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5837 vdupq_lane_s16 (int16x4_t __a, const int __b)
5838 {
5839 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
5840 }
5841
5842 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5843 vdupq_lane_s32 (int32x2_t __a, const int __b)
5844 {
5845 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
5846 }
5847
5848 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5849 vdupq_lane_f32 (float32x2_t __a, const int __b)
5850 {
5851 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
5852 }
5853
5854 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5855 vdupq_lane_u8 (uint8x8_t __a, const int __b)
5856 {
5857 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5858 }
5859
5860 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5861 vdupq_lane_u16 (uint16x4_t __a, const int __b)
5862 {
5863 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5864 }
5865
5866 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5867 vdupq_lane_u32 (uint32x2_t __a, const int __b)
5868 {
5869 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
5870 }
5871
5872 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5873 vdupq_lane_p8 (poly8x8_t __a, const int __b)
5874 {
5875 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5876 }
5877
5878 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5879 vdupq_lane_p16 (poly16x4_t __a, const int __b)
5880 {
5881 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5882 }
5883
5884 #ifdef __ARM_FEATURE_CRYPTO
5885 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5886 vdupq_lane_p64 (poly64x1_t __a, const int __b)
5887 {
5888 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5889 }
5890
5891 #endif
5892 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5893 vdupq_lane_s64 (int64x1_t __a, const int __b)
5894 {
5895 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5896 }
5897
5898 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5899 vdupq_lane_u64 (uint64x1_t __a, const int __b)
5900 {
5901 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
5902 }
5903
5904 #ifdef __ARM_FEATURE_CRYPTO
5905 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5906 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
5907 {
5908 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
5909 }
5910
5911 #endif
5912 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5913 vcombine_s8 (int8x8_t __a, int8x8_t __b)
5914 {
5915 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
5916 }
5917
5918 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5919 vcombine_s16 (int16x4_t __a, int16x4_t __b)
5920 {
5921 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
5922 }
5923
5924 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5925 vcombine_s32 (int32x2_t __a, int32x2_t __b)
5926 {
5927 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
5928 }
5929
5930 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5931 vcombine_s64 (int64x1_t __a, int64x1_t __b)
5932 {
5933 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
5934 }
5935
5936 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5937 vcombine_f32 (float32x2_t __a, float32x2_t __b)
5938 {
5939 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
5940 }
5941
5942 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5943 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
5944 {
5945 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5946 }
5947
5948 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5949 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
5950 {
5951 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5952 }
5953
5954 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5955 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
5956 {
5957 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
5958 }
5959
5960 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5961 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
5962 {
5963 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
5964 }
5965
5966 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5967 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
5968 {
5969 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5970 }
5971
5972 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5973 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
5974 {
5975 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5976 }
5977
5978 #ifdef __ARM_FEATURE_CRYPTO
5979 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5980 vget_high_p64 (poly64x2_t __a)
5981 {
5982 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
5983 }
5984
5985 #endif
5986 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5987 vget_high_s8 (int8x16_t __a)
5988 {
5989 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
5990 }
5991
5992 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5993 vget_high_s16 (int16x8_t __a)
5994 {
5995 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
5996 }
5997
5998 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5999 vget_high_s32 (int32x4_t __a)
6000 {
6001 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
6002 }
6003
6004 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
6005 vget_high_s64 (int64x2_t __a)
6006 {
6007 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
6008 }
6009
6010 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6011 vget_high_f32 (float32x4_t __a)
6012 {
6013 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
6014 }
6015
6016 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6017 vget_high_u8 (uint8x16_t __a)
6018 {
6019 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6020 }
6021
6022 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6023 vget_high_u16 (uint16x8_t __a)
6024 {
6025 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6026 }
6027
6028 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6029 vget_high_u32 (uint32x4_t __a)
6030 {
6031 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
6032 }
6033
6034 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
6035 vget_high_u64 (uint64x2_t __a)
6036 {
6037 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
6038 }
6039
6040 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6041 vget_high_p8 (poly8x16_t __a)
6042 {
6043 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6044 }
6045
6046 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
6047 vget_high_p16 (poly16x8_t __a)
6048 {
6049 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6050 }
6051
6052 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6053 vget_low_s8 (int8x16_t __a)
6054 {
6055 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
6056 }
6057
6058 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6059 vget_low_s16 (int16x8_t __a)
6060 {
6061 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
6062 }
6063
6064 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6065 vget_low_s32 (int32x4_t __a)
6066 {
6067 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
6068 }
6069
6070 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6071 vget_low_f32 (float32x4_t __a)
6072 {
6073 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
6074 }
6075
6076 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6077 vget_low_u8 (uint8x16_t __a)
6078 {
6079 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6080 }
6081
6082 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6083 vget_low_u16 (uint16x8_t __a)
6084 {
6085 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6086 }
6087
6088 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6089 vget_low_u32 (uint32x4_t __a)
6090 {
6091 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
6092 }
6093
6094 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6095 vget_low_p8 (poly8x16_t __a)
6096 {
6097 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6098 }
6099
6100 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
6101 vget_low_p16 (poly16x8_t __a)
6102 {
6103 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6104 }
6105
6106 #ifdef __ARM_FEATURE_CRYPTO
6107 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
6108 vget_low_p64 (poly64x2_t __a)
6109 {
6110 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6111 }
6112
6113 #endif
6114 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
6115 vget_low_s64 (int64x2_t __a)
6116 {
6117 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
6118 }
6119
6120 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
6121 vget_low_u64 (uint64x2_t __a)
6122 {
6123 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6124 }
6125
6126 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6127 vcvt_s32_f32 (float32x2_t __a)
6128 {
6129 return (int32x2_t)__builtin_neon_vcvtv2sf (__a, 1);
6130 }
6131
6132 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6133 vcvt_f32_s32 (int32x2_t __a)
6134 {
6135 return (float32x2_t)__builtin_neon_vcvtv2si (__a, 1);
6136 }
6137
6138 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6139 vcvt_f32_u32 (uint32x2_t __a)
6140 {
6141 return (float32x2_t)__builtin_neon_vcvtv2si ((int32x2_t) __a, 0);
6142 }
6143
6144 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6145 vcvt_u32_f32 (float32x2_t __a)
6146 {
6147 return (uint32x2_t)__builtin_neon_vcvtv2sf (__a, 0);
6148 }
6149
6150 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6151 vcvtq_s32_f32 (float32x4_t __a)
6152 {
6153 return (int32x4_t)__builtin_neon_vcvtv4sf (__a, 1);
6154 }
6155
6156 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6157 vcvtq_f32_s32 (int32x4_t __a)
6158 {
6159 return (float32x4_t)__builtin_neon_vcvtv4si (__a, 1);
6160 }
6161
6162 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6163 vcvtq_f32_u32 (uint32x4_t __a)
6164 {
6165 return (float32x4_t)__builtin_neon_vcvtv4si ((int32x4_t) __a, 0);
6166 }
6167
6168 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6169 vcvtq_u32_f32 (float32x4_t __a)
6170 {
6171 return (uint32x4_t)__builtin_neon_vcvtv4sf (__a, 0);
6172 }
6173
6174 #if ((__ARM_FP & 0x2) != 0)
6175 __extension__ static __inline float16x4_t __attribute__ ((__always_inline__))
6176 vcvt_f16_f32 (float32x4_t __a)
6177 {
6178 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
6179 }
6180
6181 #endif
6182 #if ((__ARM_FP & 0x2) != 0)
6183 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6184 vcvt_f32_f16 (float16x4_t __a)
6185 {
6186 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
6187 }
6188
6189 #endif
6190 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6191 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
6192 {
6193 return (int32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 1);
6194 }
6195
6196 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6197 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
6198 {
6199 return (float32x2_t)__builtin_neon_vcvt_nv2si (__a, __b, 1);
6200 }
6201
6202 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6203 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
6204 {
6205 return (float32x2_t)__builtin_neon_vcvt_nv2si ((int32x2_t) __a, __b, 0);
6206 }
6207
6208 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6209 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
6210 {
6211 return (uint32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 0);
6212 }
6213
6214 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6215 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
6216 {
6217 return (int32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 1);
6218 }
6219
6220 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6221 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
6222 {
6223 return (float32x4_t)__builtin_neon_vcvt_nv4si (__a, __b, 1);
6224 }
6225
6226 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6227 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
6228 {
6229 return (float32x4_t)__builtin_neon_vcvt_nv4si ((int32x4_t) __a, __b, 0);
6230 }
6231
6232 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6233 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
6234 {
6235 return (uint32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 0);
6236 }
6237
6238 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6239 vmovn_s16 (int16x8_t __a)
6240 {
6241 return (int8x8_t)__builtin_neon_vmovnv8hi (__a, 1);
6242 }
6243
6244 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6245 vmovn_s32 (int32x4_t __a)
6246 {
6247 return (int16x4_t)__builtin_neon_vmovnv4si (__a, 1);
6248 }
6249
6250 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6251 vmovn_s64 (int64x2_t __a)
6252 {
6253 return (int32x2_t)__builtin_neon_vmovnv2di (__a, 1);
6254 }
6255
6256 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6257 vmovn_u16 (uint16x8_t __a)
6258 {
6259 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a, 0);
6260 }
6261
6262 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6263 vmovn_u32 (uint32x4_t __a)
6264 {
6265 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a, 0);
6266 }
6267
6268 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6269 vmovn_u64 (uint64x2_t __a)
6270 {
6271 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a, 0);
6272 }
6273
6274 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6275 vqmovn_s16 (int16x8_t __a)
6276 {
6277 return (int8x8_t)__builtin_neon_vqmovnv8hi (__a, 1);
6278 }
6279
6280 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6281 vqmovn_s32 (int32x4_t __a)
6282 {
6283 return (int16x4_t)__builtin_neon_vqmovnv4si (__a, 1);
6284 }
6285
6286 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6287 vqmovn_s64 (int64x2_t __a)
6288 {
6289 return (int32x2_t)__builtin_neon_vqmovnv2di (__a, 1);
6290 }
6291
6292 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6293 vqmovn_u16 (uint16x8_t __a)
6294 {
6295 return (uint8x8_t)__builtin_neon_vqmovnv8hi ((int16x8_t) __a, 0);
6296 }
6297
6298 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6299 vqmovn_u32 (uint32x4_t __a)
6300 {
6301 return (uint16x4_t)__builtin_neon_vqmovnv4si ((int32x4_t) __a, 0);
6302 }
6303
6304 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6305 vqmovn_u64 (uint64x2_t __a)
6306 {
6307 return (uint32x2_t)__builtin_neon_vqmovnv2di ((int64x2_t) __a, 0);
6308 }
6309
6310 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6311 vqmovun_s16 (int16x8_t __a)
6312 {
6313 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a, 1);
6314 }
6315
6316 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6317 vqmovun_s32 (int32x4_t __a)
6318 {
6319 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a, 1);
6320 }
6321
6322 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6323 vqmovun_s64 (int64x2_t __a)
6324 {
6325 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a, 1);
6326 }
6327
6328 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6329 vmovl_s8 (int8x8_t __a)
6330 {
6331 return (int16x8_t)__builtin_neon_vmovlv8qi (__a, 1);
6332 }
6333
6334 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6335 vmovl_s16 (int16x4_t __a)
6336 {
6337 return (int32x4_t)__builtin_neon_vmovlv4hi (__a, 1);
6338 }
6339
6340 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6341 vmovl_s32 (int32x2_t __a)
6342 {
6343 return (int64x2_t)__builtin_neon_vmovlv2si (__a, 1);
6344 }
6345
6346 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6347 vmovl_u8 (uint8x8_t __a)
6348 {
6349 return (uint16x8_t)__builtin_neon_vmovlv8qi ((int8x8_t) __a, 0);
6350 }
6351
6352 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6353 vmovl_u16 (uint16x4_t __a)
6354 {
6355 return (uint32x4_t)__builtin_neon_vmovlv4hi ((int16x4_t) __a, 0);
6356 }
6357
6358 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6359 vmovl_u32 (uint32x2_t __a)
6360 {
6361 return (uint64x2_t)__builtin_neon_vmovlv2si ((int32x2_t) __a, 0);
6362 }
6363
6364 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6365 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
6366 {
6367 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
6368 }
6369
6370 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6371 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
6372 {
6373 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6374 }
6375
6376 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6377 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
6378 {
6379 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6380 }
6381
6382 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6383 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
6384 {
6385 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6386 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
6387 }
6388
6389 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6390 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
6391 {
6392 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6393 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6394 }
6395
6396 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6397 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
6398 {
6399 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6400 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6401 }
6402
6403 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6404 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
6405 {
6406 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6407 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
6408 }
6409
6410 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6411 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
6412 {
6413 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6414 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6415 }
6416
6417 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6418 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
6419 {
6420 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6421 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6422 }
6423
6424 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6425 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
6426 {
6427 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6428 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
6429 }
6430
6431 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6432 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
6433 {
6434 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6435 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6436 }
6437
6438 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6439 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
6440 {
6441 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6442 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6443 }
6444
6445 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6446 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6447 {
6448 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
6449 }
6450
6451 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6452 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6453 {
6454 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6455 }
6456
6457 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6458 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
6459 {
6460 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6461 }
6462
6463 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6464 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
6465 {
6466 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6467 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
6468 }
6469
6470 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6471 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
6472 {
6473 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6474 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6475 }
6476
6477 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6478 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
6479 {
6480 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6481 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6482 }
6483
6484 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6485 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
6486 {
6487 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6488 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
6489 }
6490
6491 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6492 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
6493 {
6494 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6495 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6496 }
6497
6498 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6499 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
6500 {
6501 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6502 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6503 }
6504
6505 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6506 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
6507 {
6508 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6509 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
6510 }
6511
6512 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6513 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
6514 {
6515 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6516 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6517 }
6518
6519 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6520 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
6521 {
6522 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6523 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6524 }
6525
6526 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6527 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6528 {
6529 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c, 1);
6530 }
6531
6532 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6533 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6534 {
6535 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c, 1);
6536 }
6537
6538 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6539 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
6540 {
6541 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c, 3);
6542 }
6543
6544 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6545 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6546 {
6547 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6548 }
6549
6550 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6551 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6552 {
6553 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6554 }
6555
6556 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6557 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6558 {
6559 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c, 1);
6560 }
6561
6562 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6563 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6564 {
6565 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c, 1);
6566 }
6567
6568 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6569 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
6570 {
6571 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c, 3);
6572 }
6573
6574 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6575 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
6576 {
6577 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c, 0);
6578 }
6579
6580 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6581 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
6582 {
6583 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c, 0);
6584 }
6585
6586 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6587 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6588 {
6589 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d, 1);
6590 }
6591
6592 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6593 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6594 {
6595 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d, 1);
6596 }
6597
6598 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6599 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6600 {
6601 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d, 3);
6602 }
6603
6604 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6605 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6606 {
6607 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6608 }
6609
6610 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6611 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6612 {
6613 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6614 }
6615
6616 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6617 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6618 {
6619 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d, 1);
6620 }
6621
6622 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6623 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6624 {
6625 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d, 1);
6626 }
6627
6628 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6629 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6630 {
6631 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d, 3);
6632 }
6633
6634 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6635 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6636 {
6637 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6638 }
6639
6640 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6641 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6642 {
6643 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6644 }
6645
6646 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6647 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6648 {
6649 return (int32x4_t)__builtin_neon_vmlal_lanev4hi (__a, __b, __c, __d, 1);
6650 }
6651
6652 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6653 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6654 {
6655 return (int64x2_t)__builtin_neon_vmlal_lanev2si (__a, __b, __c, __d, 1);
6656 }
6657
6658 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6659 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6660 {
6661 return (uint32x4_t)__builtin_neon_vmlal_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6662 }
6663
6664 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6665 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6666 {
6667 return (uint64x2_t)__builtin_neon_vmlal_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6668 }
6669
6670 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6671 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6672 {
6673 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d, 1);
6674 }
6675
6676 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6677 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6678 {
6679 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d, 1);
6680 }
6681
6682 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6683 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6684 {
6685 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d, 1);
6686 }
6687
6688 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6689 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6690 {
6691 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d, 1);
6692 }
6693
6694 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6695 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6696 {
6697 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d, 3);
6698 }
6699
6700 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6701 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6702 {
6703 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6704 }
6705
6706 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6707 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6708 {
6709 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6710 }
6711
6712 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6713 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6714 {
6715 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d, 1);
6716 }
6717
6718 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6719 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6720 {
6721 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d, 1);
6722 }
6723
6724 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6725 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6726 {
6727 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d, 3);
6728 }
6729
6730 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6731 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6732 {
6733 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6734 }
6735
6736 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6737 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6738 {
6739 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6740 }
6741
6742 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6743 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6744 {
6745 return (int32x4_t)__builtin_neon_vmlsl_lanev4hi (__a, __b, __c, __d, 1);
6746 }
6747
6748 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6749 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6750 {
6751 return (int64x2_t)__builtin_neon_vmlsl_lanev2si (__a, __b, __c, __d, 1);
6752 }
6753
6754 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6755 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6756 {
6757 return (uint32x4_t)__builtin_neon_vmlsl_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6758 }
6759
6760 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6761 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6762 {
6763 return (uint64x2_t)__builtin_neon_vmlsl_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6764 }
6765
6766 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6767 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6768 {
6769 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d, 1);
6770 }
6771
6772 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6773 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6774 {
6775 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d, 1);
6776 }
6777
6778 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6779 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6780 {
6781 return (int32x4_t)__builtin_neon_vmull_lanev4hi (__a, __b, __c, 1);
6782 }
6783
6784 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6785 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6786 {
6787 return (int64x2_t)__builtin_neon_vmull_lanev2si (__a, __b, __c, 1);
6788 }
6789
6790 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6791 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6792 {
6793 return (uint32x4_t)__builtin_neon_vmull_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6794 }
6795
6796 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6797 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6798 {
6799 return (uint64x2_t)__builtin_neon_vmull_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6800 }
6801
6802 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6803 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6804 {
6805 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c, 1);
6806 }
6807
6808 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6809 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6810 {
6811 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c, 1);
6812 }
6813
6814 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6815 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6816 {
6817 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 1);
6818 }
6819
6820 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6821 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6822 {
6823 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 1);
6824 }
6825
6826 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6827 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6828 {
6829 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 1);
6830 }
6831
6832 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6833 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6834 {
6835 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 1);
6836 }
6837
6838 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6839 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6840 {
6841 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 5);
6842 }
6843
6844 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6845 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6846 {
6847 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 5);
6848 }
6849
6850 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6851 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6852 {
6853 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 5);
6854 }
6855
6856 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6857 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6858 {
6859 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 5);
6860 }
6861
6862 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6863 vmul_n_s16 (int16x4_t __a, int16_t __b)
6864 {
6865 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6866 }
6867
6868 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6869 vmul_n_s32 (int32x2_t __a, int32_t __b)
6870 {
6871 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b, 1);
6872 }
6873
6874 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6875 vmul_n_f32 (float32x2_t __a, float32_t __b)
6876 {
6877 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3);
6878 }
6879
6880 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6881 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
6882 {
6883 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6884 }
6885
6886 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6887 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
6888 {
6889 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6890 }
6891
6892 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6893 vmulq_n_s16 (int16x8_t __a, int16_t __b)
6894 {
6895 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6896 }
6897
6898 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6899 vmulq_n_s32 (int32x4_t __a, int32_t __b)
6900 {
6901 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b, 1);
6902 }
6903
6904 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6905 vmulq_n_f32 (float32x4_t __a, float32_t __b)
6906 {
6907 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3);
6908 }
6909
6910 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6911 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
6912 {
6913 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b, 0);
6914 }
6915
6916 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6917 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
6918 {
6919 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b, 0);
6920 }
6921
6922 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6923 vmull_n_s16 (int16x4_t __a, int16_t __b)
6924 {
6925 return (int32x4_t)__builtin_neon_vmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6926 }
6927
6928 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6929 vmull_n_s32 (int32x2_t __a, int32_t __b)
6930 {
6931 return (int64x2_t)__builtin_neon_vmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6932 }
6933
6934 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6935 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
6936 {
6937 return (uint32x4_t)__builtin_neon_vmull_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6938 }
6939
6940 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6941 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
6942 {
6943 return (uint64x2_t)__builtin_neon_vmull_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6944 }
6945
6946 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6947 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
6948 {
6949 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6950 }
6951
6952 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6953 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
6954 {
6955 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6956 }
6957
6958 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6959 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6960 {
6961 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6962 }
6963
6964 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6965 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6966 {
6967 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 1);
6968 }
6969
6970 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6971 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
6972 {
6973 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6974 }
6975
6976 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6977 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
6978 {
6979 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 1);
6980 }
6981
6982 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6983 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6984 {
6985 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 5);
6986 }
6987
6988 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6989 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6990 {
6991 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 5);
6992 }
6993
6994 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6995 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
6996 {
6997 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 5);
6998 }
6999
7000 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7001 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
7002 {
7003 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 5);
7004 }
7005
7006 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7007 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7008 {
7009 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7010 }
7011
7012 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7013 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7014 {
7015 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7016 }
7017
7018 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7019 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7020 {
7021 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
7022 }
7023
7024 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7025 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7026 {
7027 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7028 }
7029
7030 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7031 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7032 {
7033 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7034 }
7035
7036 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7037 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7038 {
7039 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
7040 }
7041
7042 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7043 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7044 {
7045 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
7046 }
7047
7048 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7049 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7050 {
7051 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
7052 }
7053
7054 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7055 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7056 {
7057 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
7058 }
7059
7060 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7061 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7062 {
7063 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
7064 }
7065
7066 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7067 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7068 {
7069 return (int32x4_t)__builtin_neon_vmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7070 }
7071
7072 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7073 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7074 {
7075 return (int64x2_t)__builtin_neon_vmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7076 }
7077
7078 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7079 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7080 {
7081 return (uint32x4_t)__builtin_neon_vmlal_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7082 }
7083
7084 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7085 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7086 {
7087 return (uint64x2_t)__builtin_neon_vmlal_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7088 }
7089
7090 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7091 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7092 {
7093 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7094 }
7095
7096 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7097 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7098 {
7099 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7100 }
7101
7102 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7103 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7104 {
7105 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7106 }
7107
7108 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7109 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7110 {
7111 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7112 }
7113
7114 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7115 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7116 {
7117 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
7118 }
7119
7120 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7121 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7122 {
7123 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7124 }
7125
7126 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7127 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7128 {
7129 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7130 }
7131
7132 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7133 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7134 {
7135 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
7136 }
7137
7138 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7139 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7140 {
7141 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
7142 }
7143
7144 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7145 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7146 {
7147 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
7148 }
7149
7150 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7151 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7152 {
7153 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
7154 }
7155
7156 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7157 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7158 {
7159 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
7160 }
7161
7162 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7163 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7164 {
7165 return (int32x4_t)__builtin_neon_vmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7166 }
7167
7168 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7169 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7170 {
7171 return (int64x2_t)__builtin_neon_vmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7172 }
7173
7174 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7175 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7176 {
7177 return (uint32x4_t)__builtin_neon_vmlsl_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7178 }
7179
7180 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7181 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7182 {
7183 return (uint64x2_t)__builtin_neon_vmlsl_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7184 }
7185
7186 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7187 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7188 {
7189 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7190 }
7191
7192 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7193 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7194 {
7195 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7196 }
7197
7198 #ifdef __ARM_FEATURE_CRYPTO
7199 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
7200 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
7201 {
7202 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7203 }
7204
7205 #endif
7206 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7207 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
7208 {
7209 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
7210 }
7211
7212 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7213 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7214 {
7215 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
7216 }
7217
7218 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7219 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7220 {
7221 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
7222 }
7223
7224 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7225 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
7226 {
7227 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7228 }
7229
7230 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7231 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7232 {
7233 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
7234 }
7235
7236 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7237 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
7238 {
7239 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7240 }
7241
7242 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7243 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7244 {
7245 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7246 }
7247
7248 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7249 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7250 {
7251 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7252 }
7253
7254 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7255 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
7256 {
7257 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
7258 }
7259
7260 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7261 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
7262 {
7263 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7264 }
7265
7266 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7267 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
7268 {
7269 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7270 }
7271
7272 #ifdef __ARM_FEATURE_CRYPTO
7273 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
7274 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
7275 {
7276 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7277 }
7278
7279 #endif
7280 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7281 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
7282 {
7283 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
7284 }
7285
7286 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7287 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
7288 {
7289 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
7290 }
7291
7292 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7293 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
7294 {
7295 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
7296 }
7297
7298 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7299 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
7300 {
7301 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
7302 }
7303
7304 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7305 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
7306 {
7307 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
7308 }
7309
7310 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7311 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
7312 {
7313 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7314 }
7315
7316 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7317 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
7318 {
7319 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7320 }
7321
7322 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7323 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
7324 {
7325 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
7326 }
7327
7328 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7329 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
7330 {
7331 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7332 }
7333
7334 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7335 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
7336 {
7337 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7338 }
7339
7340 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7341 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
7342 {
7343 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7344 }
7345
7346 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7347 vrev64_s8 (int8x8_t __a)
7348 {
7349 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7350 }
7351
7352 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7353 vrev64_s16 (int16x4_t __a)
7354 {
7355 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7356 }
7357
7358 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7359 vrev64_s32 (int32x2_t __a)
7360 {
7361 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7362 }
7363
7364 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7365 vrev64_f32 (float32x2_t __a)
7366 {
7367 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7368 }
7369
7370 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7371 vrev64_u8 (uint8x8_t __a)
7372 {
7373 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7374 }
7375
7376 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7377 vrev64_u16 (uint16x4_t __a)
7378 {
7379 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7380 }
7381
7382 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7383 vrev64_u32 (uint32x2_t __a)
7384 {
7385 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7386 }
7387
7388 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7389 vrev64_p8 (poly8x8_t __a)
7390 {
7391 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7392 }
7393
7394 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7395 vrev64_p16 (poly16x4_t __a)
7396 {
7397 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7398 }
7399
7400 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7401 vrev64q_s8 (int8x16_t __a)
7402 {
7403 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7404 }
7405
7406 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7407 vrev64q_s16 (int16x8_t __a)
7408 {
7409 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7410 }
7411
7412 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7413 vrev64q_s32 (int32x4_t __a)
7414 {
7415 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7416 }
7417
7418 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7419 vrev64q_f32 (float32x4_t __a)
7420 {
7421 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7422 }
7423
7424 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7425 vrev64q_u8 (uint8x16_t __a)
7426 {
7427 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7428 }
7429
7430 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7431 vrev64q_u16 (uint16x8_t __a)
7432 {
7433 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7434 }
7435
7436 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7437 vrev64q_u32 (uint32x4_t __a)
7438 {
7439 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7440 }
7441
7442 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7443 vrev64q_p8 (poly8x16_t __a)
7444 {
7445 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7446 }
7447
7448 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7449 vrev64q_p16 (poly16x8_t __a)
7450 {
7451 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7452 }
7453
7454 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7455 vrev32_s8 (int8x8_t __a)
7456 {
7457 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7458 }
7459
7460 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7461 vrev32_s16 (int16x4_t __a)
7462 {
7463 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7464 }
7465
7466 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7467 vrev32_u8 (uint8x8_t __a)
7468 {
7469 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7470 }
7471
7472 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7473 vrev32_u16 (uint16x4_t __a)
7474 {
7475 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7476 }
7477
7478 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7479 vrev32_p8 (poly8x8_t __a)
7480 {
7481 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7482 }
7483
7484 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7485 vrev32_p16 (poly16x4_t __a)
7486 {
7487 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7488 }
7489
7490 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7491 vrev32q_s8 (int8x16_t __a)
7492 {
7493 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7494 }
7495
7496 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7497 vrev32q_s16 (int16x8_t __a)
7498 {
7499 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7500 }
7501
7502 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7503 vrev32q_u8 (uint8x16_t __a)
7504 {
7505 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7506 }
7507
7508 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7509 vrev32q_u16 (uint16x8_t __a)
7510 {
7511 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7512 }
7513
7514 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7515 vrev32q_p8 (poly8x16_t __a)
7516 {
7517 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7518 }
7519
7520 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7521 vrev32q_p16 (poly16x8_t __a)
7522 {
7523 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7524 }
7525
7526 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7527 vrev16_s8 (int8x8_t __a)
7528 {
7529 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7530 }
7531
7532 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7533 vrev16_u8 (uint8x8_t __a)
7534 {
7535 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7536 }
7537
7538 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7539 vrev16_p8 (poly8x8_t __a)
7540 {
7541 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7542 }
7543
7544 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7545 vrev16q_s8 (int8x16_t __a)
7546 {
7547 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7548 }
7549
7550 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7551 vrev16q_u8 (uint8x16_t __a)
7552 {
7553 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7554 }
7555
7556 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7557 vrev16q_p8 (poly8x16_t __a)
7558 {
7559 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7560 }
7561
7562 #ifdef __ARM_FEATURE_CRYPTO
7563 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
7564 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
7565 {
7566 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7567 }
7568
7569 #endif
7570 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7571 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
7572 {
7573 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
7574 }
7575
7576 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7577 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
7578 {
7579 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
7580 }
7581
7582 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7583 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
7584 {
7585 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
7586 }
7587
7588 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7589 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
7590 {
7591 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7592 }
7593
7594 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7595 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
7596 {
7597 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
7598 }
7599
7600 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7601 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7602 {
7603 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7604 }
7605
7606 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7607 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7608 {
7609 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7610 }
7611
7612 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7613 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7614 {
7615 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
7616 }
7617
7618 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7619 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
7620 {
7621 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
7622 }
7623
7624 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7625 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
7626 {
7627 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7628 }
7629
7630 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7631 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
7632 {
7633 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7634 }
7635
7636 #ifdef __ARM_FEATURE_CRYPTO
7637 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
7638 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
7639 {
7640 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7641 }
7642
7643 #endif
7644 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7645 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
7646 {
7647 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
7648 }
7649
7650 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7651 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
7652 {
7653 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
7654 }
7655
7656 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7657 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
7658 {
7659 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
7660 }
7661
7662 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7663 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
7664 {
7665 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
7666 }
7667
7668 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7669 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
7670 {
7671 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
7672 }
7673
7674 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7675 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7676 {
7677 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7678 }
7679
7680 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7681 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
7682 {
7683 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7684 }
7685
7686 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7687 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
7688 {
7689 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
7690 }
7691
7692 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7693 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
7694 {
7695 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7696 }
7697
7698 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7699 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
7700 {
7701 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7702 }
7703
7704 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7705 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
7706 {
7707 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7708 }
7709
7710 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7711 vtrn_s8 (int8x8_t __a, int8x8_t __b)
7712 {
7713 int8x8x2_t __rv;
7714 __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7715 __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7716 return __rv;
7717 }
7718
7719 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7720 vtrn_s16 (int16x4_t __a, int16x4_t __b)
7721 {
7722 int16x4x2_t __rv;
7723 __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7724 __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7725 return __rv;
7726 }
7727
7728 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7729 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
7730 {
7731 uint8x8x2_t __rv;
7732 __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7733 __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7734 return __rv;
7735 }
7736
7737 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7738 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
7739 {
7740 uint16x4x2_t __rv;
7741 __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7742 __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7743 return __rv;
7744 }
7745
7746 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7747 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
7748 {
7749 poly8x8x2_t __rv;
7750 __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7751 __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7752 return __rv;
7753 }
7754
7755 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7756 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
7757 {
7758 poly16x4x2_t __rv;
7759 __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7760 __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7761 return __rv;
7762 }
7763
7764 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7765 vtrn_s32 (int32x2_t __a, int32x2_t __b)
7766 {
7767 int32x2x2_t __rv;
7768 __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7769 __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7770 return __rv;
7771 }
7772
7773 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7774 vtrn_f32 (float32x2_t __a, float32x2_t __b)
7775 {
7776 float32x2x2_t __rv;
7777 __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7778 __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7779 return __rv;
7780 }
7781
7782 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7783 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
7784 {
7785 uint32x2x2_t __rv;
7786 __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7787 __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7788 return __rv;
7789 }
7790
7791 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7792 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
7793 {
7794 int8x16x2_t __rv;
7795 __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7796 __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7797 return __rv;
7798 }
7799
7800 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7801 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
7802 {
7803 int16x8x2_t __rv;
7804 __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7805 __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7806 return __rv;
7807 }
7808
7809 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7810 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
7811 {
7812 int32x4x2_t __rv;
7813 __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7814 __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7815 return __rv;
7816 }
7817
7818 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7819 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
7820 {
7821 float32x4x2_t __rv;
7822 __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7823 __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7824 return __rv;
7825 }
7826
7827 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7828 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
7829 {
7830 uint8x16x2_t __rv;
7831 __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7832 __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7833 return __rv;
7834 }
7835
7836 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7837 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
7838 {
7839 uint16x8x2_t __rv;
7840 __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7841 __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7842 return __rv;
7843 }
7844
7845 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
7846 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
7847 {
7848 uint32x4x2_t __rv;
7849 __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7850 __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7851 return __rv;
7852 }
7853
7854 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
7855 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
7856 {
7857 poly8x16x2_t __rv;
7858 __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7859 __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7860 return __rv;
7861 }
7862
7863 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
7864 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
7865 {
7866 poly16x8x2_t __rv;
7867 __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 });
7868 __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 });
7869 return __rv;
7870 }
7871
7872 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7873 vzip_s8 (int8x8_t __a, int8x8_t __b)
7874 {
7875 int8x8x2_t __rv;
7876 __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
7877 __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
7878 return __rv;
7879 }
7880
7881 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7882 vzip_s16 (int16x4_t __a, int16x4_t __b)
7883 {
7884 int16x4x2_t __rv;
7885 __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
7886 __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
7887 return __rv;
7888 }
7889
7890 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7891 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
7892 {
7893 uint8x8x2_t __rv;
7894 __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
7895 __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
7896 return __rv;
7897 }
7898
7899 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7900 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
7901 {
7902 uint16x4x2_t __rv;
7903 __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
7904 __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
7905 return __rv;
7906 }
7907
7908 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7909 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
7910 {
7911 poly8x8x2_t __rv;
7912 __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
7913 __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
7914 return __rv;
7915 }
7916
7917 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7918 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
7919 {
7920 poly16x4x2_t __rv;
7921 __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
7922 __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
7923 return __rv;
7924 }
7925
7926 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7927 vzip_s32 (int32x2_t __a, int32x2_t __b)
7928 {
7929 int32x2x2_t __rv;
7930 __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7931 __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7932 return __rv;
7933 }
7934
7935 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7936 vzip_f32 (float32x2_t __a, float32x2_t __b)
7937 {
7938 float32x2x2_t __rv;
7939 __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7940 __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7941 return __rv;
7942 }
7943
7944 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7945 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
7946 {
7947 uint32x2x2_t __rv;
7948 __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7949 __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7950 return __rv;
7951 }
7952
7953 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7954 vzipq_s8 (int8x16_t __a, int8x16_t __b)
7955 {
7956 int8x16x2_t __rv;
7957 __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
7958 __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
7959 return __rv;
7960 }
7961
7962 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7963 vzipq_s16 (int16x8_t __a, int16x8_t __b)
7964 {
7965 int16x8x2_t __rv;
7966 __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
7967 __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
7968 return __rv;
7969 }
7970
7971 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7972 vzipq_s32 (int32x4_t __a, int32x4_t __b)
7973 {
7974 int32x4x2_t __rv;
7975 __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
7976 __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
7977 return __rv;
7978 }
7979
7980 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7981 vzipq_f32 (float32x4_t __a, float32x4_t __b)
7982 {
7983 float32x4x2_t __rv;
7984 __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
7985 __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
7986 return __rv;
7987 }
7988
7989 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7990 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
7991 {
7992 uint8x16x2_t __rv;
7993 __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
7994 __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
7995 return __rv;
7996 }
7997
7998 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7999 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
8000 {
8001 uint16x8x2_t __rv;
8002 __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
8003 __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
8004 return __rv;
8005 }
8006
8007 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8008 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
8009 {
8010 uint32x4x2_t __rv;
8011 __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8012 __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8013 return __rv;
8014 }
8015
8016 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
8017 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
8018 {
8019 poly8x16x2_t __rv;
8020 __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8021 __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8022 return __rv;
8023 }
8024
8025 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8026 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
8027 {
8028 poly16x8x2_t __rv;
8029 __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 });
8030 __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 });
8031 return __rv;
8032 }
8033
8034 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8035 vuzp_s8 (int8x8_t __a, int8x8_t __b)
8036 {
8037 int8x8x2_t __rv;
8038 __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8039 __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8040 return __rv;
8041 }
8042
8043 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8044 vuzp_s16 (int16x4_t __a, int16x4_t __b)
8045 {
8046 int16x4x2_t __rv;
8047 __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8048 __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8049 return __rv;
8050 }
8051
8052 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8053 vuzp_s32 (int32x2_t __a, int32x2_t __b)
8054 {
8055 int32x2x2_t __rv;
8056 __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8057 __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8058 return __rv;
8059 }
8060
8061 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8062 vuzp_f32 (float32x2_t __a, float32x2_t __b)
8063 {
8064 float32x2x2_t __rv;
8065 __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8066 __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8067 return __rv;
8068 }
8069
8070 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8071 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
8072 {
8073 uint8x8x2_t __rv;
8074 __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8075 __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8076 return __rv;
8077 }
8078
8079 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8080 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
8081 {
8082 uint16x4x2_t __rv;
8083 __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8084 __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8085 return __rv;
8086 }
8087
8088 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8089 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
8090 {
8091 uint32x2x2_t __rv;
8092 __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8093 __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8094 return __rv;
8095 }
8096
8097 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8098 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
8099 {
8100 poly8x8x2_t __rv;
8101 __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8102 __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8103 return __rv;
8104 }
8105
8106 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8107 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
8108 {
8109 poly16x4x2_t __rv;
8110 __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8111 __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8112 return __rv;
8113 }
8114
8115 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
8116 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
8117 {
8118 int8x16x2_t __rv;
8119 __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8120 __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8121 return __rv;
8122 }
8123
8124 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
8125 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
8126 {
8127 int16x8x2_t __rv;
8128 __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8129 __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8130 return __rv;
8131 }
8132
8133 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
8134 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
8135 {
8136 int32x4x2_t __rv;
8137 __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8138 __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8139 return __rv;
8140 }
8141
8142 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
8143 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
8144 {
8145 float32x4x2_t __rv;
8146 __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8147 __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8148 return __rv;
8149 }
8150
8151 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
8152 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
8153 {
8154 uint8x16x2_t __rv;
8155 __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8156 __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8157 return __rv;
8158 }
8159
8160 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
8161 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
8162 {
8163 uint16x8x2_t __rv;
8164 __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8165 __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8166 return __rv;
8167 }
8168
8169 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8170 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
8171 {
8172 uint32x4x2_t __rv;
8173 __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8174 __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8175 return __rv;
8176 }
8177
8178 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
8179 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
8180 {
8181 poly8x16x2_t __rv;
8182 __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8183 __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8184 return __rv;
8185 }
8186
8187 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8188 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
8189 {
8190 poly16x8x2_t __rv;
8191 __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 });
8192 __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 });
8193 return __rv;
8194 }
8195
8196 #ifdef __ARM_FEATURE_CRYPTO
8197 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8198 vld1_p64 (const poly64_t * __a)
8199 {
8200 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8201 }
8202
8203 #endif
8204 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8205 vld1_s8 (const int8_t * __a)
8206 {
8207 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8208 }
8209
8210 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8211 vld1_s16 (const int16_t * __a)
8212 {
8213 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8214 }
8215
8216 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8217 vld1_s32 (const int32_t * __a)
8218 {
8219 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8220 }
8221
8222 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8223 vld1_s64 (const int64_t * __a)
8224 {
8225 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8226 }
8227
8228 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8229 vld1_f32 (const float32_t * __a)
8230 {
8231 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
8232 }
8233
8234 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8235 vld1_u8 (const uint8_t * __a)
8236 {
8237 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8238 }
8239
8240 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8241 vld1_u16 (const uint16_t * __a)
8242 {
8243 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8244 }
8245
8246 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8247 vld1_u32 (const uint32_t * __a)
8248 {
8249 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8250 }
8251
8252 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8253 vld1_u64 (const uint64_t * __a)
8254 {
8255 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8256 }
8257
8258 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8259 vld1_p8 (const poly8_t * __a)
8260 {
8261 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8262 }
8263
8264 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8265 vld1_p16 (const poly16_t * __a)
8266 {
8267 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8268 }
8269
8270 #ifdef __ARM_FEATURE_CRYPTO
8271 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
8272 vld1q_p64 (const poly64_t * __a)
8273 {
8274 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8275 }
8276
8277 #endif
8278 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8279 vld1q_s8 (const int8_t * __a)
8280 {
8281 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8282 }
8283
8284 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8285 vld1q_s16 (const int16_t * __a)
8286 {
8287 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8288 }
8289
8290 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8291 vld1q_s32 (const int32_t * __a)
8292 {
8293 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8294 }
8295
8296 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8297 vld1q_s64 (const int64_t * __a)
8298 {
8299 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8300 }
8301
8302 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8303 vld1q_f32 (const float32_t * __a)
8304 {
8305 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
8306 }
8307
8308 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8309 vld1q_u8 (const uint8_t * __a)
8310 {
8311 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8312 }
8313
8314 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8315 vld1q_u16 (const uint16_t * __a)
8316 {
8317 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8318 }
8319
8320 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8321 vld1q_u32 (const uint32_t * __a)
8322 {
8323 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8324 }
8325
8326 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8327 vld1q_u64 (const uint64_t * __a)
8328 {
8329 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8330 }
8331
8332 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8333 vld1q_p8 (const poly8_t * __a)
8334 {
8335 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8336 }
8337
8338 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8339 vld1q_p16 (const poly16_t * __a)
8340 {
8341 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8342 }
8343
8344 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8345 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
8346 {
8347 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
8348 }
8349
8350 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8351 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
8352 {
8353 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
8354 }
8355
8356 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8357 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
8358 {
8359 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
8360 }
8361
8362 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8363 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
8364 {
8365 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
8366 }
8367
8368 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8369 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
8370 {
8371 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8372 }
8373
8374 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8375 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
8376 {
8377 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8378 }
8379
8380 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8381 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
8382 {
8383 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
8384 }
8385
8386 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8387 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
8388 {
8389 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8390 }
8391
8392 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8393 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
8394 {
8395 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8396 }
8397
8398 #ifdef __ARM_FEATURE_CRYPTO
8399 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8400 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
8401 {
8402 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8403 }
8404
8405 #endif
8406 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8407 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
8408 {
8409 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8410 }
8411
8412 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8413 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
8414 {
8415 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
8416 }
8417
8418 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8419 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
8420 {
8421 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
8422 }
8423
8424 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8425 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
8426 {
8427 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
8428 }
8429
8430 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8431 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
8432 {
8433 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
8434 }
8435
8436 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8437 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
8438 {
8439 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
8440 }
8441
8442 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8443 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
8444 {
8445 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8446 }
8447
8448 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8449 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
8450 {
8451 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8452 }
8453
8454 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8455 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
8456 {
8457 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
8458 }
8459
8460 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8461 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
8462 {
8463 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8464 }
8465
8466 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8467 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
8468 {
8469 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8470 }
8471
8472 #ifdef __ARM_FEATURE_CRYPTO
8473 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
8474 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
8475 {
8476 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8477 }
8478
8479 #endif
8480 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8481 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
8482 {
8483 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
8484 }
8485
8486 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8487 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
8488 {
8489 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8490 }
8491
8492 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8493 vld1_dup_s8 (const int8_t * __a)
8494 {
8495 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8496 }
8497
8498 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8499 vld1_dup_s16 (const int16_t * __a)
8500 {
8501 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8502 }
8503
8504 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8505 vld1_dup_s32 (const int32_t * __a)
8506 {
8507 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8508 }
8509
8510 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8511 vld1_dup_f32 (const float32_t * __a)
8512 {
8513 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
8514 }
8515
8516 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8517 vld1_dup_u8 (const uint8_t * __a)
8518 {
8519 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8520 }
8521
8522 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8523 vld1_dup_u16 (const uint16_t * __a)
8524 {
8525 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8526 }
8527
8528 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8529 vld1_dup_u32 (const uint32_t * __a)
8530 {
8531 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8532 }
8533
8534 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8535 vld1_dup_p8 (const poly8_t * __a)
8536 {
8537 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8538 }
8539
8540 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8541 vld1_dup_p16 (const poly16_t * __a)
8542 {
8543 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8544 }
8545
8546 #ifdef __ARM_FEATURE_CRYPTO
8547 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8548 vld1_dup_p64 (const poly64_t * __a)
8549 {
8550 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8551 }
8552
8553 #endif
8554 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8555 vld1_dup_s64 (const int64_t * __a)
8556 {
8557 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8558 }
8559
8560 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8561 vld1_dup_u64 (const uint64_t * __a)
8562 {
8563 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8564 }
8565
8566 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8567 vld1q_dup_s8 (const int8_t * __a)
8568 {
8569 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8570 }
8571
8572 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8573 vld1q_dup_s16 (const int16_t * __a)
8574 {
8575 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8576 }
8577
8578 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8579 vld1q_dup_s32 (const int32_t * __a)
8580 {
8581 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8582 }
8583
8584 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8585 vld1q_dup_f32 (const float32_t * __a)
8586 {
8587 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
8588 }
8589
8590 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8591 vld1q_dup_u8 (const uint8_t * __a)
8592 {
8593 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8594 }
8595
8596 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8597 vld1q_dup_u16 (const uint16_t * __a)
8598 {
8599 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8600 }
8601
8602 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8603 vld1q_dup_u32 (const uint32_t * __a)
8604 {
8605 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8606 }
8607
8608 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8609 vld1q_dup_p8 (const poly8_t * __a)
8610 {
8611 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8612 }
8613
8614 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8615 vld1q_dup_p16 (const poly16_t * __a)
8616 {
8617 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8618 }
8619
8620 #ifdef __ARM_FEATURE_CRYPTO
8621 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
8622 vld1q_dup_p64 (const poly64_t * __a)
8623 {
8624 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
8625 }
8626
8627 #endif
8628 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8629 vld1q_dup_s64 (const int64_t * __a)
8630 {
8631 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
8632 }
8633
8634 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8635 vld1q_dup_u64 (const uint64_t * __a)
8636 {
8637 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
8638 }
8639
8640 #ifdef __ARM_FEATURE_CRYPTO
8641 __extension__ static __inline void __attribute__ ((__always_inline__))
8642 vst1_p64 (poly64_t * __a, poly64x1_t __b)
8643 {
8644 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
8645 }
8646
8647 #endif
8648 __extension__ static __inline void __attribute__ ((__always_inline__))
8649 vst1_s8 (int8_t * __a, int8x8_t __b)
8650 {
8651 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
8652 }
8653
8654 __extension__ static __inline void __attribute__ ((__always_inline__))
8655 vst1_s16 (int16_t * __a, int16x4_t __b)
8656 {
8657 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
8658 }
8659
8660 __extension__ static __inline void __attribute__ ((__always_inline__))
8661 vst1_s32 (int32_t * __a, int32x2_t __b)
8662 {
8663 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
8664 }
8665
8666 __extension__ static __inline void __attribute__ ((__always_inline__))
8667 vst1_s64 (int64_t * __a, int64x1_t __b)
8668 {
8669 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
8670 }
8671
8672 __extension__ static __inline void __attribute__ ((__always_inline__))
8673 vst1_f32 (float32_t * __a, float32x2_t __b)
8674 {
8675 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
8676 }
8677
8678 __extension__ static __inline void __attribute__ ((__always_inline__))
8679 vst1_u8 (uint8_t * __a, uint8x8_t __b)
8680 {
8681 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
8682 }
8683
8684 __extension__ static __inline void __attribute__ ((__always_inline__))
8685 vst1_u16 (uint16_t * __a, uint16x4_t __b)
8686 {
8687 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
8688 }
8689
8690 __extension__ static __inline void __attribute__ ((__always_inline__))
8691 vst1_u32 (uint32_t * __a, uint32x2_t __b)
8692 {
8693 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
8694 }
8695
8696 __extension__ static __inline void __attribute__ ((__always_inline__))
8697 vst1_u64 (uint64_t * __a, uint64x1_t __b)
8698 {
8699 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
8700 }
8701
8702 __extension__ static __inline void __attribute__ ((__always_inline__))
8703 vst1_p8 (poly8_t * __a, poly8x8_t __b)
8704 {
8705 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
8706 }
8707
8708 __extension__ static __inline void __attribute__ ((__always_inline__))
8709 vst1_p16 (poly16_t * __a, poly16x4_t __b)
8710 {
8711 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
8712 }
8713
8714 #ifdef __ARM_FEATURE_CRYPTO
8715 __extension__ static __inline void __attribute__ ((__always_inline__))
8716 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
8717 {
8718 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
8719 }
8720
8721 #endif
8722 __extension__ static __inline void __attribute__ ((__always_inline__))
8723 vst1q_s8 (int8_t * __a, int8x16_t __b)
8724 {
8725 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
8726 }
8727
8728 __extension__ static __inline void __attribute__ ((__always_inline__))
8729 vst1q_s16 (int16_t * __a, int16x8_t __b)
8730 {
8731 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
8732 }
8733
8734 __extension__ static __inline void __attribute__ ((__always_inline__))
8735 vst1q_s32 (int32_t * __a, int32x4_t __b)
8736 {
8737 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
8738 }
8739
8740 __extension__ static __inline void __attribute__ ((__always_inline__))
8741 vst1q_s64 (int64_t * __a, int64x2_t __b)
8742 {
8743 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
8744 }
8745
8746 __extension__ static __inline void __attribute__ ((__always_inline__))
8747 vst1q_f32 (float32_t * __a, float32x4_t __b)
8748 {
8749 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
8750 }
8751
8752 __extension__ static __inline void __attribute__ ((__always_inline__))
8753 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
8754 {
8755 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
8756 }
8757
8758 __extension__ static __inline void __attribute__ ((__always_inline__))
8759 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
8760 {
8761 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
8762 }
8763
8764 __extension__ static __inline void __attribute__ ((__always_inline__))
8765 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
8766 {
8767 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
8768 }
8769
8770 __extension__ static __inline void __attribute__ ((__always_inline__))
8771 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
8772 {
8773 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
8774 }
8775
8776 __extension__ static __inline void __attribute__ ((__always_inline__))
8777 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
8778 {
8779 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
8780 }
8781
8782 __extension__ static __inline void __attribute__ ((__always_inline__))
8783 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
8784 {
8785 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
8786 }
8787
8788 __extension__ static __inline void __attribute__ ((__always_inline__))
8789 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
8790 {
8791 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
8792 }
8793
8794 __extension__ static __inline void __attribute__ ((__always_inline__))
8795 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
8796 {
8797 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
8798 }
8799
8800 __extension__ static __inline void __attribute__ ((__always_inline__))
8801 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
8802 {
8803 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
8804 }
8805
8806 __extension__ static __inline void __attribute__ ((__always_inline__))
8807 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
8808 {
8809 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
8810 }
8811
8812 __extension__ static __inline void __attribute__ ((__always_inline__))
8813 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
8814 {
8815 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8816 }
8817
8818 __extension__ static __inline void __attribute__ ((__always_inline__))
8819 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
8820 {
8821 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8822 }
8823
8824 __extension__ static __inline void __attribute__ ((__always_inline__))
8825 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
8826 {
8827 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
8828 }
8829
8830 __extension__ static __inline void __attribute__ ((__always_inline__))
8831 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
8832 {
8833 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8834 }
8835
8836 __extension__ static __inline void __attribute__ ((__always_inline__))
8837 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
8838 {
8839 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8840 }
8841
8842 #ifdef __ARM_FEATURE_CRYPTO
8843 __extension__ static __inline void __attribute__ ((__always_inline__))
8844 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
8845 {
8846 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
8847 }
8848
8849 #endif
8850 __extension__ static __inline void __attribute__ ((__always_inline__))
8851 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
8852 {
8853 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
8854 }
8855
8856 __extension__ static __inline void __attribute__ ((__always_inline__))
8857 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
8858 {
8859 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
8860 }
8861
8862 __extension__ static __inline void __attribute__ ((__always_inline__))
8863 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
8864 {
8865 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
8866 }
8867
8868 __extension__ static __inline void __attribute__ ((__always_inline__))
8869 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
8870 {
8871 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
8872 }
8873
8874 __extension__ static __inline void __attribute__ ((__always_inline__))
8875 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
8876 {
8877 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
8878 }
8879
8880 __extension__ static __inline void __attribute__ ((__always_inline__))
8881 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
8882 {
8883 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
8884 }
8885
8886 __extension__ static __inline void __attribute__ ((__always_inline__))
8887 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
8888 {
8889 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8890 }
8891
8892 __extension__ static __inline void __attribute__ ((__always_inline__))
8893 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
8894 {
8895 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8896 }
8897
8898 __extension__ static __inline void __attribute__ ((__always_inline__))
8899 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
8900 {
8901 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
8902 }
8903
8904 __extension__ static __inline void __attribute__ ((__always_inline__))
8905 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
8906 {
8907 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8908 }
8909
8910 __extension__ static __inline void __attribute__ ((__always_inline__))
8911 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
8912 {
8913 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8914 }
8915
8916 #ifdef __ARM_FEATURE_CRYPTO
8917 __extension__ static __inline void __attribute__ ((__always_inline__))
8918 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
8919 {
8920 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
8921 }
8922
8923 #endif
8924 __extension__ static __inline void __attribute__ ((__always_inline__))
8925 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
8926 {
8927 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
8928 }
8929
8930 __extension__ static __inline void __attribute__ ((__always_inline__))
8931 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
8932 {
8933 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
8934 }
8935
8936 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8937 vld2_s8 (const int8_t * __a)
8938 {
8939 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8940 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8941 return __rv.__i;
8942 }
8943
8944 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8945 vld2_s16 (const int16_t * __a)
8946 {
8947 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8948 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
8949 return __rv.__i;
8950 }
8951
8952 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8953 vld2_s32 (const int32_t * __a)
8954 {
8955 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8956 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
8957 return __rv.__i;
8958 }
8959
8960 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8961 vld2_f32 (const float32_t * __a)
8962 {
8963 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8964 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
8965 return __rv.__i;
8966 }
8967
8968 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8969 vld2_u8 (const uint8_t * __a)
8970 {
8971 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8972 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8973 return __rv.__i;
8974 }
8975
8976 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8977 vld2_u16 (const uint16_t * __a)
8978 {
8979 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8980 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
8981 return __rv.__i;
8982 }
8983
8984 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8985 vld2_u32 (const uint32_t * __a)
8986 {
8987 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8988 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
8989 return __rv.__i;
8990 }
8991
8992 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8993 vld2_p8 (const poly8_t * __a)
8994 {
8995 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8996 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8997 return __rv.__i;
8998 }
8999
9000 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9001 vld2_p16 (const poly16_t * __a)
9002 {
9003 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9004 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9005 return __rv.__i;
9006 }
9007
9008 #ifdef __ARM_FEATURE_CRYPTO
9009 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
9010 vld2_p64 (const poly64_t * __a)
9011 {
9012 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9013 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9014 return __rv.__i;
9015 }
9016
9017 #endif
9018 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
9019 vld2_s64 (const int64_t * __a)
9020 {
9021 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9022 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9023 return __rv.__i;
9024 }
9025
9026 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
9027 vld2_u64 (const uint64_t * __a)
9028 {
9029 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9030 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9031 return __rv.__i;
9032 }
9033
9034 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
9035 vld2q_s8 (const int8_t * __a)
9036 {
9037 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9038 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9039 return __rv.__i;
9040 }
9041
9042 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
9043 vld2q_s16 (const int16_t * __a)
9044 {
9045 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9046 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9047 return __rv.__i;
9048 }
9049
9050 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
9051 vld2q_s32 (const int32_t * __a)
9052 {
9053 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9054 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9055 return __rv.__i;
9056 }
9057
9058 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
9059 vld2q_f32 (const float32_t * __a)
9060 {
9061 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9062 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
9063 return __rv.__i;
9064 }
9065
9066 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
9067 vld2q_u8 (const uint8_t * __a)
9068 {
9069 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9070 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9071 return __rv.__i;
9072 }
9073
9074 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
9075 vld2q_u16 (const uint16_t * __a)
9076 {
9077 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9078 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9079 return __rv.__i;
9080 }
9081
9082 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
9083 vld2q_u32 (const uint32_t * __a)
9084 {
9085 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9086 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9087 return __rv.__i;
9088 }
9089
9090 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
9091 vld2q_p8 (const poly8_t * __a)
9092 {
9093 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9094 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9095 return __rv.__i;
9096 }
9097
9098 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
9099 vld2q_p16 (const poly16_t * __a)
9100 {
9101 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9102 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9103 return __rv.__i;
9104 }
9105
9106 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
9107 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
9108 {
9109 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9110 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9111 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9112 return __rv.__i;
9113 }
9114
9115 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
9116 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
9117 {
9118 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9119 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9120 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9121 return __rv.__i;
9122 }
9123
9124 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
9125 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
9126 {
9127 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9128 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9129 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9130 return __rv.__i;
9131 }
9132
9133 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
9134 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
9135 {
9136 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9137 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9138 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9139 return __rv.__i;
9140 }
9141
9142 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
9143 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
9144 {
9145 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9146 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9147 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9148 return __rv.__i;
9149 }
9150
9151 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
9152 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
9153 {
9154 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9155 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9156 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9157 return __rv.__i;
9158 }
9159
9160 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
9161 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
9162 {
9163 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9164 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9165 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9166 return __rv.__i;
9167 }
9168
9169 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
9170 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
9171 {
9172 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9173 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9174 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9175 return __rv.__i;
9176 }
9177
9178 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9179 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
9180 {
9181 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9182 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9183 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9184 return __rv.__i;
9185 }
9186
9187 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
9188 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
9189 {
9190 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9191 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9192 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9193 return __rv.__i;
9194 }
9195
9196 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
9197 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
9198 {
9199 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9200 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9201 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9202 return __rv.__i;
9203 }
9204
9205 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
9206 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
9207 {
9208 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9209 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9210 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9211 return __rv.__i;
9212 }
9213
9214 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
9215 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
9216 {
9217 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9218 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9219 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9220 return __rv.__i;
9221 }
9222
9223 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
9224 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
9225 {
9226 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9227 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9228 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9229 return __rv.__i;
9230 }
9231
9232 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
9233 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
9234 {
9235 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9236 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9237 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9238 return __rv.__i;
9239 }
9240
9241 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
9242 vld2_dup_s8 (const int8_t * __a)
9243 {
9244 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9245 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9246 return __rv.__i;
9247 }
9248
9249 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
9250 vld2_dup_s16 (const int16_t * __a)
9251 {
9252 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9253 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9254 return __rv.__i;
9255 }
9256
9257 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
9258 vld2_dup_s32 (const int32_t * __a)
9259 {
9260 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9261 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9262 return __rv.__i;
9263 }
9264
9265 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
9266 vld2_dup_f32 (const float32_t * __a)
9267 {
9268 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9269 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
9270 return __rv.__i;
9271 }
9272
9273 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
9274 vld2_dup_u8 (const uint8_t * __a)
9275 {
9276 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9277 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9278 return __rv.__i;
9279 }
9280
9281 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
9282 vld2_dup_u16 (const uint16_t * __a)
9283 {
9284 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9285 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9286 return __rv.__i;
9287 }
9288
9289 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
9290 vld2_dup_u32 (const uint32_t * __a)
9291 {
9292 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9293 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9294 return __rv.__i;
9295 }
9296
9297 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
9298 vld2_dup_p8 (const poly8_t * __a)
9299 {
9300 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9301 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9302 return __rv.__i;
9303 }
9304
9305 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9306 vld2_dup_p16 (const poly16_t * __a)
9307 {
9308 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9309 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9310 return __rv.__i;
9311 }
9312
9313 #ifdef __ARM_FEATURE_CRYPTO
9314 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
9315 vld2_dup_p64 (const poly64_t * __a)
9316 {
9317 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9318 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9319 return __rv.__i;
9320 }
9321
9322 #endif
9323 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
9324 vld2_dup_s64 (const int64_t * __a)
9325 {
9326 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9327 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9328 return __rv.__i;
9329 }
9330
9331 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
9332 vld2_dup_u64 (const uint64_t * __a)
9333 {
9334 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9335 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9336 return __rv.__i;
9337 }
9338
9339 __extension__ static __inline void __attribute__ ((__always_inline__))
9340 vst2_s8 (int8_t * __a, int8x8x2_t __b)
9341 {
9342 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9343 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9344 }
9345
9346 __extension__ static __inline void __attribute__ ((__always_inline__))
9347 vst2_s16 (int16_t * __a, int16x4x2_t __b)
9348 {
9349 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9350 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9351 }
9352
9353 __extension__ static __inline void __attribute__ ((__always_inline__))
9354 vst2_s32 (int32_t * __a, int32x2x2_t __b)
9355 {
9356 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9357 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9358 }
9359
9360 __extension__ static __inline void __attribute__ ((__always_inline__))
9361 vst2_f32 (float32_t * __a, float32x2x2_t __b)
9362 {
9363 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9364 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
9365 }
9366
9367 __extension__ static __inline void __attribute__ ((__always_inline__))
9368 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
9369 {
9370 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9371 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9372 }
9373
9374 __extension__ static __inline void __attribute__ ((__always_inline__))
9375 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
9376 {
9377 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9378 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9379 }
9380
9381 __extension__ static __inline void __attribute__ ((__always_inline__))
9382 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
9383 {
9384 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9385 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9386 }
9387
9388 __extension__ static __inline void __attribute__ ((__always_inline__))
9389 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
9390 {
9391 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9392 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9393 }
9394
9395 __extension__ static __inline void __attribute__ ((__always_inline__))
9396 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
9397 {
9398 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9399 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9400 }
9401
9402 #ifdef __ARM_FEATURE_CRYPTO
9403 __extension__ static __inline void __attribute__ ((__always_inline__))
9404 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
9405 {
9406 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9407 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9408 }
9409
9410 #endif
9411 __extension__ static __inline void __attribute__ ((__always_inline__))
9412 vst2_s64 (int64_t * __a, int64x1x2_t __b)
9413 {
9414 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9415 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9416 }
9417
9418 __extension__ static __inline void __attribute__ ((__always_inline__))
9419 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
9420 {
9421 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9422 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9423 }
9424
9425 __extension__ static __inline void __attribute__ ((__always_inline__))
9426 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
9427 {
9428 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9429 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9430 }
9431
9432 __extension__ static __inline void __attribute__ ((__always_inline__))
9433 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
9434 {
9435 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9436 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9437 }
9438
9439 __extension__ static __inline void __attribute__ ((__always_inline__))
9440 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
9441 {
9442 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9443 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9444 }
9445
9446 __extension__ static __inline void __attribute__ ((__always_inline__))
9447 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
9448 {
9449 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9450 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
9451 }
9452
9453 __extension__ static __inline void __attribute__ ((__always_inline__))
9454 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
9455 {
9456 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9457 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9458 }
9459
9460 __extension__ static __inline void __attribute__ ((__always_inline__))
9461 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
9462 {
9463 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9464 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9465 }
9466
9467 __extension__ static __inline void __attribute__ ((__always_inline__))
9468 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
9469 {
9470 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9471 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9472 }
9473
9474 __extension__ static __inline void __attribute__ ((__always_inline__))
9475 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
9476 {
9477 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9478 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9479 }
9480
9481 __extension__ static __inline void __attribute__ ((__always_inline__))
9482 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
9483 {
9484 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9485 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9486 }
9487
9488 __extension__ static __inline void __attribute__ ((__always_inline__))
9489 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
9490 {
9491 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9492 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9493 }
9494
9495 __extension__ static __inline void __attribute__ ((__always_inline__))
9496 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
9497 {
9498 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9499 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9500 }
9501
9502 __extension__ static __inline void __attribute__ ((__always_inline__))
9503 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
9504 {
9505 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9506 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9507 }
9508
9509 __extension__ static __inline void __attribute__ ((__always_inline__))
9510 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
9511 {
9512 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9513 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9514 }
9515
9516 __extension__ static __inline void __attribute__ ((__always_inline__))
9517 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
9518 {
9519 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9520 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9521 }
9522
9523 __extension__ static __inline void __attribute__ ((__always_inline__))
9524 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
9525 {
9526 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9527 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9528 }
9529
9530 __extension__ static __inline void __attribute__ ((__always_inline__))
9531 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
9532 {
9533 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9534 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9535 }
9536
9537 __extension__ static __inline void __attribute__ ((__always_inline__))
9538 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
9539 {
9540 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9541 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9542 }
9543
9544 __extension__ static __inline void __attribute__ ((__always_inline__))
9545 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
9546 {
9547 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9548 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9549 }
9550
9551 __extension__ static __inline void __attribute__ ((__always_inline__))
9552 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
9553 {
9554 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9555 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9556 }
9557
9558 __extension__ static __inline void __attribute__ ((__always_inline__))
9559 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
9560 {
9561 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9562 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9563 }
9564
9565 __extension__ static __inline void __attribute__ ((__always_inline__))
9566 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
9567 {
9568 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9569 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9570 }
9571
9572 __extension__ static __inline void __attribute__ ((__always_inline__))
9573 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
9574 {
9575 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9576 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9577 }
9578
9579 __extension__ static __inline void __attribute__ ((__always_inline__))
9580 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
9581 {
9582 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9583 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9584 }
9585
9586 __extension__ static __inline void __attribute__ ((__always_inline__))
9587 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
9588 {
9589 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9590 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9591 }
9592
9593 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9594 vld3_s8 (const int8_t * __a)
9595 {
9596 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9597 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9598 return __rv.__i;
9599 }
9600
9601 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9602 vld3_s16 (const int16_t * __a)
9603 {
9604 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9605 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9606 return __rv.__i;
9607 }
9608
9609 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9610 vld3_s32 (const int32_t * __a)
9611 {
9612 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9613 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
9614 return __rv.__i;
9615 }
9616
9617 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9618 vld3_f32 (const float32_t * __a)
9619 {
9620 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9621 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
9622 return __rv.__i;
9623 }
9624
9625 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9626 vld3_u8 (const uint8_t * __a)
9627 {
9628 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9629 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9630 return __rv.__i;
9631 }
9632
9633 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9634 vld3_u16 (const uint16_t * __a)
9635 {
9636 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9637 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9638 return __rv.__i;
9639 }
9640
9641 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9642 vld3_u32 (const uint32_t * __a)
9643 {
9644 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9645 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
9646 return __rv.__i;
9647 }
9648
9649 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9650 vld3_p8 (const poly8_t * __a)
9651 {
9652 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9653 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9654 return __rv.__i;
9655 }
9656
9657 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9658 vld3_p16 (const poly16_t * __a)
9659 {
9660 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9661 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9662 return __rv.__i;
9663 }
9664
9665 #ifdef __ARM_FEATURE_CRYPTO
9666 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
9667 vld3_p64 (const poly64_t * __a)
9668 {
9669 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9670 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
9671 return __rv.__i;
9672 }
9673
9674 #endif
9675 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
9676 vld3_s64 (const int64_t * __a)
9677 {
9678 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9679 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
9680 return __rv.__i;
9681 }
9682
9683 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
9684 vld3_u64 (const uint64_t * __a)
9685 {
9686 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9687 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
9688 return __rv.__i;
9689 }
9690
9691 __extension__ static __inline int8x16x3_t __attribute__ ((__always_inline__))
9692 vld3q_s8 (const int8_t * __a)
9693 {
9694 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9695 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9696 return __rv.__i;
9697 }
9698
9699 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
9700 vld3q_s16 (const int16_t * __a)
9701 {
9702 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9703 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9704 return __rv.__i;
9705 }
9706
9707 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
9708 vld3q_s32 (const int32_t * __a)
9709 {
9710 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9711 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
9712 return __rv.__i;
9713 }
9714
9715 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
9716 vld3q_f32 (const float32_t * __a)
9717 {
9718 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9719 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
9720 return __rv.__i;
9721 }
9722
9723 __extension__ static __inline uint8x16x3_t __attribute__ ((__always_inline__))
9724 vld3q_u8 (const uint8_t * __a)
9725 {
9726 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9727 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9728 return __rv.__i;
9729 }
9730
9731 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
9732 vld3q_u16 (const uint16_t * __a)
9733 {
9734 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9735 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9736 return __rv.__i;
9737 }
9738
9739 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
9740 vld3q_u32 (const uint32_t * __a)
9741 {
9742 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9743 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
9744 return __rv.__i;
9745 }
9746
9747 __extension__ static __inline poly8x16x3_t __attribute__ ((__always_inline__))
9748 vld3q_p8 (const poly8_t * __a)
9749 {
9750 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9751 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9752 return __rv.__i;
9753 }
9754
9755 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
9756 vld3q_p16 (const poly16_t * __a)
9757 {
9758 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9759 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9760 return __rv.__i;
9761 }
9762
9763 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9764 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
9765 {
9766 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9767 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9768 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9769 return __rv.__i;
9770 }
9771
9772 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9773 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
9774 {
9775 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9776 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9777 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9778 return __rv.__i;
9779 }
9780
9781 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9782 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
9783 {
9784 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9785 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9786 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9787 return __rv.__i;
9788 }
9789
9790 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9791 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
9792 {
9793 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9794 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9795 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9796 return __rv.__i;
9797 }
9798
9799 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9800 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
9801 {
9802 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9803 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9804 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9805 return __rv.__i;
9806 }
9807
9808 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9809 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
9810 {
9811 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9812 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9813 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9814 return __rv.__i;
9815 }
9816
9817 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9818 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
9819 {
9820 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9821 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9822 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9823 return __rv.__i;
9824 }
9825
9826 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9827 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
9828 {
9829 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9830 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9831 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9832 return __rv.__i;
9833 }
9834
9835 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9836 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
9837 {
9838 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9839 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9840 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9841 return __rv.__i;
9842 }
9843
9844 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
9845 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
9846 {
9847 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9848 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9849 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9850 return __rv.__i;
9851 }
9852
9853 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
9854 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
9855 {
9856 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9857 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9858 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9859 return __rv.__i;
9860 }
9861
9862 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
9863 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
9864 {
9865 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9866 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9867 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9868 return __rv.__i;
9869 }
9870
9871 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
9872 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
9873 {
9874 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9875 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9876 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9877 return __rv.__i;
9878 }
9879
9880 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
9881 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
9882 {
9883 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9884 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9885 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9886 return __rv.__i;
9887 }
9888
9889 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
9890 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
9891 {
9892 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9893 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9894 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9895 return __rv.__i;
9896 }
9897
9898 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9899 vld3_dup_s8 (const int8_t * __a)
9900 {
9901 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9902 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9903 return __rv.__i;
9904 }
9905
9906 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9907 vld3_dup_s16 (const int16_t * __a)
9908 {
9909 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9910 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9911 return __rv.__i;
9912 }
9913
9914 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9915 vld3_dup_s32 (const int32_t * __a)
9916 {
9917 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9918 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
9919 return __rv.__i;
9920 }
9921
9922 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9923 vld3_dup_f32 (const float32_t * __a)
9924 {
9925 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9926 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
9927 return __rv.__i;
9928 }
9929
9930 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9931 vld3_dup_u8 (const uint8_t * __a)
9932 {
9933 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9934 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9935 return __rv.__i;
9936 }
9937
9938 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9939 vld3_dup_u16 (const uint16_t * __a)
9940 {
9941 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9942 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9943 return __rv.__i;
9944 }
9945
9946 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9947 vld3_dup_u32 (const uint32_t * __a)
9948 {
9949 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9950 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
9951 return __rv.__i;
9952 }
9953
9954 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9955 vld3_dup_p8 (const poly8_t * __a)
9956 {
9957 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9958 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9959 return __rv.__i;
9960 }
9961
9962 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9963 vld3_dup_p16 (const poly16_t * __a)
9964 {
9965 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9966 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9967 return __rv.__i;
9968 }
9969
9970 #ifdef __ARM_FEATURE_CRYPTO
9971 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
9972 vld3_dup_p64 (const poly64_t * __a)
9973 {
9974 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9975 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
9976 return __rv.__i;
9977 }
9978
9979 #endif
9980 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
9981 vld3_dup_s64 (const int64_t * __a)
9982 {
9983 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9984 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
9985 return __rv.__i;
9986 }
9987
9988 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
9989 vld3_dup_u64 (const uint64_t * __a)
9990 {
9991 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9992 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
9993 return __rv.__i;
9994 }
9995
9996 __extension__ static __inline void __attribute__ ((__always_inline__))
9997 vst3_s8 (int8_t * __a, int8x8x3_t __b)
9998 {
9999 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10000 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10001 }
10002
10003 __extension__ static __inline void __attribute__ ((__always_inline__))
10004 vst3_s16 (int16_t * __a, int16x4x3_t __b)
10005 {
10006 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10007 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10008 }
10009
10010 __extension__ static __inline void __attribute__ ((__always_inline__))
10011 vst3_s32 (int32_t * __a, int32x2x3_t __b)
10012 {
10013 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10014 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10015 }
10016
10017 __extension__ static __inline void __attribute__ ((__always_inline__))
10018 vst3_f32 (float32_t * __a, float32x2x3_t __b)
10019 {
10020 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10021 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
10022 }
10023
10024 __extension__ static __inline void __attribute__ ((__always_inline__))
10025 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
10026 {
10027 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10028 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10029 }
10030
10031 __extension__ static __inline void __attribute__ ((__always_inline__))
10032 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
10033 {
10034 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10035 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10036 }
10037
10038 __extension__ static __inline void __attribute__ ((__always_inline__))
10039 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
10040 {
10041 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10042 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10043 }
10044
10045 __extension__ static __inline void __attribute__ ((__always_inline__))
10046 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
10047 {
10048 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10049 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10050 }
10051
10052 __extension__ static __inline void __attribute__ ((__always_inline__))
10053 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
10054 {
10055 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10056 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10057 }
10058
10059 #ifdef __ARM_FEATURE_CRYPTO
10060 __extension__ static __inline void __attribute__ ((__always_inline__))
10061 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
10062 {
10063 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10064 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10065 }
10066
10067 #endif
10068 __extension__ static __inline void __attribute__ ((__always_inline__))
10069 vst3_s64 (int64_t * __a, int64x1x3_t __b)
10070 {
10071 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10072 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10073 }
10074
10075 __extension__ static __inline void __attribute__ ((__always_inline__))
10076 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
10077 {
10078 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10079 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10080 }
10081
10082 __extension__ static __inline void __attribute__ ((__always_inline__))
10083 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
10084 {
10085 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10086 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10087 }
10088
10089 __extension__ static __inline void __attribute__ ((__always_inline__))
10090 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
10091 {
10092 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10093 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10094 }
10095
10096 __extension__ static __inline void __attribute__ ((__always_inline__))
10097 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
10098 {
10099 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10100 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10101 }
10102
10103 __extension__ static __inline void __attribute__ ((__always_inline__))
10104 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
10105 {
10106 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10107 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
10108 }
10109
10110 __extension__ static __inline void __attribute__ ((__always_inline__))
10111 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
10112 {
10113 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10114 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10115 }
10116
10117 __extension__ static __inline void __attribute__ ((__always_inline__))
10118 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
10119 {
10120 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10121 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10122 }
10123
10124 __extension__ static __inline void __attribute__ ((__always_inline__))
10125 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
10126 {
10127 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10128 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10129 }
10130
10131 __extension__ static __inline void __attribute__ ((__always_inline__))
10132 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
10133 {
10134 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10135 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10136 }
10137
10138 __extension__ static __inline void __attribute__ ((__always_inline__))
10139 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
10140 {
10141 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10142 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10143 }
10144
10145 __extension__ static __inline void __attribute__ ((__always_inline__))
10146 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
10147 {
10148 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10149 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10150 }
10151
10152 __extension__ static __inline void __attribute__ ((__always_inline__))
10153 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
10154 {
10155 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10156 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10157 }
10158
10159 __extension__ static __inline void __attribute__ ((__always_inline__))
10160 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
10161 {
10162 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10163 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10164 }
10165
10166 __extension__ static __inline void __attribute__ ((__always_inline__))
10167 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
10168 {
10169 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10170 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10171 }
10172
10173 __extension__ static __inline void __attribute__ ((__always_inline__))
10174 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
10175 {
10176 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10177 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10178 }
10179
10180 __extension__ static __inline void __attribute__ ((__always_inline__))
10181 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
10182 {
10183 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10184 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10185 }
10186
10187 __extension__ static __inline void __attribute__ ((__always_inline__))
10188 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
10189 {
10190 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10191 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10192 }
10193
10194 __extension__ static __inline void __attribute__ ((__always_inline__))
10195 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
10196 {
10197 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10198 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10199 }
10200
10201 __extension__ static __inline void __attribute__ ((__always_inline__))
10202 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
10203 {
10204 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10205 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10206 }
10207
10208 __extension__ static __inline void __attribute__ ((__always_inline__))
10209 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
10210 {
10211 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10212 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10213 }
10214
10215 __extension__ static __inline void __attribute__ ((__always_inline__))
10216 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
10217 {
10218 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10219 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10220 }
10221
10222 __extension__ static __inline void __attribute__ ((__always_inline__))
10223 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
10224 {
10225 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10226 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10227 }
10228
10229 __extension__ static __inline void __attribute__ ((__always_inline__))
10230 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
10231 {
10232 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10233 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10234 }
10235
10236 __extension__ static __inline void __attribute__ ((__always_inline__))
10237 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
10238 {
10239 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10240 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10241 }
10242
10243 __extension__ static __inline void __attribute__ ((__always_inline__))
10244 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
10245 {
10246 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10247 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10248 }
10249
10250 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10251 vld4_s8 (const int8_t * __a)
10252 {
10253 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10254 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10255 return __rv.__i;
10256 }
10257
10258 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10259 vld4_s16 (const int16_t * __a)
10260 {
10261 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10262 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10263 return __rv.__i;
10264 }
10265
10266 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10267 vld4_s32 (const int32_t * __a)
10268 {
10269 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10270 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10271 return __rv.__i;
10272 }
10273
10274 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10275 vld4_f32 (const float32_t * __a)
10276 {
10277 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10278 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
10279 return __rv.__i;
10280 }
10281
10282 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10283 vld4_u8 (const uint8_t * __a)
10284 {
10285 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10286 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10287 return __rv.__i;
10288 }
10289
10290 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10291 vld4_u16 (const uint16_t * __a)
10292 {
10293 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10294 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10295 return __rv.__i;
10296 }
10297
10298 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10299 vld4_u32 (const uint32_t * __a)
10300 {
10301 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10302 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10303 return __rv.__i;
10304 }
10305
10306 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10307 vld4_p8 (const poly8_t * __a)
10308 {
10309 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10310 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10311 return __rv.__i;
10312 }
10313
10314 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10315 vld4_p16 (const poly16_t * __a)
10316 {
10317 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10318 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10319 return __rv.__i;
10320 }
10321
10322 #ifdef __ARM_FEATURE_CRYPTO
10323 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
10324 vld4_p64 (const poly64_t * __a)
10325 {
10326 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10327 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10328 return __rv.__i;
10329 }
10330
10331 #endif
10332 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
10333 vld4_s64 (const int64_t * __a)
10334 {
10335 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10336 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10337 return __rv.__i;
10338 }
10339
10340 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
10341 vld4_u64 (const uint64_t * __a)
10342 {
10343 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10344 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10345 return __rv.__i;
10346 }
10347
10348 __extension__ static __inline int8x16x4_t __attribute__ ((__always_inline__))
10349 vld4q_s8 (const int8_t * __a)
10350 {
10351 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10352 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10353 return __rv.__i;
10354 }
10355
10356 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
10357 vld4q_s16 (const int16_t * __a)
10358 {
10359 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10360 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10361 return __rv.__i;
10362 }
10363
10364 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
10365 vld4q_s32 (const int32_t * __a)
10366 {
10367 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10368 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10369 return __rv.__i;
10370 }
10371
10372 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
10373 vld4q_f32 (const float32_t * __a)
10374 {
10375 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10376 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
10377 return __rv.__i;
10378 }
10379
10380 __extension__ static __inline uint8x16x4_t __attribute__ ((__always_inline__))
10381 vld4q_u8 (const uint8_t * __a)
10382 {
10383 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10384 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10385 return __rv.__i;
10386 }
10387
10388 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
10389 vld4q_u16 (const uint16_t * __a)
10390 {
10391 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10392 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10393 return __rv.__i;
10394 }
10395
10396 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
10397 vld4q_u32 (const uint32_t * __a)
10398 {
10399 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10400 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10401 return __rv.__i;
10402 }
10403
10404 __extension__ static __inline poly8x16x4_t __attribute__ ((__always_inline__))
10405 vld4q_p8 (const poly8_t * __a)
10406 {
10407 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10408 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10409 return __rv.__i;
10410 }
10411
10412 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
10413 vld4q_p16 (const poly16_t * __a)
10414 {
10415 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10416 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10417 return __rv.__i;
10418 }
10419
10420 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10421 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
10422 {
10423 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10424 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10425 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10426 return __rv.__i;
10427 }
10428
10429 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10430 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
10431 {
10432 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10433 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10434 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10435 return __rv.__i;
10436 }
10437
10438 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10439 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
10440 {
10441 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10442 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10443 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10444 return __rv.__i;
10445 }
10446
10447 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10448 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
10449 {
10450 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10451 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10452 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10453 return __rv.__i;
10454 }
10455
10456 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10457 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
10458 {
10459 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10460 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10461 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10462 return __rv.__i;
10463 }
10464
10465 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10466 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
10467 {
10468 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10469 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10470 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10471 return __rv.__i;
10472 }
10473
10474 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10475 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
10476 {
10477 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10478 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10479 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10480 return __rv.__i;
10481 }
10482
10483 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10484 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
10485 {
10486 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10487 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10488 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10489 return __rv.__i;
10490 }
10491
10492 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10493 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
10494 {
10495 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10496 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10497 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10498 return __rv.__i;
10499 }
10500
10501 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
10502 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
10503 {
10504 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10505 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10506 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10507 return __rv.__i;
10508 }
10509
10510 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
10511 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
10512 {
10513 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10514 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10515 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10516 return __rv.__i;
10517 }
10518
10519 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
10520 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
10521 {
10522 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10523 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10524 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10525 return __rv.__i;
10526 }
10527
10528 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
10529 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
10530 {
10531 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10532 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10533 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10534 return __rv.__i;
10535 }
10536
10537 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
10538 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
10539 {
10540 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10541 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10542 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10543 return __rv.__i;
10544 }
10545
10546 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
10547 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
10548 {
10549 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10550 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10551 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10552 return __rv.__i;
10553 }
10554
10555 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10556 vld4_dup_s8 (const int8_t * __a)
10557 {
10558 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10559 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10560 return __rv.__i;
10561 }
10562
10563 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10564 vld4_dup_s16 (const int16_t * __a)
10565 {
10566 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10567 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10568 return __rv.__i;
10569 }
10570
10571 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10572 vld4_dup_s32 (const int32_t * __a)
10573 {
10574 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10575 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10576 return __rv.__i;
10577 }
10578
10579 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10580 vld4_dup_f32 (const float32_t * __a)
10581 {
10582 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10583 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
10584 return __rv.__i;
10585 }
10586
10587 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10588 vld4_dup_u8 (const uint8_t * __a)
10589 {
10590 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10591 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10592 return __rv.__i;
10593 }
10594
10595 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10596 vld4_dup_u16 (const uint16_t * __a)
10597 {
10598 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10599 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10600 return __rv.__i;
10601 }
10602
10603 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10604 vld4_dup_u32 (const uint32_t * __a)
10605 {
10606 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10607 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10608 return __rv.__i;
10609 }
10610
10611 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10612 vld4_dup_p8 (const poly8_t * __a)
10613 {
10614 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10615 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10616 return __rv.__i;
10617 }
10618
10619 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10620 vld4_dup_p16 (const poly16_t * __a)
10621 {
10622 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10623 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10624 return __rv.__i;
10625 }
10626
10627 #ifdef __ARM_FEATURE_CRYPTO
10628 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
10629 vld4_dup_p64 (const poly64_t * __a)
10630 {
10631 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10632 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
10633 return __rv.__i;
10634 }
10635
10636 #endif
10637 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
10638 vld4_dup_s64 (const int64_t * __a)
10639 {
10640 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10641 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
10642 return __rv.__i;
10643 }
10644
10645 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
10646 vld4_dup_u64 (const uint64_t * __a)
10647 {
10648 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10649 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
10650 return __rv.__i;
10651 }
10652
10653 __extension__ static __inline void __attribute__ ((__always_inline__))
10654 vst4_s8 (int8_t * __a, int8x8x4_t __b)
10655 {
10656 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10657 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10658 }
10659
10660 __extension__ static __inline void __attribute__ ((__always_inline__))
10661 vst4_s16 (int16_t * __a, int16x4x4_t __b)
10662 {
10663 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10664 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10665 }
10666
10667 __extension__ static __inline void __attribute__ ((__always_inline__))
10668 vst4_s32 (int32_t * __a, int32x2x4_t __b)
10669 {
10670 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10671 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
10672 }
10673
10674 __extension__ static __inline void __attribute__ ((__always_inline__))
10675 vst4_f32 (float32_t * __a, float32x2x4_t __b)
10676 {
10677 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10678 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
10679 }
10680
10681 __extension__ static __inline void __attribute__ ((__always_inline__))
10682 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
10683 {
10684 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10685 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10686 }
10687
10688 __extension__ static __inline void __attribute__ ((__always_inline__))
10689 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
10690 {
10691 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10692 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10693 }
10694
10695 __extension__ static __inline void __attribute__ ((__always_inline__))
10696 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
10697 {
10698 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10699 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
10700 }
10701
10702 __extension__ static __inline void __attribute__ ((__always_inline__))
10703 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
10704 {
10705 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10706 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10707 }
10708
10709 __extension__ static __inline void __attribute__ ((__always_inline__))
10710 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
10711 {
10712 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10713 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10714 }
10715
10716 #ifdef __ARM_FEATURE_CRYPTO
10717 __extension__ static __inline void __attribute__ ((__always_inline__))
10718 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
10719 {
10720 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10721 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
10722 }
10723
10724 #endif
10725 __extension__ static __inline void __attribute__ ((__always_inline__))
10726 vst4_s64 (int64_t * __a, int64x1x4_t __b)
10727 {
10728 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10729 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
10730 }
10731
10732 __extension__ static __inline void __attribute__ ((__always_inline__))
10733 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
10734 {
10735 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10736 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
10737 }
10738
10739 __extension__ static __inline void __attribute__ ((__always_inline__))
10740 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
10741 {
10742 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10743 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10744 }
10745
10746 __extension__ static __inline void __attribute__ ((__always_inline__))
10747 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
10748 {
10749 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10750 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10751 }
10752
10753 __extension__ static __inline void __attribute__ ((__always_inline__))
10754 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
10755 {
10756 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10757 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
10758 }
10759
10760 __extension__ static __inline void __attribute__ ((__always_inline__))
10761 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
10762 {
10763 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10764 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
10765 }
10766
10767 __extension__ static __inline void __attribute__ ((__always_inline__))
10768 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
10769 {
10770 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10771 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10772 }
10773
10774 __extension__ static __inline void __attribute__ ((__always_inline__))
10775 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
10776 {
10777 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10778 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10779 }
10780
10781 __extension__ static __inline void __attribute__ ((__always_inline__))
10782 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
10783 {
10784 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10785 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
10786 }
10787
10788 __extension__ static __inline void __attribute__ ((__always_inline__))
10789 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
10790 {
10791 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10792 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10793 }
10794
10795 __extension__ static __inline void __attribute__ ((__always_inline__))
10796 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
10797 {
10798 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10799 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10800 }
10801
10802 __extension__ static __inline void __attribute__ ((__always_inline__))
10803 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
10804 {
10805 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10806 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10807 }
10808
10809 __extension__ static __inline void __attribute__ ((__always_inline__))
10810 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
10811 {
10812 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10813 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10814 }
10815
10816 __extension__ static __inline void __attribute__ ((__always_inline__))
10817 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
10818 {
10819 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10820 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10821 }
10822
10823 __extension__ static __inline void __attribute__ ((__always_inline__))
10824 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
10825 {
10826 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10827 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10828 }
10829
10830 __extension__ static __inline void __attribute__ ((__always_inline__))
10831 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
10832 {
10833 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10834 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10835 }
10836
10837 __extension__ static __inline void __attribute__ ((__always_inline__))
10838 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
10839 {
10840 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10841 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10842 }
10843
10844 __extension__ static __inline void __attribute__ ((__always_inline__))
10845 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
10846 {
10847 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10848 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10849 }
10850
10851 __extension__ static __inline void __attribute__ ((__always_inline__))
10852 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
10853 {
10854 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10855 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10856 }
10857
10858 __extension__ static __inline void __attribute__ ((__always_inline__))
10859 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
10860 {
10861 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10862 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10863 }
10864
10865 __extension__ static __inline void __attribute__ ((__always_inline__))
10866 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
10867 {
10868 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10869 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10870 }
10871
10872 __extension__ static __inline void __attribute__ ((__always_inline__))
10873 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
10874 {
10875 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10876 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10877 }
10878
10879 __extension__ static __inline void __attribute__ ((__always_inline__))
10880 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
10881 {
10882 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10883 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10884 }
10885
10886 __extension__ static __inline void __attribute__ ((__always_inline__))
10887 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
10888 {
10889 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10890 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10891 }
10892
10893 __extension__ static __inline void __attribute__ ((__always_inline__))
10894 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
10895 {
10896 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10897 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10898 }
10899
10900 __extension__ static __inline void __attribute__ ((__always_inline__))
10901 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
10902 {
10903 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10904 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10905 }
10906
10907 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10908 vand_s8 (int8x8_t __a, int8x8_t __b)
10909 {
10910 return (int8x8_t)__builtin_neon_vandv8qi (__a, __b, 1);
10911 }
10912
10913 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10914 vand_s16 (int16x4_t __a, int16x4_t __b)
10915 {
10916 return (int16x4_t)__builtin_neon_vandv4hi (__a, __b, 1);
10917 }
10918
10919 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10920 vand_s32 (int32x2_t __a, int32x2_t __b)
10921 {
10922 return (int32x2_t)__builtin_neon_vandv2si (__a, __b, 1);
10923 }
10924
10925 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10926 vand_u8 (uint8x8_t __a, uint8x8_t __b)
10927 {
10928 return (uint8x8_t)__builtin_neon_vandv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10929 }
10930
10931 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10932 vand_u16 (uint16x4_t __a, uint16x4_t __b)
10933 {
10934 return (uint16x4_t)__builtin_neon_vandv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10935 }
10936
10937 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10938 vand_u32 (uint32x2_t __a, uint32x2_t __b)
10939 {
10940 return (uint32x2_t)__builtin_neon_vandv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10941 }
10942
10943 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10944 vand_s64 (int64x1_t __a, int64x1_t __b)
10945 {
10946 return (int64x1_t)__builtin_neon_vanddi (__a, __b, 1);
10947 }
10948
10949 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10950 vand_u64 (uint64x1_t __a, uint64x1_t __b)
10951 {
10952 return (uint64x1_t)__builtin_neon_vanddi ((int64x1_t) __a, (int64x1_t) __b, 0);
10953 }
10954
10955 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10956 vandq_s8 (int8x16_t __a, int8x16_t __b)
10957 {
10958 return (int8x16_t)__builtin_neon_vandv16qi (__a, __b, 1);
10959 }
10960
10961 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10962 vandq_s16 (int16x8_t __a, int16x8_t __b)
10963 {
10964 return (int16x8_t)__builtin_neon_vandv8hi (__a, __b, 1);
10965 }
10966
10967 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10968 vandq_s32 (int32x4_t __a, int32x4_t __b)
10969 {
10970 return (int32x4_t)__builtin_neon_vandv4si (__a, __b, 1);
10971 }
10972
10973 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10974 vandq_s64 (int64x2_t __a, int64x2_t __b)
10975 {
10976 return (int64x2_t)__builtin_neon_vandv2di (__a, __b, 1);
10977 }
10978
10979 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10980 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
10981 {
10982 return (uint8x16_t)__builtin_neon_vandv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10983 }
10984
10985 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10986 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
10987 {
10988 return (uint16x8_t)__builtin_neon_vandv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10989 }
10990
10991 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10992 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
10993 {
10994 return (uint32x4_t)__builtin_neon_vandv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10995 }
10996
10997 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10998 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
10999 {
11000 return (uint64x2_t)__builtin_neon_vandv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11001 }
11002
11003 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11004 vorr_s8 (int8x8_t __a, int8x8_t __b)
11005 {
11006 return (int8x8_t)__builtin_neon_vorrv8qi (__a, __b, 1);
11007 }
11008
11009 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11010 vorr_s16 (int16x4_t __a, int16x4_t __b)
11011 {
11012 return (int16x4_t)__builtin_neon_vorrv4hi (__a, __b, 1);
11013 }
11014
11015 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11016 vorr_s32 (int32x2_t __a, int32x2_t __b)
11017 {
11018 return (int32x2_t)__builtin_neon_vorrv2si (__a, __b, 1);
11019 }
11020
11021 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11022 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
11023 {
11024 return (uint8x8_t)__builtin_neon_vorrv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11025 }
11026
11027 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11028 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
11029 {
11030 return (uint16x4_t)__builtin_neon_vorrv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11031 }
11032
11033 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11034 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
11035 {
11036 return (uint32x2_t)__builtin_neon_vorrv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11037 }
11038
11039 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11040 vorr_s64 (int64x1_t __a, int64x1_t __b)
11041 {
11042 return (int64x1_t)__builtin_neon_vorrdi (__a, __b, 1);
11043 }
11044
11045 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11046 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
11047 {
11048 return (uint64x1_t)__builtin_neon_vorrdi ((int64x1_t) __a, (int64x1_t) __b, 0);
11049 }
11050
11051 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11052 vorrq_s8 (int8x16_t __a, int8x16_t __b)
11053 {
11054 return (int8x16_t)__builtin_neon_vorrv16qi (__a, __b, 1);
11055 }
11056
11057 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11058 vorrq_s16 (int16x8_t __a, int16x8_t __b)
11059 {
11060 return (int16x8_t)__builtin_neon_vorrv8hi (__a, __b, 1);
11061 }
11062
11063 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11064 vorrq_s32 (int32x4_t __a, int32x4_t __b)
11065 {
11066 return (int32x4_t)__builtin_neon_vorrv4si (__a, __b, 1);
11067 }
11068
11069 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11070 vorrq_s64 (int64x2_t __a, int64x2_t __b)
11071 {
11072 return (int64x2_t)__builtin_neon_vorrv2di (__a, __b, 1);
11073 }
11074
11075 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11076 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
11077 {
11078 return (uint8x16_t)__builtin_neon_vorrv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11079 }
11080
11081 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11082 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
11083 {
11084 return (uint16x8_t)__builtin_neon_vorrv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11085 }
11086
11087 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11088 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
11089 {
11090 return (uint32x4_t)__builtin_neon_vorrv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11091 }
11092
11093 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11094 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
11095 {
11096 return (uint64x2_t)__builtin_neon_vorrv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11097 }
11098
11099 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11100 veor_s8 (int8x8_t __a, int8x8_t __b)
11101 {
11102 return (int8x8_t)__builtin_neon_veorv8qi (__a, __b, 1);
11103 }
11104
11105 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11106 veor_s16 (int16x4_t __a, int16x4_t __b)
11107 {
11108 return (int16x4_t)__builtin_neon_veorv4hi (__a, __b, 1);
11109 }
11110
11111 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11112 veor_s32 (int32x2_t __a, int32x2_t __b)
11113 {
11114 return (int32x2_t)__builtin_neon_veorv2si (__a, __b, 1);
11115 }
11116
11117 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11118 veor_u8 (uint8x8_t __a, uint8x8_t __b)
11119 {
11120 return (uint8x8_t)__builtin_neon_veorv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11121 }
11122
11123 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11124 veor_u16 (uint16x4_t __a, uint16x4_t __b)
11125 {
11126 return (uint16x4_t)__builtin_neon_veorv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11127 }
11128
11129 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11130 veor_u32 (uint32x2_t __a, uint32x2_t __b)
11131 {
11132 return (uint32x2_t)__builtin_neon_veorv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11133 }
11134
11135 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11136 veor_s64 (int64x1_t __a, int64x1_t __b)
11137 {
11138 return (int64x1_t)__builtin_neon_veordi (__a, __b, 1);
11139 }
11140
11141 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11142 veor_u64 (uint64x1_t __a, uint64x1_t __b)
11143 {
11144 return (uint64x1_t)__builtin_neon_veordi ((int64x1_t) __a, (int64x1_t) __b, 0);
11145 }
11146
11147 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11148 veorq_s8 (int8x16_t __a, int8x16_t __b)
11149 {
11150 return (int8x16_t)__builtin_neon_veorv16qi (__a, __b, 1);
11151 }
11152
11153 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11154 veorq_s16 (int16x8_t __a, int16x8_t __b)
11155 {
11156 return (int16x8_t)__builtin_neon_veorv8hi (__a, __b, 1);
11157 }
11158
11159 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11160 veorq_s32 (int32x4_t __a, int32x4_t __b)
11161 {
11162 return (int32x4_t)__builtin_neon_veorv4si (__a, __b, 1);
11163 }
11164
11165 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11166 veorq_s64 (int64x2_t __a, int64x2_t __b)
11167 {
11168 return (int64x2_t)__builtin_neon_veorv2di (__a, __b, 1);
11169 }
11170
11171 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11172 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
11173 {
11174 return (uint8x16_t)__builtin_neon_veorv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11175 }
11176
11177 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11178 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
11179 {
11180 return (uint16x8_t)__builtin_neon_veorv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11181 }
11182
11183 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11184 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
11185 {
11186 return (uint32x4_t)__builtin_neon_veorv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11187 }
11188
11189 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11190 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
11191 {
11192 return (uint64x2_t)__builtin_neon_veorv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11193 }
11194
11195 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11196 vbic_s8 (int8x8_t __a, int8x8_t __b)
11197 {
11198 return (int8x8_t)__builtin_neon_vbicv8qi (__a, __b, 1);
11199 }
11200
11201 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11202 vbic_s16 (int16x4_t __a, int16x4_t __b)
11203 {
11204 return (int16x4_t)__builtin_neon_vbicv4hi (__a, __b, 1);
11205 }
11206
11207 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11208 vbic_s32 (int32x2_t __a, int32x2_t __b)
11209 {
11210 return (int32x2_t)__builtin_neon_vbicv2si (__a, __b, 1);
11211 }
11212
11213 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11214 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
11215 {
11216 return (uint8x8_t)__builtin_neon_vbicv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11217 }
11218
11219 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11220 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
11221 {
11222 return (uint16x4_t)__builtin_neon_vbicv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11223 }
11224
11225 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11226 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
11227 {
11228 return (uint32x2_t)__builtin_neon_vbicv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11229 }
11230
11231 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11232 vbic_s64 (int64x1_t __a, int64x1_t __b)
11233 {
11234 return (int64x1_t)__builtin_neon_vbicdi (__a, __b, 1);
11235 }
11236
11237 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11238 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
11239 {
11240 return (uint64x1_t)__builtin_neon_vbicdi ((int64x1_t) __a, (int64x1_t) __b, 0);
11241 }
11242
11243 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11244 vbicq_s8 (int8x16_t __a, int8x16_t __b)
11245 {
11246 return (int8x16_t)__builtin_neon_vbicv16qi (__a, __b, 1);
11247 }
11248
11249 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11250 vbicq_s16 (int16x8_t __a, int16x8_t __b)
11251 {
11252 return (int16x8_t)__builtin_neon_vbicv8hi (__a, __b, 1);
11253 }
11254
11255 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11256 vbicq_s32 (int32x4_t __a, int32x4_t __b)
11257 {
11258 return (int32x4_t)__builtin_neon_vbicv4si (__a, __b, 1);
11259 }
11260
11261 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11262 vbicq_s64 (int64x2_t __a, int64x2_t __b)
11263 {
11264 return (int64x2_t)__builtin_neon_vbicv2di (__a, __b, 1);
11265 }
11266
11267 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11268 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
11269 {
11270 return (uint8x16_t)__builtin_neon_vbicv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11271 }
11272
11273 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11274 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
11275 {
11276 return (uint16x8_t)__builtin_neon_vbicv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11277 }
11278
11279 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11280 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
11281 {
11282 return (uint32x4_t)__builtin_neon_vbicv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11283 }
11284
11285 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11286 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
11287 {
11288 return (uint64x2_t)__builtin_neon_vbicv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11289 }
11290
11291 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11292 vorn_s8 (int8x8_t __a, int8x8_t __b)
11293 {
11294 return (int8x8_t)__builtin_neon_vornv8qi (__a, __b, 1);
11295 }
11296
11297 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11298 vorn_s16 (int16x4_t __a, int16x4_t __b)
11299 {
11300 return (int16x4_t)__builtin_neon_vornv4hi (__a, __b, 1);
11301 }
11302
11303 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11304 vorn_s32 (int32x2_t __a, int32x2_t __b)
11305 {
11306 return (int32x2_t)__builtin_neon_vornv2si (__a, __b, 1);
11307 }
11308
11309 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11310 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
11311 {
11312 return (uint8x8_t)__builtin_neon_vornv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11313 }
11314
11315 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11316 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
11317 {
11318 return (uint16x4_t)__builtin_neon_vornv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11319 }
11320
11321 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11322 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
11323 {
11324 return (uint32x2_t)__builtin_neon_vornv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11325 }
11326
11327 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11328 vorn_s64 (int64x1_t __a, int64x1_t __b)
11329 {
11330 return (int64x1_t)__builtin_neon_vorndi (__a, __b, 1);
11331 }
11332
11333 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11334 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
11335 {
11336 return (uint64x1_t)__builtin_neon_vorndi ((int64x1_t) __a, (int64x1_t) __b, 0);
11337 }
11338
11339 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11340 vornq_s8 (int8x16_t __a, int8x16_t __b)
11341 {
11342 return (int8x16_t)__builtin_neon_vornv16qi (__a, __b, 1);
11343 }
11344
11345 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11346 vornq_s16 (int16x8_t __a, int16x8_t __b)
11347 {
11348 return (int16x8_t)__builtin_neon_vornv8hi (__a, __b, 1);
11349 }
11350
11351 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11352 vornq_s32 (int32x4_t __a, int32x4_t __b)
11353 {
11354 return (int32x4_t)__builtin_neon_vornv4si (__a, __b, 1);
11355 }
11356
11357 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11358 vornq_s64 (int64x2_t __a, int64x2_t __b)
11359 {
11360 return (int64x2_t)__builtin_neon_vornv2di (__a, __b, 1);
11361 }
11362
11363 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11364 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
11365 {
11366 return (uint8x16_t)__builtin_neon_vornv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11367 }
11368
11369 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11370 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
11371 {
11372 return (uint16x8_t)__builtin_neon_vornv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11373 }
11374
11375 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11376 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
11377 {
11378 return (uint32x4_t)__builtin_neon_vornv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11379 }
11380
11381 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11382 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
11383 {
11384 return (uint64x2_t)__builtin_neon_vornv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11385 }
11386
11387
11388 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11389 vreinterpret_p8_p16 (poly16x4_t __a)
11390 {
11391 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11392 }
11393
11394 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11395 vreinterpret_p8_f32 (float32x2_t __a)
11396 {
11397 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11398 }
11399
11400 #ifdef __ARM_FEATURE_CRYPTO
11401 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11402 vreinterpret_p8_p64 (poly64x1_t __a)
11403 {
11404 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11405 }
11406
11407 #endif
11408 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11409 vreinterpret_p8_s64 (int64x1_t __a)
11410 {
11411 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11412 }
11413
11414 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11415 vreinterpret_p8_u64 (uint64x1_t __a)
11416 {
11417 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11418 }
11419
11420 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11421 vreinterpret_p8_s8 (int8x8_t __a)
11422 {
11423 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
11424 }
11425
11426 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11427 vreinterpret_p8_s16 (int16x4_t __a)
11428 {
11429 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11430 }
11431
11432 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11433 vreinterpret_p8_s32 (int32x2_t __a)
11434 {
11435 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11436 }
11437
11438 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11439 vreinterpret_p8_u8 (uint8x8_t __a)
11440 {
11441 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11442 }
11443
11444 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11445 vreinterpret_p8_u16 (uint16x4_t __a)
11446 {
11447 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11448 }
11449
11450 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11451 vreinterpret_p8_u32 (uint32x2_t __a)
11452 {
11453 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11454 }
11455
11456 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11457 vreinterpret_p16_p8 (poly8x8_t __a)
11458 {
11459 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11460 }
11461
11462 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11463 vreinterpret_p16_f32 (float32x2_t __a)
11464 {
11465 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11466 }
11467
11468 #ifdef __ARM_FEATURE_CRYPTO
11469 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11470 vreinterpret_p16_p64 (poly64x1_t __a)
11471 {
11472 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11473 }
11474
11475 #endif
11476 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11477 vreinterpret_p16_s64 (int64x1_t __a)
11478 {
11479 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11480 }
11481
11482 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11483 vreinterpret_p16_u64 (uint64x1_t __a)
11484 {
11485 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11486 }
11487
11488 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11489 vreinterpret_p16_s8 (int8x8_t __a)
11490 {
11491 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11492 }
11493
11494 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11495 vreinterpret_p16_s16 (int16x4_t __a)
11496 {
11497 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
11498 }
11499
11500 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11501 vreinterpret_p16_s32 (int32x2_t __a)
11502 {
11503 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11504 }
11505
11506 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11507 vreinterpret_p16_u8 (uint8x8_t __a)
11508 {
11509 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11510 }
11511
11512 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11513 vreinterpret_p16_u16 (uint16x4_t __a)
11514 {
11515 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11516 }
11517
11518 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11519 vreinterpret_p16_u32 (uint32x2_t __a)
11520 {
11521 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11522 }
11523
11524 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11525 vreinterpret_f32_p8 (poly8x8_t __a)
11526 {
11527 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11528 }
11529
11530 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11531 vreinterpret_f32_p16 (poly16x4_t __a)
11532 {
11533 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11534 }
11535
11536 #ifdef __ARM_FEATURE_CRYPTO
11537 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11538 vreinterpret_f32_p64 (poly64x1_t __a)
11539 {
11540 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11541 }
11542
11543 #endif
11544 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11545 vreinterpret_f32_s64 (int64x1_t __a)
11546 {
11547 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11548 }
11549
11550 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11551 vreinterpret_f32_u64 (uint64x1_t __a)
11552 {
11553 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi ((int64x1_t) __a);
11554 }
11555
11556 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11557 vreinterpret_f32_s8 (int8x8_t __a)
11558 {
11559 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi (__a);
11560 }
11561
11562 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11563 vreinterpret_f32_s16 (int16x4_t __a)
11564 {
11565 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi (__a);
11566 }
11567
11568 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11569 vreinterpret_f32_s32 (int32x2_t __a)
11570 {
11571 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si (__a);
11572 }
11573
11574 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11575 vreinterpret_f32_u8 (uint8x8_t __a)
11576 {
11577 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11578 }
11579
11580 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11581 vreinterpret_f32_u16 (uint16x4_t __a)
11582 {
11583 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11584 }
11585
11586 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11587 vreinterpret_f32_u32 (uint32x2_t __a)
11588 {
11589 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si ((int32x2_t) __a);
11590 }
11591
11592 #ifdef __ARM_FEATURE_CRYPTO
11593 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11594 vreinterpret_p64_p8 (poly8x8_t __a)
11595 {
11596 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11597 }
11598
11599 #endif
11600 #ifdef __ARM_FEATURE_CRYPTO
11601 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11602 vreinterpret_p64_p16 (poly16x4_t __a)
11603 {
11604 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11605 }
11606
11607 #endif
11608 #ifdef __ARM_FEATURE_CRYPTO
11609 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11610 vreinterpret_p64_f32 (float32x2_t __a)
11611 {
11612 return (poly64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
11613 }
11614
11615 #endif
11616 #ifdef __ARM_FEATURE_CRYPTO
11617 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11618 vreinterpret_p64_s64 (int64x1_t __a)
11619 {
11620 return (poly64x1_t)__builtin_neon_vreinterpretdidi (__a);
11621 }
11622
11623 #endif
11624 #ifdef __ARM_FEATURE_CRYPTO
11625 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11626 vreinterpret_p64_u64 (uint64x1_t __a)
11627 {
11628 return (poly64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
11629 }
11630
11631 #endif
11632 #ifdef __ARM_FEATURE_CRYPTO
11633 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11634 vreinterpret_p64_s8 (int8x8_t __a)
11635 {
11636 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
11637 }
11638
11639 #endif
11640 #ifdef __ARM_FEATURE_CRYPTO
11641 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11642 vreinterpret_p64_s16 (int16x4_t __a)
11643 {
11644 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
11645 }
11646
11647 #endif
11648 #ifdef __ARM_FEATURE_CRYPTO
11649 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11650 vreinterpret_p64_s32 (int32x2_t __a)
11651 {
11652 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
11653 }
11654
11655 #endif
11656 #ifdef __ARM_FEATURE_CRYPTO
11657 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11658 vreinterpret_p64_u8 (uint8x8_t __a)
11659 {
11660 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11661 }
11662
11663 #endif
11664 #ifdef __ARM_FEATURE_CRYPTO
11665 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11666 vreinterpret_p64_u16 (uint16x4_t __a)
11667 {
11668 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11669 }
11670
11671 #endif
11672 #ifdef __ARM_FEATURE_CRYPTO
11673 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
11674 vreinterpret_p64_u32 (uint32x2_t __a)
11675 {
11676 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
11677 }
11678
11679 #endif
11680 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11681 vreinterpret_s64_p8 (poly8x8_t __a)
11682 {
11683 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11684 }
11685
11686 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11687 vreinterpret_s64_p16 (poly16x4_t __a)
11688 {
11689 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11690 }
11691
11692 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11693 vreinterpret_s64_f32 (float32x2_t __a)
11694 {
11695 return (int64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
11696 }
11697
11698 #ifdef __ARM_FEATURE_CRYPTO
11699 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11700 vreinterpret_s64_p64 (poly64x1_t __a)
11701 {
11702 return (int64x1_t)__builtin_neon_vreinterpretdidi (__a);
11703 }
11704
11705 #endif
11706 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11707 vreinterpret_s64_u64 (uint64x1_t __a)
11708 {
11709 return (int64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
11710 }
11711
11712 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11713 vreinterpret_s64_s8 (int8x8_t __a)
11714 {
11715 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
11716 }
11717
11718 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11719 vreinterpret_s64_s16 (int16x4_t __a)
11720 {
11721 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
11722 }
11723
11724 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11725 vreinterpret_s64_s32 (int32x2_t __a)
11726 {
11727 return (int64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
11728 }
11729
11730 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11731 vreinterpret_s64_u8 (uint8x8_t __a)
11732 {
11733 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11734 }
11735
11736 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11737 vreinterpret_s64_u16 (uint16x4_t __a)
11738 {
11739 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11740 }
11741
11742 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11743 vreinterpret_s64_u32 (uint32x2_t __a)
11744 {
11745 return (int64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
11746 }
11747
11748 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11749 vreinterpret_u64_p8 (poly8x8_t __a)
11750 {
11751 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11752 }
11753
11754 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11755 vreinterpret_u64_p16 (poly16x4_t __a)
11756 {
11757 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11758 }
11759
11760 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11761 vreinterpret_u64_f32 (float32x2_t __a)
11762 {
11763 return (uint64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
11764 }
11765
11766 #ifdef __ARM_FEATURE_CRYPTO
11767 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11768 vreinterpret_u64_p64 (poly64x1_t __a)
11769 {
11770 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
11771 }
11772
11773 #endif
11774 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11775 vreinterpret_u64_s64 (int64x1_t __a)
11776 {
11777 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
11778 }
11779
11780 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11781 vreinterpret_u64_s8 (int8x8_t __a)
11782 {
11783 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
11784 }
11785
11786 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11787 vreinterpret_u64_s16 (int16x4_t __a)
11788 {
11789 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
11790 }
11791
11792 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11793 vreinterpret_u64_s32 (int32x2_t __a)
11794 {
11795 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
11796 }
11797
11798 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11799 vreinterpret_u64_u8 (uint8x8_t __a)
11800 {
11801 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11802 }
11803
11804 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11805 vreinterpret_u64_u16 (uint16x4_t __a)
11806 {
11807 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11808 }
11809
11810 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11811 vreinterpret_u64_u32 (uint32x2_t __a)
11812 {
11813 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
11814 }
11815
11816 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11817 vreinterpret_s8_p8 (poly8x8_t __a)
11818 {
11819 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11820 }
11821
11822 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11823 vreinterpret_s8_p16 (poly16x4_t __a)
11824 {
11825 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11826 }
11827
11828 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11829 vreinterpret_s8_f32 (float32x2_t __a)
11830 {
11831 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11832 }
11833
11834 #ifdef __ARM_FEATURE_CRYPTO
11835 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11836 vreinterpret_s8_p64 (poly64x1_t __a)
11837 {
11838 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11839 }
11840
11841 #endif
11842 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11843 vreinterpret_s8_s64 (int64x1_t __a)
11844 {
11845 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11846 }
11847
11848 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11849 vreinterpret_s8_u64 (uint64x1_t __a)
11850 {
11851 return (int8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11852 }
11853
11854 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11855 vreinterpret_s8_s16 (int16x4_t __a)
11856 {
11857 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11858 }
11859
11860 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11861 vreinterpret_s8_s32 (int32x2_t __a)
11862 {
11863 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11864 }
11865
11866 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11867 vreinterpret_s8_u8 (uint8x8_t __a)
11868 {
11869 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11870 }
11871
11872 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11873 vreinterpret_s8_u16 (uint16x4_t __a)
11874 {
11875 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11876 }
11877
11878 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11879 vreinterpret_s8_u32 (uint32x2_t __a)
11880 {
11881 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11882 }
11883
11884 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11885 vreinterpret_s16_p8 (poly8x8_t __a)
11886 {
11887 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11888 }
11889
11890 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11891 vreinterpret_s16_p16 (poly16x4_t __a)
11892 {
11893 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11894 }
11895
11896 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11897 vreinterpret_s16_f32 (float32x2_t __a)
11898 {
11899 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11900 }
11901
11902 #ifdef __ARM_FEATURE_CRYPTO
11903 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11904 vreinterpret_s16_p64 (poly64x1_t __a)
11905 {
11906 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11907 }
11908
11909 #endif
11910 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11911 vreinterpret_s16_s64 (int64x1_t __a)
11912 {
11913 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11914 }
11915
11916 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11917 vreinterpret_s16_u64 (uint64x1_t __a)
11918 {
11919 return (int16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11920 }
11921
11922 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11923 vreinterpret_s16_s8 (int8x8_t __a)
11924 {
11925 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11926 }
11927
11928 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11929 vreinterpret_s16_s32 (int32x2_t __a)
11930 {
11931 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11932 }
11933
11934 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11935 vreinterpret_s16_u8 (uint8x8_t __a)
11936 {
11937 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11938 }
11939
11940 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11941 vreinterpret_s16_u16 (uint16x4_t __a)
11942 {
11943 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11944 }
11945
11946 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11947 vreinterpret_s16_u32 (uint32x2_t __a)
11948 {
11949 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11950 }
11951
11952 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11953 vreinterpret_s32_p8 (poly8x8_t __a)
11954 {
11955 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
11956 }
11957
11958 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11959 vreinterpret_s32_p16 (poly16x4_t __a)
11960 {
11961 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
11962 }
11963
11964 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11965 vreinterpret_s32_f32 (float32x2_t __a)
11966 {
11967 return (int32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
11968 }
11969
11970 #ifdef __ARM_FEATURE_CRYPTO
11971 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11972 vreinterpret_s32_p64 (poly64x1_t __a)
11973 {
11974 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
11975 }
11976
11977 #endif
11978 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11979 vreinterpret_s32_s64 (int64x1_t __a)
11980 {
11981 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
11982 }
11983
11984 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11985 vreinterpret_s32_u64 (uint64x1_t __a)
11986 {
11987 return (int32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
11988 }
11989
11990 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11991 vreinterpret_s32_s8 (int8x8_t __a)
11992 {
11993 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
11994 }
11995
11996 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11997 vreinterpret_s32_s16 (int16x4_t __a)
11998 {
11999 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12000 }
12001
12002 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12003 vreinterpret_s32_u8 (uint8x8_t __a)
12004 {
12005 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12006 }
12007
12008 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12009 vreinterpret_s32_u16 (uint16x4_t __a)
12010 {
12011 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12012 }
12013
12014 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12015 vreinterpret_s32_u32 (uint32x2_t __a)
12016 {
12017 return (int32x2_t)__builtin_neon_vreinterpretv2siv2si ((int32x2_t) __a);
12018 }
12019
12020 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12021 vreinterpret_u8_p8 (poly8x8_t __a)
12022 {
12023 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12024 }
12025
12026 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12027 vreinterpret_u8_p16 (poly16x4_t __a)
12028 {
12029 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12030 }
12031
12032 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12033 vreinterpret_u8_f32 (float32x2_t __a)
12034 {
12035 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
12036 }
12037
12038 #ifdef __ARM_FEATURE_CRYPTO
12039 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12040 vreinterpret_u8_p64 (poly64x1_t __a)
12041 {
12042 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12043 }
12044
12045 #endif
12046 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12047 vreinterpret_u8_s64 (int64x1_t __a)
12048 {
12049 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12050 }
12051
12052 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12053 vreinterpret_u8_u64 (uint64x1_t __a)
12054 {
12055 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
12056 }
12057
12058 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12059 vreinterpret_u8_s8 (int8x8_t __a)
12060 {
12061 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
12062 }
12063
12064 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12065 vreinterpret_u8_s16 (int16x4_t __a)
12066 {
12067 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
12068 }
12069
12070 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12071 vreinterpret_u8_s32 (int32x2_t __a)
12072 {
12073 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
12074 }
12075
12076 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12077 vreinterpret_u8_u16 (uint16x4_t __a)
12078 {
12079 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12080 }
12081
12082 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12083 vreinterpret_u8_u32 (uint32x2_t __a)
12084 {
12085 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
12086 }
12087
12088 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12089 vreinterpret_u16_p8 (poly8x8_t __a)
12090 {
12091 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12092 }
12093
12094 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12095 vreinterpret_u16_p16 (poly16x4_t __a)
12096 {
12097 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12098 }
12099
12100 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12101 vreinterpret_u16_f32 (float32x2_t __a)
12102 {
12103 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
12104 }
12105
12106 #ifdef __ARM_FEATURE_CRYPTO
12107 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12108 vreinterpret_u16_p64 (poly64x1_t __a)
12109 {
12110 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12111 }
12112
12113 #endif
12114 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12115 vreinterpret_u16_s64 (int64x1_t __a)
12116 {
12117 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12118 }
12119
12120 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12121 vreinterpret_u16_u64 (uint64x1_t __a)
12122 {
12123 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
12124 }
12125
12126 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12127 vreinterpret_u16_s8 (int8x8_t __a)
12128 {
12129 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
12130 }
12131
12132 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12133 vreinterpret_u16_s16 (int16x4_t __a)
12134 {
12135 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
12136 }
12137
12138 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12139 vreinterpret_u16_s32 (int32x2_t __a)
12140 {
12141 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
12142 }
12143
12144 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12145 vreinterpret_u16_u8 (uint8x8_t __a)
12146 {
12147 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12148 }
12149
12150 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12151 vreinterpret_u16_u32 (uint32x2_t __a)
12152 {
12153 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
12154 }
12155
12156 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12157 vreinterpret_u32_p8 (poly8x8_t __a)
12158 {
12159 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12160 }
12161
12162 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12163 vreinterpret_u32_p16 (poly16x4_t __a)
12164 {
12165 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12166 }
12167
12168 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12169 vreinterpret_u32_f32 (float32x2_t __a)
12170 {
12171 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12172 }
12173
12174 #ifdef __ARM_FEATURE_CRYPTO
12175 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12176 vreinterpret_u32_p64 (poly64x1_t __a)
12177 {
12178 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12179 }
12180
12181 #endif
12182 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12183 vreinterpret_u32_s64 (int64x1_t __a)
12184 {
12185 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12186 }
12187
12188 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12189 vreinterpret_u32_u64 (uint64x1_t __a)
12190 {
12191 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12192 }
12193
12194 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12195 vreinterpret_u32_s8 (int8x8_t __a)
12196 {
12197 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12198 }
12199
12200 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12201 vreinterpret_u32_s16 (int16x4_t __a)
12202 {
12203 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12204 }
12205
12206 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12207 vreinterpret_u32_s32 (int32x2_t __a)
12208 {
12209 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2si (__a);
12210 }
12211
12212 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12213 vreinterpret_u32_u8 (uint8x8_t __a)
12214 {
12215 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12216 }
12217
12218 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12219 vreinterpret_u32_u16 (uint16x4_t __a)
12220 {
12221 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12222 }
12223
12224 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12225 vreinterpretq_p8_p16 (poly16x8_t __a)
12226 {
12227 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12228 }
12229
12230 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12231 vreinterpretq_p8_f32 (float32x4_t __a)
12232 {
12233 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
12234 }
12235
12236 #ifdef __ARM_FEATURE_CRYPTO
12237 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12238 vreinterpretq_p8_p64 (poly64x2_t __a)
12239 {
12240 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12241 }
12242
12243 #endif
12244 #ifdef __ARM_FEATURE_CRYPTO
12245 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12246 vreinterpretq_p8_p128 (poly128_t __a)
12247 {
12248 return (poly8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
12249 }
12250
12251 #endif
12252 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12253 vreinterpretq_p8_s64 (int64x2_t __a)
12254 {
12255 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
12256 }
12257
12258 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12259 vreinterpretq_p8_u64 (uint64x2_t __a)
12260 {
12261 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12262 }
12263
12264 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12265 vreinterpretq_p8_s8 (int8x16_t __a)
12266 {
12267 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
12268 }
12269
12270 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12271 vreinterpretq_p8_s16 (int16x8_t __a)
12272 {
12273 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
12274 }
12275
12276 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12277 vreinterpretq_p8_s32 (int32x4_t __a)
12278 {
12279 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
12280 }
12281
12282 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12283 vreinterpretq_p8_u8 (uint8x16_t __a)
12284 {
12285 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
12286 }
12287
12288 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12289 vreinterpretq_p8_u16 (uint16x8_t __a)
12290 {
12291 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12292 }
12293
12294 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12295 vreinterpretq_p8_u32 (uint32x4_t __a)
12296 {
12297 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
12298 }
12299
12300 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12301 vreinterpretq_p16_p8 (poly8x16_t __a)
12302 {
12303 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12304 }
12305
12306 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12307 vreinterpretq_p16_f32 (float32x4_t __a)
12308 {
12309 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
12310 }
12311
12312 #ifdef __ARM_FEATURE_CRYPTO
12313 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12314 vreinterpretq_p16_p64 (poly64x2_t __a)
12315 {
12316 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12317 }
12318
12319 #endif
12320 #ifdef __ARM_FEATURE_CRYPTO
12321 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12322 vreinterpretq_p16_p128 (poly128_t __a)
12323 {
12324 return (poly16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
12325 }
12326
12327 #endif
12328 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12329 vreinterpretq_p16_s64 (int64x2_t __a)
12330 {
12331 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
12332 }
12333
12334 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12335 vreinterpretq_p16_u64 (uint64x2_t __a)
12336 {
12337 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12338 }
12339
12340 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12341 vreinterpretq_p16_s8 (int8x16_t __a)
12342 {
12343 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
12344 }
12345
12346 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12347 vreinterpretq_p16_s16 (int16x8_t __a)
12348 {
12349 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
12350 }
12351
12352 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12353 vreinterpretq_p16_s32 (int32x4_t __a)
12354 {
12355 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
12356 }
12357
12358 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12359 vreinterpretq_p16_u8 (uint8x16_t __a)
12360 {
12361 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12362 }
12363
12364 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12365 vreinterpretq_p16_u16 (uint16x8_t __a)
12366 {
12367 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12368 }
12369
12370 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12371 vreinterpretq_p16_u32 (uint32x4_t __a)
12372 {
12373 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
12374 }
12375
12376 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12377 vreinterpretq_f32_p8 (poly8x16_t __a)
12378 {
12379 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12380 }
12381
12382 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12383 vreinterpretq_f32_p16 (poly16x8_t __a)
12384 {
12385 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12386 }
12387
12388 #ifdef __ARM_FEATURE_CRYPTO
12389 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12390 vreinterpretq_f32_p64 (poly64x2_t __a)
12391 {
12392 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12393 }
12394
12395 #endif
12396 #ifdef __ARM_FEATURE_CRYPTO
12397 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12398 vreinterpretq_f32_p128 (poly128_t __a)
12399 {
12400 return (float32x4_t)__builtin_neon_vreinterpretv4sfti ((__builtin_neon_ti) __a);
12401 }
12402
12403 #endif
12404 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12405 vreinterpretq_f32_s64 (int64x2_t __a)
12406 {
12407 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di (__a);
12408 }
12409
12410 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12411 vreinterpretq_f32_u64 (uint64x2_t __a)
12412 {
12413 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12414 }
12415
12416 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12417 vreinterpretq_f32_s8 (int8x16_t __a)
12418 {
12419 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi (__a);
12420 }
12421
12422 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12423 vreinterpretq_f32_s16 (int16x8_t __a)
12424 {
12425 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi (__a);
12426 }
12427
12428 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12429 vreinterpretq_f32_s32 (int32x4_t __a)
12430 {
12431 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si (__a);
12432 }
12433
12434 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12435 vreinterpretq_f32_u8 (uint8x16_t __a)
12436 {
12437 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12438 }
12439
12440 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12441 vreinterpretq_f32_u16 (uint16x8_t __a)
12442 {
12443 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12444 }
12445
12446 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12447 vreinterpretq_f32_u32 (uint32x4_t __a)
12448 {
12449 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si ((int32x4_t) __a);
12450 }
12451
12452 #ifdef __ARM_FEATURE_CRYPTO
12453 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12454 vreinterpretq_p64_p8 (poly8x16_t __a)
12455 {
12456 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12457 }
12458
12459 #endif
12460 #ifdef __ARM_FEATURE_CRYPTO
12461 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12462 vreinterpretq_p64_p16 (poly16x8_t __a)
12463 {
12464 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12465 }
12466
12467 #endif
12468 #ifdef __ARM_FEATURE_CRYPTO
12469 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12470 vreinterpretq_p64_f32 (float32x4_t __a)
12471 {
12472 return (poly64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
12473 }
12474
12475 #endif
12476 #ifdef __ARM_FEATURE_CRYPTO
12477 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12478 vreinterpretq_p64_p128 (poly128_t __a)
12479 {
12480 return (poly64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
12481 }
12482
12483 #endif
12484 #ifdef __ARM_FEATURE_CRYPTO
12485 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12486 vreinterpretq_p64_s64 (int64x2_t __a)
12487 {
12488 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
12489 }
12490
12491 #endif
12492 #ifdef __ARM_FEATURE_CRYPTO
12493 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12494 vreinterpretq_p64_u64 (uint64x2_t __a)
12495 {
12496 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12497 }
12498
12499 #endif
12500 #ifdef __ARM_FEATURE_CRYPTO
12501 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12502 vreinterpretq_p64_s8 (int8x16_t __a)
12503 {
12504 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
12505 }
12506
12507 #endif
12508 #ifdef __ARM_FEATURE_CRYPTO
12509 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12510 vreinterpretq_p64_s16 (int16x8_t __a)
12511 {
12512 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
12513 }
12514
12515 #endif
12516 #ifdef __ARM_FEATURE_CRYPTO
12517 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12518 vreinterpretq_p64_s32 (int32x4_t __a)
12519 {
12520 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
12521 }
12522
12523 #endif
12524 #ifdef __ARM_FEATURE_CRYPTO
12525 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12526 vreinterpretq_p64_u8 (uint8x16_t __a)
12527 {
12528 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12529 }
12530
12531 #endif
12532 #ifdef __ARM_FEATURE_CRYPTO
12533 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12534 vreinterpretq_p64_u16 (uint16x8_t __a)
12535 {
12536 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12537 }
12538
12539 #endif
12540 #ifdef __ARM_FEATURE_CRYPTO
12541 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12542 vreinterpretq_p64_u32 (uint32x4_t __a)
12543 {
12544 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
12545 }
12546
12547 #endif
12548 #ifdef __ARM_FEATURE_CRYPTO
12549 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12550 vreinterpretq_p128_p8 (poly8x16_t __a)
12551 {
12552 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
12553 }
12554
12555 #endif
12556 #ifdef __ARM_FEATURE_CRYPTO
12557 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12558 vreinterpretq_p128_p16 (poly16x8_t __a)
12559 {
12560 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
12561 }
12562
12563 #endif
12564 #ifdef __ARM_FEATURE_CRYPTO
12565 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12566 vreinterpretq_p128_f32 (float32x4_t __a)
12567 {
12568 return (poly128_t)__builtin_neon_vreinterprettiv4sf (__a);
12569 }
12570
12571 #endif
12572 #ifdef __ARM_FEATURE_CRYPTO
12573 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12574 vreinterpretq_p128_p64 (poly64x2_t __a)
12575 {
12576 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
12577 }
12578
12579 #endif
12580 #ifdef __ARM_FEATURE_CRYPTO
12581 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12582 vreinterpretq_p128_s64 (int64x2_t __a)
12583 {
12584 return (poly128_t)__builtin_neon_vreinterprettiv2di (__a);
12585 }
12586
12587 #endif
12588 #ifdef __ARM_FEATURE_CRYPTO
12589 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12590 vreinterpretq_p128_u64 (uint64x2_t __a)
12591 {
12592 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
12593 }
12594
12595 #endif
12596 #ifdef __ARM_FEATURE_CRYPTO
12597 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12598 vreinterpretq_p128_s8 (int8x16_t __a)
12599 {
12600 return (poly128_t)__builtin_neon_vreinterprettiv16qi (__a);
12601 }
12602
12603 #endif
12604 #ifdef __ARM_FEATURE_CRYPTO
12605 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12606 vreinterpretq_p128_s16 (int16x8_t __a)
12607 {
12608 return (poly128_t)__builtin_neon_vreinterprettiv8hi (__a);
12609 }
12610
12611 #endif
12612 #ifdef __ARM_FEATURE_CRYPTO
12613 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12614 vreinterpretq_p128_s32 (int32x4_t __a)
12615 {
12616 return (poly128_t)__builtin_neon_vreinterprettiv4si (__a);
12617 }
12618
12619 #endif
12620 #ifdef __ARM_FEATURE_CRYPTO
12621 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12622 vreinterpretq_p128_u8 (uint8x16_t __a)
12623 {
12624 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
12625 }
12626
12627 #endif
12628 #ifdef __ARM_FEATURE_CRYPTO
12629 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12630 vreinterpretq_p128_u16 (uint16x8_t __a)
12631 {
12632 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
12633 }
12634
12635 #endif
12636 #ifdef __ARM_FEATURE_CRYPTO
12637 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12638 vreinterpretq_p128_u32 (uint32x4_t __a)
12639 {
12640 return (poly128_t)__builtin_neon_vreinterprettiv4si ((int32x4_t) __a);
12641 }
12642
12643 #endif
12644 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12645 vreinterpretq_s64_p8 (poly8x16_t __a)
12646 {
12647 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12648 }
12649
12650 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12651 vreinterpretq_s64_p16 (poly16x8_t __a)
12652 {
12653 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12654 }
12655
12656 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12657 vreinterpretq_s64_f32 (float32x4_t __a)
12658 {
12659 return (int64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
12660 }
12661
12662 #ifdef __ARM_FEATURE_CRYPTO
12663 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12664 vreinterpretq_s64_p64 (poly64x2_t __a)
12665 {
12666 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12667 }
12668
12669 #endif
12670 #ifdef __ARM_FEATURE_CRYPTO
12671 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12672 vreinterpretq_s64_p128 (poly128_t __a)
12673 {
12674 return (int64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
12675 }
12676
12677 #endif
12678 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12679 vreinterpretq_s64_u64 (uint64x2_t __a)
12680 {
12681 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12682 }
12683
12684 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12685 vreinterpretq_s64_s8 (int8x16_t __a)
12686 {
12687 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
12688 }
12689
12690 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12691 vreinterpretq_s64_s16 (int16x8_t __a)
12692 {
12693 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
12694 }
12695
12696 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12697 vreinterpretq_s64_s32 (int32x4_t __a)
12698 {
12699 return (int64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
12700 }
12701
12702 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12703 vreinterpretq_s64_u8 (uint8x16_t __a)
12704 {
12705 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12706 }
12707
12708 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12709 vreinterpretq_s64_u16 (uint16x8_t __a)
12710 {
12711 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12712 }
12713
12714 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
12715 vreinterpretq_s64_u32 (uint32x4_t __a)
12716 {
12717 return (int64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
12718 }
12719
12720 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12721 vreinterpretq_u64_p8 (poly8x16_t __a)
12722 {
12723 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12724 }
12725
12726 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12727 vreinterpretq_u64_p16 (poly16x8_t __a)
12728 {
12729 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12730 }
12731
12732 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12733 vreinterpretq_u64_f32 (float32x4_t __a)
12734 {
12735 return (uint64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
12736 }
12737
12738 #ifdef __ARM_FEATURE_CRYPTO
12739 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12740 vreinterpretq_u64_p64 (poly64x2_t __a)
12741 {
12742 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12743 }
12744
12745 #endif
12746 #ifdef __ARM_FEATURE_CRYPTO
12747 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12748 vreinterpretq_u64_p128 (poly128_t __a)
12749 {
12750 return (uint64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
12751 }
12752
12753 #endif
12754 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12755 vreinterpretq_u64_s64 (int64x2_t __a)
12756 {
12757 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
12758 }
12759
12760 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12761 vreinterpretq_u64_s8 (int8x16_t __a)
12762 {
12763 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
12764 }
12765
12766 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12767 vreinterpretq_u64_s16 (int16x8_t __a)
12768 {
12769 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
12770 }
12771
12772 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12773 vreinterpretq_u64_s32 (int32x4_t __a)
12774 {
12775 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
12776 }
12777
12778 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12779 vreinterpretq_u64_u8 (uint8x16_t __a)
12780 {
12781 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12782 }
12783
12784 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12785 vreinterpretq_u64_u16 (uint16x8_t __a)
12786 {
12787 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12788 }
12789
12790 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
12791 vreinterpretq_u64_u32 (uint32x4_t __a)
12792 {
12793 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
12794 }
12795
12796 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12797 vreinterpretq_s8_p8 (poly8x16_t __a)
12798 {
12799 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
12800 }
12801
12802 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12803 vreinterpretq_s8_p16 (poly16x8_t __a)
12804 {
12805 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12806 }
12807
12808 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12809 vreinterpretq_s8_f32 (float32x4_t __a)
12810 {
12811 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
12812 }
12813
12814 #ifdef __ARM_FEATURE_CRYPTO
12815 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12816 vreinterpretq_s8_p64 (poly64x2_t __a)
12817 {
12818 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12819 }
12820
12821 #endif
12822 #ifdef __ARM_FEATURE_CRYPTO
12823 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12824 vreinterpretq_s8_p128 (poly128_t __a)
12825 {
12826 return (int8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
12827 }
12828
12829 #endif
12830 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12831 vreinterpretq_s8_s64 (int64x2_t __a)
12832 {
12833 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
12834 }
12835
12836 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12837 vreinterpretq_s8_u64 (uint64x2_t __a)
12838 {
12839 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12840 }
12841
12842 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12843 vreinterpretq_s8_s16 (int16x8_t __a)
12844 {
12845 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
12846 }
12847
12848 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12849 vreinterpretq_s8_s32 (int32x4_t __a)
12850 {
12851 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
12852 }
12853
12854 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12855 vreinterpretq_s8_u8 (uint8x16_t __a)
12856 {
12857 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
12858 }
12859
12860 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12861 vreinterpretq_s8_u16 (uint16x8_t __a)
12862 {
12863 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12864 }
12865
12866 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
12867 vreinterpretq_s8_u32 (uint32x4_t __a)
12868 {
12869 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
12870 }
12871
12872 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12873 vreinterpretq_s16_p8 (poly8x16_t __a)
12874 {
12875 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12876 }
12877
12878 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12879 vreinterpretq_s16_p16 (poly16x8_t __a)
12880 {
12881 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12882 }
12883
12884 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12885 vreinterpretq_s16_f32 (float32x4_t __a)
12886 {
12887 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
12888 }
12889
12890 #ifdef __ARM_FEATURE_CRYPTO
12891 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12892 vreinterpretq_s16_p64 (poly64x2_t __a)
12893 {
12894 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12895 }
12896
12897 #endif
12898 #ifdef __ARM_FEATURE_CRYPTO
12899 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12900 vreinterpretq_s16_p128 (poly128_t __a)
12901 {
12902 return (int16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
12903 }
12904
12905 #endif
12906 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12907 vreinterpretq_s16_s64 (int64x2_t __a)
12908 {
12909 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
12910 }
12911
12912 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12913 vreinterpretq_s16_u64 (uint64x2_t __a)
12914 {
12915 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12916 }
12917
12918 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12919 vreinterpretq_s16_s8 (int8x16_t __a)
12920 {
12921 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
12922 }
12923
12924 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12925 vreinterpretq_s16_s32 (int32x4_t __a)
12926 {
12927 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
12928 }
12929
12930 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12931 vreinterpretq_s16_u8 (uint8x16_t __a)
12932 {
12933 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12934 }
12935
12936 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12937 vreinterpretq_s16_u16 (uint16x8_t __a)
12938 {
12939 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12940 }
12941
12942 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
12943 vreinterpretq_s16_u32 (uint32x4_t __a)
12944 {
12945 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
12946 }
12947
12948 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12949 vreinterpretq_s32_p8 (poly8x16_t __a)
12950 {
12951 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
12952 }
12953
12954 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12955 vreinterpretq_s32_p16 (poly16x8_t __a)
12956 {
12957 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
12958 }
12959
12960 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12961 vreinterpretq_s32_f32 (float32x4_t __a)
12962 {
12963 return (int32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
12964 }
12965
12966 #ifdef __ARM_FEATURE_CRYPTO
12967 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12968 vreinterpretq_s32_p64 (poly64x2_t __a)
12969 {
12970 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
12971 }
12972
12973 #endif
12974 #ifdef __ARM_FEATURE_CRYPTO
12975 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12976 vreinterpretq_s32_p128 (poly128_t __a)
12977 {
12978 return (int32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
12979 }
12980
12981 #endif
12982 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12983 vreinterpretq_s32_s64 (int64x2_t __a)
12984 {
12985 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
12986 }
12987
12988 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12989 vreinterpretq_s32_u64 (uint64x2_t __a)
12990 {
12991 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
12992 }
12993
12994 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
12995 vreinterpretq_s32_s8 (int8x16_t __a)
12996 {
12997 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
12998 }
12999
13000 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13001 vreinterpretq_s32_s16 (int16x8_t __a)
13002 {
13003 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13004 }
13005
13006 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13007 vreinterpretq_s32_u8 (uint8x16_t __a)
13008 {
13009 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13010 }
13011
13012 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13013 vreinterpretq_s32_u16 (uint16x8_t __a)
13014 {
13015 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13016 }
13017
13018 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13019 vreinterpretq_s32_u32 (uint32x4_t __a)
13020 {
13021 return (int32x4_t)__builtin_neon_vreinterpretv4siv4si ((int32x4_t) __a);
13022 }
13023
13024 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13025 vreinterpretq_u8_p8 (poly8x16_t __a)
13026 {
13027 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13028 }
13029
13030 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13031 vreinterpretq_u8_p16 (poly16x8_t __a)
13032 {
13033 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13034 }
13035
13036 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13037 vreinterpretq_u8_f32 (float32x4_t __a)
13038 {
13039 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
13040 }
13041
13042 #ifdef __ARM_FEATURE_CRYPTO
13043 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13044 vreinterpretq_u8_p64 (poly64x2_t __a)
13045 {
13046 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13047 }
13048
13049 #endif
13050 #ifdef __ARM_FEATURE_CRYPTO
13051 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13052 vreinterpretq_u8_p128 (poly128_t __a)
13053 {
13054 return (uint8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
13055 }
13056
13057 #endif
13058 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13059 vreinterpretq_u8_s64 (int64x2_t __a)
13060 {
13061 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
13062 }
13063
13064 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13065 vreinterpretq_u8_u64 (uint64x2_t __a)
13066 {
13067 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13068 }
13069
13070 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13071 vreinterpretq_u8_s8 (int8x16_t __a)
13072 {
13073 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
13074 }
13075
13076 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13077 vreinterpretq_u8_s16 (int16x8_t __a)
13078 {
13079 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
13080 }
13081
13082 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13083 vreinterpretq_u8_s32 (int32x4_t __a)
13084 {
13085 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
13086 }
13087
13088 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13089 vreinterpretq_u8_u16 (uint16x8_t __a)
13090 {
13091 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13092 }
13093
13094 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13095 vreinterpretq_u8_u32 (uint32x4_t __a)
13096 {
13097 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
13098 }
13099
13100 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13101 vreinterpretq_u16_p8 (poly8x16_t __a)
13102 {
13103 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13104 }
13105
13106 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13107 vreinterpretq_u16_p16 (poly16x8_t __a)
13108 {
13109 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13110 }
13111
13112 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13113 vreinterpretq_u16_f32 (float32x4_t __a)
13114 {
13115 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
13116 }
13117
13118 #ifdef __ARM_FEATURE_CRYPTO
13119 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13120 vreinterpretq_u16_p64 (poly64x2_t __a)
13121 {
13122 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13123 }
13124
13125 #endif
13126 #ifdef __ARM_FEATURE_CRYPTO
13127 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13128 vreinterpretq_u16_p128 (poly128_t __a)
13129 {
13130 return (uint16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
13131 }
13132
13133 #endif
13134 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13135 vreinterpretq_u16_s64 (int64x2_t __a)
13136 {
13137 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
13138 }
13139
13140 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13141 vreinterpretq_u16_u64 (uint64x2_t __a)
13142 {
13143 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13144 }
13145
13146 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13147 vreinterpretq_u16_s8 (int8x16_t __a)
13148 {
13149 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
13150 }
13151
13152 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13153 vreinterpretq_u16_s16 (int16x8_t __a)
13154 {
13155 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
13156 }
13157
13158 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13159 vreinterpretq_u16_s32 (int32x4_t __a)
13160 {
13161 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
13162 }
13163
13164 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13165 vreinterpretq_u16_u8 (uint8x16_t __a)
13166 {
13167 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13168 }
13169
13170 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13171 vreinterpretq_u16_u32 (uint32x4_t __a)
13172 {
13173 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
13174 }
13175
13176 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13177 vreinterpretq_u32_p8 (poly8x16_t __a)
13178 {
13179 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13180 }
13181
13182 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13183 vreinterpretq_u32_p16 (poly16x8_t __a)
13184 {
13185 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13186 }
13187
13188 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13189 vreinterpretq_u32_f32 (float32x4_t __a)
13190 {
13191 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
13192 }
13193
13194 #ifdef __ARM_FEATURE_CRYPTO
13195 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13196 vreinterpretq_u32_p64 (poly64x2_t __a)
13197 {
13198 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13199 }
13200
13201 #endif
13202 #ifdef __ARM_FEATURE_CRYPTO
13203 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13204 vreinterpretq_u32_p128 (poly128_t __a)
13205 {
13206 return (uint32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
13207 }
13208
13209 #endif
13210 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13211 vreinterpretq_u32_s64 (int64x2_t __a)
13212 {
13213 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
13214 }
13215
13216 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13217 vreinterpretq_u32_u64 (uint64x2_t __a)
13218 {
13219 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13220 }
13221
13222 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13223 vreinterpretq_u32_s8 (int8x16_t __a)
13224 {
13225 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
13226 }
13227
13228 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13229 vreinterpretq_u32_s16 (int16x8_t __a)
13230 {
13231 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13232 }
13233
13234 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13235 vreinterpretq_u32_s32 (int32x4_t __a)
13236 {
13237 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4si (__a);
13238 }
13239
13240 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13241 vreinterpretq_u32_u8 (uint8x16_t __a)
13242 {
13243 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13244 }
13245
13246 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13247 vreinterpretq_u32_u16 (uint16x8_t __a)
13248 {
13249 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13250 }
13251
13252
13253 #ifdef __ARM_FEATURE_CRYPTO
13254
13255 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13256 vldrq_p128 (poly128_t const * __ptr)
13257 {
13258 #ifdef __ARM_BIG_ENDIAN
13259 poly64_t* __ptmp = (poly64_t*) __ptr;
13260 poly64_t __d0 = vld1_p64 (__ptmp);
13261 poly64_t __d1 = vld1_p64 (__ptmp + 1);
13262 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
13263 #else
13264 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
13265 #endif
13266 }
13267
13268 __extension__ static __inline void __attribute__ ((__always_inline__))
13269 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
13270 {
13271 #ifdef __ARM_BIG_ENDIAN
13272 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
13273 poly64_t __d0 = vget_high_p64 (__tmp);
13274 poly64_t __d1 = vget_low_p64 (__tmp);
13275 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
13276 #else
13277 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
13278 #endif
13279 }
13280
13281 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13282 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
13283 {
13284 return __builtin_arm_crypto_aese (__data, __key);
13285 }
13286
13287 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13288 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
13289 {
13290 return __builtin_arm_crypto_aesd (__data, __key);
13291 }
13292
13293 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13294 vaesmcq_u8 (uint8x16_t __data)
13295 {
13296 return __builtin_arm_crypto_aesmc (__data);
13297 }
13298
13299 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13300 vaesimcq_u8 (uint8x16_t __data)
13301 {
13302 return __builtin_arm_crypto_aesimc (__data);
13303 }
13304
13305 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
13306 vsha1h_u32 (uint32_t __hash_e)
13307 {
13308 uint32x4_t __t = vdupq_n_u32 (0);
13309 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13310 __t = __builtin_arm_crypto_sha1h (__t);
13311 return vgetq_lane_u32 (__t, 0);
13312 }
13313
13314 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13315 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13316 {
13317 uint32x4_t __t = vdupq_n_u32 (0);
13318 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13319 return __builtin_arm_crypto_sha1c (__hash_abcd, __t, __wk);
13320 }
13321
13322 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13323 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13324 {
13325 uint32x4_t __t = vdupq_n_u32 (0);
13326 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13327 return __builtin_arm_crypto_sha1p (__hash_abcd, __t, __wk);
13328 }
13329
13330 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13331 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13332 {
13333 uint32x4_t __t = vdupq_n_u32 (0);
13334 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13335 return __builtin_arm_crypto_sha1m (__hash_abcd, __t, __wk);
13336 }
13337
13338 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13339 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
13340 {
13341 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
13342 }
13343
13344 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13345 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
13346 {
13347 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
13348 }
13349
13350 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13351 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13352 {
13353 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
13354 }
13355
13356 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13357 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13358 {
13359 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
13360 }
13361
13362 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13363 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
13364 {
13365 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
13366 }
13367
13368 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13369 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
13370 {
13371 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
13372 }
13373
13374 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13375 vmull_p64 (poly64_t __a, poly64_t __b)
13376 {
13377 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
13378 }
13379
13380 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13381 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
13382 {
13383 poly64_t __t1 = vget_high_p64 (__a);
13384 poly64_t __t2 = vget_high_p64 (__b);
13385
13386 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
13387 }
13388
13389 #endif
13390 #ifdef __cplusplus
13391 }
13392 #endif
13393 #endif
13394 #endif